KR20230006582A - Machine control systems, programs, machines, systems and devices - Google Patents

Machine control systems, programs, machines, systems and devices Download PDF

Info

Publication number
KR20230006582A
KR20230006582A KR1020227042649A KR20227042649A KR20230006582A KR 20230006582 A KR20230006582 A KR 20230006582A KR 1020227042649 A KR1020227042649 A KR 1020227042649A KR 20227042649 A KR20227042649 A KR 20227042649A KR 20230006582 A KR20230006582 A KR 20230006582A
Authority
KR
South Korea
Prior art keywords
machine
cycle
information
controller
unit
Prior art date
Application number
KR1020227042649A
Other languages
Korean (ko)
Inventor
가즈오 후지노
다다스케 유바
료 시모도메
료타 모리와카
가즈토시 고바야시
유키 미나미다
Original Assignee
가부시키가이샤 야스카와덴키
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/JP2020/019141 external-priority patent/WO2020230824A1/en
Application filed by 가부시키가이샤 야스카와덴키 filed Critical 가부시키가이샤 야스카와덴키
Publication of KR20230006582A publication Critical patent/KR20230006582A/en

Links

Images

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C17/00Arrangements for transmitting signals characterised by the use of a wireless electrical link
    • G08C17/02Arrangements for transmitting signals characterised by the use of a wireless electrical link using a radio link
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • H04Q9/04Arrangements for synchronous operation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31261Coordination control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33097Variable ticks, align clocks, to synchronise cycles with other machine, robot
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34397Synchronize manipulators and machine by using a reference clock for all

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

머신 제어 시스템(1)은, 현실 공간상에 구성되어, 각각 머신 지령에 따라 모션을 실현하는 1 이상의 머신(4)과, 1 이상의 머신(4)과 통신하는 1 이상의 서버가 갖는 가상 공간상에 실장되어, 1 이상의 머신(4)에 대한 머신 지령을 각각 생성하는 1 이상의 컨트롤러(100)를 구비하고, 1 이상의 컨트롤러(100)의 각각은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신(4)에 대한 머신 지령을 생성하는 모션 모듈(113)과, 머신 지령에 제1 사이클 정보를 부가하는 부가부(125)와, 머신 지령을 대응하는 머신(4)에 송신하는 동기 통신부(114)를 갖고, 1 이상의 머신(4)의 각각은, 1 이상의 서버로부터 머신 지령을 수신하는 단말 통신부(314)와, 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클로 상기 머신 지령을 호출하는 머신측 타이밍 조정부(315)를 갖는다.The machine control system 1 is configured on a real space, and on a virtual space having one or more machines 4 each realizing motion according to machine commands and one or more servers communicating with the one or more machines 4. Equipped with one or more controllers 100 that generate machine commands for one or more machines 4, respectively, each of the one or more controllers 100 executes a motion program with a control cycle, and the corresponding machine 4 A motion module 113 for generating a machine command for ), an addition unit 125 for adding first cycle information to the machine command, and a synchronous communication unit 114 for transmitting the machine command to the corresponding machine 4 Each of the one or more machines 4 has a terminal communication unit 314 that receives machine commands from one or more servers, and calls the machine commands with a machine-side control cycle corresponding to the first cycle information added to the machine commands. It has a machine-side timing adjustment unit 315.

Figure P1020227042649
Figure P1020227042649

Description

머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스Machine control systems, programs, machines, systems and devices

본 개시는 머신 제어 시스템, 프로그램, 머신, 시스템 및 디바이스에 관한 것이다.The present disclosure relates to machine control systems, programs, machines, systems and devices.

특허문헌 1에는 로봇과, 가공 장치와, 로봇을 제어하는 로봇 컨트롤러와, 가공 장치를 제어하는 가공 장치 컨트롤러와, 로봇 컨트롤러 및 가공 장치 컨트롤러에 대한 지령을 생성하는 프로그래머블 로직 컨트롤러를 구비하는 시스템이 개시되어 있다.Patent Document 1 discloses a system including a robot, a processing device, a robot controller that controls the robot, a processing device controller that controls the processing device, and a programmable logic controller that generates commands for the robot controller and the processing device controller. has been

특허문헌 1: 일본 특허 공개 제2019-209454호 공보Patent Document 1: Japanese Unexamined Patent Publication No. 2019-209454

본 개시는 디바이스 간의 동기 통신의 신뢰성 향상에 유효한 시스템을 제공한다.The present disclosure provides a system effective for improving the reliability of synchronous communication between devices.

본 개시의 일측면에 따른 머신 제어 시스템은, 현실 공간상에 구성되어, 각각 머신 지령에 따라 모션을 실현하는 1 이상의 머신과, 1 이상의 머신과 통신하는 1 이상의 서버가 갖는 가상 공간상에 실장되어, 1 이상의 머신을 각각 제어하는 1 이상의 컨트롤러를 구비하고, 1 이상의 컨트롤러의 각각은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 모션 모듈과, 머신 지령에 제1 사이클 정보를 부가하는 부가부와, 머신 지령을 대응하는 머신에 송신하는 동기 통신부를 갖고, 1 이상의 머신의 각각은, 1 이상의 서버로부터 머신 지령을 수신하는 단말 통신부와, 단말 통신부가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클로 상기 머신 지령을 호출하는 머신측 타이밍 조정부를 갖는다.A machine control system according to one aspect of the present disclosure is configured on a real space and is mounted on a virtual space having one or more machines that realize motion according to machine commands, and one or more servers communicating with the one or more machines. , one or more controllers respectively controlling one or more machines, each of the one or more controllers executing a motion program with a control cycle, a motion module generating machine commands for corresponding machines, and a first cycle for the machine commands. It has an appending unit that adds information and a synchronous communication unit that transmits machine commands to corresponding machines, each of the one or more machines has a terminal communication unit that receives machine commands from one or more servers, and a terminal communication unit that transmits machine commands received by the terminal communication unit. and a machine-side timing adjusting unit that stores and calls the machine command with a machine-side control cycle corresponding to first cycle information added to the machine command.

본 개시의 다른 측면에 따른 프로그램은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 것과, 대응하는 머신에 있어서, 어느 머신측 컨트롤 사이클로 머신 지령을 호출할지를 지정하는 제1 사이클 정보를 머신 지령에 부가하는 것과, 제1 사이클 정보가 부가된 머신 지령을 대응하는 머신에 송신하는 것을 실행하는 컨트롤러를, 대응하는 머신과 통신하는 서버의 가상 공간상에 실장시킨다.A program according to another aspect of the present disclosure includes generating a machine command for a corresponding machine by executing a motion program with a control cycle, and specifying which machine-side control cycle to call the machine command in the corresponding machine. A controller that executes adding cycle information to the machine command and transmitting the machine command to which the first cycle information is added to the corresponding machine is mounted on a virtual space of a server communicating with the corresponding machine.

본 개시의 다른 측면에 따른 머신은, 모션을 실현하는 본체와, 컨트롤러가 실장된 가상 공간을 구성하는 서버와 통신하여, 컨트롤러가 사이클 정보를 부가한 머신 지령을 서버로부터 수신하는 단말 통신부와, 단말 통신부가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 머신측 타이밍 조정부와, 머신측 타이밍 조정부가 호출한 머신 지령에 기초하여, 본체에 모션을 실현시키는 머신 제어부를 구비한다.According to another aspect of the present disclosure, a machine includes a main body realizing motion, a terminal communication unit configured to communicate with a server constituting a virtual space in which a controller is mounted, and receiving a machine command to which cycle information is added by the controller from the server, and a terminal Based on a machine-side timing adjusting unit that stores the machine command received by the communication unit and calls the machine command in a control cycle corresponding to the cycle information added to the machine command, and the machine command called by the machine-side timing adjusting unit, The main body is provided with a machine control unit for realizing motion.

본 개시의 다른 측면에 따른 시스템은, 제1 처리를 반복하는 제1 디바이스와, 제1 디바이스와 통신하여, 제2 처리를 반복하는 제2 디바이스를 구비하고, 제1 디바이스는, 제1 처리에 의해 제1 정보를 생성하는 제1 처리 모듈과, 제1 정보에 제1 사이클 정보를 부가하는 제1 부가부와, 제1 정보를 제2 디바이스에 송신하는 제1 통신부를 갖고, 제2 디바이스는, 제1 디바이스로부터 제1 정보를 수신하는 제2 통신부와, 제2 통신부가 수신한 제1 정보를 기억하여, 상기 제1 정보에 부가된 제1 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와, 타이밍 조정부에 의해 호출된 제1 정보에 기초하여 제2 처리를 실행하는 제2 처리 모듈을 갖는다.A system according to another aspect of the present disclosure includes a first device that repeats a first process, and a second device that communicates with the first device and repeats a second process, the first device performing the first process a first processing module for generating first information, a first addition unit for adding first cycle information to the first information, and a first communication unit for transmitting the first information to a second device, the second device comprising: , In the second communication unit that receives the first information from the first device, and the second processing of the cycle corresponding to the first cycle information added to the first information by storing the first information received by the second communication unit It has a timing adjustment unit that calls the first information, and a second processing module that executes a second process based on the first information called by the timing adjustment unit.

본 개시의 다른 측면에 따른 디바이스는, 제1 처리에 의해 제1 정보를 생성하는 것을 반복하는 제1 처리 모듈과, 제2 처리를 반복하는 제2 디바이스에 있어서, 어느 사이클의 제2 처리에 있어서 제1 정보를 호출할지를 지정하는 제1 사이클 정보를 상기 제1 정보에 부가하는 제1 부가부와, 제1 부가부에 의해 제1 사이클 정보가 부가된 제1 정보를 제2 디바이스에 송신하는 통신부를 구비한다.A device according to another aspect of the present disclosure includes a first processing module that repeats generating first information by first processing, and a second device that repeats second processing, in a second processing of a certain cycle. A first addition unit that adds first cycle information specifying whether to call first information to the first information, and a communication unit that transmits the first information to which the first cycle information is added by the first addition unit to a second device. to provide

본 개시의 다른 측면에 따른 디바이스는, 제1 처리를 반복하는 제1 디바이스가, 제1 처리에 의해 생성하여, 사이클 정보를 부가한 제1 정보를, 제1 디바이스로부터 수신하는 통신부와, 통신부가 수신한 제1 정보를 기억하여, 상기 제1 정보에 부가된 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와, 타이밍 조정부에 의해 호출된 제1 정보에 기초하여, 제2 처리를 실행하는 처리 모듈을 구비한다.A device according to another aspect of the present disclosure includes: a communication unit configured to receive, from the first device, first information generated by a first device repeating a first process and to which cycle information is added, from the first device; a timing adjustment unit that stores the received first information and calls the first information in a second process of a cycle corresponding to the cycle information added to the first information; and based on the first information called by the timing adjustment unit and a processing module that executes the second processing.

본 개시에 따르면, 디바이스 간의 동기 통신의 신뢰성 향상에 유효한 시스템을 제공할 수 있다.According to the present disclosure, it is possible to provide a system effective for improving the reliability of synchronous communication between devices.

도 1은 머신 제어 시스템의 개략 구성을 예시하는 모식도이다.
도 2는 로봇의 구성을 예시하는 모식도이다.
도 3은 컨트롤러 서버의 기능상의 구성을 예시하는 블록도이다.
도 4는 컨트롤러의 기능상의 구성을 예시하는 블록도이다.
도 5는 로컬 컨트롤러의 기능상의 구성을 예시하는 블록도이다.
도 6은 컨트롤러의 변형예를 나타내는 블록도이다.
도 7은 통신 컨트롤러의 기능상의 구성을 예시하는 블록도이다.
도 8은 컨트롤러 서버, 통신 컨트롤러 및 로컬 컨트롤러의 하드웨어 구성을 예시하는 블록도이다.
도 9는 사이클 생성 순서를 예시하는 타이밍 차트이다.
도 10은 컨트롤러에 있어서의 사이클 생성 순서를 예시하는 흐름도이다.
도 11은 로컬 컨트롤러에 있어서의 사이클 생성 순서를 예시하는 흐름도이다.
도 12는 로컬 컨트롤러에 있어서의 사이클 생성 순서의 변형예를 나타내는 흐름도이다.
도 13은 머신 제어 순서를 예시하는 타이밍 차트이다.
도 14는 컨트롤러에 있어서의 제어 순서를 예시하는 흐름도이다.
도 15는 컨트롤러에 있어서의 제어 순서를 예시하는 흐름도이다.
도 16은 컨트롤러에 있어서의 제어 순서를 예시하는 흐름도이다.
도 17은 로컬 컨트롤러에 있어서의 제어 순서를 예시하는 흐름도이다.
도 18은 로컬 컨트롤러에 있어서의 제어 순서를 예시하는 흐름도이다.
도 19는 로컬 컨트롤러에 있어서의 제어 순서를 예시하는 흐름도이다.
도 20은 머신 제어 시스템의 변형예를 나타내는 모식도이다.
도 21은 머신 제어 시스템의 다른 변형예를 나타내는 모식도이다.
1 is a schematic diagram illustrating a schematic configuration of a machine control system.
2 is a schematic diagram illustrating the configuration of a robot.
3 is a block diagram illustrating the functional configuration of a controller server.
4 is a block diagram illustrating the functional configuration of a controller.
5 is a block diagram illustrating the functional configuration of a local controller.
6 is a block diagram showing a modified example of the controller.
7 is a block diagram illustrating a functional configuration of a communication controller.
8 is a block diagram illustrating the hardware configuration of a controller server, a communication controller and a local controller.
9 is a timing chart illustrating a cycle generation sequence.
10 is a flowchart illustrating a cycle generation procedure in the controller.
11 is a flowchart illustrating a cycle generation procedure in the local controller.
12 is a flowchart showing a modified example of the cycle generation procedure in the local controller.
13 is a timing chart illustrating a machine control sequence.
14 is a flowchart illustrating a control procedure in the controller.
15 is a flowchart illustrating a control procedure in the controller.
16 is a flowchart illustrating a control procedure in the controller.
17 is a flowchart illustrating a control procedure in the local controller.
18 is a flowchart illustrating a control procedure in the local controller.
19 is a flowchart illustrating a control procedure in the local controller.
Fig. 20 is a schematic diagram showing a modified example of the machine control system.
Fig. 21 is a schematic diagram showing another modified example of the machine control system.

이하, 실시형태에 대해서, 도면을 참조하면서 상세하게 설명한다. 설명에 있어서, 동일 요소 또는 동일 기능을 갖는 요소에는 동일한 부호를 붙이고, 중복되는 설명을 생략한다.EMBODIMENT OF THE INVENTION Hereinafter, embodiment is described in detail, referring drawings. In the description, the same reference numerals are attached to the same elements or elements having the same functions, and overlapping descriptions are omitted.

본 실시형태에 따른 시스템은, 서로 통신하면서, 각각이 반복해서 처리를 행하는 복수의 디바이스를 구비한다. 디바이스 간의 통신에는, 각 디바이스의 처리 사이클에 대한 동기성이 요구되는 경우가 있다. 이하, 각 디바이스의 처리 사이클에 동기한 통신을 「동기 통신」이라고 한다.The system according to the present embodiment includes a plurality of devices that each repeatedly perform processing while communicating with each other. For communication between devices, there are cases in which synchronism with respect to processing cycles of each device is required. Hereinafter, communication synchronized with the processing cycle of each device is referred to as "synchronous communication".

동기 통신의 신뢰성을 향상시키기 위해, 본 실시형태에 따른 시스템은, 제1 처리를 반복하는 제1 디바이스와, 제1 디바이스와 통신하여, 제2 처리를 반복하는 제2 디바이스를 구비하고, 제1 디바이스는, 제1 처리에 의해 제1 정보를 생성하는 제1 처리 모듈과, 제1 정보에 제1 사이클 정보를 부가하는 제1 부가부와, 제1 정보를 제2 디바이스에 송신하는 제1 통신부를 갖고, 제2 디바이스는, 제1 디바이스로부터 제1 정보를 수신하는 제2 통신부와, 제2 통신부가 수신한 제1 정보를 기억하여, 상기 제1 정보에 부가된 제1 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와, 타이밍 조정부에 의해 호출된 제1 정보에 기초하여 제2 처리를 실행하는 제2 처리 모듈을 갖는다.In order to improve the reliability of synchronous communication, a system according to the present embodiment includes a first device that repeats a first process, and a second device that communicates with the first device and repeats a second process, The device includes a first processing module that generates first information by first processing, a first adding unit that adds first cycle information to the first information, and a first communication unit that transmits the first information to the second device. The second device has a second communication unit that receives the first information from the first device, and stores the first information received by the second communication unit to correspond to the first cycle information added to the first information. It has a timing adjustment unit that calls the first information in the second process of the cycle, and a second processing module that executes the second process based on the first information called by the timing adjustment unit.

제2 디바이스에 있어서의 제1 수신 타이밍의 변동이 커지면, 동기 통신의 유지가 곤란해질 가능성이 있다. 이에 대하여, 상기 시스템에 따르면, 제1 디바이스로부터 송신된 제1 정보가 제2 디바이스로 버퍼링되어, 제1 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 호출된다. 이와 같이, 제1 정보를 그 사용 타이밍까지 버퍼링하는 기능에 의해, 제1 디바이스측으로부터의 제1 정보의 송신을 앞당겨, 제2 디바이스에 있어서의 제1 정보의 수신 타이밍으로부터 상기 제1 정보의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 통신 상황 등에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 제1 정보를 적절한 사용 타이밍에 호출할 수 있다. 이 때문에, 동기 통신의 신뢰성을 향상시킬 수 있다.If the fluctuation of the first reception timing in the second device increases, there is a possibility that maintaining synchronous communication becomes difficult. In contrast, according to the above system, the first information transmitted from the first device is buffered in the second device, and is called in the second processing of the cycle corresponding to the first cycle information. In this way, the function of buffering the first information until its use timing advances the transmission of the first information from the first device side, and uses the first information from the reception timing of the first information in the second device. You can have a margin in the period until the timing. With this margin, it is possible to absorb the fluctuations in reception timing that have been expanded due to communication conditions and the like, and call the buffered first information at an appropriate use timing. For this reason, reliability of synchronous communication can be improved.

제2 처리 모듈은, 제2 처리에 의해 제2 정보를 생성하고, 제2 디바이스는, 제2 정보에 제2 사이클 정보를 부가하는 제2 부가부를 더 갖고, 제2 통신부는, 제2 정보를 제1 디바이스에 송신하고, 제1 통신부는, 제2 정보를 제2 디바이스로부터 수신하고, 제1 디바이스는, 제1 통신부가 수신한 제2 정보를 기억하여, 상기 제2 정보에 부가된 제2 사이클 정보에 대응하는 사이클의 제1 처리에 있어서 상기 제2 정보를 호출하는 제1 타이밍 조정부를 더 갖고, 제1 처리 모듈은, 제1 타이밍 조정부에 의해 호출된 제2 정보에 기초하여 제1 처리를 실행하여도 좋다. 이 경우, 제1 디바이스와 제2 디바이스 간에서의 양 방향의 동기 통신의 신뢰성을 향상시킬 수 있다.The second processing module generates second information by second processing, the second device further has a second adding unit for adding second cycle information to the second information, and the second communication unit generates the second information. transmits to the first device, the first communication unit receives the second information from the second device, the first device stores the second information received by the first communication unit, and the second information added to the second information It further has a first timing adjustment unit that calls the second information in a first process of a cycle corresponding to the cycle information, wherein the first processing module performs the first processing based on the second information called by the first timing adjustment unit. You may also run In this case, reliability of bi-directional synchronous communication between the first device and the second device can be improved.

제1 디바이스 및 제2 디바이스는, 현실 공간상에 실장된 디바이스여도 좋고, 가상 공간상에 실장된 디바이스여도 좋다. 현실 공간이란, 현실의 물체가 존재하는 공간이다. 가상 공간은, 현실 공간을 모의하도록 데이터에 의해 표시된 공간이다. 디바이스를 가상 공간상에 실장한다는 것은, 가상 공간을 구성하는 장치에 대하여, 디바이스의 기능을 가상 공간에 있어서 모의하는 프로그램을 부가하는 것을 의미한다.The first device and the second device may be devices mounted on a real space or devices mounted on a virtual space. A real space is a space in which real objects exist. A virtual space is a space represented by data to simulate a real space. Mounting a device on a virtual space means adding a program that simulates the function of the device in the virtual space to an apparatus constituting the virtual space.

제1 디바이스 및 제2 디바이스의 구체예로서는, 현실 공간 상에 실장된 컨트롤러, 머신, 센서, 모터, 및 서보 드라이버 등을 들 수 있다. 제1 디바이스 및 제2 디바이스는, 가상 공간상에 실장된 컨트롤러, 머신, 센서, 모터, 및 서보 드라이버 등이어도 좋다.Specific examples of the first device and the second device include controllers, machines, sensors, motors, and servo drivers mounted on real space. The first device and the second device may be a controller, machine, sensor, motor, servo driver, or the like mounted on a virtual space.

제1 디바이스와 제2 디바이스 간의 통신은, 적어도 일부에 무선 통신을 포함하고 있어도 좋다. 제1 디바이스와 제2 디바이스 간의 통신이 무선 통신을 포함하는 경우, 전술한 수신 타이밍의 변동을 흡수하는 효과가 보다 유효하다.Communication between the first device and the second device may include wireless communication at least in part. When the communication between the first device and the second device includes wireless communication, the above-described effect of absorbing the variation in reception timing is more effective.

이하, 본 실시형태의 일례로서, 제1 디바이스가, 가상 공간상에 실장된 컨트롤러이고, 제2 디바이스가 현실 공간상에 실장된 머신이고, 컨트롤러와 머신 간의 통신이, 일부에 무선 통신을 포함하는 머신 제어 시스템을 구체적으로 예시한다.Hereinafter, as an example of this embodiment, the first device is a controller mounted on a virtual space, the second device is a machine mounted on a real space, and communication between the controller and the machine partially includes wireless communication. The machine control system is specifically exemplified.

〔머신 제어 시스템〕[Machine control system]

도 1에 나타내는 머신 제어 시스템(1)은, 적어도 1대의 컨트롤러 서버(2)로부터 무선 통신 네트워크를 통해 송신되는 연산 결과에 기초하여, 복수의 머신(4)을 제어하는 시스템이다. 머신 제어 시스템(1)의 일례로서는, 복수의 머신(4)의 협조 모션에 의해, 워크를 생산하는 생산 시스템을 들 수 있다. 도 1에 나타내는 바와 같이, 머신 제어 시스템(1)은, 적어도 1대의 컨트롤러 서버(2)와, 통신 서버(3)와, 복수의 머신(4)을 구비한다.The machine control system 1 shown in FIG. 1 is a system that controls a plurality of machines 4 based on calculation results transmitted from at least one controller server 2 via a wireless communication network. As an example of the machine control system 1, a production system that produces a work by cooperative motion of a plurality of machines 4 is exemplified. As shown in FIG. 1 , the machine control system 1 includes at least one controller server 2 , a communication server 3 , and a plurality of machines 4 .

컨트롤러 서버(2)는, 컨트롤 사이클로 소정의 연산을 실행한다. 컨트롤러 서버(2)는, 복수의 컨트롤러(100)를 갖는다(도 3 참조). 복수의 컨트롤러(100)는, 컨트롤러 서버(2)에 있어서 가상 공간상에 실장되어, 복수의 머신(4)을 각각 제어한다. 하나의 컨트롤러(100)는, 적어도 1대의 머신(4)에 대응한다. 하나의 컨트롤러(100)가 복수의 머신(4)에 대응하고 있어도 좋고, 복수의 컨트롤러(100)가 1대의 머신(4)에 대응하고 있어도 좋다. 가상 공간상에 실장한다는 것은, 소프트웨어에 의해, 컨트롤러(100)로서의 기능을 컨트롤러 서버(2) 등의 연산 장치에 부가하는 것을 의미한다. 컨트롤러(100)로서의 기능은, 머신(4)으로부터의 정보의 취득과, 취득한 정보에 기초한 머신 지령의 생성과, 생성한 머신 지령의 머신(4)에의 출력을 포함한다. 복수의 컨트롤러(100)는, 복수의 컨트롤러 서버(2)에 분배되어 있어도 좋다. 이에 의해, 1대의 컨트롤러 서버(2)의 연산 부담이 경감된다.The controller server 2 executes predetermined calculations in a control cycle. The controller server 2 has a plurality of controllers 100 (see Fig. 3). A plurality of controllers 100 are mounted on a virtual space in the controller server 2 and control the plurality of machines 4, respectively. One controller 100 corresponds to at least one machine 4 . One controller 100 may correspond to a plurality of machines 4, or a plurality of controllers 100 may correspond to one machine 4. Mounting on virtual space means adding a function as the controller 100 to an arithmetic device such as the controller server 2 by means of software. Functions as the controller 100 include obtaining information from the machine 4, generating machine commands based on the acquired information, and outputting the generated machine commands to the machine 4. The plurality of controllers 100 may be distributed among the plurality of controller servers 2 . Thereby, the calculation load of one controller server 2 is reduced.

통신 서버(3)는, 컨트롤러 서버(2)와 유선 통신 네트워크(8)를 통해 통신하며, 복수의 머신(4)과 무선 통신 네트워크(7)를 통해 통신하여, 컨트롤러 서버(2)와 복수의 머신(4) 사이에서 정보를 중계한다. 유선 통신 네트워크(8)의 구체예로서는, 이더넷(등록 상표) 등의 로컬 에어리어 네트워크를 들 수 있다. 무선 통신 네트워크(7)의 구체예로서는, 제5 세대 이동 통신 시스템(5G) 등의 고속 무선 통신 네트워크를 들 수 있다. 통신 서버(3)는, 컨트롤러 서버(2)로부터 떨어진 장소에 마련되어 있어도 좋고, 컨트롤러 서버(2)에 근접한 장소에 마련되어고 있어도 좋고, 컨트롤러 서버(2)와 동일한 케이스 내에 마련되어 있어도 좋다.The communication server 3 communicates with the controller server 2 through a wired communication network 8, communicates with a plurality of machines 4 through a wireless communication network 7, and communicates with the controller server 2 and a plurality of It relays information between machines 4. A specific example of the wired communication network 8 is a local area network such as Ethernet (registered trademark). As a specific example of the wireless communication network 7, a high-speed wireless communication network such as a fifth generation mobile communication system (5G) can be given. The communication server 3 may be provided in a place away from the controller server 2, may be provided in a place close to the controller server 2, or may be provided in the same case as the controller server 2.

통신 서버(3)는, 통신 컨트롤러(200)와, 무선 통신 기지국(201)을 갖는다. 통신 컨트롤러(200)는, 컨트롤러 서버(2)와 유선 통신 네트워크(8)를 통해 통신하며, 복수의 머신(4)과 무선 통신 기지국(201)을 통해 통신한다. 무선 통신 기지국(201)은, 복수의 머신(4)의 무선 통신 단말(301)(후술)과 무선 통신 네트워크(7)를 통해 통신한다.The communication server 3 has a communication controller 200 and a wireless communication base station 201 . The communication controller 200 communicates with the controller server 2 through a wired communication network 8 and communicates with a plurality of machines 4 through a wireless communication base station 201 . The wireless communication base station 201 communicates with the wireless communication terminals 301 (described later) of the plurality of machines 4 via the wireless communication network 7 .

복수의 머신(4)은, 현실 공간상에 구성되어, 각각 컨트롤러 서버(2)의 연산 결과에 따라 모션을 실현한다. 예컨대 복수의 머신(4)은, 각각 상기 머신 지령에 따라 모션을 실현한다. 모션을 실현한다는 것은, 현실 공간에서 적어도 하나의 물체를 변위시키는 것을 의미한다. 변위란, 이동과, 자세 변경을 포함한다. 또한, 변위는, 케이스 내 등, 외부로부터 시인할 수 없는 공간 내에서의 변위를 포함한다.A plurality of machines 4 are configured on a real space, and each realizes a motion according to the calculation result of the controller server 2. For example, a plurality of machines 4 each realize motion according to the machine command. To realize motion means to displace at least one object in real space. Displacement includes movement and posture change. Further, displacement includes displacement within a space that cannot be visually recognized from the outside, such as within a case.

복수의 머신(4)의 각각은, 머신 본체(10)와, 로컬 컨트롤러(300)와, 무선 통신 단말(301)을 갖는다. 머신 본체(10)는, 모션을 실현하는 기기이다. 컨트롤러 서버(2)의 연산 결과에 기초하여 모션을 실현하는 기기인 한, 머신 본체(10)는 어떠한 기기여도 좋다. 도 1에 있어서는, 머신 본체(10)의 구체예로서, 이동 로봇(20)과, 정치 로봇(30)과, NC 공작 기계(60)와, 환경 센서(70)와, 컨베이어(80)를 나타내고 있다. 이동 로봇(20)은, 자립 주행 가능한 로봇이며, 무인 반송차(21)와, 로봇(22)을 갖는다. 무인 반송차(21)는, 머신 지령이 포함하는 이동 지령에 따라 자율 주행한다. 무인 반송차(21)의 구체예로서는, 전동식의 소위 AGV(Automated Guided Vehicle)를 들 수 있다. 로봇(22)은, 머신 지령이 포함하는 작업 지령에 따라 워크에 대한 작업을 실행한다.Each of the plurality of machines 4 has a machine body 10, a local controller 300, and a wireless communication terminal 301. The machine body 10 is a device that realizes motion. Any device may be used as the machine body 10, as long as it is a device that realizes motion based on the calculation result of the controller server 2. 1 shows a mobile robot 20, a stationary robot 30, an NC machine tool 60, an environmental sensor 70, and a conveyor 80 as specific examples of the machine body 10. there is. The mobile robot 20 is a robot capable of traveling independently, and includes an automatic guided vehicle 21 and a robot 22 . The automatic guided vehicle 21 travels autonomously according to the movement command included in the machine command. As a specific example of the automatic guided vehicle 21, an electric so-called AGV (Automated Guided Vehicle) can be cited. The robot 22 executes the work for the work according to the work command included in the machine command.

예컨대 로봇(22)은, 6축의 수직 다관절 로봇이며, 도 2에 나타내는 바와 같이, 베이스부(31)와, 선회부(32)와, 제1 아암(33)과, 제2 아암(34)과, 제3 아암(35)과, 선단부(36)와, 액츄에이터(41, 42, 43, 44, 45, 46)를 갖는다. 베이스부(31)는, 무인 반송차(21) 상에 고정되어 있다. 선회부(32)는, 연직인 축선(51) 둘레로 선회하도록 베이스부(31) 상에 마련되어 있다. 제1 아암(33)은, 축선(51)에 교차(예컨대 직교)하는 축선(52) 둘레로 요동하도록 선회부(32)에 접속되어 있다. 교차는, 소위 입체 교차와 같이 비틀림의 관계에 있는 경우도 포함한다. 제2 아암(34)은, 축선(52)에 실질적으로 평행인 축선(53) 둘레로 요동하도록 제1 아암(33)의 선단부에 접속되어 있다. 제3 아암(35)은, 제2 아암(34)을 따른 축선(54) 둘레로 선회하며, 축선(54)에 교차(예컨대 직교)하는 축선(55) 둘레로 요동하도록, 제2 아암(34)의 선단부에 접속되어 있다. 선단부(36)는, 축선(55)에 교차(예컨대 직교)하는 축선(56) 둘레로 선회하도록 제3 아암(35)의 선단부에 접속되어 있다. 선단부(36)에는, 흡착 노즐, 로봇 핸드, 또는 가공 툴 등, 용도에 따라 여러 가지 툴이 마련된다.For example, the robot 22 is a 6-axis vertical articulated robot, and as shown in FIG. 2 , the base part 31, the turning part 32, the first arm 33, and the second arm 34 and, a third arm 35, a distal end portion 36, and actuators 41, 42, 43, 44, 45, and 46. The base portion 31 is fixed on the automatic guided vehicle 21 . The turning portion 32 is provided on the base portion 31 so as to turn around the vertical axis line 51 . The first arm 33 is connected to the pivot portion 32 so as to swing around an axis line 52 intersecting (for example, orthogonal to) the axis line 51 . Crossing also includes a case where there is a torsional relationship, such as a so-called three-dimensional cross. The second arm 34 is connected to the distal end of the first arm 33 so as to swing around an axis line 53 substantially parallel to the axis line 52 . The third arm 35 pivots about an axis 54 along the second arm 34 and swings about an axis 55 intersecting (eg orthogonal to) the axis 54 . ) is connected to the tip of the The distal end portion 36 is connected to the distal end portion of the third arm 35 so as to pivot around an axis line 56 intersecting (for example, orthogonally crossing) the axis line 55 . Various tools, such as suction nozzles, robot hands, or processing tools, are provided on the front end portion 36 depending on the application.

액츄에이터(41, 42, 43, 44, 45, 46)는, 예컨대 전동 모터 및 감속기를 포함하여, 로봇(22)을 구동한다. 예컨대 액츄에이터(41)는 축선(51) 둘레로 선회부(32)를 선회시키고, 액츄에이터(42)는 축선(52) 둘레로 제1 아암(33)을 요동시키고, 액츄에이터(43)는 축선(53) 둘레로 제2 아암(34)을 요동시키고, 액츄에이터(44)는 축선(54) 둘레로 제3 아암(35)을 선회시키고, 액츄에이터(45)는 축선(55) 둘레로 제3 아암(35)을 요동시키고, 액츄에이터(46)는 축선(56) 둘레로 선단부(36)를 선회시킨다.Actuators 41 , 42 , 43 , 44 , 45 , and 46 , including, for example, electric motors and speed reducers, drive the robot 22 . For example, the actuator 41 pivots the pivot 32 around the axis 51, the actuator 42 swings the first arm 33 around the axis 52, and the actuator 43 rotates the axis 53 ) swings the second arm 34 around the axis 54, the actuator 44 pivots the third arm 35 around the axis 54, and the actuator 45 pivots the third arm 35 around the axis 55 ) and the actuator 46 pivots the tip 36 around the axis 56 .

또한, 로봇(22)의 구체적인 구성은 적절하게 변경 가능하다. 예컨대 로봇(22)은, 상기 6축의 수직 다관절 로봇에 1축의 관절을 더 추가한 7축의 용장형 로봇이어도 좋고, 소위 스칼라형의 다관절 로봇이어도 좋다. 또한, 로봇(22)은 소위 패러렐 링크형의 로봇이어도 좋다.In addition, the specific structure of the robot 22 can be changed suitably. For example, the robot 22 may be a 7-axis redundant type robot in which one axis joint is added to the above 6-axis vertical articulated robot, or may be a so-called scalar type articulated robot. Also, the robot 22 may be a so-called parallel link type robot.

도 1로 되돌아가서, 정치 로봇(30)은, 작업 에어리어의 마루면 등에 정치된다. 정치 로봇(30)의 구체예로서는, 로봇(22)과 마찬가지로, 수직 다관절 로봇, 스칼라형의 다관절 로봇, 패러렐 링크형의 로봇 등을 들 수 있다. NC 공작 기계(60)는, 머신 지령이 포함하는 가공 지령에 따라, 절삭 가공 등의 기계 가공을 워크에 실시한다. 환경 센서(70)는, 머신 지령이 포함하는 센싱 지령에 따라, 시스템의 환경 정보를 취득한다. 환경 센서(70)의 구체예로서는, 시스템의 환경 화상을 취득하는 카메라, 시스템의 환경 온도를 취득하는 온도 센서 등을 들 수 있다. 컨베이어(80)는, 머신 지령이 포함하는 반송 지령에 따라, 워크를 반송한다. 컨베이어(80)의 구체예로서는, 벨트 컨베이어, 롤러 컨베이어 등을 들 수 있다.Returning to Fig. 1, the stationary robot 30 is stationary on a floor surface or the like of a work area. As a specific example of the stationary robot 30, like the robot 22, a vertical articulated robot, a scalar type articulated robot, a parallel link type robot, etc. are mentioned. The NC machine tool 60 performs machining such as cutting on a workpiece according to a machining command included in the machine command. The environment sensor 70 acquires the environment information of the system according to the sensing command included in the machine command. As a specific example of the environment sensor 70, a camera which acquires the environment image of a system, a temperature sensor which acquires the environment temperature of a system, etc. are mentioned. The conveyor 80 conveys the work according to the conveyance command included in the machine command. As a specific example of the conveyor 80, a belt conveyor, a roller conveyor, etc. are mentioned.

로컬 컨트롤러(300)는, 통신 서버(3)와 무선 통신 단말(301)을 통해 통신하며, 무선 통신 단말(301)을 통해 통신 서버(3)로부터 취득한 머신 지령에 따라 머신 본체(10)에 모션을 실현시킨다. 또한, 로컬 컨트롤러(300)는, 머신 본체(10)로부터 취득한 응답 정보를, 무선 통신 단말(301)을 통해 통신 서버(3)에 피드백한다. 무선 통신 단말(301)은, 로컬 컨트롤러(300)로부터의 지령에 따라, 무선 통신 기지국(201)과 무선 통신 네트워크(7)를 통해 통신한다.The local controller 300 communicates with the communication server 3 through a wireless communication terminal 301, and motions the machine body 10 according to machine commands obtained from the communication server 3 through the wireless communication terminal 301. make it come true Further, the local controller 300 feeds back the response information obtained from the machine body 10 to the communication server 3 via the wireless communication terminal 301 . The radio communication terminal 301 communicates with the radio communication base station 201 via the radio communication network 7 according to a command from the local controller 300 .

제5 세대 이동 통신 시스템(5G)의 실용화 등에 의해, 고속 무선 통신이 가능해졌기 때문, 무선 통신을 통한 머신 제어의 실현 가능성도 높아지고 있다. 머신 제어에 있어서는, 모션 프로그램의 실행에 의한 머신 지령의 생성과, 머신 지령에 따른 머신(4)의 제어를 소정의 컨트롤 사이클로 반복할 필요가 있다. 전술한 바와 같이 머신 지령이 무선 통신 네트워크(7)를 통해 송수신되는 경우, 무선 통신에 기인하여, 머신(4)측에서의 머신 지령의 수신 타이밍의 변동이 확대되어, 머신(4)측에서 머신 지령을 컨트롤 사이클로 수신하는 것이 곤란해질 가능성이 있다. 또한, 응답 정보가 무선 통신 네트워크(7)를 통해 송수신되는 경우, 무선 통신에 기인하여, 컨트롤러(100)측에서의 응답 정보의 수신 타이밍의 변동이 확대되어, 컨트롤러(100)측에서 응답 정보를 컨트롤 사이클로 수신하는 것이 곤란해질 가능성이 있다.Since high-speed wireless communication has become possible due to practical use of the fifth generation mobile communication system (5G), the realization possibility of machine control through wireless communication is also increasing. In machine control, it is necessary to repeat generation of machine commands by executing a motion program and control of the machine 4 in accordance with the machine commands in a predetermined control cycle. As described above, when machine commands are transmitted and received via the wireless communication network 7, fluctuations in the reception timing of machine commands on the machine 4 side are magnified due to the wireless communication, so that the machine 4 side receives the machine commands. There is a possibility that reception in the control cycle becomes difficult. Further, when response information is transmitted and received via the wireless communication network 7, fluctuations in the reception timing of the response information on the controller 100 side are magnified due to wireless communication, and response information is transmitted from the controller 100 side to the control cycle. Reception may be difficult.

이에 대하여, 머신 제어 시스템(1)은, 컨트롤러측(무선 통신 네트워크(7)의 컨트롤러(100)측)으로부터 무선 통신 네트워크(7)를 통해 송신된 머신 지령을, 그 사용 타이밍까지 머신측(무선 통신 네트워크(7)의 머신(4)측)에서 버퍼링하도록 구성되어 있어도 좋다. 이 경우, 컨트롤러측으로부터의 머신 지령의 송신을 앞당겨, 머신측에서의 머신 지령의 수신 타이밍부터 상기 머신 지령의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 무선 통신에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 머신 지령을 컨트롤 사이클에 동기한 타이밍에 사용할 수 있다.In contrast, the machine control system 1 transmits machine commands transmitted from the controller side (the controller 100 side of the wireless communication network 7) via the wireless communication network 7 until the timing of use, on the machine side (wireless communication network 7). It may be configured so as to perform buffering on the machine 4 side of the communication network 7). In this case, transmission of the machine command from the controller side can be advanced so that a margin is provided in the period from the timing of receiving the machine command on the machine side to the timing of using the machine command. With this margin, it is possible to absorb fluctuations in reception timing that have been expanded due to wireless communication, and to use buffered machine commands at timing synchronized with the control cycle.

또한, 머신 제어 시스템(1)은, 머신측으로부터 무선 통신 네트워크(7)를 통해 송신된 응답 정보를, 그 사용 타이밍까지 컨트롤러측에서 버퍼링하도록 구성되어 있어도 좋다. 이 경우, 머신측으로부터의 응답 정보의 송신을 앞당겨, 컨트롤러측에서의 응답 정보의 수신 타이밍으로부터 상기 응답 정보의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 무선 통신에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 응답 정보를 컨트롤 사이클에 동기한 타이밍에 사용할 수 있다.Further, the machine control system 1 may be configured so that the controller side buffers response information transmitted from the machine side through the wireless communication network 7 until the timing of its use. In this case, it is possible to advance the transmission of response information from the machine side so that the period from the timing of receiving the response information on the controller side to the timing of using the response information can be provided with margin. With this margin, it is possible to absorb the fluctuations in reception timing that have been expanded due to wireless communication, and to use the buffered response information at timing synchronized with the control cycle.

이상과 같이, 머신 지령을 그 사용 타이밍까지 머신측에서 버퍼링하고, 응답 정보를 그 사용 타이밍까지 컨트롤러측에서 버퍼링하는 구성에 따르면, 응답 정보의 취득과, 응답 정보에 기초한 모션 프로그램의 실행에 의한 머신 지령의 생성과, 머신 지령에 따른 머신(4)의 제어를 컨트롤 사이클로 반복하는 것이 가능해진다.As described above, according to the configuration in which machine instructions are buffered on the machine side until the use timing and response information is buffered on the controller side until the use timing, the machine by acquiring response information and executing a motion program based on the response information. It becomes possible to repeat generation of the command and control of the machine 4 according to the machine command in a control cycle.

이하, 컨트롤러(100)와, 통신 컨트롤러(200)와, 로컬 컨트롤러(300)의 구성을 보다 상세하게 예시한다.Hereinafter, configurations of the controller 100, the communication controller 200, and the local controller 300 will be exemplified in more detail.

(컨트롤러)(controller)

컨트롤러(100)는, 대응하는 머신(4)(이하, 「관할 머신(4)」이라고 함)이 송신한 응답 정보를, 유선 통신 네트워크(8)를 통해 통신 서버(3)로부터 수신하는 것과, 수신한 응답 정보에 기초하여 모션 프로그램을 실행하여, 관할 머신(4)에 대한 머신 지령을 생성하는 것과, 머신 지령을, 유선 통신 네트워크(8)를 통해 통신 서버(3)에 송신하는 것을 실행하도록 구성되어 있다.The controller 100 receives response information transmitted by the corresponding machine 4 (hereinafter referred to as "supervised machine 4") from the communication server 3 via the wired communication network 8; Execute a motion program based on the received response information to generate machine instructions for the managed machine 4 and transmit the machine instructions to the communication server 3 via the wired communication network 8. Consists of.

예컨대 도 4에 나타내는 바와 같이, 컨트롤러(100)는, 기능상의 구성(이하, 「기능 블록」이라고 함)으로서, 프로그램 기억부(111)와, 수신 정보 기억부(112)와, 모션 모듈(113)과, 동기 통신부(114)와, 비동기 통신부(115)를 갖는다.For example, as shown in FIG. 4 , the controller 100 includes a program storage unit 111, a reception information storage unit 112, and a motion module 113 as a functional configuration (hereinafter referred to as “functional block”). ), a synchronous communication unit 114, and an asynchronous communication unit 115.

프로그램 기억부(111)는, 모션 프로그램을 기억한다. 모션 프로그램은, 시계열의 복수의 모션 지령을 포함한다. 모션 지령은, 예컨대 목표 위치·자세에의 변위 명령이다. 동작 명령은, 목표 위치·자세에의 도달 시각의 지정을 포함하고 있어도 좋고, 목표 위치·자세에의 변위 속도의 지정을 포함하고 있어도 좋다. 모션 지령은, 목표 속도로의 변위 명령이어도 좋다. 이 경우, 모션 지령은, 목표 속도로의 변위 기간의 지정을 포함하여도 좋다.The program storage unit 111 stores motion programs. A motion program includes a plurality of motion commands in time series. The motion command is, for example, a displacement command to a target position/posture. The operation command may include designation of arrival time to the target position/posture, or may include designation of displacement speed to the target position/posture. The motion command may be a displacement command to a target speed. In this case, the motion command may include designation of a displacement period to the target speed.

수신 정보 기억부(112)는, 통신 서버(3)의 통신 컨트롤러(200)로부터의 수신 정보를 기억한다. 수신 정보는, 상기 응답 정보를 포함한다.The reception information storage unit 112 stores reception information from the communication controller 200 of the communication server 3 . The reception information includes the response information.

모션 모듈(113)은, 컨트롤 사이클로 모션 프로그램을 실행하여, 관할 머신(4)에 대한 머신 지령을 생성한다. 예컨대 모션 모듈(113)은, 모션 프로그램을 실행하여, 관할 머신(4)에 대한 머신 지령을 생성하는 것을 컨트롤 사이클로 반복해서 실행한다. 모션 프로그램을 실행하는 것은, 관할 머신(4)의 모션을 모션 지령에 추종시키도록 머신 지령을 산출하는 것을 포함한다. 모션 모듈(113)은, 수신 정보 기억부(112)가 기억하는 응답 정보에 기초하여 모션 프로그램을 실행하여도 좋다. 예컨대 모션 모듈(113)은, 수신 정보 기억부(112)가 기억하는 응답 정보에 기초한 관할 머신(4)의 모션 실적을 산출하여, 모션 실적을 모션 지령에 추종시키도록 머신 지령을 산출한다. 머신 지령의 구체예로서는, 속도 지령 또는 구동력 지령(토크 지령을 포함함) 등을 들 수 있다.The motion module 113 executes a motion program with a control cycle to generate machine instructions for the machine 4 under its jurisdiction. For example, the motion module 113 executes a motion program to generate machine commands for the managed machine 4 repeatedly in a control cycle. Executing the motion program includes calculating machine commands to cause the motion of the governing machine 4 to follow the motion commands. The motion module 113 may execute a motion program based on the response information stored in the reception information storage unit 112. For example, the motion module 113 calculates the motion result of the competent machine 4 based on the response information stored in the reception information storage unit 112, and calculates a machine command so that the motion result follows the motion command. Specific examples of machine commands include speed commands and driving force commands (including torque commands).

동기 통신부(114)는, 유선 통신 네트워크(8)를 통해, 머신 지령을 통신 컨트롤러(200)에 송신한다. 「동기 통신」은, 컨트롤 사이클에 동기한 정주기 통신을 의미한다. 동기 통신은, 컨트롤 사이클마다 실행하는 통신 및 소정수의 컨트롤 사이클마다 실행하는 통신을 포함한다. 후술하는 바와 같이, 동기 통신부(114)가 송신한 머신 지령은 관할 머신(4)의 로컬 컨트롤러(300)(이하, 「관할 로컬 컨트롤러(300)」라고 함)에 있어서 버퍼링되어, 컨트롤 사이클에 동기한 타이밍에 호출된다. 이 때문에, 동기 통신부(114)에 의한 머신 지령의 송신 자체는, 컨트롤 사이클에 동기하지 않아도 좋다.The synchronous communication unit 114 transmits machine commands to the communication controller 200 via the wired communication network 8 . "Synchronous communication" means periodic communication synchronized with the control cycle. Synchronous communication includes communication executed every control cycle and communication executed every predetermined number of control cycles. As will be described later, the machine commands transmitted by the synchronization communication unit 114 are buffered in the local controller 300 of the managed machine 4 (hereinafter referred to as “supervised local controller 300”) and synchronized with the control cycle. called at one time. For this reason, transmission of the machine command itself by the synchronous communication unit 114 does not have to be synchronized with the control cycle.

비동기 통신부(115)는, 다른 노드에 대한 비동기 통신 데이터를, 통신 컨트롤러(200)를 경유하지 않고 유선 통신 네트워크(8)를 통해 다른 노드에 송신한다. 「비동기 통신」은, 컨트롤 사이클과의 동기가 필수적이지 않은 통신을 의미하지만, 컨트롤 사이클에 동기하고 있어도 좋다. 다른 노드는, 다른 컨트롤러(100)여도 좋고, 복수의 컨트롤러(100)와는 별도의 노드여도 좋다. 별도의 노드의 구체예로서는, 애플리케이션 서버(6)를 들 수 있다(도 1 참조). 애플리케이션 서버(6)는, 유선 통신 네트워크(8)를 통해 컨트롤러 서버(2)에 접속된 컴퓨터이다. 애플리케이션 서버(6)는, 컨트롤러 서버(2)에 포함되고 있어도 좋고, 통신 서버(3)에 포함되어 있어도 좋다.The asynchronous communication unit 115 transmits asynchronous communication data for other nodes to other nodes through the wired communication network 8 without passing through the communication controller 200 . "Asynchronous communication" means communication in which synchronization with the control cycle is not essential, but may be synchronized with the control cycle. The other node may be another controller 100 or a node separate from the plurality of controllers 100 . As a specific example of the separate node, the application server 6 is mentioned (see FIG. 1). The application server 6 is a computer connected to the controller server 2 via a wired communication network 8 . The application server 6 may be included in the controller server 2 or may be included in the communication server 3 .

애플리케이션 서버(6)는, 머신 지령, 응답 정보 등의 제어 정보를 복수의 컨트롤러(100)로부터 수집하여, 축적하는 데이터 수집 애플리케이션을 갖는다. 애플리케이션 서버(6)는, 데이터 수집 애플리케이션이 축적한 제어 정보에 기초하여, 복수의 머신(4)의 모션을 가상 공간상에서 시뮬레이션하는 시뮬레이터 애플리케이션을 더 가져도 좋다. 애플리케이션 서버(6)는, 데이터 수집 애플리케이션이 축적한 제어 정보에 기초한 기계 학습에 의해, 학습 완료 모델을 생성하는 학습 애플리케이션을 더 가져도 좋다. 학습 완료 모델의 구체예로서는, 제어 정보의 입력에 따라 머신(4)의 정상도를 출력하는 진단 모델 등을 들 수 있다. 애플리케이션 서버(6)는, 제어 정보와 학습 완료 모델에 기초하여, 상기 정상도 등의 출력 정보를 생성하고, 출력 정보를 컨트롤러(100)에 송신하는 분석 애플리케이션을 더 가져도 좋다. 비동기 통신부(115)는, 시뮬레이터 애플리케이션, 학습 애플리케이션, 분석 애플리케이션 등의 실행 결과를, 통신 컨트롤러(200)를 경유하지 않고 유선 통신 네트워크(8)를 통해 애플리케이션 서버(6)로부터 취득하여도 좋다.The application server 6 has a data collection application that collects and accumulates control information such as machine commands and response information from a plurality of controllers 100 . The application server 6 may further have a simulator application that simulates motions of the plurality of machines 4 on a virtual space based on the control information accumulated by the data collection application. The application server 6 may further have a learning application that generates a learned model by machine learning based on control information accumulated by the data collection application. A specific example of the learned model is a diagnostic model that outputs the degree of normality of the machine 4 according to input of control information, and the like. The application server 6 may further have an analysis application that generates output information such as the normality level and transmits the output information to the controller 100 based on the control information and the learned model. The asynchronous communication unit 115 may acquire execution results of simulator applications, learning applications, analysis applications, and the like from the application server 6 through the wired communication network 8 without going through the communication controller 200 .

컨트롤러(100)는, 응답 정보를, 그 사용 타이밍까지 버퍼링하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 컨트롤러측 타이밍 조정부(116)를 더 갖는다. 컨트롤러측 타이밍 조정부(116)는, 관할 머신(4)으로부터 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다. 제2 사이클 정보는, 응답 정보의 사용 타이밍(예컨대, 상기 응답 정보를 사용할 때의 컨트롤 사이클수. 이하, 「사용시 사이클수」라고 함)을 나타내는 정보이다. 제2 사이클 정보는, 사용시 사이클수 자체여도 좋고, 응답 정보가 취득된 타이밍에 있어서의 관할 로컬 컨트롤러(300)의 컨트롤 사이클수(이하, 「취득시 사이클수」라고 함)여도 좋다.The controller 100 may be configured to buffer the response information until the timing of its use. For example, the controller 100 further includes a controller-side timing adjustment unit 116 . The controller-side timing adjusting unit 116 stores the response information received from the competent machine 4 and calls the response information in a control cycle corresponding to the second cycle information added to the response information. The second cycle information is information indicating the use timing of the response information (e.g., the number of control cycles when the response information is used; hereinafter referred to as "the number of cycles in use"). The second cycle information may be the number of cycles in use itself or the number of control cycles of the local controller 300 having jurisdiction at the timing at which the response information was obtained (hereinafter referred to as "number of cycles in acquisition").

제2 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(116)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다. 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것은, 상기 컨트롤 사이클에 있어서 사용 가능한 타이밍에 상기 응답 정보를 호출하는 것을 의미한다. 이 때문에, 상기 컨트롤 사이클에 있어서 사용되도록, 상기 컨트롤 사이클에 앞서 상기 응답 정보를 호출하는 것도, 상기 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것에 포함된다. 제2 사이클 정보가 상기 취득시 사이클수인 경우, 컨트롤러측 타이밍 조정부(116)는, 제2 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하여, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다.When the second cycle information is the number of cycles in use, the controller-side timing adjusting unit 116 calls the response information in a control cycle in which the number of control cycles is the number of cycles in use. Recalling the response information in a control cycle in which the number of control cycles is the number of cycles in use means calling the response information at a usable timing in the control cycle. For this reason, calling the response information prior to the control cycle so that it is used in the control cycle is included in calling the response information in the control cycle. When the second cycle information is the number of cycles at the time of acquisition, the controller-side timing adjusting unit 116 calculates the number of cycles in use based on the second cycle information (eg by adding a predetermined number), In the number of control cycles, the response information is called.

컨트롤러측 타이밍 조정부(116)는, 호출한 응답 정보를 동기 통신부(114)에 출력하고, 동기 통신부(114)는 상기 응답 정보를 수신 정보 기억부(112)에 저장한다. 이에 의해, 컨트롤러(100)의 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(116)가 호출한 응답 정보에 기초하여, 모션 프로그램을 실행하게 된다.The controller-side timing adjustment unit 116 outputs the called response information to the synchronous communication unit 114, and the synchronous communication unit 114 stores the response information in the reception information storage unit 112. Accordingly, the motion module 113 of the controller 100 executes a motion program based on the response information called by the controller-side timing adjusting unit 116.

컨트롤러(100)는, 상기 컨트롤 사이클을 생성하는 것과, 상기 컨트롤 사이클의 사이클 타이밍을 관할 머신(4)에 송신하는 것을 더 실행하도록 구성되어 있어도 좋다. 후술하는 바와 같이, 사이클 타이밍은, 컨트롤 사이클에 동기한 컨트롤 사이클을 관할 머신(4)에 있어서 생성하는 데 이용된다. 예컨대 컨트롤러(100)는, 컨트롤러측 시각 생성부(121)와, 컨트롤러측 사이클 생성부(122)와, 타이밍 송신부(123)와, 사이클 카운터(124)를 더 가져도 좋다.The controller 100 may be configured to further execute generating the control cycle and transmitting the cycle timing of the control cycle to the managing machine 4 . As will be described later, the cycle timing is used to generate a control cycle synchronized with the control cycle in the governing machine 4. For example, the controller 100 may further include a controller-side time generator 121, a controller-side cycle generator 122, a timing transmission unit 123, and a cycle counter 124.

컨트롤러측 시각 생성부(121)는, 시각 서버(5)가 생성한 시각(이하, 「글로벌 시각」이라고 함)에 동기하여, 컨트롤러측 시각을 생성한다. 시각 서버(5)는, 유선 통신 네트워크(8)를 통해 컨트롤러 서버(2)에 접속된 컴퓨터이며, 글로벌 시각을 출력한다. 시각 서버(5)는, 컨트롤러 서버(2)에 포함되어 있어도 좋고, 통신 서버(3)에 포함되어 있어도 좋다. 예컨대 컨트롤러측 시각 생성부(121)는, 유선 통신 네트워크(8)를 통한 TSN(Time Sensitive Networking) 통신 등, 시각 동기성을 보증하는 통신에 의해 동기 통신부(114)가 시각 서버(5)로부터 수신한 글로벌 시각을 취득하고, 취득한 글로벌 시각에 동기하여 컨트롤러측 시각을 생성한다. 예컨대 컨트롤러측 시각 생성부(121)는, 타이머(195)(후술)가 카운트하는 시각을, 글로벌 시각에 맞춘다.The controller-side time generator 121 generates the controller-side time in synchronism with the time generated by the time server 5 (hereinafter referred to as “global time”). The time server 5 is a computer connected to the controller server 2 via the wired communication network 8, and outputs the global time. The time server 5 may be included in the controller server 2 or may be included in the communication server 3 . For example, the controller-side time generating unit 121 transmits information received from the time server 5 by the synchronization communication unit 114 through communication that guarantees time synchronization, such as TSN (Time Sensitive Networking) communication through the wired communication network 8. A global time is acquired, and the controller side time is generated in synchronism with the acquired global time. For example, the controller side time generator 121 matches the time counted by the timer 195 (described later) to the global time.

컨트롤러측 사이클 생성부(122)는, 컨트롤러측 시각에 기초하여, 컨트롤 사이클을 생성한다. 예컨대 컨트롤러측 사이클 생성부(122)는, 컨트롤러 시각에 기초하여, 컨트롤 사이클의 개시 타이밍을 셋트하고, 컨트롤러측 시각이 상기 개시 타이밍에 달한 시점부터, 컨트롤 사이클로 사이클 펄스를 반복 생성한다.The controller-side cycle generation unit 122 generates a control cycle based on the controller-side time. For example, the controller-side cycle generation unit 122 sets the start timing of the control cycle based on the controller time, and repeatedly generates cycle pulses in the control cycle from the time when the controller-side time reaches the start timing.

타이밍 송신부(123)는, 컨트롤 사이클의 사이클 타이밍을, 통신 컨트롤러(200)를 통해 관할 로컬 컨트롤러(300)에 송신한다. 사이클 타이밍은, 컨트롤측 시각에서의 컨트롤 사이클의 위상을 나타내는 정보이다. 예컨대 사이클 타이밍은, 컨트롤러측 사이클 생성부(122)에 의한 사이클 펄스의 생성 타이밍이다. 타이밍 송신부(123)는, 컨트롤러측 사이클 생성부(122)가 컨트롤 사이클의 생성을 개시하는 데 앞서, 상기 개시 타이밍을 사이클 타이밍으로서 관할 로컬 컨트롤러(300)에 송신하여도 좋고, 컨트롤러측 사이클 생성부(122)가 컨트롤 사이클의 생성을 개시한 후에, 2번째 이후의 사이클 펄스의 생성 타이밍을 사이클 타이밍으로서 관할 로컬 컨트롤러(300)에 송신하여도 좋다. 타이밍 송신부(123)는, 사이클 타이밍을 마스터 타이밍으로서 다른 컨트롤러(100)에 송신하여도 좋다. 이 경우, 다른 컨트롤러(100)의 컨트롤러측 사이클 생성부(122)는, 유선 통신 네트워크(8)를 통해 마스터 타이밍을 취득하고, 취득한 마스터 타이밍과, 컨트롤러측 시각에 기초하여 컨트롤 사이클을 생성하여도 좋다. 예컨대 컨트롤러측 사이클 생성부(122)는, 취득한 마스터 타이밍에 기초하여 상기 개시 타이밍을 셋트하여도 좋다.The timing transmitter 123 transmits the cycle timing of the control cycle to the competent local controller 300 via the communication controller 200 . The cycle timing is information indicating the phase of the control cycle at the time of the control side. For example, the cycle timing is the generation timing of cycle pulses by the controller-side cycle generator 122 . The timing transmitter 123 may transmit the start timing as cycle timing to the local controller 300 in charge prior to the controller side cycle generator 122 starting generation of the control cycle, or the controller side cycle generator 123. After (122) starts generation of the control cycle, the generation timing of the second and subsequent cycle pulses may be transmitted to the competent local controller 300 as the cycle timing. The timing transmitter 123 may transmit the cycle timing to other controllers 100 as master timing. In this case, even if the controller-side cycle generation unit 122 of the other controller 100 acquires the master timing via the wired communication network 8 and generates a control cycle based on the acquired master timing and the controller-side time. good. For example, the controller side cycle generation unit 122 may set the start timing based on the acquired master timing.

타이밍 송신부(123)는, 관할 로컬 컨트롤러(300)의 머신측 타이밍 조정부(315)(후술)가 컨트롤 사이클의 생성에 실패한 경우, 앞서 송신한 사이클 타이밍보다 후의 사이클 타이밍을 관할 로컬 컨트롤러(300)에 재차 송신하여도 좋다. 예컨대 타이밍 송신부(123)는, 관할 로컬 컨트롤러(300)로부터의 셋트 완료 통지의 수신을 대기하여, 셋트 완료 통지를 수신하지 못한 채로 컨트롤러측 시각이 사이클 타이밍에 달한 경우에, 머신측 타이밍 조정부(315)가 컨트롤 사이클의 생성에 실패하였다고 판정한다. 셋트 완료 통지는, 관할 로컬 컨트롤러(300)에 있어서의 개시 타이밍의 셋트가 완료된 것의 통지이다.The timing transmitter 123 transmits, to the local controller 300, the cycle timing later than the previously transmitted cycle timing when the machine-side timing adjustment unit 315 (described later) of the local controller 300 fails to generate a control cycle. You may transmit again. For example, the timing transmission unit 123 waits for reception of a set completion notification from the jurisdictional local controller 300, and when the controller side time reaches the cycle timing without receiving the set completion notification, the machine side timing adjustment unit 315 ) determines that generation of the control cycle has failed. The setting completion notification is a notification that the setting of the start timing in the competent local controller 300 has been completed.

사이클 카운터(124)는, 컨트롤러측 사이클 생성부(122)가 생성한 컨트롤 사이클수(예컨대 상기 사이클 펄스의 수)를 카운트한다. 모션 모듈(113)은, 사이클 카운터(124)에 의해 카운트된 컨트롤 사이클수에 기초하여 모션 프로그램을 실행한다. 예컨대 모션 모듈(113)은, 컨트롤 사이클수가 카운트 업될 때마다, 실행 대상을 현재 실행 중인 모션 지령으로부터 다음 모션 지령으로 변경한다.The cycle counter 124 counts the number of control cycles (for example, the number of cycle pulses) generated by the controller side cycle generator 122 . The motion module 113 executes a motion program based on the number of control cycles counted by the cycle counter 124. For example, the motion module 113 changes the execution target from the currently executing motion command to the next motion command whenever the number of control cycles counts up.

컨트롤러(100)는, 컨트롤 사이클에 동기한 통신 사이클을 생성하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 통신 사이클 생성부(131)와, 사이클 카운터(132)를 더 가져도 좋다.The controller 100 may be configured to generate a communication cycle synchronized with the control cycle. For example, the controller 100 may further include a communication cycle generator 131 and a cycle counter 132 .

통신 사이클 생성부(131)는, 컨트롤 사이클에 동기한 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(131)는, 컨트롤러측 시각과, 컨트롤 사이클의 사이클 타이밍에 기초하여 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(131)는, 사이클 타이밍에 기초하여, 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트하고, 컨트롤러측 시각이 상기 개시 타이밍에 달한 시점부터, 통신 사이클로 사이클 펄스를 반복 생성한다. 또한, 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍은, 컨트롤 사이클의 개시 타이밍에 대하여 소정 기간(예컨대 컨트롤 사이클의 사이클 길이의 절반) 어긋난 개시 타이밍을 포함한다. 통신 사이클의 사이클 길이는, 컨트롤 사이클의 사이클 길이의 정수배(1배를 포함함)이다. 통신 사이클의 사이클 길이는, 컨트롤 사이클의 사이클 길이의 정수분의 1이어도 좋다.The communication cycle generator 131 generates a communication cycle synchronized with the control cycle. For example, the communication cycle generation unit 131 generates a communication cycle based on the controller side time and the cycle timing of the control cycle. For example, the communication cycle generation unit 131 sets a start timing synchronized with the control cycle start timing based on the cycle timing, and repeatedly generates cycle pulses in the communication cycle from the time when the controller side time reaches the start timing. . Also, the start timing synchronized with the start timing of the control cycle includes a start timing that is shifted from the control cycle start timing by a predetermined period (for example, half of the cycle length of the control cycle). The cycle length of the communication cycle is an integer multiple (including 1 time) of the cycle length of the control cycle. The cycle length of the communication cycle may be one integral of the cycle length of the control cycle.

사이클 카운터(132)는, 통신 사이클 생성부(131)가 생성한 통신 사이클수(예컨대 상 기사이클 펄스의 수)를 카운트한다. 통신 사이클은, 컨트롤 사이클에 동기하여 생성되기 때문에, 통신 사이클수에 기초하여 컨트롤 사이클수를 검지하는 것이 가능하다. 그래서 컨트롤러측 타이밍 조정부(116)는, 컨트롤 사이클수가 사용시 사이클수가 되는 컨트롤 사이클에 있어서 응답 정보를 호출하는 것을, 통신 사이클수에 기초하여 행하여도 좋다.The cycle counter 132 counts the number of communication cycles generated by the communication cycle generator 131 (for example, the number of cycle pulses). Since the communication cycle is generated synchronously with the control cycle, it is possible to detect the number of control cycles based on the number of communication cycles. Therefore, the controller-side timing adjusting unit 116 may call response information based on the number of communication cycles in a control cycle in which the number of control cycles becomes the number of cycles when used.

컨트롤러(100)는, 머신 지령에 대하여, 그 사용 타이밍을 나타내는 정보를 부가하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 부가부(125)를 더 가져도 좋다. 부가부(125)는, 머신 지령에 제1 사이클 정보를 부가한다. 제1 사이클 정보는, 관할 머신(4)에 있어서, 어느 머신측 컨트롤 사이클로 머신 지령을 호출할지를 지정하는 정보이다. 제1 사이클 정보가 부가된 머신 지령을 수신한 관할 로컬 컨트롤러(300)는, 제1 사이클 정보에 기초하여 상기 사용 타이밍(예컨대, 상기 머신 지령을 사용할 때의 컨트롤 사이클수. 이하, 「사용시 사이클수」라고 함)을 검지하고, 상기 사용 타이밍까지 상기 머신 지령을 버퍼링한다. 예컨대 부가부(125)는, 현재의 컨트롤 사이클수에 기초하여 사용시 사이클수를 산출하고, 사용시 사이클수 자체를 제1 사이클 정보로서 머신 지령에 부가한다. 일례로서, 부가부(125)는 현재의 사이클수에 소정수를 가산하여 사용시 사이클수를 산출한다. 부가부(125)는, 현재의 컨트롤 사이클수를 제1 사이클 정보로서 머신 지령에 부가하여도 좋다. 이 경우, 관할 머신(4)이 제1 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출한다.The controller 100 may be configured to add information indicating usage timing to the machine command. For example, the controller 100 may further include an adding unit 125 . The adding unit 125 adds first cycle information to the machine command. The first cycle information is information specifying in which machine-side control cycle a machine command is to be called in the controlled machine 4 . Having received the machine command to which the first cycle information is added, the local controller 300 having jurisdiction over the use timing (e.g., the number of control cycles when using the machine command) based on the first cycle information. ") is detected, and the machine command is buffered until the use timing. For example, the adding unit 125 calculates the number of cycles in use based on the number of current control cycles, and adds the number of cycles in use itself as first cycle information to the machine command. As an example, the adder 125 calculates the number of cycles in use by adding a predetermined number to the current number of cycles. The addition unit 125 may add the current number of control cycles as first cycle information to the machine command. In this case, the managing machine 4 calculates the number of cycles in use based on the first cycle information (for example, by adding a predetermined number).

컨트롤러(100)는, 머신 지령에 포함되는 제1 사이클 정보에 기초하여 상기 머신 지령의 송신 지연을 검출하도록 구성되어 있어도 좋다. 또한, 컨트롤러(100)는, 응답 정보에 포함되는 제2 사이클 정보에 기초하여 상기 응답 정보의 수신 지연을 검출하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 사이클 체크부(133)를 더 가져도 좋다.The controller 100 may be configured to detect a transmission delay of the machine command based on first cycle information included in the machine command. Further, the controller 100 may be configured to detect a reception delay of the response information based on the second cycle information included in the response information. For example, the controller 100 may further include a cycle check unit 133 .

사이클 체크부(133)는, 머신 지령에 포함되는 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출한다. 머신 지령의 송신 지연은, 로컬 컨트롤러(300)에 의한 머신 지령의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(133)는, 동기 통신부(114)가 머신 지령을 송신할 때에, 현재의 컨트롤 사이클수가, 상기 머신 지령의 상기 사용시 사이클수 이상으로 되어있는 경우에 머신 지령의 송신 지연을 검출한다.The cycle check unit 133 detects the transmission delay of the machine command based on the first cycle information included in the machine command. The transmission delay of the machine command means a delay of a level that does not match the call of the machine command by the local controller 300 . For example, the cycle check unit 133 detects transmission delay of the machine command when the current number of control cycles is greater than or equal to the number of cycles during use of the machine command when the synchronous communication unit 114 transmits the machine command. .

사이클 체크부(133)는, 응답 정보에 포함되는 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하여도 좋다. 응답 정보의 수신 지연은, 컨트롤러측 타이밍 조정부(116)에 의한 응답 정보의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(133)는, 관할 머신(4)으로부터 응답 정보를 수신한 후에, 현재의 컨트롤 사이클수가, 상기 응답 정보의 상기 사용시 사이클수 이상으로 되어 있는 경우에 응답 정보의 수신 지연을 검출한다.The cycle check unit 133 may detect a reception delay of the response information based on the second cycle information included in the response information. The reception delay of the response information means a delay at a level that does not match the call of the response information by the controller-side timing adjusting unit 116. For example, the cycle check unit 133, after receiving response information from the competent machine 4, detects a delay in receiving response information when the current number of control cycles is greater than or equal to the number of cycles in the use of the response information. .

전술한 바와 같이, 통신 사이클은, 컨트롤 사이클에 동기하여 생성되기 때문에, 통신 사이클수에 기초하여 컨트롤 사이클수를 검지하는 것이 가능하다. 그래서 사이클 체크부(133)는, 머신 지령의 송신 지연을 제1 사이클 정보와 통신 사이클수에 기초하여 검출하고, 응답 정보의 수신 지연을 제2 사이클 정보와 통신 사이클수에 기초하여 검출하여도 좋다.As described above, since the communication cycle is generated synchronously with the control cycle, it is possible to detect the number of control cycles based on the number of communication cycles. Therefore, the cycle check section 133 may detect the transmission delay of the machine command based on the first cycle information and the number of communication cycles, and detect the delay in receiving the response information based on the second cycle information and the number of communication cycles. .

사이클 체크부(133)는, 머신 지령의 송신 지연을 검출한 경우에, 상기 머신 지령의 송신을 캔슬하여도 좋다. 예컨대 컨트롤러측 타이밍 조정부(116)는, 머신 지령의 송신 지연을 검출한 경우에, 통신 컨트롤러(200)에의 상기 머신 지령의 송신에 앞서, 상기 머신 지령을 파기한다. 사이클 체크부(133)는, 응답 정보의 수신 지연을 검출한 경우에, 상기 응답 정보를 파기하여도 좋다.The cycle check unit 133 may cancel the transmission of the machine command when a transmission delay of the machine command is detected. For example, when the transmission delay of the machine command is detected, the controller-side timing adjusting unit 116 discards the machine command prior to transmission of the machine command to the communication controller 200 . When the cycle check unit 133 detects a reception delay of the response information, it may discard the response information.

동기 통신부(114)는, 유선 통신 네트워크(8)를 통해, 복수의 컨트롤러(100)에 있어서의 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 동기 통신 데이터를 송신하여도 좋다. 동기 통신 데이터의 구체예로서는, 관할 머신(4)의 모션과, 다른 컨트롤러(100)가 대응하는 머신(4)(이하, 「다른 머신(4)」이라고 함)의 모션을 협조시키기 위해 이용되는 관할 머신(4)의 스테이터스 정보(예컨대 관할 머신(4)에의 머신 지령 또는 관할 머신(4)으로부터의 응답 정보)를 들 수 있다.The synchronous communication unit 114 may transmit synchronous communication data to the controller-side timing adjusting unit 116 of the other controllers 100 in the plurality of controllers 100 via the wired communication network 8 . As a specific example of the synchronous communication data, jurisdiction used to coordinate the motion of the jurisdiction machine 4 and the motion of the machine 4 (hereinafter referred to as "other machine 4") to which the other controller 100 corresponds. Status information of the machine 4 (for example, a machine command to the competent machine 4 or response information from the competent machine 4).

동기 통신부(114)가, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 동기 통신 데이터를 송신하는 경우, 부가부(125)는, 동기 통신 데이터에 제1 사이클 정보를 부가하여도 좋다.When the synchronous communication unit 114 transmits synchronous communication data to the controller-side timing adjusting unit 116 of the other controller 100, the adding unit 125 may add first cycle information to the synchronous communication data.

제1 사이클 정보가 부가된 동기 통신 데이터를 수신한 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)는, 제1 사이클 정보에 기초하여 상기 동기 통신 데이터의 사용 타이밍(예컨대, 상기 동기 통신 데이터를 사용할 때의 컨트롤 사이클수. 이하, 「사용시 사이클수」라고 함)을 검지하고, 상기 사용 타이밍까지 상기 동기 통신 데이터를 버퍼링한다. 예컨대 부가부(125)는, 현재의 컨트롤 사이클수에 기초하여 사용시 사이클수를 산출하고, 사용시 사이클수 자체를 제1 사이클 정보로서 동기 통신 데이터에 부가한다. 일례로서, 부가부(125)는 현재의 사이클수에 소정수를 가산하여 사용시 사이클수를 산출한다. 부가부(125)는, 현재의 컨트롤 사이클수(이하, 「부가시 사이클수」라고 함)를 제1 사이클 정보로서 동기 통신 데이터에 부가하여도 좋다.Upon receiving the synchronous communication data to which the first cycle information is added, the controller-side timing adjusting unit 116 of the other controller 100 determines the use timing of the synchronous communication data (e.g., the synchronous communication data) based on the first cycle information. The number of control cycles at the time of use (hereinafter referred to as "the number of cycles at use") is detected, and the synchronous communication data is buffered until the use timing. For example, the adding unit 125 calculates the number of cycles in use based on the number of current control cycles, and adds the number of cycles in use itself as first cycle information to the synchronous communication data. As an example, the adder 125 calculates the number of cycles in use by adding a predetermined number to the current number of cycles. The adding unit 125 may add the current number of control cycles (hereinafter referred to as “number of cycles during addition”) to the synchronous communication data as first cycle information.

다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)는, 동기 통신 데이터를 기억하여, 상기 동기 통신 데이터에 부가된 제1 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제1 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제1 사이클 정보가 상기 부가시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 제1 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하고, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다.The controller-side timing adjustment unit 116 of the other controller 100 stores the synchronous communication data and calls the synchronous communication data in a control cycle corresponding to the first cycle information added to the synchronous communication data. When the first cycle information is the number of cycles in use, the controller-side timing adjusting unit 213 calls the synchronous communication data in a control cycle in which the number of control cycles is the number of cycles in use. When the first cycle information is the number of cycles at the time of addition, the controller-side timing adjustment unit 213 calculates the number of cycles in use based on the first cycle information (for example, by adding a predetermined number), and the number of control cycles is the number of cycles in use. In the number of control cycles, the synchronous communication data is called.

컨트롤러측 타이밍 조정부(116)는, 호출한 동기 통신 데이터를 동기 통신부(114)에 출력하고, 동기 통신부(114)는 상기 동기 통신 데이터를 수신 정보 기억부(112)에 저장한다. 이에 의해, 다른 컨트롤러(100)의 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(116)가 호출한 응답 정보에 기초하여, 모션 프로그램을 실행하게 된다.The controller-side timing adjustment unit 116 outputs the called synchronous communication data to the synchronous communication unit 114, and the synchronous communication unit 114 stores the synchronous communication data in the reception information storage unit 112. Accordingly, the motion module 113 of the other controller 100 executes a motion program based on the response information called by the controller-side timing adjusting unit 116.

이와 같이, 동기 통신 데이터는, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 있어서 버퍼링되어, 컨트롤 사이클에 동기한 타이밍에 호출된다. 이 때문에, 동기 통신부(114)에 의한 동기 통신 데이터의 송신 자체는, 컨트롤 사이클에 동기하지 않아도 좋다.In this way, synchronous communication data is buffered in the controller-side timing adjusting unit 116 of the other controller 100, and is called at a timing synchronized with the control cycle. For this reason, the transmission itself of synchronous communication data by the synchronous communication unit 114 does not have to be synchronized with the control cycle.

동기 통신부(114)가 송신하는 데이터가, 다른 컨트롤러(100) 앞의 동기 통신 데이터를 포함하는 경우, 사이클 체크부(133)는, 동기 통신 데이터에 포함되는 제1 사이클 정보에 기초하여, 상기 동기 통신 데이터의 송신 지연을 검출하여도 좋다. 동기 통신 데이터의 송신 지연은, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 의한 동기 통신 데이터의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(133)는, 동기 통신부(114)가 동기 통신 데이터를 송신할 때에, 현재의 통신 사이클수에 대응하는 컨트롤 사이클수가, 상기 동기 통신 데이터의 상기 사용시 사이클수 이상으로 되어 있는 경우에 동기 통신 데이터의 송신 지연을 검출한다. 사이클 체크부(133)는, 동기 통신 데이터의 송신 지연을 검출한 경우에, 상기 동기 통신 데이터의 송신을 캔슬하여도 좋다.When the data transmitted by the synchronous communication unit 114 includes synchronous communication data addressed to another controller 100, the cycle check unit 133 determines the synchronization based on the first cycle information included in the synchronous communication data. Transmission delay of communication data may be detected. The transmission delay of the synchronous communication data means a delay at a level that does not match the call of the synchronous communication data by the controller-side timing adjusting unit 116 of the other controller 100. For example, the cycle check unit 133 checks that, when the synchronous communication unit 114 transmits synchronous communication data, the number of control cycles corresponding to the current number of communication cycles is greater than or equal to the number of cycles during use of the synchronous communication data. Detect transmission delay of synchronous communication data. The cycle check unit 133 may cancel the transmission of the synchronous communication data when a transmission delay of the synchronous communication data is detected.

다른 컨트롤러(100)의 사이클 체크부(133)가, 동기 통신 데이터에 포함되는 제1 사이클 정보에 기초하여, 상기 동기 통신 데이터의 수신 지연을 검출하여도 좋다. 동기 통신 데이터의 수신 지연은, 컨트롤러측 타이밍 조정부(116)에 의한 동기 통신 데이터의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(133)는, 컨트롤러측 타이밍 조정부(116) 앞의 동기 통신 데이터를 수신하였을 때에, 현재의 컨트롤 사이클수가, 상기 동기 통신 데이터의 상기 사용시 사이클수 이상으로 되어 있는 경우에 동기 통신 데이터의 수신 지연을 검출한다. 사이클 체크부(133)는, 동기 통신 데이터의 수신 지연을 검출한 경우에, 상기 동기 통신 데이터를 파기하여도 좋다.The cycle check unit 133 of the other controller 100 may detect the reception delay of the synchronous communication data based on the first cycle information included in the synchronous communication data. The reception delay of the synchronous communication data means a delay at a level that does not match the calling of the synchronous communication data by the controller-side timing adjusting unit 116. For example, when the cycle check unit 133 receives the synchronous communication data from the controller side timing adjusting unit 116, the current number of control cycles is equal to or greater than the number of use cycles of the synchronous communication data, the synchronous communication data detect the reception delay of The cycle check unit 133 may discard the synchronous communication data when it detects a reception delay of the synchronous communication data.

컨트롤러(100)는, 동기 통신부(114)가 송신하는 데이터가 관할 머신(4) 앞인지 다른 컨트롤러(100) 앞인지에 기초하여, 상기 데이터의 송신처를 전환하도록 구성되어 있어도 좋다. 예컨대 컨트롤러(100)는, 스위치(134)를 갖는다.The controller 100 may be configured to switch the transmission destination of the data based on whether the data transmitted by the synchronous communication unit 114 is addressed to the competent machine 4 or to another controller 100. For example, the controller 100 has a switch 134 .

스위치(134)는, 동기 통신부(114)가 송신하는 데이터가 관할 머신(4) 앞이면, 통신 서버(3)를 통해 관할 로컬 컨트롤러(300)에 상기 데이터를 송신하고, 상기 데이터가 다른 컨트롤러(100) 앞이면, 유선 통신 네트워크(8)를 통해, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 상기 데이터를 송신한다.The switch 134 transmits the data to the competent local controller 300 through the communication server 3 when the data transmitted by the synchronous communication unit 114 is addressed to the competent machine 4, and the data is transmitted to another controller ( 100), the data is transmitted to the controller-side timing adjusting unit 116 of the other controller 100 via the wired communication network 8.

(로컬 컨트롤러)(local controller)

로컬 컨트롤러(300)는, 통신 서버(3)를 통해 머신 지령을 수신하는 것과, 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키는 것을 실행하도록 구성되어 있다. 예컨대 도 5에 나타내는 바와 같이, 로컬 컨트롤러(300)는, 기능 블록으로서, 단말 통신부(314)와, 머신측 타이밍 조정부(315)와, 지령 기억부(311)와, 머신 제어부(313)와, 응답 정보 기억부(312)를 갖는다.The local controller 300 is configured to execute receiving a machine command via the communication server 3 and realizing a motion in the machine main body 10 based on the machine command. For example, as shown in FIG. 5 , the local controller 300 includes, as functional blocks, a terminal communication unit 314, a machine-side timing adjustment unit 315, a command storage unit 311, a machine control unit 313, It has a response information storage unit 312.

단말 통신부(314)는, 무선 통신 네트워크(7)를 통해, 통신 서버(3)로부터 머신 지령을 수신한다. 지령 기억부(311)는, 단말 통신부(314)가 수신한 머신 지령을 기억한다. 머신 제어부(313)는, 지령 기억부(311)가 기억하는 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키고, 머신 본체(10)가 실현한 모션에 기초한 응답 정보를 취득하여 응답 정보 기억부(312)에 저장한다.The terminal communication unit 314 receives machine commands from the communication server 3 via the wireless communication network 7 . The command storage unit 311 stores machine commands received by the terminal communication unit 314 . The machine control unit 313 causes the machine body 10 to realize a motion based on the machine command stored in the command storage unit 311, obtains response information based on the motion realized by the machine body 10, and responds. stored in the information storage unit 312.

예컨대 머신 제어부(313)는, 머신 본체(10)의 동작을 머신 지령에 추종시킨다. 예컨대 머신 제어부(313)는, 지령 기억부(311)가 기억하는 머신 지령과, 응답 정보 기억부(312)가 기억하는 과거의 응답 정보의 편차를 축소하도록 머신 본체(10)를 구동하고, 이에 따른 머신 본체(10)의 응답 정보를 취득하여 응답 정보 기억부(312)에 저장하는 것을 머신측 컨트롤 사이클로 반복해서 실행한다. 예컨대, 머신측 컨트롤 사이클은, 상기 컨트롤 사이클과 사이클 길이가 동일한 사이클이다. 일례로서, 머신 지령이 속도 지령인 경우, 머신 제어부(313)는, 응답 정보 기억부(312)가 기억하는 응답 정보가 나타내는 동작 속도를 속도 지령에 추종시키도록 머신 본체(10)를 구동한다. 머신 지령이 구동력 지령인 경우, 머신 제어부(313)는, 응답 정보 기억부(312)가 기억하는 응답 정보가 나타내는 구동력을 구동력 지령에 추종시키도록 머신 본체(10)를 구동한다.For example, the machine controller 313 makes the operation of the machine body 10 follow the machine command. For example, the machine control unit 313 drives the machine body 10 to reduce the deviation between the machine command stored in the command storage unit 311 and the past response information stored in the response information storage unit 312, and thereby Acquisition of response information of the following machine body 10 and storing it in the response information storage unit 312 is repeatedly executed in a machine-side control cycle. For example, the machine-side control cycle is a cycle having the same cycle length as the control cycle. As an example, when the machine command is a speed command, the machine control unit 313 drives the machine body 10 so that the operating speed indicated by the response information stored in the response information storage unit 312 follows the speed command. When the machine command is a driving force command, the machine control unit 313 drives the machine body 10 so that the driving force indicated by the response information stored in the response information storage unit 312 follows the driving force command.

머신 제어부(313)는, 머신측 컨트롤 사이클보다 짧은 사이클 길이의 머신 사이클로 머신 본체(10)를 제어하여도 좋다. 각 머신 사이클에 있어서, 머신 제어부(313)는, 머신 지령과, 응답 정보 기억부(312)가 기억하는 과거의 응답 정보의 편차를 축소하도록 머신 본체(10)를 구동하고, 이에 따른 머신 본체(10)의 응답 정보를 취득하여 응답 정보 기억부(312)에 저장한다. 머신 사이클의 사이클 길이는, 예컨대 머신측 컨트롤 사이클의 사이클 길이의 정수분의 1이다.The machine controller 313 may control the machine main body 10 with a machine cycle having a shorter cycle length than the machine-side control cycle. In each machine cycle, the machine control unit 313 drives the machine body 10 so as to reduce the deviation between the machine command and the past response information stored in the response information storage unit 312, and thereby the machine body ( The response information of 10) is acquired and stored in the response information storage unit 312. The cycle length of the machine cycle is, for example, one integral part of the cycle length of the machine-side control cycle.

예컨대 머신 제어부(313)는, 중간 컨트롤러(331)와, 서보(332)를 갖는다. 중간 컨트롤러(331)는, 머신 지령과, 응답 정보 기억부(312)가 기억하는 과거의 응답 정보의 편차를 축소하도록, 머신 본체(10)의 각 액츄에이터에 대한 구동 데이터(예컨대 위치 지령, 속도 지령, 또는 구동력 지령)를 머신 사이클로 생성한다. 서보(332)는, 구동 데이터에 기초하여, 머신 본체(10)의 각 액츄에이터에 구동 전력을 출력한다. 서보(332)는, 머신 사이클보다 짧은 사이클 길이의 서보 사이클로 구동 데이터에 기초한 구동 전력을 출력하여도 좋다. 또한, 머신 제어부(313)는, 중간 컨트롤러(331)와 서보(332) 중 적어도 한쪽을 갖고 있으면 좋다. 머신 제어부(313)가 서보(332)를 갖지 않는 경우, 머신 제어부(313)는, 상기 구동 데이터를 머신 본체(10)에 출력하고, 머신 본체(10)가, 구동 데이터에 기초하여 각 액츄에이터의 구동전력을 생성한다. 또한, 머신 제어부(313)가 중간 컨트롤러(331)를 갖지 않는 경우, 컨트롤러(100)가 상기 구동 데이터를 머신 지령으로서 생성하여, 관할 머신(4)에 송신한다.For example, the machine controller 313 includes an intermediate controller 331 and a servo 332 . The intermediate controller 331 generates drive data (e.g., position command, speed command) for each actuator of the machine main body 10 so as to reduce the deviation between the machine command and the past response information stored in the response information storage unit 312. , or driving force command) as a machine cycle. The servo 332 outputs drive power to each actuator of the machine body 10 based on the drive data. The servo 332 may output drive power based on the drive data in a servo cycle having a shorter cycle length than the machine cycle. In addition, the machine control part 313 should just have at least one of the intermediate controller 331 and the servo 332. When the machine control unit 313 does not have the servo 332, the machine control unit 313 outputs the drive data to the machine body 10, and the machine body 10 controls the operation of each actuator based on the drive data. generate drive power. Further, when the machine controller 313 does not have the intermediate controller 331, the controller 100 generates the drive data as a machine command and transmits it to the machine 4 under its jurisdiction.

예컨대 머신 본체(10)가 상기 이동 로봇(20) 또는 정치 로봇(30)인 경우, 중간 컨트롤러(331)는, 선단부(36)의 목표 위치·목표 자세 및 목표 속도 등을 포함하는 머신 지령을 취득하여, 역운동학 연산에 의해, 액츄에이터(41, 42, 43, 44, 45, 46)의 위치 지령 및 속도 지령을 포함하는 구동 데이터를 생성하여도 좋다. 중간 컨트롤러(331)는, 액츄에이터(41, 42, 43, 44, 45, 46)의 목표 위치 및 목표 속도를 포함하는 머신 지령을 취득하고, 중간 컨트롤러는 액츄에이터(41, 42, 43, 44, 45, 46)의 구동력 지령을 포함하는 구동 데이터를 생성하여도 좋다. 또한, 중간 컨트롤러(331)는, 시계열로 배열되는 복수의 머신 지령에 기초하여 구동 데이터를 생성하여도 좋다.For example, when the machine body 10 is the mobile robot 20 or stationary robot 30, the intermediate controller 331 acquires machine commands including the target position, target posture, and target speed of the distal end 36. Thus, drive data including position commands and speed commands of the actuators 41, 42, 43, 44, 45, and 46 may be generated by inverse kinematics calculation. The intermediate controller 331 acquires machine commands including target positions and target speeds of the actuators 41, 42, 43, 44, 45, and 46, and the intermediate controller , 46) may generate drive data including the driving force command. Further, the intermediate controller 331 may generate drive data based on a plurality of machine commands arranged in time series.

단말 통신부(314)는, 머신측 컨트롤 사이클마다, 응답 정보 기억부(312)가 기억하는 응답 정보를, 무선 통신 네트워크(7)를 통해 통신 서버(3)에 송신한다.The terminal communication unit 314 transmits the response information stored in the response information storage unit 312 to the communication server 3 via the wireless communication network 7 for each machine-side control cycle.

로컬 컨트롤러(300)는, 머신 지령을, 그 사용 타이밍까지 버퍼링하도록 구성되어 있어도 좋다. 예컨대 로컬 컨트롤러(300)는, 머신측 타이밍 조정부(315)를 더 갖는다.The local controller 300 may be configured to buffer machine commands until the timing of their use. For example, the local controller 300 further includes a machine-side timing adjusting unit 315 .

머신측 타이밍 조정부(315)는, 단말 통신부(314)가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출한다. 제1 사이클 정보가, 상기 사용시 사이클수인 경우, 머신측 타이밍 조정부(315)는, 컨트롤 사이클수가 사용시 사이클수가 되는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출한다. 컨트롤 사이클수가 상기 사용시 사이클수가 되는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 것은, 상기 머신측 컨트롤 사이클에 있어서 사용 가능한 타이밍에 상기 머신 지령을 호출하는 것을 의미한다. 이 때문에, 상기 머신측 컨트롤 사이클에 있어서 사용되도록, 상기 머신측 컨트롤 사이클에 앞서 상기 머신 지령을 호출하는 것도, 상기 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 것에 포함된다. 제1 사이클 정보가 상기 부가시 사이클수인 경우, 머신측 타이밍 조정부(315)는, 제1 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하고, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출한다.The machine-side timing adjusting unit 315 stores the machine command received by the terminal communication unit 314 and calls the machine command in a machine-side control cycle corresponding to the first cycle information added to the machine command. When the first cycle information is the number of cycles in use, the machine-side timing adjusting unit 315 calls the machine command in a machine-side control cycle in which the number of control cycles is the number of cycles in use. Calling the machine command in a machine-side control cycle in which the number of control cycles is the number of cycles in use means calling the machine command at an available timing in the machine-side control cycle. For this reason, calling the machine command prior to the machine side control cycle so that it is used in the machine side control cycle is included in calling the machine command in the machine side control cycle. When the first cycle information is the number of cycles at the time of addition, the machine-side timing adjusting unit 315 calculates the number of cycles in use based on the first cycle information (eg by adding a predetermined number), and calculates the number of control cycles as the number of cycles in use. In number of machine-side control cycles, the machine command is called.

머신측 타이밍 조정부(315)는, 호출한 머신 지령을 지령 기억부(311)에 저장한다. 이에 의해, 머신 제어부(313)에 의한 머신 본체(10)의 제어는, 머신측 타이밍 조정부(315)가 호출한 머신 지령에 기초하여 행해지게 된다.The machine-side timing adjusting unit 315 stores the called machine command in the command storage unit 311 . In this way, control of the machine main body 10 by the machine control unit 313 is performed based on the machine command called by the machine-side timing adjusting unit 315.

로컬 컨트롤러(300)는, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기한 머신측 컨트롤 사이클을 생성하도록 구성되어 있어도 좋다. 예컨대 로컬 컨트롤러(300)는, 머신측 시각 생성부(321)와, 머신측 사이클 생성부(322)와, 사이클 카운터(323)를 더 가져도 좋다.The local controller 300 may be configured to generate a machine-side control cycle synchronized with a control cycle in the corresponding controller 100 . For example, the local controller 300 may further include a machine-side time generator 321, a machine-side cycle generator 322, and a cycle counter 323.

머신측 시각 생성부(321)는, 상기 글로벌 시각에 동기하여 머신측 시각을 생성한다. 예컨대 머신측 시각 생성부(321)는, 무선 통신 네트워크(7)를 통한 TSN 통신 등, 시각 동기성을 보증하는 통신에 의해 단말 통신부(314)가 통신 서버(3)로부터 수신한 글로벌 시각을 취득하고, 취득한 글로벌 시각에 동기하여 머신측 시각을 생성한다. 머신측 시각 생성부(321)는, 유선 통신 네트워크(8)를 통해 시각 서버(5) 또는 대응하는 컨트롤러(100)로부터 글로벌 시각을 취득하여도 좋다. 예컨대 머신측 시각 생성부(321)는, 타이머(395)(후술)가 카운트하는 시각을, 글로벌 시각에 맞춘다.The machine-side time generator 321 generates the machine-side time in synchronism with the global time. For example, the machine-side time generator 321 acquires the global time received by the terminal communication unit 314 from the communication server 3 through communication that guarantees time synchronization, such as TSN communication via the wireless communication network 7. and generates the machine-side time in synchronism with the acquired global time. The machine-side time generator 321 may acquire the global time from the time server 5 or the corresponding controller 100 via the wired communication network 8 . For example, the machine-side time generator 321 adjusts the time counted by the timer 395 (described later) to the global time.

머신측 사이클 생성부(322)는, 무선 통신 네트워크(7)를 통해 단말 통신부(314)가 통신 서버(3)로부터 수신한 사이클 타이밍을 취득하고, 취득한 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기한 머신측 컨트롤 사이클을 생성한다. 예컨대 머신측 사이클 생성부(322)는, 머신측 시각과, 사이클 타이밍에 기초하여 머신측 컨트롤 사이클을 생성한다. 예컨대 머신측 사이클 생성부(322)는, 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트하여, 머신측 시각이 상기 개시 타이밍에 달한 시점부터, 머신측 컨트롤 사이클로 사이클 펄스를 반복 생성한다. 머신측 사이클 생성부(322)는, 개시 타이밍의 셋트가 완료된 시점에, 셋트 완료 통지를 컨트롤러(100)에 송신하여도 좋다. 머신측 사이클 생성부(322)가 생성하는 머신측 컨트롤 사이클의 사이클 길이는, 컨트롤러(100)에 있어서의 컨트롤 사이클의 사이클 길이와 동일하다.The machine-side cycle generation unit 322 acquires the cycle timing received from the communication server 3 by the terminal communication unit 314 via the wireless communication network 7, and based on the obtained cycle timing, the corresponding controller 100 ) generates a machine-side control cycle synchronized with the control cycle in For example, the machine-side cycle generator 322 generates a machine-side control cycle based on the machine-side time and cycle timing. For example, based on the cycle timing, the machine-side cycle generation unit 322 sets start timing synchronized with the start timing of the control cycle in the corresponding controller 100, and determines when the machine-side time reaches the start timing. From there, cycle pulses are repeatedly generated with the machine-side control cycle. The machine-side cycle generator 322 may transmit a set completion notification to the controller 100 when the start timing is set. The cycle length of the machine-side control cycle generated by the machine-side cycle generator 322 is the same as the cycle length of the control cycle in the controller 100 .

사이클 카운터(323)는, 머신측 사이클 생성부(322)가 생성한 컨트롤 사이클수(예컨대 상기 사이클 펄스의 수)를 카운트한다.The cycle counter 323 counts the number of control cycles (for example, the number of cycle pulses) generated by the machine-side cycle generator 322 .

로컬 컨트롤러(300)는, 단말 통신부(314)가 통신 서버(3)에 송신하는 응답 정보에 대하여, 그 사용 타이밍을 나타내는 정보를 부가하도록 구성되어 있어도 좋다. 예컨대 로컬 컨트롤러(300)는, 부가부(324)를 더 가져도 좋다. 부가부(324)는, 응답 정보에 상기 제2 사이클 정보를 부가한다. 전술한 바와 같이, 단말 통신부(314)가 송신한 응답 정보는 대응하는 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 있어서 버퍼링되어, 컨트롤 사이클에 동기한 타이밍에 호출된다. 이 때문에, 단말 통신부(314)에 의한 응답 정보의 송신 자체는, 컨트롤 사이클에 동기하지 않아도 좋다.The local controller 300 may be configured to add information indicating a use timing to response information transmitted from the terminal communication unit 314 to the communication server 3. For example, the local controller 300 may further include an adding unit 324 . The adding unit 324 adds the second cycle information to response information. As described above, the response information transmitted by the terminal communication unit 314 is buffered in the controller-side timing adjustment unit 116 of the corresponding controller 100, and is called at timing synchronized with the control cycle. For this reason, the transmission itself of the response information by the terminal communication unit 314 does not have to be synchronized with the control cycle.

로컬 컨트롤러(300)는, 머신측 컨트롤 사이클에 동기한 머신 사이클를 생성하도록 구성되어 있어도 좋다. 예컨대 로컬 컨트롤러(300)는, 로컬 사이클 생성부(325)와, 사이클 카운터(326)를 더 갖는다.The local controller 300 may be configured to generate a machine cycle synchronized with a machine-side control cycle. For example, the local controller 300 further includes a local cycle generator 325 and a cycle counter 326 .

로컬 사이클 생성부(325)는, 머신측 시각과, 사이클 타이밍에 기초하여 머신 사이클을 생성한다. 예컨대 로컬 사이클 생성부(325)는, 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트하고, 머신측 시각이 상기 개시 타이밍에 달한 시점부터, 머신 사이클로 사이클 펄스를 반복 생성한다.The local cycle generator 325 generates a machine cycle based on the machine-side time and cycle timing. For example, based on the cycle timing, the local cycle generator 325 sets the start timing synchronized with the start timing of the control cycle in the corresponding controller 100, and from the point when the machine side time reaches the start timing , which repeatedly generates cycle pulses with a machine cycle.

사이클 카운터(326)는, 로컬 사이클 생성부(325)가 생성한 머신 사이클수(예컨대 상기 사이클 펄스의 수)를 카운트한다.The cycle counter 326 counts the number of machine cycles generated by the local cycle generator 325 (for example, the number of cycle pulses).

(통신 컨트롤러)(communication controller)

컨트롤러측 타이밍 조정부(116), 통신 사이클 생성부(131), 사이클 카운터(132), 사이클 체크부(133) 및 스위치(134)는, 적어도 컨트롤러(100)와 통신 컨트롤러(200) 사이(컨트롤러(100) 내 및 통신 컨트롤러(200) 내를 포함함)에 마련되어 있으면 좋고, 반드시 컨트롤러(100)에 마련되어 있지 않아도 좋다. 이하, 컨트롤러측 타이밍 조정부, 통신 사이클 생성부, 사이클 카운터, 사이클 체크부 및 스위치가 통신 컨트롤러(200)에 마련되는 경우의 구성을 예시한다. 이 경우, 컨트롤러(100)는, 도 6에 나타내는 바와 같이, 컨트롤러측 타이밍 조정부(116), 통신 사이클 생성부(131), 사이클 카운터(132), 사이클 체크부(133) 및 스위치(134)를 갖지 않아도 좋다. 도 7에 나타내는 바와 같이, 통신 컨트롤러(200)는, 기능 블록으로서, 컨트롤러측 통신부(211)와, 머신측 통신부(212)와, 컨트롤러측 타이밍 조정부(213)를 갖는다.The controller-side timing adjustment unit 116, communication cycle generation unit 131, cycle counter 132, cycle check unit 133, and switch 134 are at least between the controller 100 and the communication controller 200 (controller ( 100) and within the communication controller 200). Hereinafter, a configuration in the case where the controller-side timing adjustment unit, communication cycle generation unit, cycle counter, cycle check unit, and switch are provided in the communication controller 200 will be exemplified. In this case, as shown in FIG. 6 , the controller 100 includes the controller-side timing adjustment unit 116, communication cycle generation unit 131, cycle counter 132, cycle check unit 133, and switch 134. It is better not to have it. As shown in FIG. 7 , the communication controller 200 has a controller-side communication unit 211, a machine-side communication unit 212, and a controller-side timing adjustment unit 213 as functional blocks.

컨트롤러측 통신부(211)는, 복수의 컨트롤러(100)의 각각으로부터, 유선 통신 네트워크(8)를 통해 머신 지령 또는 동기 통신 데이터를 수신하여, 컨트롤러(100)의 각각에 대하여, 유선 통신 네트워크(8)를 통해 응답 정보 또는 동기 통신 데이터를 송신한다.The controller-side communication unit 211 receives a machine command or synchronous communication data from each of the plurality of controllers 100 through the wired communication network 8, and sends the wired communication network 8 to each of the controllers 100. ) to transmit response information or synchronous communication data.

머신측 통신부(212)는, 복수의 로컬 컨트롤러(300)의 각각에 대하여, 무선 통신 네트워크(7)를 통해 머신 지령을 송신하고, 복수의 로컬 컨트롤러(300)의 각각으로부터, 무선 통신 네트워크(7)를 통해 응답 정보를 취득한다.The machine-side communication unit 212 transmits a machine command to each of the plurality of local controllers 300 via the wireless communication network 7, and from each of the plurality of local controllers 300, the wireless communication network 7 ) to obtain response information.

컨트롤러측 타이밍 조정부(213)는, 머신측 통신부(212)가 취득한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다. 제2 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다. 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것은, 상기 컨트롤 사이클에 있어서 사용 가능한 타이밍에 상기 응답 정보를 호출하는 것을 의미한다. 이 때문에, 상기 컨트롤 사이클에 있어서 사용되도록, 상기 컨트롤 사이클에 앞서 상기 응답 정보를 호출하는 것도, 상기 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것에 포함된다. 제2 사이클 정보가 상기 취득시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 제2 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하고, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 응답 정보를 호출한다.The controller-side timing adjustment unit 213 stores the response information acquired by the machine-side communication unit 212, and calls the response information in a control cycle corresponding to the second cycle information added to the response information. When the second cycle information is the number of cycles in use, the controller-side timing adjusting unit 213 calls the response information in a control cycle in which the number of control cycles is the number of cycles in use. Recalling the response information in a control cycle in which the number of control cycles is the number of cycles in use means calling the response information at a usable timing in the control cycle. For this reason, calling the response information prior to the control cycle so that it is used in the control cycle is included in calling the response information in the control cycle. When the second cycle information is the number of cycles at the time of acquisition, the controller-side timing adjusting unit 213 calculates the number of cycles in use based on the second cycle information (eg by adding a predetermined number), and calculates the number of control cycles as the number of cycles in use. In the number of control cycles, the response information is called.

컨트롤러측 통신부(211)는, 컨트롤러측 타이밍 조정부(213)가 호출한 응답 정보를, 대응하는 컨트롤러(100)에 대하여, 유선 통신 네트워크(8)를 통해 송신한다. 대응하는 컨트롤러(100)의 동기 통신부(114)는, 수신한 응답 정보를 수신 정보 기억부(112)에 저장한다. 이에 의해, 대응하는 컨트롤러(100)의 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(213)가 호출한 응답 정보에 기초하여, 모션 프로그램을 실행하게 된다.The controller-side communication unit 211 transmits the response information called by the controller-side timing adjustment unit 213 to the corresponding controller 100 via the wired communication network 8 . The synchronous communication unit 114 of the corresponding controller 100 stores the received response information in the reception information storage unit 112. Accordingly, the motion module 113 of the corresponding controller 100 executes a motion program based on the response information called by the controller-side timing adjusting unit 213.

통신 컨트롤러(200)는, 복수의 컨트롤러(100) 중 적어도 어느 하나의 컨트롤 사이클에 동기한 통신 사이클을 생성하도록 구성되어 있어도 좋다. 예컨대 통신 컨트롤러(200)는, 시각 생성부(221)와, 통신 사이클 생성부(222)와, 사이클 카운터(223)를 더 가져도 좋다.The communication controller 200 may be configured to generate a communication cycle synchronized with a control cycle of at least one of the plurality of controllers 100 . For example, the communication controller 200 may further include a time generator 221, a communication cycle generator 222, and a cycle counter 223.

시각 생성부(221)는, 상기 글로벌 시각에 동기하여 통신 서버 시각을 생성한다. 예컨대 시각 생성부(221)는, 유선 통신 네트워크(8)를 통한 TSN 통신 등, 시각 동기성을 보증하는 통신에 의해 컨트롤러측 통신부(211)가 시각 서버(5)로부터 수신한 글로벌 시각을 취득하고, 취득한 글로벌 시각에 동기하여 통신 서버 시각을 생성한다. 예컨대 컨트롤러측 시각 생성부(121)는, 타이머(296)(후술)가 카운트하는 시각을, 글로벌 시각에 맞춘다. 시각 서버(5)가 통신 서버(3)에 포함되는 경우, 시각 생성부(221)는, 글로벌 시각 자체를 통신 서버 시각으로 한다.The time generator 221 generates the communication server time in synchronism with the global time. For example, the time generator 221 obtains the global time received from the time server 5 by the controller-side communication unit 211 through communication that guarantees time synchronism, such as TSN communication via the wired communication network 8. , Synchronize with the acquired global time and generate the communication server time. For example, the controller side time generator 121 matches the time counted by the timer 296 (described later) to the global time. When the time server 5 is included in the communication server 3, the time generator 221 sets the global time itself as the communication server time.

통신 사이클 생성부(222)는, 복수의 컨트롤러(100) 중 적어도 어느 하나의 컨트롤 사이클에 동기한 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(222)는, 통신 서버 시각과, 복수의 컨트롤러(100) 중 적어도 어느 하나가 관할 로컬 컨트롤러(300)에 송신한 사이클 타이밍에 기초하여 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(222)는, 사이클 타이밍에 기초하여, 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트하고, 통신 서버 시각이 사익 개시 타이밍에 달한 시점부터, 통신 사이클로 사이클 펄스를 반복 생성한다. 또한, 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍은, 컨트롤 사이클의 개시 타이밍에 대하여 소정 기간(예컨대 컨트롤 사이클의 사이클 길이의 절반) 어긋난 개시 타이밍을 포함한다.The communication cycle generator 222 generates a communication cycle synchronized with the control cycle of at least one of the plurality of controllers 100 . For example, the communication cycle generator 222 generates a communication cycle based on the communication server time and the cycle timing transmitted from at least one of the plurality of controllers 100 to the local controller 300 in charge. For example, the communication cycle generation unit 222 sets the start timing synchronized with the control cycle start timing based on the cycle timing, and repeatedly generates cycle pulses in the communication cycle from the time when the communication server time reaches the start timing. . Also, the start timing synchronized with the start timing of the control cycle includes a start timing that is shifted from the control cycle start timing by a predetermined period (for example, half of the cycle length of the control cycle).

통신 사이클 생성부(222)는, 개시 타이밍의 셋트가 완료된 시점에, 셋트 완료 통지를 컨트롤러(100)에 송신하여도 좋다. 통신 사이클의 사이클 길이는, 컨트롤 사이클의 사이클 길이의 정수배(1배를 포함함)이다. 통신 사이클의 사이클 길이는, 컨트롤 사이클의 사이클 길이의 정수분의 1이어도 좋다.The communication cycle generation unit 222 may transmit a set completion notification to the controller 100 at the point in time when the start timing is set. The cycle length of the communication cycle is an integer multiple (including 1 time) of the cycle length of the control cycle. The cycle length of the communication cycle may be one integral of the cycle length of the control cycle.

사이클 카운터(223)는, 통신 사이클 생성부(222)가 생성한 통신 사이클수(예컨대 상기 사이클 펄스의 수)를 카운트한다. 통신 사이클은, 컨트롤 사이클에 동기하여 생성되기 때문에, 통신 사이클수에 기초하여 컨트롤 사이클수를 검지하는 것이 가능하다. 그래서 컨트롤러측 타이밍 조정부(213)는, 컨트롤 사이클수가 사용시 사이클수가 되는 컨트롤 사이클에 있어서 응답 정보를 호출하는 것을, 통신 사이클수에 기초하여 행하여도 좋다.The cycle counter 223 counts the number of communication cycles generated by the communication cycle generator 222 (for example, the number of cycle pulses). Since the communication cycle is generated synchronously with the control cycle, it is possible to detect the number of control cycles based on the number of communication cycles. Therefore, the controller-side timing adjusting unit 213 may call response information based on the number of communication cycles in a control cycle in which the number of control cycles becomes the number of cycles when used.

통신 컨트롤러(200)는, 상기 마스터 타이밍을 생성하도록 구성되어 있어도 좋다. 예컨대 통신 컨트롤러(200)는 타이밍 마스터(224)를 가져도 좋다. 타이밍 마스터(224)는, 통신 서버 시각에 기초하여 마스터 타이밍을 생성한다. 타이밍 마스터(224)는, 생성한 마스터 타이밍을, 유선 통신 네트워크(8)를 통해 복수의 컨트롤러(100) 중 적어도 하나에 송신한다.The communication controller 200 may be configured to generate the master timing. For example, the communication controller 200 may have a timing master 224 . Timing master 224 generates master timing based on the communication server time. The timing master 224 transmits the generated master timing to at least one of the plurality of controllers 100 via the wired communication network 8 .

통신 컨트롤러(200)가 타이밍 마스터(224)를 갖고, 복수의 컨트롤러(100) 중 적어도 하나가 마스터 타이밍에 기초하여 컨트롤 사이클을 생성하는 경우, 통신 사이클 생성부(222)는, 통신 서버 시각과, 마스터 타이밍에 기초하여 통신 사이클을 생성한다. 예컨대 통신 사이클 생성부(222)는, 마스터 타이밍에 기초하여 상기 개시 타이밍을 셋트하여도 좋다. 복수의 컨트롤러(100) 중 적어도 하나에 있어서의 컨트롤 사이클의 생성과, 통신 컨트롤러(200)에 있어서의 통신 사이클의 생성이, 동일한 마스터 타이밍에 기초하여 행해짐으로써, 통신 사이클이 상기 컨트롤 사이클에 동기한다.When the communication controller 200 has a timing master 224 and at least one of the plurality of controllers 100 generates a control cycle based on the master timing, the communication cycle generator 222 determines the communication server time, Generates communication cycles based on master timing. For example, the communication cycle generator 222 may set the start timing based on the master timing. Generation of a control cycle in at least one of the plurality of controllers 100 and generation of a communication cycle in the communication controller 200 are performed based on the same master timing, so that the communication cycle is synchronized with the control cycle. .

통신 컨트롤러(200)는, 머신 지령에 포함되는 제1 사이클 정보에 기초하여 상기 머신 지령의 송신 지연을 검출하도록 구성되어 있어도 좋다. 또한, 통신 컨트롤러(200)는, 응답 정보에 포함되는 제2 사이클 정보에 기초하여 상기 응답 정보의 수신 지연을 검출하도록 구성되어 있어도 좋다. 예컨대 통신 컨트롤러(200)는, 사이클 체크부(225)를 더 가져도 좋다.The communication controller 200 may be configured to detect a transmission delay of the machine command based on first cycle information included in the machine command. Further, the communication controller 200 may be configured to detect a reception delay of the response information based on the second cycle information included in the response information. For example, the communication controller 200 may further include a cycle check unit 225 .

사이클 체크부(225)는, 머신 지령에 포함되는 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출한다. 머신 지령의 송신 지연은, 로컬 컨트롤러(300)에 의한 머신 지령의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(225)는, 머신측 통신부(212)가 로컬 컨트롤러(300)에 머신 지령을 송신하기 전에, 현재의 통신 사이클수에 대응하는 컨트롤 사이클수가, 상기 머신 지령의 상기 사용시 사이클수 이상으로 되어 있는 경우에 머신 지령의 송신 지연을 검출한다.The cycle check unit 225 detects the transmission delay of the machine command based on the first cycle information included in the machine command. The transmission delay of the machine command means a delay of a level that does not match the call of the machine command by the local controller 300 . For example, the cycle check unit 225 determines that, before the machine side communication unit 212 transmits the machine command to the local controller 300, the number of control cycles corresponding to the current number of communication cycles is greater than or equal to the number of cycles during use of the machine command. If it is, the transmission delay of the machine command is detected.

사이클 체크부(225)는, 응답 정보에 포함되는 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하여도 좋다. 응답 정보의 수신 지연은, 컨트롤러측 타이밍 조정부(213)에 의한 응답 정보의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(225)는, 머신측 통신부(212)가 머신(4)으로부터 응답 정보를 수신한 후에, 현재의 통신 사이클수에 대응하는 컨트롤 사이클수가, 상기 응답 정보의 상기 사용시 사이클수 이상으로 되어 있는 경우에 응답 정보의 수신 지연을 검출한다.The cycle check unit 225 may detect a reception delay of the response information based on the second cycle information included in the response information. The reception delay of the response information means a delay of a level that does not match the call of the response information by the controller-side timing adjusting unit 213. For example, the cycle check unit 225 checks that, after the machine-side communication unit 212 receives the response information from the machine 4, the number of control cycles corresponding to the current number of communication cycles is greater than or equal to the number of used cycles of the response information. In this case, the reception delay of the response information is detected.

전술한 바와 같이, 통신 사이클은, 컨트롤 사이클에 동기하여 생성되기 때문에, 통신 사이클수에 기초하여 컨트롤 사이클수를 검지하는 것이 가능하다. 그래서 사이클 체크부(225)는, 머신 지령의 송신 지연을 제1 사이클 정보와 통신 사이클수에 기초하여 검출하고, 응답 정보의 수신 지연을 제2 사이클 정보와 통신 사이클수에 기초하여 검출하여도 좋다.As described above, since the communication cycle is generated synchronously with the control cycle, it is possible to detect the number of control cycles based on the number of communication cycles. Therefore, the cycle check section 225 may detect a transmission delay of the machine command based on the first cycle information and the number of communication cycles, and may detect a reception delay of the response information based on the second cycle information and the number of communication cycles. .

사이클 체크부(225)는, 머신 지령의 송신 지연을 검출한 경우에, 머신측 통신부(212)에 의한 상기 머신 지령의 송신을 캔슬하여도 좋다. 예컨대 사이클 체크부(225)는, 머신 지령의 송신 지연을 검출한 경우에, 머신측 통신부(212)에 의한 상기 머신 지령의 송신에 앞서, 상기 머신 지령을 파기한다. 사이클 체크부(225)는, 응답 정보의 수신 지연을 검출한 경우에, 상기 응답 정보를 파기하여도 좋다.The cycle check unit 225 may cancel transmission of the machine command by the machine-side communication unit 212 when a transmission delay of the machine command is detected. For example, when the cycle check unit 225 detects a transmission delay of the machine command, it discards the machine command prior to transmission of the machine command by the machine-side communication unit 212. The cycle check unit 225 may discard the response information when it detects a reception delay of the response information.

통신 컨트롤러(200)는, 컨트롤러(100)로부터 수신한 데이터가 관할 머신(4) 앞인지 다른 컨트롤러(100) 앞인지에 기초하여, 상기 데이터의 송신처를 전환하도록 구성되어 있어도 좋다. 이 경우, 컨트롤러(100)는, 통신 컨트롤러(200)에 송신하는 데이터에 그 수신처를 부가하도록 구성되어 있어도 좋다. 예컨대 통신 컨트롤러(200)는, 스위치(226)를 갖는다.The communication controller 200 may be configured to switch the transmission destination of the data based on whether the data received from the controller 100 is addressed to the competent machine 4 or another controller 100. In this case, the controller 100 may be configured to add a destination to the data to be transmitted to the communication controller 200. For example, the communication controller 200 has a switch 226 .

스위치(226)는, 컨트롤러측 통신부(211)가 하나의 컨트롤러(100)로부터 수신한 데이터가 관할 머신(4) 앞이면, 머신측 통신부(212)에 의해 무선 통신 네트워크(7)를 통해 관할 로컬 컨트롤러(300)에 상기 데이터를 송신시키고, 상기 데이터가 다른 컨트롤러(100) 앞이면, 컨트롤러측 통신부(211)에 의해 유선 통신 네트워크(8)를 통해, 상기 다른 컨트롤러(100)에 상기 데이터를 송신시킨다.The switch 226, if the data received by the controller-side communication unit 211 from one controller 100 is directed to the competent machine 4, the local jurisdiction through the wireless communication network 7 by the machine-side communication unit 212. The data is transmitted to the controller 300, and if the data is forwarded to the other controller 100, the controller-side communication unit 211 transmits the data to the other controller 100 through the wired communication network 8. let it

스위치(226)가, 컨트롤러측 통신부(211)에 의해 다른 컨트롤러(100)에 동기 통신 데이터를 송신시키는 경우, 컨트롤러측 타이밍 조정부(213)는, 동기 통신 데이터를 기억하여, 상기 동기 통신 데이터에 부가된 제1 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제1 사이클 정보가 상기 사용시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다. 제1 사이클 정보가 상기 부가시 사이클수인 경우, 컨트롤러측 타이밍 조정부(213)는, 제1 사이클 정보에 기초하여(예컨대 소정수를 가산하여) 사용시 사이클수를 산출하고, 컨트롤 사이클수가 상기 사용시 사이클수가 되는 컨트롤 사이클에 있어서 상기 동기 통신 데이터를 호출한다.When the switch 226 causes synchronous communication data to be transmitted to another controller 100 by the controller-side communication unit 211, the controller-side timing adjustment unit 213 stores the synchronous communication data and adds it to the synchronous communication data. The synchronous communication data is called in the control cycle corresponding to the first cycle information. When the first cycle information is the number of cycles in use, the controller-side timing adjusting unit 213 calls the synchronous communication data in a control cycle in which the number of control cycles is the number of cycles in use. When the first cycle information is the number of cycles at the time of addition, the controller-side timing adjustment unit 213 calculates the number of cycles in use based on the first cycle information (for example, by adding a predetermined number), and the number of control cycles is the number of cycles in use. In the number of control cycles, the synchronous communication data is called.

컨트롤러측 통신부(211)는, 컨트롤러측 타이밍 조정부(213)가 호출한 동기 통신 데이터를, 그 수신처인 다른 컨트롤러(100)에 대하여, 유선 통신 네트워크(8)를 통해 송신한다. 다른 컨트롤러(100)의 동기 통신부(114)는, 수신한 동기 통신 데이터를 수신 정보 기억부(112)에 저장한다. 이에 의해, 다른 컨트롤러(100)의 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(213)가 호출한 동기 통신 데이터에 기초하여, 모션 프로그램을 실행하게 된다.The controller-side communication unit 211 transmits the synchronous communication data called by the controller-side timing adjustment unit 213 to another controller 100 as a destination via the wired communication network 8. The synchronous communication unit 114 of the other controller 100 stores the received synchronous communication data in the reception information storage unit 112 . As a result, the motion module 113 of the other controller 100 executes a motion program based on the synchronous communication data called by the controller-side timing adjustment unit 213.

컨트롤러측 통신부(211)가 컨트롤러(100)로부터 수신하는 데이터가, 다른 컨트롤러(100) 앞의 동기 통신 데이터를 포함하는 경우, 사이클 체크부(225)는, 동기 통신 데이터에 포함되는 제1 사이클 정보에 기초하여, 상기 동기 통신 데이터의 수신 지연을 검출하여도 좋다. 동기 통신 데이터의 수신 지연은, 컨트롤러측 타이밍 조정부(213)에 의한 동기 통신 데이터의 호출에 맞추지 못한 레벨의 지연을 의미한다. 예컨대 사이클 체크부(225)는, 컨트롤러측 통신부(211)가 컨트롤러(100)로부터 동기 통신 데이터를 수신한 후에, 현재의 통신 사이클수에 대응하는 컨트롤 사이클수가, 상기 동기 통신 데이터의 상기 사용시 사이클수 이상으로 되어 있는 경우에 동기 통신 데이터의 수신 지연을 검출한다. 사이클 체크부(225)는, 동기 통신 데이터의 수신 지연을 검출한 경우에, 상기 동기 통신 데이터를 파기하여도 좋다.When the data received by the controller-side communication unit 211 from the controller 100 includes synchronous communication data addressed to another controller 100, the cycle check unit 225 determines the first cycle information included in the synchronous communication data. Based on this, the reception delay of the synchronous communication data may be detected. The reception delay of the synchronous communication data means a delay at a level that does not match the calling of the synchronous communication data by the controller-side timing adjustment unit 213. For example, the cycle check unit 225 determines, after the controller side communication unit 211 receives the synchronous communication data from the controller 100, the number of control cycles corresponding to the current number of communication cycles is the number of use cycles of the synchronous communication data. In the case of an abnormality, the reception delay of synchronous communication data is detected. The cycle check unit 225 may discard the synchronous communication data when it detects a reception delay of the synchronous communication data.

도 8은 컨트롤러 서버(2), 통신 컨트롤러(200) 및 로컬 컨트롤러(300)의 하드웨어 구성을 예시하는 블록도이다. 도 8에 나타내는 바와 같이, 컨트롤러 서버(2)는, 회로(190)를 갖는다. 회로(190)는, 프로세서(191)와, 메모리(192)와, 스토리지(193)와, 유선 통신 포트(194)와, 타이머(195)를 갖는다. 회로(190)가 갖는 각 구성 요소의 수는 하나에 한정되지 않는다.8 is a block diagram illustrating the hardware configuration of the controller server 2, the communication controller 200 and the local controller 300. As shown in FIG. 8 , the controller server 2 has a circuit 190 . The circuit 190 has a processor 191 , a memory 192 , a storage 193 , a wired communication port 194 , and a timer 195 . The number of each component of the circuit 190 is not limited to one.

스토리지(193)는, 관할 머신(4)이 송신한 응답 정보를, 유선 통신 네트워크(8)를 통해 통신 서버(3)로부터 수신하는 것과, 수신한 응답 정보에 기초하여 모션 프로그램을 실행하여, 관할 머신(4)에 대한 머신 지령을 생성하는 것과, 머신 지령을, 유선 통신 네트워크(8)를 통해 통신 서버(3)에 송신하는 것을 컨트롤러 서버(2)에 실행시키는 프로그램을 기억하고 있다. 상기 프로그램이 컨트롤러 서버(2)에 실행시키는 제어 방법은, 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것을 더 포함하여도 좋다. 이 경우, 수신한 응답 정보에 기초하여 모션 프로그램을 실행하는 것은, 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 호출한 응답 정보에 기초하여 모션 프로그램을 실행하는 것을 포함한다. 예컨대 스토리지(193)는, 전술한 컨트롤러(100)의 각 기능 블록을 컨트롤러 서버(2)에 구성시키기 위한 프로그램을 기억하고 있다.The storage 193 receives the response information transmitted by the competent machine 4 from the communication server 3 via the wired communication network 8, and executes a motion program based on the received response information, A program for causing the controller server 2 to execute generating machine commands for the machine 4 and transmitting the machine commands to the communication server 3 via the wired communication network 8 is stored. The control method that the program causes the controller server 2 to execute further comprises: storing the received response information and calling the response information in a control cycle corresponding to the second cycle information added to the response information; also good In this case, executing the motion program based on the received response information includes executing the motion program based on the response information called in the control cycle corresponding to the second cycle information. For example, the storage 193 stores programs for configuring the controller server 2 with each functional block of the controller 100 described above.

메모리(192)는, 스토리지(193)로부터 로드한 프로그램 등을 일시적으로 기억한다. 프로세서(191)는, 연산 결과를 메모리(192)에 일시적으로 기억하면서, 메모리(192)에 로드된 프로그램을 실행한다. 유선 통신 포트(194)는, 프로세서(191)로부터의 지령에 따라, 유선 통신 네트워크(8)를 통해 통신 컨트롤러(200)와 통신한다. 타이머(195)는, 클록 펄스의 카운트에 의해 경과 시간을 계측한다.The memory 192 temporarily stores programs and the like loaded from the storage 193 . Processor 191 executes the program loaded into memory 192 while temporarily storing calculation results in memory 192 . The wired communication port 194 communicates with the communication controller 200 through the wired communication network 8 according to instructions from the processor 191 . The timer 195 measures elapsed time by counting clock pulses.

통신 컨트롤러(200)는, 회로(290)를 갖는다. 회로(290)는, 프로세서(291)와, 메모리(292)와, 스토리지(293)와, 유선 통신 포트(294)와, 무선 통신 포트(295)와, 타이머(296)를 갖는다.The communication controller 200 has a circuit 290 . The circuit 290 has a processor 291 , a memory 292 , a storage 293 , a wired communication port 294 , a wireless communication port 295 , and a timer 296 .

스토리지(293)는, 복수의 컨트롤러(100)의 각각으로부터, 유선 통신 네트워크(8)를 통해 머신 지령을 수신하는 것과, 복수의 머신(4)의 각각에 대하여, 무선 통신 네트워크(7)를 통해 머신 지령을 송신하는 것과, 복수의 머신(4)의 각각으로부터, 무선 통신 네트워크(7)를 통해 응답 정보를 수신하는 것과, 복수의 컨트롤러(100)의 각각에 대하여, 유선 통신 네트워크(8)를 통해 응답 정보를 송신하는 것을 포함하는 통신 방법을 통신 컨트롤러(200)에 실행시키는 프로그램을 기억하고 있다. 상기 프로그램이 통신 컨트롤러(200)에 실행시키는 통신 방법은, 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것을 더 포함하여도 좋다. 이 경우, 유선 통신 네트워크(8)를 통해 응답 정보를 송신하는 것은, 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 호출한 응답 정보를 송신하는 것을 포함한다. 예컨대 스토리지(293)는, 전술한 각 기능 블록을 통신 컨트롤러(200)에 구성시키기 위한 프로그램을 기억하고 있다.The storage 293 receives machine commands from each of the plurality of controllers 100 through the wired communication network 8, and for each of the plurality of machines 4 through the wireless communication network 7. Sending machine commands, receiving response information from each of the plurality of machines 4 through the wireless communication network 7, and transmitting the wired communication network 8 to each of the plurality of controllers 100 A program for causing the communication controller 200 to execute a communication method including transmitting response information via The communication method that the program causes the communication controller 200 to execute further comprises: storing the received response information and calling the response information in a control cycle corresponding to the second cycle information added to the response information; also good In this case, transmitting the response information via the wired communication network 8 includes transmitting the response information called in the control cycle corresponding to the second cycle information. For example, the storage 293 stores programs for configuring each of the aforementioned functional blocks in the communication controller 200 .

메모리(292)는, 스토리지(293)로부터 로드한 프로그램 등을 일시적으로 기억한다. 프로세서(291)는, 연산 결과를 메모리(292)에 일시적으로 기억하면서, 메모리(292)에 로드된 프로그램을 실행한다. 유선 통신 포트(294)는, 프로세서(291)로부터의 지령에 따라, 유선 통신 네트워크(8)를 통해 컨트롤러 서버(2)와 통신한다. 무선 통신 포트(295)는, 프로세서(291)로부터의 지령에 따라, 무선 통신 기지국(201) 및 무선 통신 단말(301)을 통해 로컬 컨트롤러(300)와 통신한다. 타이머(296)는, 클록 펄스의 카운트에 의해 경과 시간을 계측한다.The memory 292 temporarily stores programs and the like loaded from the storage 293 . Processor 291 executes the program loaded into memory 292 while temporarily storing calculation results in memory 292 . The wired communication port 294 communicates with the controller server 2 through the wired communication network 8 according to instructions from the processor 291 . The wireless communication port 295 communicates with the local controller 300 through the wireless communication base station 201 and the wireless communication terminal 301 according to instructions from the processor 291 . The timer 296 measures elapsed time by counting clock pulses.

로컬 컨트롤러(300)는, 회로(390)를 갖는다. 회로(390)는, 프로세서(391)와, 메모리(392)와, 스토리지(393)와, 무선 통신 포트(394)와, 타이머(395)와, 드라이버 회로(396)를 갖는다.The local controller 300 has a circuit 390 . The circuit 390 has a processor 391 , a memory 392 , a storage 393 , a wireless communication port 394 , a timer 395 , and a driver circuit 396 .

스토리지(393)는, 통신 서버(3)를 통해 머신 지령을 수신하는 것과, 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키는 것을 포함하는 제어 방법을 로컬 컨트롤러(300)에 실행시키는 프로그램을 기억하고 있다. 상기 프로그램이 로컬 컨트롤러(300)에 실행시키는 제어 방법은, 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 것을 더 포함하고 있어도 좋다. 이 경우, 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키는 것은, 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 호출한 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키는 것을 포함한다. 예컨대 로컬 컨트롤러(300)는, 전술한 각 기능 블록을 로컬 컨트롤러(300)에 구성시키기 위한 프로그램을 기억하고 있다.The storage 393 causes the local controller 300 to execute a control method including receiving a machine command via the communication server 3 and realizing a motion in the machine main body 10 based on the machine command. I remember the program. The control method causing the program to be executed by the local controller 300 further includes storing the received machine command and calling the machine command in a machine-side control cycle corresponding to first cycle information added to the machine command. may contain In this case, realizing the motion of the machine body 10 based on the machine command causes the motion of the machine body 10 to be realized based on the machine command called in the machine-side control cycle corresponding to the first cycle information. including realizing For example, the local controller 300 stores programs for configuring each of the aforementioned functional blocks in the local controller 300 .

메모리(392)는, 스토리지(393)로부터 로드한 프로그램 등을 일시적으로 기억한다. 프로세서(391)는, 연산 결과를 메모리(392)에 일시적으로 기억하면서, 메모리(392)에 로드된 프로그램을 실행한다. 무선 통신 포트(394)는, 프로세서(391)로부터의 지령에 따라, 무선 통신 단말(301) 및 무선 통신 기지국(201)을 통해 통신 컨트롤러(200)와 통신한다. 타이머(395)는, 클록 펄스의 카운트에 의해 경과 시간을 계측한다. 드라이버 회로(396)는, 프로세서(391)로부터의 지령에 따라 머신 본체(10)에 구동 전력을 공급한다.The memory 392 temporarily stores programs and the like loaded from the storage 393 . The processor 391 executes the program loaded into the memory 392 while temporarily storing the calculation result in the memory 392 . The wireless communication port 394 communicates with the communication controller 200 through the wireless communication terminal 301 and the wireless communication base station 201 according to instructions from the processor 391 . The timer 395 measures elapsed time by counting clock pulses. The driver circuit 396 supplies driving power to the machine body 10 according to a command from the processor 391 .

〔머신 제어 순서〕[Machine Control Procedure]

계속해서, 머신 제어 방법의 일례로서, 머신 제어 시스템(1)이 실행하는 머신 제어 순서를 예시한다. 이 순서는, 컨트롤 사이클, 통신 사이클 등의 사이클 생성 순서와, 생성한 사이클에서의 머신 제어 순서를 포함한다.Subsequently, as an example of the machine control method, a machine control procedure executed by the machine control system 1 is exemplified. This sequence includes cycle generation sequences such as control cycles and communication cycles, and machine control sequences in the generated cycles.

(사이클 생성 순서의 개요)(Overview of Cycle Creation Sequence)

사이클 생성 순서는, 컨트롤러(100)가, 컨트롤 사이클을 생성하는 것과, 로컬 컨트롤러(300)가, 상기 컨트롤 사이클에 동기한 머신측 컨트롤 사이클을 생성하는 것을 포함한다.The cycle generation sequence includes the controller 100 generating a control cycle, and the local controller 300 generating a machine-side control cycle synchronized with the control cycle.

도 9는 사이클 생성 순서의 개요를 예시하는 타이밍 차트이며, 각 차트의 횡축은 경과 시간을 나타낸다. (i)은 시각 서버(5)에 있어서의 정보 처리 타이밍을 나타내고, (ii)는 컨트롤러(100)에 있어서의 컨트롤 사이클 생성의 정보 처리 타이밍을 나타내고, (iii)은 컨트롤러(100)에 있어서의 통신 사이클 생성의 정보 처리 타이밍을 나타내고, (iv)는 무선 통신 단말(301)에 있어서의 정보 처리 타이밍을 나타내고, (v)는 로컬 컨트롤러(300)에 있어서의 정보 타이밍을 나타낸다.Fig. 9 is a timing chart illustrating an outline of the cycle generation sequence, and the horizontal axis of each chart represents the elapsed time. (i) shows the information processing timing in the time server 5, (ii) shows the information processing timing of control cycle generation in the controller 100, (iii) shows the information processing timing in the controller 100 Information processing timing for generating a communication cycle is shown, (iv) shows information processing timing in the radio communication terminal 301, and (v) shows information processing timing in the local controller 300.

먼저, 시각(pt1)에 있어서, 시각 서버(5)가 글로벌 시각을 컨트롤러(100)에 송신한다. 컨트롤러(100)는, 시각(pt2)에 있어서 글로벌 시각을 수신하여, 수신한 글로벌 시각에 동기한 컨트롤러측 시각을 생성한다. 무선 통신 단말(301)은, 시각(pt5)에 있어서 글로벌 시각을 수신하고, 로컬 컨트롤러(300)는, 무선 통신 단말(301)이 수신한 글로벌 시각에 동기한 머신측 시각을 시각(pt6)에 있어서 생성한다.First, at time pt1, the time server 5 transmits the global time to the controller 100. The controller 100 receives the global time at time pt2 and generates the controller side time synchronized with the received global time. The wireless communication terminal 301 receives the global time at time pt5, and the local controller 300 sets the machine side time synchronized with the global time received by the wireless communication terminal 301 to the time pt6. create in

컨트롤러(100)는, 컨트롤러측 시각에 기초하여 컨트롤 사이클의 개시 타이밍을 시각(pt11)로 셋트하고, 통신 사이클의 개시 타이밍을 시각(pt12)로 셋트한다. 무선 통신 단말(301)은, 시각(pt13)에 있어서 무선 통신 기지국(201)을 통해 통신 컨트롤러(200)로부터 사이클 타이밍을 수신하고, 로컬 컨트롤러(300)는, 무선 통신 단말(301)이 수신한 사이클 타이밍에 기초하여, 시각(pt14)에 있어서 상기 개시 타이밍에 일치하는 개시 타이밍을 셋트한다.The controller 100 sets the control cycle start timing to time pt11 based on the controller side time, and sets the communication cycle start timing to time pt12. The wireless communication terminal 301 receives cycle timing from the communication controller 200 via the wireless communication base station 201 at time pt13, and the local controller 300 receives the cycle timing from the wireless communication terminal 301. Based on the cycle timing, the start timing coincident with the above start timing is set at time pt14.

그 후, 컨트롤러(100)는, 상기 개시 타이밍에 해당하는 시각(pt21)에 있어서 컨트롤 사이클(c1)의 생성을 개시하고, 상기 개시 타이밍에 해당하는 시각(pt22)에 있어서 통신 사이클(c2)의 생성을 개시하고, 로컬 컨트롤러(300)는, 상기 개시 타이밍에 해당하는 시각(pt23)에 있어서 컨트롤 사이클(c3)의 생성을 개시한다. 이상으로 사이클 생성 순서가 완료된다.After that, the controller 100 starts generating the control cycle c1 at the time point pt21 corresponding to the start timing, and starts generating the communication cycle c2 at the time point pt22 corresponding to the start timing. Generation is started, and the local controller 300 starts generation of the control cycle (c3) at a time point (pt23) corresponding to the start timing. With the above, the cycle generation sequence is completed.

이하, 사이클 생성 순서에 있어서 컨트롤러(100)가 실행하는 컨트롤 사이클 및 통신 사이클 생성 순서와, 로컬 컨트롤러(300)가 실행하는 컨트롤 사이클 생성 순서를 각각 상세하게 예시한다.Hereinafter, in the cycle generation sequence, the control cycle and communication cycle generation sequence executed by the controller 100 and the control cycle generation sequence executed by the local controller 300 are exemplified in detail.

(컨트롤러에 있어서의 사이클 생성 순서)(Cycle generation sequence in the controller)

도 10은 컨트롤러(100)에 있어서의 사이클 생성 순서를 예시하는 흐름도이다. 도 10에 나타내는 바와 같이, 컨트롤러(100)는, 먼저 단계 S01, S02, S03, S04, S05를 실행한다. 단계 S01에서는, 컨트롤러측 시각 생성부(121)가, 동기 통신부(114)에 의한 글로벌 시각의 수신을 대기한다. 단계 S02에서는, 컨트롤러측 시각 생성부(121)가, 동기 통신부(114)가 수신한 글로벌 시각에 동기하여 컨트롤러측 시각을 생성한다. 단계 S03에서는, 컨트롤러측 사이클 생성부(122)가, 컨트롤러측 시각에 기초하여, 컨트롤 사이클의 개시 타이밍을 셋트한다. 또한, 통신 사이클 생성부(131)가, 컨트롤러측 시각에 기초하여, 통신 사이클의 개시 타이밍을 셋트한다. 단계 S04에서는, 컨트롤러측 사이클 생성부(122)가, 컨트롤 사이클의 개시 플래그를 「개시 불가」로 한다. 단계 S05에서는, 타이밍 송신부(123)가, 컨트롤 사이클의 사이클 타이밍(예컨대 상기 개시 타이밍)을, 통신 서버(3)를 통해 관할 로컬 컨트롤러(300)에 송신한다. 타이밍 송신부(123)는, 사이클 타이밍을 마스터 타이밍으로서 다른 컨트롤러(100)에 송신하여도 좋다.10 is a flowchart illustrating a cycle generation procedure in the controller 100. As shown in Fig. 10, the controller 100 first executes steps S01, S02, S03, S04, and S05. In step S01, the controller side time generator 121 waits for reception of the global time by the synchronous communication unit 114. In step S02, the controller-side time generating unit 121 generates the controller-side time in synchronism with the global time received by the synchronous communication unit 114. In step S03, the controller-side cycle generation unit 122 sets the control cycle start timing based on the controller-side time. Further, the communication cycle generation unit 131 sets the start timing of the communication cycle based on the time on the controller side. In step S04, the controller-side cycle generation unit 122 sets the start flag of the control cycle to "not start". In step S05, the timing transmitter 123 transmits the cycle timing of the control cycle (eg, the start timing) to the local controller 300 having jurisdiction over the communication server 3. The timing transmitter 123 may transmit the cycle timing to other controllers 100 as master timing.

다음에, 컨트롤러(100)는 단계 S06을 실행한다. 단계 S06에서는, 타이밍 송신부(123)가, 관할 로컬 컨트롤러(300)로부터의 셋트 완료 통지를 수신하였는지의 여부를 확인한다. 단계 S06에 있어서, 로컬 컨트롤러(300)로부터 셋트 완료 통지를 수신하였다고 판정한 경우, 컨트롤러(100)는 단계 S07을 실행한다. 단계 S07에서는, 컨트롤러측 사이클 생성부(122)가, 컨트롤 사이클의 개시 플래그를 「개시 가능」으로 한다.Next, the controller 100 executes step S06. In step S06, the timing transmission unit 123 checks whether or not a setting completion notification has been received from the local controller 300 in charge. In step S06, when it is determined that a setting completion notification has been received from the local controller 300, the controller 100 executes step S07. In step S07, the controller-side cycle generation unit 122 sets the start flag of the control cycle to "startable".

다음에, 컨트롤러(100)는 단계 S08을 실행한다. 단계 S06에 있어서, 관할 로컬 컨트롤러(300)로부터 셋트 완료 통지를 수신하지 못하였다고 판정한 경우, 컨트롤러(100)는, 단계 S07을 실행하는 일없이 단계 S08을 실행한다. 단계 S08에서는, 컨트롤러측 사이클 생성부(122)가, 컨트롤측 시각이 개시 타이밍에 달하였는지를 확인한다.Next, the controller 100 executes step S08. In step S06, if it is determined that a setting completion notification has not been received from the competent local controller 300, the controller 100 executes step S08 without executing step S07. In step S08, the controller-side cycle generator 122 checks whether the control-side time has reached the start timing.

단계 S08에 있어서, 컨트롤측 시각이 개시 타이밍에 달하지 않았다고 판정한 경우, 컨트롤러(100)는 처리를 단계 S06으로 되돌린다. 이후, 컨트롤측 시각이 개시 타이밍에 달할 때까지, 셋트 완료 통지의 수신 확인이 반복된다.In step S08, if it is determined that the time on the control side has not reached the start timing, the controller 100 returns the process to step S06. Thereafter, acknowledgment of the set completion notification is repeated until the time on the control side reaches the start timing.

단계 S08에 있어서, 컨트롤측 시각이 개시 타이밍에 달하였다고 판정한 경우, 컨트롤러(100)는, 단계 S09를 실행한다. 단계 S09에서는, 컨트롤러측 사이클 생성부(122)가, 개시 플래그가 「개시 가능」인지의 여부를 확인한다.In step S08, when it is determined that the time on the control side has reached the start timing, the controller 100 executes step S09. In step S09, the controller-side cycle generating unit 122 checks whether or not the start flag is "startable".

단계 S09에 있어서, 개시 플래그가「개시 가능」이 아니라고 판정한 경우, 컨트롤러(100)는 처리를 단계 S03으로 되돌린다. 이에 의해, 개시 타이밍의 셋트 이후의 처리가 재차 실행된다. 단계 S09에 있어서, 개시 플래그가 「개시 가능」이라고 판정한 경우, 컨트롤러(100)는 단계 S11을 실행한다. 단계 S11에서는, 컨트롤러측 사이클 생성부(122)가 컨트롤 사이클의 생성을 개시하고, 타이밍 송신부(123)가 컨트롤 사이클수의 카운트를 개시한다. 또한, 통신 사이클 생성부(131)가 통신 사이클의 생성을 개시하고, 사이클 카운터(132)가 통신 사이클의 카운트를 개시한다. 이상으로 컨트롤러(100)에 있어서의 컨트롤 사이클의 생성 순서가 완료된다. 또한, 단계 S11에 있어서, 통신 사이클 생성부(131)는, 컨트롤러측 사이클 생성부(122)에 의한 컨트롤 사이클의 생성 개시와 어긋난 타이밍에 통신 사이클의 생성을 개시하여도 좋다.In step S09, if it is determined that the start flag is not "startable", the controller 100 returns the process to step S03. In this way, the processing after the start timing is set is executed again. In step S09, when it is determined that the start flag is "startable", the controller 100 executes step S11. In step S11, the controller-side cycle generator 122 starts generating control cycles, and the timing transmitter 123 starts counting the number of control cycles. In addition, the communication cycle generator 131 starts generating a communication cycle, and the cycle counter 132 starts counting the communication cycle. With the above, the control cycle generation procedure in the controller 100 is completed. Further, in step S11, the communication cycle generation unit 131 may start generation of the communication cycle at a timing different from the start of generation of the control cycle by the controller side cycle generation unit 122.

(로컬 컨트롤러에 있어서의 컨트롤 사이클 생성 순서)(Control cycle generation sequence in the local controller)

도 11은 로컬 컨트롤러(300)에 있어서의 사이클 생성 순서를 예시하는 흐름도이다. 도 11에 나타내는 바와 같이, 로컬 컨트롤러(300)는, 먼저 단계 S31, S32, S33을 실행한다. 단계 S31에서는, 머신측 시각 생성부(321)가, 단말 통신부(314)에 의한 글로벌 시각의 수신을 대기한다. 단계 S32에서는, 머신측 시각 생성부(321)가, 단말 통신부(314)가 수신한 글로벌 시각에 동기하여 머신측 시각을 생성한다. 단계 S33에서는, 머신측 사이클 생성부(322)가, 대응하는 컨트롤러(100)가 송신한 사이클 타이밍(예컨대 상기 개시 타이밍)을 단말 통신부(314)가 수신하는 것을 대기한다.11 is a flowchart illustrating a cycle generation procedure in the local controller 300. As shown in Fig. 11, the local controller 300 first executes steps S31, S32, and S33. In step S31, the machine-side time generator 321 waits for reception of the global time by the terminal communication unit 314. In step S32, the machine-side time generating unit 321 generates the machine-side time in synchronism with the global time received by the terminal communication unit 314. In step S33, the machine-side cycle generator 322 waits for the terminal communication unit 314 to receive the cycle timing (eg, the start timing) transmitted by the corresponding controller 100.

다음에, 로컬 컨트롤러(300)는 단계 S34, S35, S36, S37, S38을 실행한다. 단계 S34에서는, 머신측 사이클 생성부(322)가, 단말 통신부(314)가 수신한 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클의 개시 타이밍에 동기한 개시 타이밍을 셋트한다. 단계 S35에서는, 머신측 사이클 생성부(322)가, 셋트 완료 통지를 컨트롤러(100)에 송신한다. 단계 S36에서는, 머신측 사이클 생성부(322)가, 머신측 시각이 개시 타이밍에 달하는 것을 대기한다. 단계 S37에서는, 머신측 사이클 생성부(322)가 머신측 컨트롤 사이클의 생성을 개시하고, 사이클 카운터(323)가 컨트롤 사이클수의 카운트를 개시한다. 단계 S38에서는, 로컬 사이클 생성부(325)가 머신 사이클의 생성을 개시하고, 사이클 카운터(326)가 머신 사이클수의 카운트를 개시한다. 이상으로 로컬 컨트롤러(300)에 있어서의 컨트롤 사이클의 생성 순서가 완료된다.Next, the local controller 300 executes steps S34, S35, S36, S37 and S38. In step S34, based on the cycle timing received by the terminal communication unit 314, the machine-side cycle generator 322 sets the start timing synchronized with the start timing of the control cycle in the corresponding controller 100. . In step S35, the machine-side cycle generator 322 transmits a setting completion notification to the controller 100. In step S36, the machine-side cycle generator 322 waits for the machine-side time to reach the start timing. In step S37, the machine-side cycle generator 322 starts generating machine-side control cycles, and the cycle counter 323 starts counting the number of control cycles. In step S38, the local cycle generator 325 starts generating machine cycles, and the cycle counter 326 starts counting the number of machine cycles. In the above, the control cycle generation procedure in the local controller 300 is completed.

(사이클 생성 순서의 변형예)(Modified example of cycle generation sequence)

전술한 바와 같이, 컨트롤러(100)는, 유선 통신 네트워크(8)를 통해 마스터 타이밍을 취득하고, 취득한 마스터 타이밍과, 컨트롤러측 시각에 기초하여 컨트롤 사이클을 생성하여도 좋다. 도 12는 마스터 타이밍에 기초한 사이클 생성 순서를 나타내는 흐름도이다. 도 12에 나타내는 바와 같이, 컨트롤러(100)는, 먼저 단계 S51, S52, S53을 실행한다. 단계 S51에서는, 컨트롤러측 시각 생성부(121)가, 동기 통신부(114)에 의한 글로벌 시각의 수신을 대기한다. 단계 S52에서는, 컨트롤러측 시각 생성부(121)가, 동기 통신부(114)가 수신한 글로벌 시각에 동기하여 컨트롤러측 시각을 생성한다. 단계 S53에서는, 컨트롤러측 사이클 생성부(122)가, 마스터 타이밍을 동기 통신부(114)가 수신하는 것을 대기한다.As described above, the controller 100 may acquire the master timing via the wired communication network 8 and generate a control cycle based on the acquired master timing and the controller side time. 12 is a flowchart showing a cycle generation sequence based on master timing. As shown in Fig. 12, the controller 100 first executes steps S51, S52, and S53. In step S51, the controller-side time generator 121 waits for reception of the global time by the synchronous communication unit 114. In step S52, the controller-side time generating unit 121 generates the controller-side time in synchronism with the global time received by the synchronous communication unit 114. In step S53, the controller-side cycle generating unit 122 waits for the synchronous communication unit 114 to receive the master timing.

다음에, 컨트롤러(100)는 단계 S55, S56, S57, S58을 실행한다. 단계 S55에서는, 컨트롤러측 사이클 생성부(122)가, 마스터 타이밍에 동기한 개시 타이밍을 셋트한다. 단계 S56에서는, 컨트롤러측 사이클 생성부(122)가, 셋트 완료 통지를 통신 컨트롤러(200)에 송신한다. 단계 S57에서는, 컨트롤러측 사이클 생성부(122)가, 컨트롤러측 시각이 개시 타이밍에 달하는 것을 대기한다. 단계 S58에서는, 컨트롤러측 사이클 생성부(122)가 컨트롤러 사이클의 생성을 개시하고, 타이밍 송신부(123)가 컨트롤 사이클수의 카운트를 개시한다. 이상으로 컨트롤러(100)에 있어서의 컨트롤 사이클의 생성 순서가 완료된다.Next, the controller 100 executes steps S55, S56, S57 and S58. In step S55, the controller side cycle generator 122 sets the start timing synchronized with the master timing. In step S56, the controller-side cycle generation unit 122 transmits a set completion notification to the communication controller 200. In step S57, the controller-side cycle generation unit 122 waits for the controller-side time to reach the start timing. In step S58, the controller-side cycle generator 122 starts generating controller cycles, and the timing transmitter 123 starts counting the number of control cycles. With the above, the control cycle generation procedure in the controller 100 is completed.

(머신 제어 순서의 개요)(Overview of Machine Control Sequences)

머신 제어 순서는, 컨트롤러(100)가, 컨트롤 사이클로 모션 프로그램을 실행하여, 관할 머신(4)에 대한 머신 지령을 생성하는 것과, 머신 지령에 제1 사이클 정보를 부가하는 것과, 머신 지령을 통신 컨트롤러(200)에 송신하는 것과, 통신 컨트롤러(200)가, 머신 지령을 수신하는 것과, 관할 로컬 컨트롤러(300)에 머신 지령을 송신하는 것과, 관할 로컬 컨트롤러(300)가, 통신 컨트롤러(200)로부터 머신 지령을 수신하는 것과, 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 것과, 호출한 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키는 것을 포함한다.The machine control procedure is that the controller 100 executes a motion program with a control cycle to generate a machine command for the machine 4 under its control, adds first cycle information to the machine command, and transmits the machine command to a communication controller. 200, the communication controller 200 receiving the machine command, sending the machine command to the competent local controller 300, and the competent local controller 300 receiving the machine command from the communication controller 200. Receiving a machine command, storing the received machine command, and calling the machine command in a machine-side control cycle corresponding to the first cycle information added to the machine command, and based on the called machine command, It includes realizing motion in the machine body 10.

또한, 머신 제어 순서는, 로컬 컨트롤러(300)가, 머신 본체(10)가 실현한 모션에 기초한 응답 정보를 취득하는 것과, 응답 정보에 제2 사이클 정보를 부가하는 것과, 통신 컨트롤러(200)에 응답 정보를 송신하는 것과, 통신 컨트롤러(200) 또는 컨트롤러(100)가, 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것과, 호출한 상기 응답 정보에 기초하여 컨트롤러(100)가 모션 프로그램을 실행하는 것을 더 포함하여도 좋다.In addition, the machine control procedure includes acquiring response information based on the motion realized by the machine body 10 by the local controller 300, adding second cycle information to the response information, and sending information to the communication controller 200. Transmitting response information, and the communication controller 200 or controller 100 storing the received response information and calling the response information in a control cycle corresponding to the second cycle information added to the response information. and, based on the called response information, the controller 100 may further include executing a motion program.

도 13은 머신 제어 순서의 개요를 예시하는 타이밍 차트이며, 각 차트의 횡축은 경과 시간을 나타낸다. (i)은 모션 모듈(113)에 있어서의 정보 처리 타이밍을 나타내고, (ii)는 동기 통신부(114)에 있어서의 정보 처리 타이밍을 나타내고, (iii)은 컨트롤러측 타이밍 조정부(116)에 있어서의 정보 처리 타이밍을 나타내고, (iv)는 단말 통신부(314)에 있어서의 정보 처리 타이밍을 나타내고, (v)는 머신측 타이밍 조정부(315)에 있어서의 정보 처리 타이밍을 나타내고, (vi)은 머신 제어부(313)에 있어서의 정보 처리 타이밍을 나타내고 있다.Fig. 13 is a timing chart illustrating the outline of machine control procedures, and the horizontal axis of each chart represents elapsed time. (i) shows the information processing timing in the motion module 113, (ii) shows the information processing timing in the synchronous communication section 114, and (iii) shows the information processing timing in the controller side timing adjustment section 116 Indicates the information processing timing, (iv) indicates the information processing timing in the terminal communication section 314, (v) indicates the information processing timing in the machine side timing adjustment section 315, and (vi) indicates the machine control section Information processing timing in 313 is shown.

도 13에 있어서, 사이클(c11, c12, c13)은, 컨트롤러측 사이클 생성부(122)가 순차 생성하는 컨트롤 사이클이고, 사이클(c21, c22, c23)은, 사이클(c11, c12, c13)에 동기하여 통신 사이클 생성부(131)가 순차 생성하는 통신 사이클이고, 사이클(c31, c32, c33)은, 사이클(c11, c12, c13)에 동기하여 머신측 사이클 생성부(322)가 순차 생성하는 머신측 컨트롤 사이클이다.13 , cycles c11, c12, and c13 are control cycles sequentially generated by the controller-side cycle generator 122, and cycles c21, c22, and c23 are cycles c11, c12, and c13. These are communication cycles sequentially generated by the communication cycle generator 131 in synchronization, and the cycles c31, c32, and c33 are sequentially generated by the machine-side cycle generator 322 in synchronization with the cycles c11, c12, and c13. It is a machine-side control cycle.

예컨대 모션 모듈(113)은, 사이클(c11)의 시각(t10)에 있어서 모션 프로그램을 실행하여, 머신 지령을 생성한다. 이 머신 지령은, 시각(t11)에 있어서 동기 통신부(114)에 의해 송신되고, 시각(t12)에 있어서 단말 통신부(314)에 의해 수신된다. 단말 통신부(314)가 수신한 머신 지령은, 시각(t13)에 있어서 머신측 타이밍 조정부(315)에 의해 기억되어, 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클(예컨대 사이클(c33))에 있어서 호출된다. 그리고, 호출된 머신 지령에 기초하여, 사이클(c33)의 시각(t14)에 있어서, 머신 제어부(313)가 머신 본체(10)에 모션을 실현시킨다. 무선 통신에 기인하여, 시각(t12)에는 변동이 생기지만, 시각(t12)부터 시각(t14)까지의 여유에 의해, 시각(t12)의 변동이 흡수되어, 컨트롤 사이클에 동기한 시각(t14)에 머신 지령이 사용된다.For example, the motion module 113 executes the motion program at time t10 of the cycle c11 to generate machine commands. This machine command is transmitted by the synchronous communication unit 114 at time t11 and received by the terminal communication unit 314 at time t12. The machine command received by the terminal communication unit 314 is stored by the machine-side timing adjusting unit 315 at time t13, and the machine-side control cycle corresponding to the first cycle information added to the machine command (e.g., cycle ( Called in c33)). Then, based on the called machine command, at time t14 of cycle c33, the machine control unit 313 causes the machine body 10 to realize motion. Due to wireless communication, the time t12 fluctuates, but the fluctuation of the time t12 is absorbed by the margin from the time t12 to the time t14, and the time t14 synchronized with the control cycle. machine command is used.

머신 제어부(313)는, 사이클(c31)의 시각(t110)에 있어서 머신 본체(10)가 실현한 모션에 기초한 응답 정보를 취득한다. 이 응답 정보는, 시각(t111)에 있어서 단말 통신부(314)에 의해 송신되고, 시각(t112)에 있어서 컨트롤러측 타이밍 조정부(116)에 의해 기억되어, 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클(예컨대 사이클(c13))에 있어서 호출된다. 호출된 응답 정보는, 사이클(c13) 직전의 시각(t113)에 있어서 동기 통신부(114)에 의해 수신 정보 기억부(112)에 저장되고, 수신 정보 기억부(112)에 저장된 응답 정보에 기초하여, 사이클(c13)의 시각(t114)에 있어서 모션 모듈(113)이 모션 프로그램을 실행한다. 무선 통신에 기인하여, 시각(t112)에는 변동이 생기지만, 시각(t112)부터 시각(t114)까지의 여유에 의해, 시각(t112)의 변동이 흡수되어, 컨트롤 사이클에 동기한 시각(t114)에 응답 정보가 사용된다.The machine controller 313 acquires response information based on the motion realized by the machine main body 10 at time t110 in cycle c31. This response information is transmitted by the terminal communication unit 314 at time t111, stored by the controller side timing adjustment unit 116 at time t112, and corresponds to the second cycle information added to the response information. It is called in a control cycle (e.g., cycle c13). The called response information is stored in the reception information storage unit 112 by the synchronous communication unit 114 at the time t113 immediately before the cycle c13, and based on the response information stored in the reception information storage unit 112, , at time t114 of the cycle c13, the motion module 113 executes the motion program. Due to wireless communication, the time t112 fluctuates, but the fluctuation of the time t112 is absorbed by the margin from the time t112 to the time t114, and the time t114 synchronized with the control cycle. response information is used.

이하, 머신 제어 순서를, 컨트롤러(100)에 있어서의 제어 순서와, 로컬 컨트롤러(300)에 있어서의 제어 순서로 나누어 상세하게 예시한다.Hereinafter, the machine control sequence is divided into a control sequence in the controller 100 and a control sequence in the local controller 300, and illustrated in detail.

(컨트롤러에 있어서의 제어 순서)(Control procedure in the controller)

컨트롤러(100)에 있어서의 제어 순서는, 데이터 수신 순서와, 데이터 생성·송신 순서를 포함한다. 데이터 수신 순서와 데이터 생성·송신 순서는 병행하여 반복 실행된다. 데이터 수신 순서는, 반드시 컨트롤 사이클에 동기하여 실행되지 않아도 좋지만, 데이터 생성·송신 순서는 컨트롤 사이클에 동기하여 실행된다.Control procedures in the controller 100 include data reception procedures and data generation/transmission procedures. The order of receiving data and the order of generating/transmitting data are repeatedly executed in parallel. The data reception sequence does not necessarily have to be executed synchronously with the control cycle, but the data generation/transmission sequence is executed synchronously with the control cycle.

도 14는 데이터 수신 순서를 예시하는 흐름도이다. 도 14에 나타내는 바와 같이, 컨트롤러(100)는, 먼저 단계 S91, S92를 실행한다. 단계 S91에서는, 동기 통신부(114)가 통신 컨트롤러(200)로부터의 데이터의 수신을 대기한다. 단계 S92에서는, 사이클 체크부(133)가, 데이터의 수신 지연이 없는지의 여부를 확인한다. 예컨대 사이클 체크부(133)는, 응답 정보에 부가된 제2 사이클 정보에 기초하여, 응답 정보의 송신 지연이 없는지의 여부를 확인한다.14 is a flow chart illustrating a data receiving sequence. As shown in Fig. 14, the controller 100 first executes steps S91 and S92. In step S91, the synchronous communication unit 114 waits for data reception from the communication controller 200. In step S92, the cycle check unit 133 checks whether or not there is any data reception delay. For example, the cycle check unit 133 checks whether or not there is a transmission delay of the response information based on the second cycle information added to the response information.

단계 S92에 있어서, 데이터의 수신 지연이 있다고 판정한 경우, 컨트롤러(100)는 단계 S93을 실행한다. 단계 S93에서는, 사이클 체크부(133)가 상기 데이터를 파기한다.In step S92, if it is determined that there is a reception delay of data, the controller 100 executes step S93. In step S93, the cycle check unit 133 discards the data.

단계 S92에 있어서, 데이터의 수신 지연은 없다고 판정한 경우, 컨트롤러(100)는 단계 S94를 실행한다. 단계 S94에서는, 사이클 체크부(133)가, 컨트롤러측 타이밍 조정부(116)에 상기 데이터를 기억시킨다. 단계 S93, S94를 실행한 후, 컨트롤러(100)는 처리를 단계 S91로 되돌린다. 통신 컨트롤러(200)는 이상의 순서를 반복한다.In step S92, if it is determined that there is no data reception delay, the controller 100 executes step S94. In step S94, the cycle check unit 133 stores the data in the controller-side timing adjustment unit 116. After executing steps S93 and S94, the controller 100 returns the process to step S91. The communication controller 200 repeats the above procedure.

도 15는 데이터 생성·송신 순서를 예시하는 흐름도이다. 컨트롤러(100)는, 먼저 단계 S71, S72, S73, S74, S75를 실행한다. 단계 S71에서는, 모션 모듈(113)이, 사이클 카운터(124)에 의한 컨트롤 사이클수의 카운트 업을 대기한다. 단계 S72에서는, 컨트롤러측 타이밍 조정부(116)가, 사용시 사이클수가 현재의 컨트롤 사이클수에 대응하는 수신 데이터(예컨대 응답 정보 및 동기 통신 데이터)를 호출한다. 단계 S73에서는, 모션 모듈(113)이, 모션 프로그램을 실행하여, 관할 머신(4)에 대한 머신 지령을 생성한다. 예컨대 모션 모듈(113)은, 수신 정보 기억부(112)가 기억하는 응답 정보에 기초한 관할 머신(4)의 모션 실적을 산출하고, 모션 실적을 모션 지령에 추종시키도록 머신 지령을 산출한다. 단계 S74에서는, 부가부(125)가, 머신 지령에 제1 사이클 정보를 부가한다. 단계 S75에서는, 동기 통신부(114)가, 유선 통신 네트워크(8)를 통해, 머신 지령을 통신 서버(3)에 송신한다. 단계 S75의 구체적 처리 내용에 대해서는 후술한다.15 is a flowchart illustrating a data generation/transmission procedure. The controller 100 first executes steps S71, S72, S73, S74 and S75. In step S71, the motion module 113 waits for the cycle counter 124 to count up the number of control cycles. In step S72, the controller-side timing adjusting unit 116 calls received data (e.g., response information and synchronous communication data) corresponding to the number of cycles in use corresponding to the current number of control cycles. In step S73, the motion module 113 executes the motion program to generate machine instructions for the managed machine 4. For example, the motion module 113 calculates the motion result of the competent machine 4 based on the response information stored in the reception information storage unit 112, and calculates a machine command so that the motion result follows the motion command. In step S74, the adding unit 125 adds the first cycle information to the machine command. In step S75, the synchronous communication unit 114 transmits a machine command to the communication server 3 via the wired communication network 8. Details of processing in step S75 will be described later.

다음에, 컨트롤러(100)는 단계 S76, S77, S78을 실행한다. 단계 S76에서는, 동기 통신부(114)가, 동기 통신 데이터를 생성한다. 단계 S77에서는, 부가부(125)가, 동기 통신 데이터에 제1 사이클 정보를 부가한다. 단계 S78에서는, 동기 통신부(114)가, 유선 통신 네트워크(8)를 통해, 동기 통신 데이터를 통신 서버(3)에 송신한다. 단계 S78의 구체적 처리 내용에 대해서는 후술한다. 그 후, 컨트롤러(100)는 처리를 단계 S71로 되돌린다. 컨트롤러(100)는, 이상의 순서를 반복한다.Next, the controller 100 executes steps S76, S77 and S78. In step S76, the synchronous communication unit 114 generates synchronous communication data. In step S77, the adding unit 125 adds the first cycle information to the synchronous communication data. In step S78, the synchronous communication unit 114 transmits synchronous communication data to the communication server 3 via the wired communication network 8. Details of processing in step S78 will be described later. After that, the controller 100 returns the process to step S71. The controller 100 repeats the above procedure.

도 16은 단계 S75, S78에 있어서의 데이터의 송신 순서를 예시하는 흐름도이다. 도 16에 나타내는 바와 같이, 컨트롤러(100)는, 먼저 단계 S82를 실행한다. 단계 S82에서는, 사이클 체크부(133)가, 데이터의 송신 지연이 없는지의 여부를 확인한다. 예컨대 사이클 체크부(133)는, 머신 지령에 부가된 제1 사이클 정보에 기초하여, 머신 지령의 송신 지연이 없는지의 여부를 확인하고, 동기 통신 데이터에 부가된 제1 사이클 정보에 기초하여, 동기 통신 데이터의 송신 지연이 없는지의 여부를 확인한다.Fig. 16 is a flowchart illustrating the data transmission procedure in steps S75 and S78. As shown in Fig. 16, the controller 100 first executes step S82. In step S82, the cycle check unit 133 checks whether or not there is any data transmission delay. For example, the cycle check unit 133 checks whether or not there is a transmission delay of the machine command based on the first cycle information added to the machine command, and based on the first cycle information added to the synchronous communication data, Check whether or not there is a transmission delay of communication data.

단계 S82에 있어서, 데이터의 송신 지연이 있다고 판정한 경우, 컨트롤러(100)는 단계 S83을 실행한다. 단계 S83에서는, 사이클 체크부(133)가 상기 데이터를 파기한다.In step S82, if it is determined that there is a transmission delay of data, the controller 100 executes step S83. In step S83, the cycle check unit 133 discards the data.

단계 S82에 있어서, 데이터의 송신 지연이 없다고 판정한 경우, 컨트롤러(100)는 단계 S84를 실행한다. 단계 S84에서는, 스위치(134)가, 데이터가 관할 머신(4) 앞인지, 다른 컨트롤러(100) 앞인지를 확인한다.In step S82, if it is determined that there is no data transmission delay, the controller 100 executes step S84. In step S84, the switch 134 checks whether the data is sent to the competent machine 4 or another controller 100.

단계 S84에 있어서, 데이터가 관할 머신(4) 앞이라고 판정한 경우, 통신 컨트롤러(200)는 단계 S85를 실행한다. 단계 S85에서는, 스위치(134)가, 통신 서버(3)를 통해 관할 머신(4)에 상기 데이터를 송신한다.In step S84, if it is determined that the data is addressed to the competent machine 4, the communication controller 200 executes step S85. In step S85, the switch 134 transmits the data to the competent machine 4 via the communication server 3.

단계 S84에 있어서, 데이터가 다른 컨트롤러(100) 앞이라고 판정한 경우, 통신 컨트롤러(200)는 단계 S86을 실행한다. 단계 S86에서는, 스위치(134)가, 유선 통신 네트워크(8)를 통해, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 상기 데이터를 송신한다. 단계 S83, S85, S86을 실행한 후, 컨트롤러(100)는 처리를 단계 S82로 되돌린다. 컨트롤러(100)는 이상의 순서를 반복한다.In step S84, when it is determined that the data is addressed to the other controller 100, the communication controller 200 executes step S86. In step S86, the switch 134 transmits the data to the controller-side timing adjusting unit 116 of the other controller 100 via the wired communication network 8. After executing steps S83, S85 and S86, the controller 100 returns the process to step S82. The controller 100 repeats the above procedure.

(로컬 컨트롤러에 있어서의 제어 순서)(Control procedure in the local controller)

로컬 컨트롤러(300)에 있어서의 제어 순서는, 머신 지령의 수신 순서와, 타이밍 조정 순서와, 머신 제어 순서를 포함한다. 이들은 병행하여 반복 실행된다. 머신 지령의 제어 순서는, 반드시 컨트롤 사이클에 동기하여 실행되지 않아도 좋지만, 타이밍 조정 순서는 컨트롤 사이클에 동기하여 실행된다. 머신 제어 순서는, 머신 사이클에 동기하여 실행된다.The control sequence in the local controller 300 includes a machine command reception sequence, a timing adjustment sequence, and a machine control sequence. These are repeatedly executed in parallel. The control sequence of the machine command does not necessarily have to be executed synchronously with the control cycle, but the timing adjustment sequence is executed synchronously with the control cycle. Machine control procedures are executed synchronously with the machine cycle.

도 17은 머신 지령의 수신 순서를 예시하는 흐름도이다. 도 17에 나타내는 바와 같이, 로컬 컨트롤러(300)는 단계 S111, S112를 실행한다. 단계 S111에서는, 단말 통신부(314)가, 머신 지령의 수신을 대기한다. 단계 S112에서는, 머신측 타이밍 조정부(315)가, 머신 지령을 기억한다. 그 후, 로컬 컨트롤러(300)는 처리를 단계 S111로 되돌린다. 로컬 컨트롤러(300)는 이상의 순서를 반복한다.17 is a flow chart illustrating a sequence of receiving machine commands. As shown in Fig. 17, the local controller 300 executes steps S111 and S112. In step S111, the terminal communication unit 314 waits for reception of a machine command. In step S112, the machine-side timing adjusting unit 315 stores the machine command. After that, the local controller 300 returns the process to step S111. The local controller 300 repeats the above procedure.

도 18은 타이밍 조정 순서를 예시하는 흐름도이다. 도 18에 나타내는 바와 같이, 로컬 컨트롤러(300)는, 단계 S121, S122, S123, S124를 실행한다. 단계 S121에서는, 머신측 타이밍 조정부(315)가, 사이클 카운터(323)에 의한 컨트롤 사이클수의 카운트 업을 대기한다. 단계 S122에서는, 머신측 타이밍 조정부(315)가, 사용시 사이클수가 현재의 컨트롤 사이클수에 대응하는 머신 지령을 호출하여, 지령 기억부(311)에 저장한다. 이에 의해, 지령 기억부(311)가 기억하는 머신 지령이 갱신된다. 단계 S123에서는, 부가부(324)가, 응답 정보 기억부(312)가 기억하는 응답 정보에 제1 사이클 정보를 부가한다. 단계 S124에서는, 단말 통신부(314)가, 응답 정보를, 유선 통신 네트워크(8)를 통해 통신 컨트롤러(200)에 송신한다. 그 후, 로컬 컨트롤러(300)는 처리를 단계 S121로 되돌린다. 로컬 컨트롤러(300)는 이상의 순서를 반복한다.18 is a flowchart illustrating a timing adjustment sequence. As shown in Fig. 18, the local controller 300 executes steps S121, S122, S123, and S124. In step S121, the machine-side timing adjusting unit 315 waits for the cycle counter 323 to count up the number of control cycles. In step S122, the machine-side timing adjusting unit 315 calls a machine command corresponding to the number of cycles in use and the current number of control cycles, and stores it in the command storage unit 311. In this way, the machine command stored in the command storage unit 311 is updated. In step S123, the adding unit 324 adds the first cycle information to the response information stored in the response information storage unit 312. In step S124, the terminal communication unit 314 transmits response information to the communication controller 200 via the wired communication network 8. After that, the local controller 300 returns the process to step S121. The local controller 300 repeats the above procedure.

도 19는 머신 제어 순서를 예시하는 흐름도이다. 도 19에 나타내는 바와 같이, 로컬 컨트롤러(300)는, 먼저 단계 S131, S132를 실행한다. 단계 S131에서는, 머신 제어부(313)가, 사이클 카운터(326)에 의한 머신 사이클수의 카운트 업을 대기한다. 단계 S132에서는, 사이클 카운터(326)가, 지령 기억부(311)가 기억하는 머신 지령이 갱신되었는지의 여부를 확인한다.19 is a flow chart illustrating a machine control sequence. As shown in Fig. 19, the local controller 300 first executes steps S131 and S132. In step S131, the machine controller 313 waits for the cycle counter 326 to count up the number of machine cycles. In step S132, the cycle counter 326 checks whether or not the machine command stored in the command storage unit 311 has been updated.

단계 S132에 있어서, 지령 기억부(311)가 기억하는 머신 지령이 갱신되었다고 판정한 경우, 로컬 컨트롤러(300)는 단계 S133을 실행한다. 단계 S133에서는, 사이클 카운터(326)가, 머신 사이클수를 초기값(예컨대 제로)으로 리셋한다.In step S132, when it is determined that the machine command stored in the command storage unit 311 has been updated, the local controller 300 executes step S133. In step S133, the cycle counter 326 resets the number of machine cycles to an initial value (eg zero).

다음에, 로컬 컨트롤러(300)는 단계 S134를 실행한다. 단계 S132에 있어서, 지령 기억부(311)가 기억하는 머신 지령이 갱신되지 않았다고 판정한 경우, 로컬 컨트롤러(300)는, 단계 S133을 실행하는 일없이 단계 S134를 실행한다. 단계 S134에서는, 머신 제어부(313)가, 머신 지령과, 응답 정보 기억부(312)가 기억하는 응답 정보와의 편차를 축소하도록 구동 데이터를 생성한다.Next, the local controller 300 executes step S134. In step S132, when it is determined that the machine command stored in the command storage unit 311 has not been updated, the local controller 300 executes step S134 without executing step S133. In step S134, the machine control unit 313 generates drive data so as to reduce the deviation between the machine command and the response information stored in the response information storage unit 312.

다음에, 로컬 컨트롤러(300)는 단계 S135, S136을 실행한다. 단계 S135에서는, 머신 제어부(313)가, 구동 데이터에 기초하여 머신 본체(10)를 구동한다. 단계 S136에서는, 머신 제어부(313)가, 머신 본체(10)가 실현한 모션에 기초한 응답 정보를 취득하여, 응답 정보 기억부(312)에 저장한다. 그 후, 로컬 컨트롤러(300)는 처리를 단계 S131로 되돌린다. 로컬 컨트롤러(300)는, 이상의 순서를 반복한다.Next, the local controller 300 executes steps S135 and S136. In step S135, the machine control unit 313 drives the machine body 10 based on the driving data. In step S136, the machine control unit 313 acquires response information based on the motion realized by the machine body 10 and stores it in the response information storage unit 312. After that, the local controller 300 returns the process to step S131. The local controller 300 repeats the above procedure.

〔본 실시형태의 효과〕[Effects of the present embodiment]

이상에 설명한 바와 같이, 머신 제어 시스템(1)은, 현실 공간상에 구성되어, 각각 머신 지령에 따라 모션을 실현하는 1 이상의 머신(4)과, 가상 공간상에 실장되어, 1 이상의 머신(4)을 각각 제어하는 1 이상의 컨트롤러(100)와, 1 이상의 컨트롤러(100)와 유선 통신 네트워크(8)를 통해 통신하며, 1 이상의 머신(4)과 무선 통신 네트워크(7)를 통해 통신하는 통신 서버(3)를 구비하고, 1 이상의 컨트롤러(100)의 각각은, 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신(4)에 대한 머신 지령을 생성하는 모션 모듈(113)과, 머신 지령에 제1 사이클 정보를 부가하는 부가부(125)와, 머신 지령을 통신 서버(3)에 송신하는 동기 통신부(114)를 갖고, 1 이상의 머신(4)의 각각은, 통신 서버(3)로부터 머신 지령을 수신하는 단말 통신부(314)와, 단말 통신부(314)가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 머신측 타이밍 조정부(315)를 갖는다.As described above, the machine control system 1 includes one or more machines 4 configured in real space and realizing motion according to machine commands, respectively, and one or more machines 4 mounted in virtual space. ) and a communication server communicating with one or more controllers 100 respectively controlling one or more controllers 100 through a wired communication network 8 and communicating with one or more machines 4 through a wireless communication network 7 (3), wherein each of the one or more controllers 100 includes a motion module 113 that executes a motion program with a control cycle and generates a machine command for a corresponding machine 4; Each of the one or more machines 4 has an addition unit 125 that adds cycle information and a synchronous communication unit 114 that transmits machine commands to the communication server 3, and receives machine commands from the communication server 3. A receiving terminal communication unit 314 and a machine side that memorizes the machine command received by the terminal communication unit 314 and calls the machine command in the machine side control cycle corresponding to the first cycle information added to the machine command. It has a timing adjustment unit 315.

제5 세대 이동 통신 시스템(5G)의 실용화 등에 의해, 고속 무선 통신이 가능해졌기 때문에, 무선 통신을 통한 머신 제어의 실현 가능성도 높아지고 있다. 머신 제어에 있어서는, 모션 프로그램의 실행에 의한 머신 지령의 생성과, 머신 지령에 따른 머신의 제어를 소정의 컨트롤 사이클로 반복할 필요가 있다. 생성된 머신 지령이 무선 통신 네트워크를 통해 송신되는 경우, 무선 통신에 기인하여, 머신측에서의 머신 지령의 수신 타이밍의 변동이 확대되어, 머신측에서 머신 지령을 컨트롤 사이클로 수신하는 것이 곤란해질 가능성이 있다. 본 머신 제어 시스템(1)에 따르면, 통신 서버(3)로부터 무선 통신 네트워크(7)를 통해 송신된 머신 지령이 머신(4)측에서 버퍼링되어, 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클에 있어서 호출된다. 이와 같이, 머신 지령을 그 사용 타이밍까지 버퍼링하는 기능에 의해, 컨트롤러(100)측으로부터의 머신 지령의 송신을 앞당겨, 머신(4)에 있어서의 머신 지령의 수신 타이밍부터 상기 머신 지령의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 무선 통신에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 머신 지령을 머신측 컨트롤 사이클로 호출할 수 있다. 이 때문에, 무선 통신을 통해 머신 지령이 송신되는 시스템에 있어서, 모션 프로그램의 실행에 의한 머신 지령의 생성과, 머신 지령에 따른 머신의 제어를 컨트롤 사이클로 반복하는 것이 가능해진다. 따라서, 무선 통신을 통한 머신 제어의 실현에 유효하다.Since high-speed wireless communication has become possible due to practical use of the fifth generation mobile communication system (5G), the realization possibility of machine control through wireless communication is also increasing. In machine control, it is necessary to repeat generation of machine commands by executing a motion program and control of the machine in accordance with the machine commands in a predetermined control cycle. When the generated machine command is transmitted via a wireless communication network, there is a possibility that the variation in the reception timing of the machine command on the machine side is magnified due to the wireless communication, making it difficult for the machine side to receive the machine command in a control cycle. According to the present machine control system 1, machine commands transmitted from the communication server 3 via the wireless communication network 7 are buffered on the machine 4 side, and the machine side control cycle corresponding to the first cycle information is called because In this way, the function of buffering the machine command until its use timing advances the transmission of the machine command from the controller 100 side, from the timing of receiving the machine command in the machine 4 to the timing of using the machine command. You can have some leeway in the period of With this margin, it is possible to absorb the fluctuations in reception timing that have been expanded due to wireless communication, and to call buffered machine commands in the machine-side control cycle. For this reason, in a system in which machine commands are transmitted via wireless communication, it becomes possible to repeat generation of machine commands by executing a motion program and control of the machine according to the machine commands in a control cycle. Therefore, it is effective for realizing machine control through wireless communication.

1 이상의 머신(4)의 각각은, 모션을 실현하는 머신 본체(10)와, 머신측 타이밍 조정부(315)가 호출한 머신 지령에 기초하여, 머신 본체(10)에 모션을 실현시키고, 머신 본체(10)가 실현한 모션에 기초한 응답 정보를 취득하는 머신 제어부(313)와, 응답 정보에 제2 사이클 정보를 부가하는 부가부(324)를 더 갖고, 단말 통신부(314)는, 응답 정보를 통신 서버(3)에 송신하고, 머신 제어 시스템(1)은, 1 이상의 컨트롤러(100)와 통신 서버(3) 사이에서, 1 이상의 머신(4)으로부터 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 컨트롤러측 타이밍 조정부(116, 213)를 더 구비하고, 모션 모듈(113)은, 컨트롤러측 타이밍 조정부(116, 213)가 호출한 응답 정보에 기초하여, 모션 프로그램을 실행하여도 좋다. 이 경우, 머신(4)으로부터 무선 통신 네트워크를 통해 송신된 응답 정보가 컨트롤러(100)측에서 버퍼링되어, 제1 사이클 정보에 대응하는 컨트롤 사이클에 있어서 호출된다. 이와 같이, 응답 정보를 그 사용 타이밍까지 버퍼링하는 기능에 의해, 머신(4)측으로부터의 응답 정보의 송신을 앞당겨, 컨트롤러(100)측에서의 응답 정보의 수신 타이밍으로부터 상기 응답 정보의 사용 타이밍까지의 기간에 여유를 갖게 할 수 있다. 이 여유에 의해, 무선 통신에 기인하여 확대된 수신 타이밍의 변동을 흡수하여, 버퍼한 응답 정보를 컨트롤 사이클로 호출할 수 있다. 이 때문에, 무선 통신을 통해 응답 정보가 송신되는 시스템에 있어서, 응답 정보의 수신을 컨트롤 사이클로 반복하는 것이 가능해진다. 따라서, 무선 통신을 통한 머신 제어의 실현에 더욱 유효하다.Each of the one or more machines 4 causes the machine body 10 to realize the motion, based on the machine body 10 that realizes the motion and the machine command called by the machine-side timing adjusting unit 315, Further comprising a machine control unit 313 that acquires response information based on the motion realized in (10) and an addition unit 324 that adds second cycle information to the response information, the terminal communication unit 314 transmits the response information transmission to the communication server 3, and the machine control system 1 stores the response information received from the one or more machines 4 between the one or more controllers 100 and the communication server 3, and the response information and a controller-side timing adjusting unit (116, 213) that calls the response information in a control cycle corresponding to the second cycle information added to Based on the response information called by , the motion program may be executed. In this case, the response information transmitted from the machine 4 via the wireless communication network is buffered on the side of the controller 100, and is called in the control cycle corresponding to the first cycle information. In this way, the function of buffering the response information until its use timing advances the transmission of response information from the machine 4 side, and the period from the reception timing of the response information on the controller 100 side to the use timing of the response information. can give you some leeway. With this margin, it is possible to absorb the fluctuations in reception timing that have been expanded due to wireless communication, and to call the buffered response information in a control cycle. For this reason, in a system in which response information is transmitted through radio communication, it becomes possible to repeat reception of response information in a control cycle. Therefore, it is more effective for realizing machine control through wireless communication.

1 이상의 컨트롤러(100)의 각각은, 컨트롤 사이클의 사이클 타이밍을 대응하는 머신(4)에 송신하는 타이밍 송신부(123)를 더 갖고, 1 이상의 머신(4)의 각각은, 사이클 타이밍에 기초하여, 대응하는 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기한 머신측 컨트롤 사이클을 생성하는 머신측 사이클 생성부(322)를 더 가져도 좋다. 이 경우, 사이클 타이밍에 기초한 동기 처리 후는, 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기한 머신측 컨트롤 사이클이 머신(4)에 있어서 생성된다. 이 때문에, 무선 통신의 부담을 억제하면서, 머신(4)에 있어서의 머신측 컨트롤 사이클을 컨트롤러에 있어서의 컨트롤 사이클에 용이하게 동기시킬 수 있다.Each of the one or more controllers 100 further has a timing transmitter 123 that transmits the cycle timing of the control cycle to the corresponding machine 4, and each of the one or more machines 4, based on the cycle timing, It may further include a machine-side cycle generation unit 322 that generates a machine-side control cycle synchronized with the control cycle in the corresponding controller 100. In this case, after the synchronization processing based on the cycle timing, a machine-side control cycle synchronized with the control cycle in the controller 100 is generated in the machine 4 . For this reason, the machine side control cycle in the machine 4 can be easily synchronized with the control cycle in the controller while suppressing the burden of wireless communication.

1 이상의 컨트롤러(100)의 각각은, 시각 서버(5)가 생성한 시각에 동기하여, 컨트롤러측 시각을 생성하는 컨트롤러측 시각 생성부(121)와, 컨트롤러측 시각에 기초하여, 컨트롤 사이클을 생성하는 컨트롤러측 사이클 생성부(122)를 더 갖고, 1 이상의 머신(4)의 각각은, 시각 서버가 생성한 시각에 동기하여, 머신측 시각을 생성하는 머신측 시각 생성부(321)를 더 갖고, 머신측 사이클 생성부(322)는, 머신측 시각 생성부(321)가 생성한 시각과, 사이클 타이밍에 기초하여, 머신측 컨트롤 사이클을 생성하여도 좋다. 이 경우, 컨트롤러(100) 및 머신(4)에 있어서의 시각 맞춤을 미리 행하여 둠으로써, 머신(4)에 있어서의 사이클 타이밍의 수신 타이밍에 변동이 생긴 경우라도, 머신측 시각에 기초하여, 머신(4)에 있어서의 머신측 컨트롤 사이클을 적절한 타이밍에 생성할 수 있다.Each of the one or more controllers 100 generates a controller-side time generator 121 that generates the controller-side time in synchronism with the time generated by the time server 5, and a control cycle based on the controller-side time. Each of the one or more machines 4 further has a machine-side time generator 321 that generates machine-side time in synchronism with the time generated by the time server. , The machine-side cycle generation unit 322 may generate a machine-side control cycle based on the time generated by the machine-side time generation unit 321 and the cycle timing. In this case, even if a change occurs in the reception timing of the cycle timing in the machine 4 by performing the time alignment in the controller 100 and the machine 4 in advance, based on the machine side time, the machine The machine-side control cycle in (4) can be generated at an appropriate timing.

타이밍 송신부(123)는, 대응하는 머신(4)의 머신측 사이클 생성부(322)가 머신측 컨트롤 사이클의 생성에 실패한 경우, 앞서 송신한 사이클 타이밍보다 후의 사이클 타이밍을 상기 머신(4)에 재차 송신하여도 좋다. 이 경우, 보다 높은 신뢰성으로, 머신(4)에 있어서의 머신측 컨트롤 사이클을 컨트롤러(100)에 있어서의 컨트롤 사이클에 동기시킬 수 있다.The timing transmission unit 123 transmits the cycle timing later than the previously transmitted cycle timing to the machine 4 again, when the machine-side cycle generation unit 322 of the corresponding machine 4 fails to generate the machine-side control cycle. You may send. In this case, the machine side control cycle in the machine 4 can be synchronized with the control cycle in the controller 100 with higher reliability.

머신 제어부(313)는, 머신측 타이밍 조정부(315)가 호출한 머신 지령에 기초하여, 컨트롤 사이클보다도 짧은 사이클 길이의 머신 사이클로 머신 본체(10)를 제어하여도 좋다. 이 경우, 컨트롤 사이클에 의한 머신 지령의 호출의 정주기성과, 보다 세분화된 머신 사이클에 의한 머신이 적절한 제어의 양립을 도모할 수 있다.The machine control unit 313 may control the machine body 10 with a machine cycle having a cycle length shorter than the control cycle based on a machine command called by the machine-side timing adjustment unit 315 . In this case, it is possible to achieve both the constant periodicity of calling machine commands by the control cycle and the appropriate control of the machine by the more subdivided machine cycle.

머신 제어 시스템(1)은, 1 이상의 컨트롤러로서 복수의 컨트롤러(100)를 구비하고, 복수의 컨트롤러(100)의 각각이 컨트롤러측 타이밍 조정부(116)를 가져도 좋다. 이 경우, 복수의 컨트롤러(100) 각각과 관할 머신(4) 사이에서 동기 통신이 가능해지는 한편, 동일한 네트워크를 이용하는 컨트롤러(100)와 머신(4)의 복수의 쌍 사이에서는, 컨트롤 사이클을 동기킬 필요성이 낮아져, 시스템을 용이하게 구성할 수 있다.The machine control system 1 may include a plurality of controllers 100 as one or more controllers, and each of the plurality of controllers 100 may have a controller side timing adjusting unit 116 . In this case, while synchronous communication is possible between each of the plurality of controllers 100 and the machine 4 under control, control cycles are synchronized between a plurality of pairs of the controller 100 and the machine 4 using the same network. The need is lowered, and the system can be easily configured.

복수의 컨트롤러(100)에 있어서의 하나의 컨트롤러(100)의 동기 통신부(114)가 송신하는 데이터가 대응하는 머신 앞이면, 통신 서버(3)를 통해, 대응하는 머신(4)에 상기 데이터를 송신하고, 데이터가 다른 컨트롤러(100) 앞이면, 유선 통신 네트워크(8)를 통해, 다른 컨트롤러(100)의 컨트롤러측 타이밍 조정부(116)에 상기 데이터를 송신하는 스위치(134)를 더 구비하여도 좋다. 이 경우, 컨트롤러(100)와 머신(4) 사이의 동기 통신과, 컨트롤러(100) 사이의 동기 통신과 동기 통신부(114)를 적절하게 구별하여 사용할 수 있다.If the data to be transmitted by the synchronous communication unit 114 of one controller 100 in the plurality of controllers 100 is directed to the corresponding machine, the data is sent to the corresponding machine 4 via the communication server 3. and if the data is forwarded to the other controller 100, the switch 134 for transmitting the data to the controller-side timing adjusting unit 116 of the other controller 100 via the wired communication network 8 is further provided. good. In this case, the synchronous communication between the controller 100 and the machine 4, the synchronous communication between the controller 100, and the synchronous communication unit 114 can be appropriately distinguished and used.

하나의 컨트롤러(100)는, 다른 컨트롤러(100)를 포함하는 다른 노드에 대한 비동기 통신 데이터를, 유선 통신 네트워크(8)를 통해 다른 노드에 송신하는 비동기 통신부(115)를 더 가져도 좋다. 이 경우, 동기 통신용의 통신 리소스를 절약할 수 있다.One controller 100 may further include an asynchronous communication unit 115 that transmits asynchronous communication data for other nodes including other controllers 100 to other nodes via the wired communication network 8 . In this case, communication resources for synchronous communication can be saved.

복수의 컨트롤러(100) 중 적어도 하나는, 유선 통신 네트워크(8)를 통해 수신한 마스터 타이밍에 기초하여, 컨트롤 사이클을 생성하는 컨트롤러측 사이클 생성부(122)를 더 가져도 좋다. 이 경우, 컨트롤러(100) 사이에서 컨트롤 사이클을 용이하게 동기시킬 수 있다.At least one of the plurality of controllers 100 may further include a controller-side cycle generator 122 that generates a control cycle based on master timing received via the wired communication network 8 . In this case, control cycles can be easily synchronized between the controllers 100 .

통신 서버(3)는, 마스터 타이밍을 생성하는 타이밍 마스터(224)를 갖고, 컨트롤러측 사이클 생성부(122)는, 타이밍 마스터(224)로부터 마스터 타이밍을 수신하여도 좋다. 이 경우, 컨트롤 사이클을 동기시켜야 하는 복수의 컨트롤러(100) 중 어느 것에 있어서도, 통신 서버(3)의 타이밍 마스터(224)가 생성한 타이밍 마스터에 기초하여 컨트롤 사이클을 생성하는 동일한 설정을 채용할 수 있다. 이 때문에, 시스템에의 컨트롤러(100)의 추가·삭제가 용이하다.The communication server 3 has a timing master 224 that generates master timing, and the controller side cycle generating unit 122 may receive the master timing from the timing master 224 . In this case, the same setting for generating a control cycle based on the timing master generated by the timing master 224 of the communication server 3 can be employed in any one of the plurality of controllers 100 whose control cycles are to be synchronized. there is. For this reason, addition/deletion of the controller 100 to the system is easy.

1 이상의 컨트롤러(100)와 통신 서버(3) 사이에서, 머신 지령에 포함되는 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출하는 사이클 체크부(133, 225)를 더 구비하여도 좋다. 이 경우, 컨트롤 사이클에 동기한 머신 지령의 송신의 신뢰성을 향상시킬 수 있다.Between the one or more controllers 100 and the communication server 3, a cycle check unit 133 or 225 for detecting a transmission delay of the machine command based on the first cycle information included in the machine command may be further provided. good. In this case, reliability of transmission of machine commands synchronized with the control cycle can be improved.

사이클 체크부(133)는, 머신 지령의 송신 지연을 검출한 경우에, 상기 머신 지령의 송신을 캔슬하여도 좋다. 이 경우, 컨트롤 사이클에서의 호출에 맞추지 못한 머신 지령의 송신을 캔슬함으로써, 통신 서버(3)에 있어서의 무선 통신 재원을 절약할 수 있다.The cycle check unit 133 may cancel the transmission of the machine command when a transmission delay of the machine command is detected. In this case, by canceling the transmission of machine commands that do not match the call in the control cycle, resources for radio communication in the communication server 3 can be saved.

1 이상의 컨트롤러(100)와 통신 서버(3) 사이에서, 응답 정보에 포함되는 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하는 사이클 체크부(133, 225)를 더 구비하여도 좋다. 이 경우, 컨트롤 사이클에서의 호출에 맞추지 못한 응답 정보를 미연에 검지하여, 예컨대 바로 앞에 호출된 응답 정보를 대용하여 응답 정보의 누락을 막는 등의 대처가 가능해진다.Between the one or more controllers 100 and the communication server 3, a cycle check unit 133 or 225 for detecting a reception delay of the response information based on the second cycle information included in the response information may be further provided. good. In this case, it is possible to detect response information that does not match the call in the control cycle in advance, and to prevent omission of response information by substituting, for example, response information called immediately before.

1 이상의 컨트롤러(100)와 통신 서버(3) 사이에서, 1 이상의 컨트롤러(100) 중 적어도 어느 하나의 컨트롤 사이클에 동기한 통신 사이클을 생성하는 통신 사이클 생성부(131, 222)를 더 구비하고, 사이클 체크부(133, 225)는, 머신 지령에 부가된 제1 사이클 정보와, 통신 사이클의 사이클 정보에 기초하여, 머신 지령의 송신 지연을 검출하여도 좋다. 이 경우, 사이클 체크부(133, 225)에 의한 송신 지연의 검출을 용이하게 행할 수 있다.Between the one or more controllers 100 and the communication server 3, a communication cycle generation unit 131, 222 for generating a communication cycle synchronized with the control cycle of at least one of the one or more controllers 100 is further provided, The cycle check section 133, 225 may detect transmission delay of the machine command based on the first cycle information added to the machine command and the cycle information of the communication cycle. In this case, detection of the transmission delay by the cycle check units 133 and 225 can be easily performed.

〔머신 제어 시스템의 변형예〕[Modified example of machine control system]

머신 제어 시스템(1)은, 적어도, 1 이상의 머신(4)과, 1 이상의 머신(4)과 통신하는 1 이상의 서버가 갖는 가상 공간상에 실장되어, 1 이상의 머신(4)을 각각 제어하는 1 이상의 컨트롤러(100)를 구비하는 한에 있어서, 머신 제어 시스템(1)은 적절하게 변경 가능하다. 예컨대 도 20에 나타내는 바와 같이, 무선 통신 네트워크(7)를 유선 통신 네트워크(7A)로 치환하여도 좋다. 이 경우, 도 5, 도 7 및 도 8에 있어서, 통신 컨트롤러(200)와 로컬 컨트롤러(300) 사이에 개재되는 무선 통신 기지국(201) 및 무선 통신 단말(301)은 불필요해진다. 또한, 도 9에 있어서, 시각(pt5, pt13)에 실행되는 무선 통신 단말(301)의 처리도 불필요해진다. 도 21에 나타내는 바와 같이, 통신 서버(3)를, 예컨대 스위칭 허브 등의 통신 허브(3A)로 치환하여도 좋다. 이 경우, 통신 서버(3)가 갖고 있던 타이밍 마스터(224)가, 통신 서버(3) 이외의 1 이상의 서버(예컨대, 컨트롤러 서버(2), 시각 서버(5), 또는 애플리케이션 서버(6)) 중 어느 하나에 마련되어 있어도 좋다.The machine control system 1 is mounted on a virtual space of at least one or more machines 4 and one or more servers communicating with the one or more machines 4, and controls the one or more machines 4, respectively. As long as the above controller 100 is provided, the machine control system 1 can be changed appropriately. For example, as shown in Fig. 20, the wireless communication network 7 may be replaced with a wired communication network 7A. In this case, in FIGS. 5, 7 and 8, the wireless communication base station 201 and the wireless communication terminal 301 interposed between the communication controller 200 and the local controller 300 become unnecessary. In Fig. 9, processing of the radio communication terminal 301 executed at times pt5 and pt13 is also unnecessary. As shown in Fig. 21, the communication server 3 may be replaced with a communication hub 3A such as a switching hub, for example. In this case, the timing master 224 possessed by the communication server 3 is connected to one or more servers other than the communication server 3 (e.g., the controller server 2, the time server 5, or the application server 6). It may be provided in any one of them.

도 20 및 도 21과 같이, 컨트롤러(100)와 머신(4) 간의 통신이 무선 통신을 포함하지 않는 경우에 있어서도, 스토리지(193)는, 적어도 컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 것과, 대응하는 머신(4)에 있어서, 어느 머신측 컨트롤 사이클로 머신 지령을 호출할지를 지정하는 제1 사이클 정보를 머신 지령에 부가하는 것과, 제1 사이클 정보가 부가된 머신 지령을 대응하는 머신(4)에 송신하는 것을 실행하는 컨트롤러(100)를, 대응하는 머신(4)과 통신하는 컨트롤러 서버(2)의 가상 공간상에 실장시키는 프로그램을 기억한다. 스토리지(193)는, 대응하는 머신(4)이 제2 사이클 정보를 부가한 응답 정보를, 대응하는 머신(4)으로부터 수신하는 것과, 수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것을 더 실행하고, 호출한 응답 정보에 기초하여 모션 프로그램을 실행하여, 머신 지령을 생성하는 컨트롤러를 컨트롤러 서버(2)의 가상 공간상에 실장시키는 프로그램을 기억하고 있어도 좋다.20 and 21, even when the communication between the controller 100 and the machine 4 does not include wireless communication, the storage 193 executes a motion program with at least a control cycle, so that the motion program for the corresponding machine Generating a machine command, adding first cycle information specifying which machine-side control cycle to invoke the machine command in the corresponding machine 4 to the machine command, and adding the machine command with the first cycle information A program for mounting the controller 100 that executes transmission to the corresponding machine 4 on the virtual space of the controller server 2 communicating with the corresponding machine 4 is stored. The storage 193 causes the corresponding machine 4 to receive response information to which the second cycle information is added from the corresponding machine 4, stores the received response information, and stores the response information added to the response information. In the control cycle corresponding to the 2-cycle information, it further executes calling the response information, executes a motion program based on the called response information, and places a controller that generates machine commands in the virtual space of the controller server 2. You may store a program to be implemented in .

이상, 실시형태에 대해서 설명하였지만, 본 개시는 반드시 전술한 실시형태에 한정되는 것이 아니며, 그 요지를 일탈하지 않는 범위에서 여러 가지 변경이 가능하다.As mentioned above, although embodiment was described, this indication is not necessarily limited to the above-mentioned embodiment, and various changes are possible within the range which does not deviate from the summary.

1…머신 제어 시스템, 2…컨트롤러 서버, 4…머신, 3…통신 서버, 100…컨트롤러, 8…유선 통신 네트워크, 7…무선 통신 네트워크, 10…머신 본체, 113…모션 모듈, 114…동기 통신부, 115…비동기 통신부, 121…컨트롤러측 시각 생성부, 122…컨트롤러측 사이클 생성부, 123…타이밍 송신부, 5…시각 서버, 125…부가부, 211…컨트롤러측 통신부, 212…머신측 통신부, 116, 213…컨트롤러측 타이밍 조정부, 131, 222…통신 사이클 생성부, 224…타이밍 마스터, 133, 225…사이클 체크부, 134, 226…스위치, 314…단말 통신부, 313…머신 제어부, 315…머신측 타이밍 조정부, 321…머신측 시각 생성부, 322…머신측 사이클 생성부, 324…부가부.One… machine control system, 2 . . . controller server, 4 . . . machine, 3 . . . communication server, 100 . . . controller, 8... wired communication network, 7 . . . wireless communication network, 10 . . . machine body, 113 . . . motion module, 114 . . . synchronous communication unit, 115 . . . asynchronous communication unit, 121 . . . Controller-side time generation unit, 122 . . . Controller-side cycle generation unit, 123 . . . timing transmitter, 5 . . . time server, 125 . . . Bugaboo, 211... Controller-side communication unit, 212 . . . Machine side communication unit, 116, 213... Controller-side timing adjustment unit, 131, 222... Communication cycle generating unit, 224 . . . timing master, 133, 225... Cycle check unit, 134, 226... switch, 314... terminal communication unit, 313 . . . Machine control unit, 315... Machine-side timing adjustment unit, 321 . . . Machine-side time generation unit, 322 . . . Machine-side cycle generation unit, 324 . . . Bugaboo.

Claims (23)

머신 제어 시스템으로서,
현실 공간상에 구성되어, 각각 머신 지령에 따라 모션을 실현하는 1 이상의 머신과,
상기 1 이상의 머신과 통신하는 1 이상의 서버가 갖는 가상 공간상에 실장되어, 상기 1 이상의 머신을 각각 제어하는 1 이상의 컨트롤러
를 구비하고,
상기 1 이상의 컨트롤러의 각각은,
컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 모션 모듈과,
상기 머신 지령에 제1 사이클 정보를 부가하는 부가부와,
상기 머신 지령을 상기 대응하는 머신에 송신하는 동기 통신부
를 포함하고,
상기 1 이상의 머신의 각각은,
상기 1 이상의 서버로부터 상기 머신 지령을 수신하는 단말 통신부와,
상기 단말 통신부가 수신한 상기 머신 지령을 기억하여, 상기 머신 지령에 부가된 제1 사이클 정보에 대응하는 머신측 컨트롤 사이클로 상기 머신 지령을 호출하는 머신측 타이밍 조정부
를 포함하는 것인, 머신 제어 시스템.
As a machine control system,
one or more machines constructed in real space and each realizing motion according to machine commands;
One or more controllers mounted on a virtual space of one or more servers communicating with the one or more machines and controlling the one or more machines, respectively.
to provide,
Each of the one or more controllers,
A motion module that executes a motion program with a control cycle to generate machine commands for a corresponding machine;
an addition unit for adding first cycle information to the machine command;
Synchronous communication section for transmitting the machine command to the corresponding machine
including,
Each of the one or more machines,
a terminal communication unit for receiving the machine command from the one or more servers;
A machine-side timing adjusting unit that stores the machine command received by the terminal communication unit and calls the machine command with a machine-side control cycle corresponding to first cycle information added to the machine command.
The machine control system comprising a.
제1항에 있어서,
상기 1 이상의 머신의 각각은,
모션을 실현하는 본체와,
상기 머신측 타이밍 조정부가 호출한 머신 지령에 기초하여, 상기 본체에 모션을 실현시켜, 상기 본체가 실현한 모션에 기초한 응답 정보를 취득하는 머신 제어부와,
상기 응답 정보에 제2 사이클 정보를 부가하는 부가부
를 더 포함하고,
상기 단말 통신부는, 상기 응답 정보를 상기 1 이상의 서버에 송신하고,
상기 1 이상의 서버는, 상기 1 이상의 머신으로부터 수신한 상기 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 상기 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 컨트롤러측 타이밍 조정부를 포함하고,
상기 모션 모듈은, 상기 컨트롤러측 타이밍 조정부가 호출한 응답 정보에 기초하여, 상기 모션 프로그램을 실행하는 것인, 머신 제어 시스템.
According to claim 1,
Each of the one or more machines,
A body that realizes motion;
a machine control unit for realizing a motion in the main body based on a machine command called by the machine-side timing adjusting unit and acquiring response information based on the motion realized by the main body;
Adder for adding second cycle information to the response information
Including more,
The terminal communication unit transmits the response information to the one or more servers,
The one or more servers include a controller-side timing adjusting unit that stores the response information received from the one or more machines and calls the response information in the control cycle corresponding to the second cycle information added to the response information. do,
wherein the motion module executes the motion program based on response information called by the controller-side timing adjusting unit.
제1항 또는 제2항에 있어서,
상기 1 이상의 컨트롤러의 각각은,
상기 컨트롤 사이클의 사이클 타이밍을 상기 대응하는 머신에 송신하는 타이밍 송신부를 더 포함하고,
상기 1 이상의 머신의 각각은,
상기 사이클 타이밍에 기초하여, 대응하는 컨트롤러에 있어서의 상기 컨트롤 사이클에 동기한 상기 머신측 컨트롤 사이클을 생성하는 머신측 사이클 생성부를 더 포함하는 것인, 머신 제어 시스템.
According to claim 1 or 2,
Each of the one or more controllers,
a timing transmitter for transmitting the cycle timing of the control cycle to the corresponding machine;
Each of the one or more machines,
and a machine-side cycle generation unit that generates the machine-side control cycle synchronized with the control cycle in a corresponding controller based on the cycle timing.
제3항에 있어서,
상기 1 이상의 컨트롤러의 각각은,
시각 서버가 생성한 시각에 동기하여, 컨트롤러측 시각을 생성하는 컨트롤러측 시각 생성부와,
상기 컨트롤러측 시각에 기초하여, 상기 컨트롤 사이클을 생성하는 컨트롤러측 사이클 생성부
를 더 포함하고,
상기 1 이상의 머신의 각각은,
상기 시각 서버가 생성한 시각에 동기하여, 머신측 시각을 생성하는 머신측 시각 생성부를 더 포함하고,
상기 머신측 사이클 생성부는, 상기 머신측 시각 생성부가 생성한 시각과, 상기 사이클 타이밍에 기초하여, 상기 머신측 컨트롤 사이클을 생성하는 것인, 머신 제어 시스템.
According to claim 3,
Each of the one or more controllers,
a controller-side time generator for synchronizing with the time generated by the time server and generating a controller-side time;
A controller-side cycle generation unit that generates the control cycle based on the controller-side time.
Including more,
Each of the one or more machines,
a machine-side time generator configured to generate machine-side time in synchronism with the time generated by the time server;
wherein the machine-side cycle generation unit generates the machine-side control cycle based on the time generated by the machine-side time generation unit and the cycle timing.
제4항에 있어서,
상기 타이밍 송신부는, 상기 대응하는 머신의 상기 머신측 사이클 생성부가 상기 머신측 컨트롤 사이클의 생성에 실패한 경우, 앞서 송신한 사이클 타이밍보다 후의 사이클 타이밍을 상기 대응하는 머신에 재차 송신하는 것인, 머신 제어 시스템.
According to claim 4,
wherein the timing transmitting unit transmits cycle timing later than the previously transmitted cycle timing to the corresponding machine again, when the machine-side cycle generation unit of the corresponding machine fails to generate the machine-side control cycle. system.
제2항에 있어서,
상기 머신 제어부는, 상기 머신측 타이밍 조정부가 호출한 머신 지령에 기초하여, 상기 머신측 컨트롤 사이클보다 짧은 사이클 길이의 머신 사이클로 상기 본체를 제어하는 것인, 머신 제어 시스템.
According to claim 2,
wherein the machine control unit controls the main body with a machine cycle having a shorter cycle length than the machine-side control cycle based on a machine command called by the machine-side timing adjustment unit.
제2항에 있어서,
상기 머신 제어 시스템은, 상기 1 이상의 컨트롤러로서 복수의 컨트롤러를 구비하고,
상기 복수의 컨트롤러의 각각이 상기 컨트롤러측 타이밍 조정부를 포함하는 것인, 머신 제어 시스템.
According to claim 2,
The machine control system includes a plurality of controllers as the one or more controllers,
wherein each of the plurality of controllers includes the controller-side timing adjusting unit.
제7항에 있어서,
상기 1 이상의 서버는, 상기 복수의 컨트롤러에 있어서의 하나의 컨트롤러의 상기 동기 통신부가 송신하는 데이터가 상기 대응하는 머신 앞이면, 상기 대응하는 머신에 상기 데이터를 송신하고, 상기 데이터가 다른 컨트롤러 앞이면, 상기 다른 컨트롤러의 상기 컨트롤러측 타이밍 조정부에 상기 데이터를 송신하는 스위치를 더 포함하는 것인, 머신 제어 시스템.
According to claim 7,
The one or more servers transmit the data to the corresponding machine if the data transmitted by the synchronous communication unit of one controller in the plurality of controllers is addressed to the corresponding machine, and transmits the data to the corresponding machine if the data is addressed to another controller. , a switch for transmitting the data to the controller-side timing adjusting unit of the other controller.
제8항에 있어서,
상기 하나의 컨트롤러는,
상기 다른 컨트롤러를 포함하는 다른 노드에 대한 비동기 통신 데이터를, 상기 다른 노드에 송신하는 비동기 통신부를 더 포함하는 것인, 머신 제어 시스템.
According to claim 8,
The one controller,
The machine control system of claim 1, further comprising an asynchronous communication unit that transmits asynchronous communication data for another node including the other controller to the other node.
제7항 내지 제9항 중 어느 한 항에 있어서,
상기 복수의 컨트롤러 중 적어도 하나는, 마스터 타이밍에 기초하여, 상기 컨트롤 사이클을 생성하는 컨트롤러측 사이클 생성부를 더 포함하는 것인, 머신 제어 시스템.
According to any one of claims 7 to 9,
The machine control system, wherein at least one of the plurality of controllers further includes a controller-side cycle generation unit that generates the control cycle based on master timing.
제10항에 있어서,
상기 1 이상의 서버는, 상기 마스터 타이밍을 생성하는 타이밍 마스터를 더 포함하는 것인, 머신 제어 시스템.
According to claim 10,
The machine control system of claim 1 , wherein the one or more servers further include a timing master generating the master timing.
제1항 내지 제11항 중 어느 한 항에 있어서,
상기 1 이상의 서버는, 상기 머신 지령에 포함되는 상기 제1 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출하는 사이클 체크부를 더 구비하는 것인, 머신 제어 시스템.
According to any one of claims 1 to 11,
The machine control system of claim 1 , wherein the one or more servers further include a cycle check unit configured to detect transmission delay of the machine command based on the first cycle information included in the machine command.
제12항에 있어서,
상기 사이클 체크부는, 상기 머신 지령의 송신 지연을 검출한 경우에, 상기 머신 지령의 송신을 캔슬하는 것인, 머신 제어 시스템.
According to claim 12,
and wherein the cycle check unit cancels transmission of the machine command when a transmission delay of the machine command is detected.
제2항에 있어서,
상기 1 이상의 서버는, 상기 응답 정보에 포함되는 상기 제2 사이클 정보에 기초하여, 상기 응답 정보의 수신 지연을 검출하는 사이클 체크부를 더 구비하는 것인, 머신 제어 시스템.
According to claim 2,
The machine control system of claim 1 , wherein the one or more servers further include a cycle check unit that detects a delay in receiving the response information based on the second cycle information included in the response information.
제12항 또는 제13항에 있어서,
상기 1 이상의 서버는, 상기 1 이상의 컨트롤러 중 적어도 어느 하나의 컨트롤 사이클에 동기한 통신 사이클을 생성하는 통신 사이클 생성부를 더 구비하고,
상기 사이클 체크부는, 상기 머신 지령에 부가된 상기 제1 사이클 정보와, 상기 통신 사이클의 사이클 정보에 기초하여, 상기 머신 지령의 송신 지연을 검출하는 것인, 머신 제어 시스템.
According to claim 12 or 13,
The one or more servers further include a communication cycle generation unit that generates a communication cycle synchronized with a control cycle of at least one of the one or more controllers;
and the cycle check unit detects a transmission delay of the machine command based on the first cycle information added to the machine command and cycle information of the communication cycle.
프로그램으로서,
컨트롤 사이클로 모션 프로그램을 실행하여, 대응하는 머신에 대한 머신 지령을 생성하는 것과,
상기 대응하는 머신에 있어서, 어느 머신측 컨트롤 사이클로 상기 머신 지령을 호출할지를 지정하는 제1 사이클 정보를 상기 머신 지령에 부가하는 것과,
상기 제1 사이클 정보가 부가된 상기 머신 지령을 상기 대응하는 머신에 송신하는 것
을 실행하는 컨트롤러를, 상기 대응하는 머신과 통신하는 서버의 가상 공간상에 실장시키는, 프로그램.
As a program,
Executing a motion program with a control cycle to generate machine commands for a corresponding machine;
in the corresponding machine, adding first cycle information specifying in which machine-side control cycle the machine command is to be called, to the machine command;
Sending the machine command to which the first cycle information is added to the corresponding machine.
A program that mounts a controller that executes on the virtual space of a server that communicates with the corresponding machine.
제16항에 있어서,
상기 대응하는 머신이 제2 사이클 정보를 부가한 응답 정보를, 상기 대응하는 머신으로부터 수신하는 것과,
수신한 응답 정보를 기억하여, 상기 응답 정보에 부가된 제2 사이클 정보에 대응하는 상기 컨트롤 사이클에 있어서 상기 응답 정보를 호출하는 것
을 더 실행하고,
호출한 응답 정보에 기초하여 모션 프로그램을 실행하여, 머신 지령을 생성하는 컨트롤러를 상기 서버의 가상 공간상에 실장시키는 것인, 프로그램.
According to claim 16,
receiving, from the corresponding machine, response information to which second cycle information is added, from the corresponding machine;
Storing received response information and calling the response information in the control cycle corresponding to the second cycle information added to the response information.
run more,
A program that executes a motion program based on the called response information and mounts a controller that generates a machine command in a virtual space of the server.
머신으로서,
모션을 실현하는 본체와,
컨트롤러가 실장된 가상 공간을 구성하는 서버와 통신하여, 상기 컨트롤러가 사이클 정보를 부가한 머신 지령을 상기 서버로부터 수신하는 단말 통신부와,
상기 단말 통신부가 수신한 머신 지령을 기억하여, 상기 머신 지령에 부가된 사이클 정보에 대응하는 컨트롤 사이클에 있어서 상기 머신 지령을 호출하는 머신측 타이밍 조정부와,
상기 머신측 타이밍 조정부가 호출한 머신 지령에 기초하여, 상기 본체에 모션을 실현시키는 머신 제어부
를 구비하는, 머신.
As a machine
A body that realizes motion;
a terminal communication unit that communicates with a server constituting a virtual space in which a controller is mounted, and receives a machine command to which cycle information is added by the controller from the server;
a machine-side timing adjusting unit that stores the machine command received by the terminal communication unit and calls the machine command in a control cycle corresponding to cycle information added to the machine command;
Based on the machine command called by the machine-side timing adjusting unit, the machine control unit realizes motion in the main body.
A machine comprising a.
시스템으로서,
제1 처리를 반복하는 제1 디바이스와,
제1 디바이스와 통신하여, 제2 처리를 반복하는 제2 디바이스
를 구비하고,
상기 제1 디바이스는,
상기 제1 처리에 의해 제1 정보를 생성하는 제1 처리 모듈과,
상기 제1 정보에 제1 사이클 정보를 부가하는 제1 부가부와,
상기 제1 정보를 제2 디바이스에 송신하는 제1 통신부
를 포함하고,
상기 제2 디바이스는,
상기 제1 디바이스로부터 상기 제1 정보를 수신하는 제2 통신부와,
상기 제2 통신부가 수신한 상기 제1 정보를 기억하여, 상기 제1 정보에 부가된 제1 사이클 정보에 대응하는 사이클의 상기 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와,
상기 타이밍 조정부에 의해 호출된 상기 제1 정보에 기초하여 상기 제2 처리를 실행하는 제2 처리 모듈
을 포함하는 것인, 시스템.
As a system,
a first device repeating the first processing;
A second device that communicates with the first device and repeats the second process
to provide,
The first device,
a first processing module for generating first information by the first processing;
a first addition unit for adding first cycle information to the first information;
A first communication unit for transmitting the first information to a second device
including,
The second device,
a second communication unit configured to receive the first information from the first device;
a timing adjustment unit that stores the first information received by the second communication unit and calls the first information in the second processing of a cycle corresponding to the first cycle information added to the first information;
A second processing module that executes the second processing based on the first information called by the timing adjustment unit.
A system that includes a.
제19항에 있어서,
상기 제2 처리 모듈은, 상기 제2 처리에 의해 제2 정보를 생성하고,
상기 제2 디바이스는, 상기 제2 정보에 제2 사이클 정보를 부가하는 제2 부가부를 더 포함하고,
상기 제2 통신부는, 상기 제2 정보를 상기 제1 디바이스에 송신하고,
상기 제1 통신부는, 상기 제2 정보를 상기 제2 디바이스로부터 수신하고,
상기 제1 디바이스는, 상기 제1 통신부가 수신한 상기 제2 정보를 기억하여, 상기 제2 정보에 부가된 제2 사이클 정보에 대응하는 사이클의 상기 제1 처리에 있어서 상기 제2 정보를 호출하는 제1 타이밍 조정부를 더 포함하고,
상기 제1 처리 모듈은, 상기 제1 타이밍 조정부에 의해 호출된 상기 제2 정보에 기초하여 상기 제1 처리를 실행하는 것인, 시스템.
According to claim 19,
The second processing module generates second information by the second processing;
The second device further includes a second adder for adding second cycle information to the second information;
The second communication unit transmits the second information to the first device,
The first communication unit receives the second information from the second device,
The first device stores the second information received by the first communication unit and calls the second information in the first processing of a cycle corresponding to second cycle information added to the second information. Further comprising a first timing adjustment unit,
wherein the first processing module executes the first processing based on the second information called by the first timing adjustment unit.
디바이스로서,
제1 처리에 의해 제1 정보를 생성하는 것을 반복하는 제1 처리 모듈과,
제2 처리를 반복하는 제2 디바이스에 있어서, 어느 사이클의 상기 제2 처리에 있어서 상기 제1 정보를 호출할지를 지정하는 제1 사이클 정보를 상기 제1 정보에 부가하는 제1 부가부와,
상기 제1 부가부에 의해 제1 사이클 정보가 부가된 상기 제1 정보를 상기 제2 디바이스에 송신하는 통신부
를 구비하는, 디바이스.
As a device,
a first processing module that repeats generating first information by the first processing;
A second device that repeats a second process, comprising: a first addition unit for adding first cycle information specifying in which cycle the first information is to be called in the second process of a cycle to the first information;
A communication unit configured to transmit the first information to which the first cycle information is added by the first adding unit to the second device.
A device comprising a.
제21항에 있어서,
상기 통신부는, 상기 제2 디바이스가 상기 제2 처리에 의해 생성하여, 제2 사이클 정보를 부가한 제2 정보를, 상기 제2 디바이스로부터 수신하고,
상기 디바이스는,
상기 통신부가 수신한 상기 제2 정보를 기억하여, 상기 제2 정보에 부가된 제2 사이클 정보에 대응하는 사이클의 제1 처리에 있어서 상기 제2 정보를 호출하는 제1 타이밍 조정부를 더 구비하고,
상기 제1 처리 모듈은, 상기 제1 타이밍 조정부에 의해 호출된 상기 제2 정보에 기초하여 상기 제1 처리를 실행하여, 상기 제1 정보를 생성하는 것인, 디바이스.
According to claim 21,
The communication unit receives, from the second device, second information generated by the second device through the second processing and to which second cycle information is added, and
The device,
a first timing adjustment unit that stores the second information received by the communication unit and calls the second information in a first process of a cycle corresponding to second cycle information added to the second information;
wherein the first processing module executes the first processing based on the second information called by the first timing adjustment unit to generate the first information.
디바이스로서,
제1 처리를 반복하는 제1 디바이스가, 제1 처리에 의해 생성하여, 사이클 정보를 부가한 제1 정보를, 상기 제1 디바이스로부터 수신하는 통신부와,
상기 통신부가 수신한 상기 제1 정보를 기억하여, 상기 제1 정보에 부가된 사이클 정보에 대응하는 사이클의 제2 처리에 있어서 상기 제1 정보를 호출하는 타이밍 조정부와,
상기 타이밍 조정부에 의해 호출된 상기 제1 정보에 기초하여, 상기 제2 처리를 실행하는 처리 모듈
을 구비하는, 디바이스.
As a device,
a communication unit configured to receive, from the first device, first information generated by a first device repeating a first process, to which cycle information is added, from the first device;
a timing adjustment unit that stores the first information received by the communication unit and calls the first information in a second process of a cycle corresponding to the cycle information added to the first information;
A processing module configured to execute the second processing based on the first information called by the timing adjusting unit.
A device comprising a.
KR1020227042649A 2020-05-13 2020-11-12 Machine control systems, programs, machines, systems and devices KR20230006582A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPPCT/JP2020/019141 2020-05-13
PCT/JP2020/019141 WO2020230824A1 (en) 2019-05-13 2020-05-13 Machine control system, program, machine, and communication method
PCT/JP2020/042331 WO2021229842A1 (en) 2019-05-13 2020-11-12 Machine control system, program, machine, system, and device

Publications (1)

Publication Number Publication Date
KR20230006582A true KR20230006582A (en) 2023-01-10

Family

ID=84499098

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227042649A KR20230006582A (en) 2020-05-13 2020-11-12 Machine control systems, programs, machines, systems and devices

Country Status (3)

Country Link
EP (1) EP4138402A4 (en)
KR (1) KR20230006582A (en)
CN (1) CN115516870A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019209454A (en) 2018-06-08 2019-12-12 株式会社安川電機 Machining system and control method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904184B2 (en) * 2004-11-23 2011-03-08 Rockwell Automation Technologies, Inc. Motion control timing models
JP2010287959A (en) * 2009-06-09 2010-12-24 Yaskawa Electric Corp Synchronous communication system, communication device, and synchronous communication method
US9601006B2 (en) * 2015-07-30 2017-03-21 Roku, Inc. Universal remote control with automatic state synchronization
US10613213B2 (en) * 2016-05-13 2020-04-07 Google Llc Systems, methods, and devices for utilizing radar with smart devices
JP6333915B2 (en) * 2016-10-20 2018-05-30 ファナック株式会社 Numerical controller
JP6915441B2 (en) * 2017-08-10 2021-08-04 オムロン株式会社 Information processing equipment, information processing methods, and information processing programs
JP6946909B2 (en) * 2017-09-29 2021-10-13 オムロン株式会社 Control system and control device
JP7095262B2 (en) * 2017-11-10 2022-07-05 株式会社安川電機 Programming support device, robot system and program generation method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019209454A (en) 2018-06-08 2019-12-12 株式会社安川電機 Machining system and control method

Also Published As

Publication number Publication date
EP4138402A4 (en) 2024-05-15
CN115516870A (en) 2022-12-23
EP4138402A1 (en) 2023-02-22

Similar Documents

Publication Publication Date Title
KR102517023B1 (en) Machine control system, machine and communication method
KR101494117B1 (en) Electric motor control system and communication method
US10860010B2 (en) Information processing apparatus for estimating behaviour of driving device that drives control target, information processing method and computer readable recording medium
JP2018097661A (en) Production system, control apparatus and control method
US11613015B2 (en) Technique for providing reliable control in a cloud robotics system
KR102525831B1 (en) Control system, controller and control method
JP7494155B2 (en) Production system, cell controller, robot controller and control method
JP6915759B1 (en) Machine control systems, programs, machines, systems and devices
KR20230006582A (en) Machine control systems, programs, machines, systems and devices
US20220247632A1 (en) Control system, control device, and non-transitory computer-readable recording medium recording program
US11378936B2 (en) Control device, mechanical system, and time synchronization method
US20240223346A1 (en) Communication using time division duplex pattern
JP7400104B2 (en) Simulation device, control system, simulation method and program
US20240142954A1 (en) Communication system with ordered command data sets
WO2024018900A1 (en) Device control equipment, control system, and control method
JP2023108339A (en) Device controller, control system and control method
US20220278818A1 (en) Time synchronization of controller
CN116633983A (en) Communication method and device for multi-robot collaborative operation and communication middleware
CN118648262A (en) Communication system, communication device, and communication method

Legal Events

Date Code Title Description
A201 Request for examination