Machine control system, device and communication method

By caching machine instructions and response information on the machine and controller sides, the problem of synchronous communication reliability in wireless communication environments is solved, enabling accurate reception and processing within the control cycle and improving system stability and efficiency.

CN115516870BActive Publication Date: 2025-01-07YASKAWA DENKI KK
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080100688.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-05-13
Filing Date
2020-11-12
Publication Date
2025-01-07
Estimated Expiration
2040-11-12

AI Technical Summary

Technical Problem

In existing technologies, the reliability of synchronous communication between devices is difficult to guarantee, especially in wireless communication environments, where the timing of receiving machine instructions and response information fluctuates greatly, making it difficult to accurately receive and process them during the control cycle.

Method used

By caching machine instructions and response information on both the machine and controller sides until their usage time is reached, and then recalling this information in the corresponding cycle, a caching function is provided to absorb the timing fluctuations caused by wireless communication, ensuring timely availability during the control cycle.

Benefits of technology

It improves the reliability of synchronous communication between devices, ensures the accurate reception and processing of machine commands and response information within the control cycle, and enhances the stability and efficiency of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115516870B_ABST
    Figure CN115516870B_ABST
Patent Text Reader

Abstract

A machine control system (1) comprises: one or more machines (4) configured in a real space and realizing motion according to machine instructions; and one or more controllers (100) installed in a virtual space of one or more servers communicating with the one or more machines (4) and generating machine instructions for the one or more machines (4). The one or more controllers (100) respectively comprise: a motion module (113) executing a motion program in a control cycle and generating machine instructions for the corresponding machines (4); an addition unit (125) adding first cycle information to the machine instructions; and a synchronous communication unit (114) sending the machine instructions to the corresponding machines (4). The one or more machines (4) respectively comprise: a terminal communication unit (314) receiving machine instructions from one or more servers; and a machine-side timing adjustment unit (315) calling the machine instructions in a machine-side control cycle corresponding to the first cycle information added to the machine instructions.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a machine control system, a program, a machine, a system, and an apparatus. Background Art

[0002] Patent Document 1 discloses a system including a robot, a processing device, a robot controller for controlling the robot, a processing device controller for controlling the processing device, and a programmable logic controller for generating commands for the robot controller and the processing device controller.

[0003] Prior art literature

[0004] Patent Literature

[0005] Patent document 1: Japanese Patent Application Publication No. 2019-209454. Summary of the invention

[0006] Problems to be solved by the invention

[0007] The present disclosure provides a system effective in improving the reliability of synchronous communication between devices.

[0008] Means used to solve problems

[0009] One aspect of the present disclosure involves a machine control system comprising: one or more machines, which are constructed in a real space and realize motion according to machine instructions respectively; and one or more controllers, which are installed in a virtual space of one or more servers that communicate with the one or more machines and control the one or more machines respectively. The one or more controllers respectively have: a motion module, which executes a motion program in a control cycle and generates machine instructions for the corresponding machines; an attachment unit, which attaches first cycle information to the machine instructions; and a synchronous communication unit, which sends the machine instructions to the corresponding machines. The one or more machines respectively have: a terminal communication unit, which receives machine instructions from one or more servers; and a machine-side timing adjustment unit, which stores the machine instructions received by the terminal communication unit and calls the machine instructions in a machine-side control cycle corresponding to the first cycle information attached to the machine instructions.

[0010] Another aspect of the present disclosure involves a program that enables a controller to be installed in a virtual space of a server that communicates with a corresponding machine, wherein the controller performs: executing a motion program in a control cycle to generate machine instructions for the corresponding machine; attaching first cycle information that specifies in which machine-side control cycle the machine instruction is called to the machine instruction in the corresponding machine; and sending the machine instruction to which the first cycle information is attached to the corresponding machine.

[0011] Other aspects of the present disclosure involve a machine including: a main body, which realizes movement; a terminal communication unit, which communicates with a server that constitutes a virtual space on which a controller is installed, and the controller receives machine instructions with attached period information from the server; a machine-side timing adjustment unit, which stores the machine instructions received by the terminal communication unit and calls the machine instructions in a control cycle corresponding to the period information attached to the machine instructions; and a machine control unit, which enables the main body to realize movement based on the machine instructions called by the machine-side timing adjustment unit.

[0012] Other aspects of the present disclosure involve a system including: a first device that repeatedly performs a first process; and a second device that communicates with the first device and repeatedly performs a second process, the first device comprising: a first processing module that generates first information through the first process; a first appending unit that appends first periodic information to the first information; and a first communication unit that sends the first information to the second device, the second device comprising: a second communication unit that receives 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 a second process of a period corresponding to the first periodic information appended to the first information; and a second processing module that performs the second process based on the first information called by the timing adjustment unit.

[0013] Other aspects of the present disclosure involve devices including: a first processing module that repeatedly generates first information through a first process; a first appending unit that appends first cycle information to the first information that specifies in which cycle of the second process to call the first information in a second device that repeatedly performs the second process; and a communication unit that sends the first information to which the first cycle information is appended by the first appending unit to the second device.

[0014] Other aspects of the present disclosure involve devices including: a communication unit, which receives first information from a first device, where the first information is information generated by the first device through the first processing and attached with period information by repeating the first processing; a timing adjustment unit, which stores the first information received by the communication unit and calls the first information in a second processing of a period corresponding to the period information attached to the first information; and a processing module, which performs a second processing based on the first information called by the timing adjustment unit.

[0015] Effects of the Invention

[0016] According to the present disclosure, it is possible to provide a system that is effective in improving the reliability of synchronous communication between devices. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] Figure 1 This is a schematic diagram illustrating a schematic configuration of a device control system.

[0018] Figure 2 is a schematic diagram illustrating the structure of a robot.

[0019] Figure 3 This is a block diagram illustrating the functional structure of a controller server.

[0020] Figure 4 This is a block diagram illustrating the functional structure of the controller.

[0021] Figure 5 This is a block diagram illustrating the functional structure of the local controller.

[0022] Figure 6 It is a block diagram showing a modified example of the controller.

[0023] Figure 7 This is a block diagram illustrating the functional structure of a communication controller.

[0024] Figure 8 This is a block diagram illustrating the hardware structure of a controller server, a communication controller, and a local controller.

[0025] Fig. 9 is a timing diagram illustrating the cycle generation steps.

[0026] Fig.10 is a flowchart illustrating the cycle generation steps in the controller.

[0027] Fig.11 is a flow chart illustrating the cycle generation steps in the local controller.

[0028] Fig.12 This is a flowchart showing a variation of the cycle generation step in the local controller.

[0029] Fig.13 It is a timing chart illustrating the machine control steps.

[0030] Fig.14 is a flowchart illustrating the control steps in the controller.

[0031] Fig.15 is a flowchart illustrating the control steps in the controller.

[0032] Fig.16 is a flowchart illustrating the control steps in the controller.

[0033] Fig.17 is a flow chart illustrating control steps in a local controller.

[0034] Fig.18 is a flow chart illustrating control steps in a local controller.

[0035] Fig.19 is a flow chart illustrating control steps in a local controller.

[0036] Fig. 20 It is a schematic diagram showing a modified example of the device control system.

[0037] Fig.21 It is a schematic diagram showing another modified example of the machine control system. DETAILED DESCRIPTION

[0038] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the description, the same elements or elements having the same functions are denoted by the same reference numerals, and repeated descriptions are omitted.

[0039] The system involved in this embodiment includes a plurality of devices that perform repetitive processing while communicating with each other. Communication between devices sometimes requires synchronization of the processing cycles of each device. Hereinafter, communication synchronized with the processing cycles of each device is referred to as "synchronous communication".

[0040] In order to improve the reliability of synchronous communication, the system involved in this embodiment includes: a first device, which repeats a first process; and a second device, which communicates with the first device and repeats a second process, the first device having: a first processing module, which generates first information through the first process; a first appending unit, which appends first periodic information to the first information; and a first communication unit, which sends the first information to the second device, the second device having: a second communication unit, which receives the first information from the first device; a timing adjustment unit, which stores the first information received by the second communication unit and calls the first information in a second process of a period corresponding to the first periodic information appended to the first information; and a second processing module, which performs a second process based on the first information called by the timing adjustment unit.

[0041] If the fluctuation of the first reception timing in the second device becomes larger, it may be difficult to maintain synchronous communication. In contrast, according to the above system, the first information sent from the first device is cached in the second device and called in the second processing of the cycle corresponding to the first periodic information. In this way, by caching the first information until its use timing, the transmission of the first information from the first device side is advanced, and a margin can be provided from the reception timing of the first information in the second device to the use timing of the first information. This margin can absorb the fluctuation of the expanded reception timing caused by the communication conditions, etc., and call the cached first information at the appropriate use timing. Therefore, the reliability of synchronous communication can be improved.

[0042] The second processing module generates the second information through the second processing, the second device also has a second adding unit that adds the second period information to the second information, the second communication unit sends the second information to the first device, the first communication unit receives the second information from the second device, the first device also has a first timing adjustment unit, the first timing adjustment unit stores the second information received by the first communication unit, and calls the second information in the first processing of the cycle corresponding to the second period information attached to the second information, and the first processing module can perform the first processing based on the second information called by the first timing adjustment unit. In this case, the reliability of the two-way synchronous communication between the first device and the second device can be improved.

[0043] The first device and the second device may be devices installed in the real space or devices installed in the virtual space. The real space refers to a space where real objects exist. The virtual space is a space represented by data in order to simulate the real space. Installing a device in the virtual space means adding a program that simulates the function of the device in the virtual space to the device constituting the virtual space.

[0044] Specific examples of the first device and the second device include controllers, machines, sensors, motors, and servo drivers installed in real space. The first device and the second device may be controllers, machines, sensors, motors, and servo drivers installed in virtual space.

[0045] The communication between the first device and the second device may at least partially include wireless communication. When the communication between the first device and the second device includes wireless communication, the effect of absorbing the fluctuation of the above-mentioned reception timing is more effective.

[0046] Hereinafter, as an example of the present embodiment, a machine control system is specifically illustrated in which the first device is a controller installed in a virtual space, the second device is a machine installed in a real space, and the communication between the controller and the machine includes wireless communication.

[0047] [Machine control system]

[0048] Figure 1 The machine control system 1 shown is a system for controlling 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 for producing workpieces by coordinated motion of a plurality of machines 4 can be cited. Figure 1 As shown, the device control system 1 includes at least one controller server 2 , a communication server 3 , and a plurality of devices 4 .

[0049] The controller server 2 executes a predetermined operation in a control cycle. The controller server 2 includes a plurality of controllers 100 (see Figure 3). Multiple controllers 100 are installed in the virtual space in the controller server 2 to control multiple machines 4 respectively. One controller 100 corresponds to at least one machine 4. One controller 100 can correspond to multiple machines 4, and multiple controllers 100 can correspond to one machine 4. Installing in the virtual space means adding the function of the controller 100 to a computing device such as the controller server 2 through software. The functions of the controller 100 include: obtaining information from the machine 4; generating machine instructions based on the obtained information; and outputting the generated machine instructions to the machine 4. Multiple controllers 100 can also be assigned to multiple controller servers 2. In this way, the computing burden of one controller server 2 can be reduced.

[0050] The communication server 3 communicates with the controller server 2 via the wired communication network 8, communicates with the plurality of machines 4 via the wireless communication network 7, and relays information between the controller server 2 and the plurality of machines 4. As a specific example of the wired communication network 8, a local area network such as Ethernet (registered trademark) can be cited. As a specific example of the wireless communication network 7, a high-speed wireless communication network such as the fifth generation mobile communication system (5G) can be cited. The communication server 3 can be set in a place away from the controller server 2, or in a place close to the controller server 2, or in the same housing as the controller server 2.

[0051] 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 via the wired communication network 8, and communicates with the plurality of devices 4 via the wireless communication base station 201. The wireless communication base station 201 communicates with wireless communication terminals 301 (described later) of the plurality of devices 4 via the wireless communication network 7.

[0052] Multiple machines 4 are configured in the real space, and each realizes motion according to the calculation results of the controller server 2. For example, multiple machines 4 realize motion according to the above machine instructions. Realizing motion means displacing at least one object in the real space. Displacement includes movement and posture change. In addition, displacement includes displacement in a space that cannot be visually confirmed from the outside, such as inside a shell.

[0053] The plurality of machines 4 each have a machine body 10, a local controller 300, and a wireless communication terminal 301. The machine body 10 is a device that realizes motion. The machine body 10 may be any device as long as it realizes motion based on the calculation result of the controller server 2. Figure 1In the figure, as specific examples of the machine body 10, a mobile robot 20, a fixed robot 30, an NC machine tool 60, an environmental sensor 70, and a conveyor 80 are shown. The mobile robot 20 is a robot capable of autonomous driving, and has an unmanned guided vehicle 21 and a robot 22. The unmanned guided vehicle 21 autonomously drives according to the movement instructions included in the machine instructions. As a specific example of the unmanned guided vehicle 21, an electric so-called AGV (Automated Guided Vehicle) can be cited. The robot 22 performs operations on the workpiece according to the operation instructions included in the machine instructions.

[0054] For example, the robot 22 is a 6-axis vertical multi-joint robot, such as Figure 2 As shown, there are a base 31, a rotating part 32, a first arm 33, a second arm 34, a third arm 35, a front end 36, and actuators 41, 42, 43, 44, 45, 46. The base 31 is fixed to the unmanned guided vehicle 21. The rotating part 32 is arranged on the base 31 in a manner of rotating around a vertical axis 51. The first arm 33 is connected to the rotating part 32 in a manner of swinging around an axis 52 that intersects (for example, is orthogonal to) the axis 51. The intersection also includes a case where the relationship is in a torsion relationship such as a so-called three-dimensional intersection. The second arm 34 is connected to the front end of the first arm 33 in a manner of swinging around an axis 53 that is substantially parallel to the axis 52. The third arm 35 is connected to the front end of the second arm 34 in a manner of rotating around an axis 54 along the second arm 34 and swinging around an axis 55 that intersects (for example, is orthogonal to) the axis 54. The front end 36 is connected to the front end of the third arm 35 in a manner of rotating around an axis 56 that intersects (for example, is orthogonal to) the axis 55. The front end portion 36 is provided with various tools such as a suction nozzle, a robot hand, or a processing tool according to the application.

[0055] Actuators 41, 42, 43, 44, 45, and 46 include, for example, electric motors and speed reducers, and drive robot 22. For example, actuator 41 rotates rotating portion 32 about axis 51, actuator 42 swings first arm 33 about axis 52, actuator 43 swings second arm 34 about axis 53, actuator 44 rotates third arm 35 about axis 54, actuator 45 swings third arm 35 about axis 55, and actuator 46 rotates front end portion 36 about axis 56.

[0056] In addition, the specific structure of the robot 22 can be changed appropriately. For example, the robot 22 can be a 7-axis redundant robot with one axis joint added to the above-mentioned 6-axis vertical multi-joint robot, or a so-called SCARA (Selective Compliance Assembly Robot Arm) type multi-joint robot. In addition, the robot 22 can also be a so-called parallel link type robot.

[0057] Return to Figure 1, the fixed robot 30 is fixed to the ground of the working area, etc. As specific examples of the fixed robot 30, similar to the robot 22, a vertical multi-joint robot, a SCARA multi-joint robot, a parallel linkage robot, etc. can be cited. The NC machine tool 60 performs mechanical processing such as cutting processing on the workpiece according to the processing instructions included in the machine instructions. The environmental sensor 70 obtains the environmental information of the system according to the sensing instructions included in the machine instructions. As specific examples of the environmental sensor 70, a camera that obtains the environmental image of the system, a temperature sensor that obtains the ambient temperature of the system, etc. can be cited. The conveyor 80 transports the workpiece according to the transport instructions included in the machine instructions. As specific examples of the conveyor 80, a belt conveyor, a roller conveyor, etc. can be cited.

[0058] The local controller 300 communicates with the communication server 3 via the wireless communication terminal 301, and moves the machine body 10 according to the machine instruction obtained from the communication server 3 via the wireless communication terminal 301. In addition, 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 wireless communication terminal 301 communicates with the wireless communication base station 201 via the wireless communication network 7 according to the instruction from the local controller 300.

[0059] Since the fifth generation mobile communication system (5G) is available for practical use, high-speed wireless communication is possible, and therefore the possibility of realizing machine control via wireless communication is also increased. In machine control, it is necessary to repeatedly generate machine instructions based on the execution of the motion program and control of the machine 4 corresponding to the machine instructions in a prescribed control cycle. As described above, in the case of sending and receiving machine instructions via the wireless communication network 7, the fluctuation of the reception timing of the machine instructions on the machine 4 side increases due to the wireless communication, and it may be difficult for the machine 4 side to receive the machine instructions in the control cycle. In addition, in the case of sending and receiving response information via the wireless communication network 7, the fluctuation of the reception timing of the response information on the controller 100 side increases due to the wireless communication, and it may be difficult for the controller 100 side to receive the response information in the control cycle.

[0060] In this regard, the machine control system 1 may be configured to cache the machine instructions sent from the controller side (the controller 100 side of the wireless communication network 7) via the wireless communication network 7 on the machine side (the machine 4 side of the wireless communication network 7) until the use timing thereof. In this case, the machine instructions from the controller side can be sent in advance so that there is a margin between the reception timing of the machine instructions on the machine side and the use timing of the machine instructions. This margin can absorb the fluctuation of the reception timing amplified by the wireless communication, and the cached machine instructions can be used at a timing synchronized with the control cycle.

[0061] In addition, the machine control system 1 may be configured to cache the response information sent from the machine side via the wireless communication network 7 on the controller side until the timing of its use. In this case, the response information from the machine side can be sent in advance, so that there is a margin between the timing of receiving the response information on the controller side and the timing of using the response information. This margin can absorb the fluctuation of the reception timing expanded by wireless communication, and the cached response information can be used at the timing synchronized with the control cycle.

[0062] As described above, according to the structure in which machine instructions are cached on the machine side until their use timing is reached, and response information is cached on the controller side until its use timing is reached, it is possible to repeatedly obtain response information, generate machine instructions by executing a motion program based on the response information, and control the machine 4 corresponding to the machine instructions in a control cycle.

[0063] The following describes in more detail the configurations of the controller 100 , the communication controller 200 , and the local controller 300 .

[0064] (Controller)

[0065] The controller 100 is configured to perform the following steps: receiving response information sent by the corresponding machine 4 (hereinafter referred to as "the governing machine 4") from the communication server 3 via the wired communication network 8; executing the motion program based on the received response information to generate machine instructions for the governing machine 4; and sending the machine instructions to the communication server 3 via the wired communication network 8.

[0066] For example, Figure 4 As shown, the controller 100 includes a program storage unit 111, a reception information storage unit 112, a motion module 113, a synchronous communication unit 114, and an asynchronous communication unit 115 as functional structures (hereinafter referred to as "functional blocks").

[0067] The program storage unit 111 stores a motion program. The motion program includes a plurality of motion instructions in a time series. The motion instruction is, for example, a displacement instruction to a target position or posture. The motion instruction may include the designation of the arrival time to the target position or posture, and may also include the designation of the displacement speed to the target position or posture. The motion instruction may also be a displacement instruction at a target speed. In this case, the motion instruction may also include the designation of the displacement period at the target speed.

[0068] The reception information storage unit 112 stores reception information from the communication controller 200 of the communication server 3. The reception information includes the above-mentioned response information.

[0069] The motion module 113 executes the motion program in the control cycle and generates machine instructions for the governed machine 4. For example, the motion module 113 executes the motion program and repeatedly executes the generated machine instructions for the governed machine 4 in the control cycle. Executing the motion program includes calculating the machine instructions in a manner so that the motion of the governed machine 4 follows the motion instructions. The motion module 113 can also execute the motion program based on the response information stored in the received information storage unit 112. For example, the motion module 113 calculates the motion performance of the governed machine 4 based on the response information stored in the received information storage unit 112, and calculates the machine instructions so that the motion performance follows the motion instructions. As specific examples of machine instructions, speed instructions or driving force instructions (including torque instructions) can be cited.

[0070] The synchronous communication unit 114 sends the machine instruction to the communication controller 200 via the wired communication network 8. "Synchronous communication" refers to fixed-cycle communication that is synchronized with the control cycle. Synchronous communication includes communication performed at each control cycle and communication performed at each specified number of control cycles. As described later, the machine instruction sent by the synchronous communication unit 114 is cached in the local controller 300 that governs the machine 4 (hereinafter referred to as the "governing local controller 300") and is called at a timing synchronized with the control cycle. Therefore, the sending of the machine instruction by the synchronous communication unit 114 itself may not be synchronized with the control cycle.

[0071] The asynchronous communication unit 115 sends asynchronous communication data for other nodes to other nodes via the wired communication network 8 instead of the communication controller 200. "Asynchronous communication" means communication that is not necessarily synchronized with the control cycle, but may be synchronized with the control cycle. The other node may be another controller 100 or a node different from the plurality of controllers 100. As a specific example of the other node, the application server 6 (see Figure 1 ). The application server 6 is a computer connected to the controller server 2 via the wired communication network 8. The application server 6 can be assembled in either the controller server 2 or the communication server 3.

[0072] The application server 6 has a data collection application that collects and stores control information such as machine instructions and response information from multiple controllers 100. The application server 6 may also have a simulator application that simulates the movement of multiple machines 4 in a virtual space based on the control information stored in the data collection application. The application server 6 may also have a learning application that generates a learned model through machine learning based on the control information stored in the data collection application. As a specific example of a learned model, a diagnostic model that outputs the normality of the machine 4 based on the input of control information can be cited. The application server 6 may also have an analysis application that generates the above-mentioned output information such as normality based on the control information and the learned model, and sends the output information to the controller 100. The asynchronous communication unit 115 may also obtain the execution results of the simulator application, the learning application, the analysis application, etc. from the application server 6 via the wired communication network 8 instead of the communication controller 200.

[0073] The controller 100 may also be configured to cache the response information until its usage timing. For example, the controller 100 further includes a controller-side timing adjustment unit 116. The controller-side timing adjustment unit 116 stores the response information received from the governing machine 4, and calls the response information in a control cycle corresponding to the second cycle information attached to the response information. The second cycle information is information indicating the usage timing of the response information (for example, the number of control cycles when the response information is used, hereinafter referred to as the "usage cycle number"). The second cycle information may be either the usage cycle number itself, or the control cycle number of the governing local controller 300 that obtains the timing of the response information (hereinafter referred to as the "acquisition cycle number").

[0074] In the case where the second cycle information is the above-mentioned cycle number when in use, the controller-side timing adjustment unit 116 calls the response information in the control cycle where the control cycle number becomes the cycle number when in use. Calling the response information in the control cycle where the control cycle number becomes the cycle number when in use means calling the response information at a time that can be used in the control cycle. Therefore, in order to use it in the control cycle, calling the response information before the control cycle also includes calling the response information in the control cycle. In the case where the second cycle information is the above-mentioned acquisition cycle number, the controller-side timing adjustment unit 116 calculates the cycle number when in use based on the second cycle information (for example, plus a specified number), and calls the response information in the control cycle where the control cycle number becomes the cycle number when in use.

[0075] The controller-side timing adjustment unit 116 outputs the response information to the synchronous communication unit 114, and the synchronous communication unit 114 stores the response information in the received information storage unit 112. Thus, the motion module 113 of the controller 100 executes the motion program based on the response information called by the controller-side timing adjustment unit 116.

[0076] The controller 100 may also be configured to further generate the control cycle and send the cycle timing of the control cycle to the governing device 4. As described later, the cycle timing is used to generate a control cycle synchronized with the control cycle in the governing device 4. For example, the controller 100 may further include a controller-side time generation unit 121, a controller-side cycle generation unit 122, a timing transmission unit 123, and a cycle counter 124.

[0077] The controller-side time generation unit 121 generates the controller-side time synchronously 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 can be assembled in the controller server 2, and can also be assembled in the communication server 3. For example, the controller-side time generation unit 121 obtains the global time received from the time server 5 by the synchronous communication unit 114 through the communication that ensures the synchronization of the time, such as TSN (Time Sensitive Networking) communication via the wired communication network 8, and generates the controller-side time synchronously with the acquired global time. For example, the controller-side time generation unit 121 makes the time counted by the timer 195 (described later) consistent with the global time.

[0078] 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 periodic pulses in the control cycle from the time when the controller-side time reaches the start timing.

[0079] The timing sending unit 123 sends the cycle timing of the control cycle to the local controller 300 in charge via the communication controller 200. The cycle timing is information indicating the phase of the control cycle at the control side moment. For example, the cycle timing is the generation timing of the cycle pulse of the controller side cycle generating unit 122. The timing sending unit 123 can send the above-mentioned start timing as the cycle timing to the local controller 300 in charge before the controller side cycle generating unit 122 starts to generate the control cycle, or send the generation timing of the second and subsequent cycle pulses as the cycle timing to the local controller 300 in charge after the controller side cycle generating unit 122 starts to generate the control cycle. The timing sending unit 123 can also send the cycle timing as the main timing to other controllers 100. In this case, the controller side cycle generating unit 122 of the other controllers 100 can also obtain the main timing via the wired communication network 8, and generate the control cycle based on the obtained main timing and the controller side moment. For example, the controller side cycle generating unit 122 can also set the above-mentioned start timing based on the obtained main timing.

[0080] In the case where the machine-side timing adjustment unit 315 (described later) of the local controller 300 fails to generate a control cycle, the timing sending unit 123 may send a cycle timing later than the previously sent cycle timing to the local controller 300 again. For example, the timing sending unit 123 waits for the reception of the setting completion notification from the local controller 300, and when the controller-side moment reaches the cycle timing without receiving the setting completion notification, it is determined that the machine-side timing adjustment unit 315 has failed in generating a control cycle. The setting completion notification is a notification of the completion of the setting of the start timing in the local controller 300.

[0081] The cycle counter 124 counts the number of control cycles (e.g., the number of cycle pulses) generated by the controller-side cycle generation unit 122. The motion module 113 executes the motion program based on the number of control cycles counted by the cycle counter 124. For example, the motion module 113 changes the execution object from the currently executed motion instruction to the next motion instruction each time the control cycle number is incremented.

[0082] 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 generating unit 131 and a cycle counter 132 .

[0083] The communication cycle generation unit 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 moment and the cycle timing of the control cycle. For example, the communication cycle generation unit 131 sets a start timing synchronized with the start timing of the control cycle based on the cycle timing, and repeatedly generates periodic pulses in the communication cycle from the time point when the controller side moment reaches the start timing. In addition, the start timing synchronized with the start timing of the control cycle includes a start timing that is offset by a specified period (for example, half the cycle length of the control cycle) relative to the start timing of the control cycle. The cycle length of the communication cycle is an integer multiple (including 1) of the cycle length of the control cycle. The cycle length of the communication cycle may also be an integer fraction of the cycle length of the control cycle.

[0084] The cycle counter 132 counts the number of communication cycles (e.g., the number of cycle pulses) generated by the communication cycle generation unit 131. Since the communication cycle is generated synchronously with the control cycle, the control cycle number can be detected based on the communication cycle number. Therefore, the controller-side timing adjustment unit 116 can also call the response information in the control cycle where the control cycle number becomes the cycle number when used based on the communication cycle number.

[0085] The controller 100 may also be configured to attach information indicating the usage timing of the machine instruction. For example, the controller 100 may also have an attachment unit 125. The attachment unit 125 attaches first cycle information to the machine instruction. The first cycle information is information that specifies in which machine-side control cycle the machine instruction is called in the governing machine 4. The governing local controller 300 that receives the machine instruction with the first cycle information attached detects the above-mentioned usage timing (for example, the number of control cycles when the machine instruction is used. Hereinafter, referred to as "the number of cycles when used") based on the first cycle information, and caches the machine instruction to the usage timing. For example, the attachment unit 125 calculates the number of cycles when used based on the current number of control cycles, and attaches the number of cycles when used itself as the first cycle information to the machine instruction. As an example, the attachment unit 125 adds a specified number to the current number of cycles to calculate the number of cycles when used. The attachment unit 125 may also attach the current number of control cycles as the first cycle information to the machine instruction. In this case, the governing machine 4 calculates the number of cycles when used based on the first cycle information (for example, adding a specified number).

[0086] The controller 100 may also be configured to detect a transmission delay of the machine command based on the first cycle information included in the machine command. In addition, the controller 100 may also 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.

[0087] The cycle check unit 133 detects the transmission delay of the machine instruction based on the first cycle information included in the machine instruction. The transmission delay of the machine instruction refers to the delay to the extent that the local controller 300 does not have time to call the machine instruction. For example, when the synchronous communication unit 114 sends the machine instruction, the cycle check unit 133 detects the transmission delay of the machine instruction when the current control cycle number becomes greater than the above-mentioned cycle number when the machine instruction is used.

[0088] The cycle check unit 133 may also detect a delay in receiving the response information based on the second cycle information included in the response information. The delay in receiving the response information refers to a delay to the extent that the controller-side timing adjustment unit 116 fails to call the response information in time. For example, after receiving the response information from the control device 4, the cycle check unit 133 detects a delay in receiving the response information when the current control cycle number becomes greater than the above-mentioned cycle number when the response information is used.

[0089] As described above, the communication cycle is generated synchronously with the control cycle, so the control cycle number can be detected based on the communication cycle number. Therefore, the cycle check unit 133 can also detect the transmission delay of the machine instruction based on the first cycle information and the communication cycle number, and detect the reception delay of the response information based on the second cycle information and the communication cycle number.

[0090] The cycle check unit 133 may also cancel the sending of the machine command when a delay in sending the machine command is detected. For example, when a delay in sending the machine command is detected, the cycle check unit 133 discards the machine command before sending the machine command to the communication controller 200. The cycle check unit 133 may also discard the response information when a delay in receiving the response information is detected.

[0091] The synchronous communication unit 114 may also send synchronous communication data to the controller-side timing adjustment unit 116 of other controllers 100 among the plurality of controllers 100 via the wired communication network 8. As a specific example of synchronous communication data, there may be cited the state information of the governing machine 4 (e.g., machine instructions to the governing machine 4 or response information from the governing machine 4) used to coordinate the motion of the governing machine 4 with the motion of the machine 4 corresponding to the other controllers 100 (hereinafter referred to as "other machine 4").

[0092] When the synchronous communication unit 114 transmits the synchronous communication data to the controller-side timing adjustment unit 116 of the other controller 100 , the adding unit 125 may add the first cycle information to the synchronous communication data.

[0093] The controller-side timing adjustment unit 116 of the other controller 100 that receives the synchronous communication data to which the first cycle information is attached detects the usage timing of the synchronous communication data (for example, the number of control cycles when using the synchronous communication data. Hereinafter, referred to as the "number of cycles when in use") based on the first cycle information, and caches the synchronous communication data to the usage timing. For example, the attachment unit 125 calculates the number of cycles when in use based on the current number of control cycles, and attaches the number of cycles when in use itself as the first cycle information to the synchronous communication data. As an example, the attachment unit 125 calculates the number of cycles when in use by adding a specified number to the current number of cycles. The attachment unit 125 may also attach the current number of control cycles (hereinafter referred to as the "number of cycles when attached") as the first cycle information to the synchronous communication data.

[0094] The controller-side timing adjustment unit 116 of the other controller 100 stores the synchronous communication data and calls the synchronous communication data in the control cycle corresponding to the first cycle information attached to the synchronous communication data. When the first cycle information is the above-mentioned cycle number when in use, the controller-side timing adjustment unit 116 calls the synchronous communication data in the control cycle when the control cycle number becomes the cycle number when in use. When the first cycle information is the above-mentioned additional cycle number, the controller-side timing adjustment unit 213 calculates the cycle number when in use based on the first cycle information (for example, adding a prescribed number), and calls the synchronous communication data in the control cycle when the control cycle number becomes the cycle number when in use.

[0095] 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 received information storage unit 112. Thus, the motion module 113 of the other controller 100 executes the motion program based on the response information called by the controller-side timing adjustment unit 116.

[0096] Thus, the synchronous communication data is buffered in the controller-side timing adjustment unit 116 of the other controller 100 and is called at a timing synchronized with the control cycle. Therefore, the transmission of the synchronous communication data by the synchronous communication unit 114 itself does not need to be synchronized with the control cycle.

[0097] In the case where the data sent by the synchronous communication unit 114 includes synchronous communication data sent to other controllers 100, the cycle check unit 133 may also detect the transmission delay of the synchronous communication data based on the first cycle information included in the synchronous communication data. The transmission delay of the synchronous communication data refers to the delay to the extent that the controller-side timing adjustment unit 116 of the other controller 100 does not have time to call the synchronous communication data. For example, when the synchronous communication unit 114 sends the synchronous communication data, the cycle check unit 133 detects the transmission delay of the synchronous communication data when the control cycle number corresponding to the current communication cycle number becomes greater than the above-mentioned usage cycle number of the synchronous communication data. The cycle check unit 133 may also cancel the transmission of the synchronous communication data when the transmission delay of the synchronous communication data is detected.

[0098] The cycle check unit 133 of the other controller 100 may also 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 refers to the delay to the extent that the timing adjustment unit 116 on the controller side does not have time to call the synchronous communication data. For example, when the cycle check unit 133 receives the synchronous communication data sent to the timing adjustment unit 116 on the controller side, if the current control cycle number becomes greater than the above-mentioned number of cycles when the synchronous communication data is used, the reception delay of the synchronous communication data is detected. The cycle check unit 133 may also discard the synchronous communication data when the reception delay of the synchronous communication data is detected.

[0099] The controller 100 may be configured to switch the destination of the data transmitted by the synchronous communication unit 114 based on whether the data is transmitted to the managed device 4 or to another controller 100. For example, the controller 100 includes a switch 134.

[0100] If the data sent by the synchronous communication unit 114 is sent to the governing machine 4, the switch 134 sends the data to the governing local controller 300 via the communication server 3. If the data is sent to other controllers 100, the switch 134 sends the data to the controller-side timing adjustment unit 116 of other controllers 100 via the wired communication network 8.

[0101] (Local Controller)

[0102] The local controller 300 is configured to perform the following actions: receiving a machine instruction via the communication server 3, and causing the machine body 10 to move based on the machine instruction. Figure 5 As shown, the local controller 300 includes a terminal communication unit 314 , a device-side timing adjustment unit 315 , a command storage unit 311 , a device control unit 313 , and a response information storage unit 312 as functional blocks.

[0103] The terminal communication unit 314 receives the machine command from the communication server 3 via the wireless communication network 7. The command storage unit 311 stores the machine command received by the terminal communication unit 314. The machine control unit 313 causes the machine body 10 to move based on the machine command stored in the command storage unit 311, obtains response information based on the movement of the machine body 10, and stores it in the response information storage unit 312.

[0104] For example, the machine control unit 313 makes the movement of the machine body 10 follow the machine instruction. For example, the machine control unit 313 repeatedly executes in the machine side control cycle: driving the machine body 10 in a manner to reduce the deviation between the machine instruction stored in the instruction storage unit 311 and the past response information stored in the response information storage unit 312, obtaining the corresponding response information of the machine body 10 and storing it in the response information storage unit 312. For example, the machine side control cycle is a cycle having a cycle length equal to the above-mentioned control cycle. As an example, when the machine instruction is a speed instruction, the machine control unit 313 drives the machine body 10 so that the movement speed represented by the response information stored in the response information storage unit 312 follows the speed instruction. When the machine instruction is a driving force instruction, the machine control unit 313 drives the machine body 10 so that the driving force represented by the response information stored in the response information storage unit 312 follows the driving force instruction.

[0105] The machine control unit 313 may control the machine body 10 in a machine cycle having a cycle length shorter than the machine side control cycle. In each machine cycle, the machine control unit 313 drives the machine body 10 in a manner that reduces the deviation between the machine command and the past response information stored in the response information storage unit 312, obtains the corresponding response information of the machine body 10, and stores it in the response information storage unit 312. The cycle length of the machine cycle is, for example, an integer fraction of the cycle length of the machine side control cycle.

[0106] For example, the machine control unit 313 has an intermediate controller 331 and a servo mechanism 332. The intermediate controller 331 generates drive data (such as position instructions, speed instructions, or drive force instructions) for each actuator of the machine body 10 in the machine cycle to reduce the deviation between the machine instruction and the past response information stored in the response information storage unit 312. The servo mechanism 332 outputs drive power to each actuator of the machine body 10 based on the drive data. The servo mechanism 332 can also output the drive power based on the drive data in a servo cycle with a cycle length shorter than the machine cycle. In addition, the machine control unit 313 only needs to have at least one of the intermediate controller 331 and the servo mechanism 332. In the case where the machine control unit 313 does not have the servo mechanism 332, the machine control unit 313 outputs the above drive data to the machine body 10, and the machine body 10 generates the drive power of each actuator based on the drive data. In addition, in the case where the machine control unit 313 does not have the intermediate controller 331, the controller 100 generates the above drive data as a machine instruction and sends it to the controlled machine 4.

[0107] For example, when the machine body 10 is the mobile robot 20 or the fixed robot 30, the intermediate controller 331 may also obtain machine instructions including the target position, target posture, and target speed of the front end portion 36, and generate drive data including position instructions and speed instructions of the actuators 41, 42, 43, 44, 45, and 46 through inverse kinematics calculation. The intermediate controller 331 obtains machine instructions including the target position and target speed of the actuators 41, 42, 43, 44, 45, and 46, and generates drive data including drive force instructions of the actuators 41, 42, 43, 44, 45, and 46. In addition, the intermediate controller 331 may also generate drive data based on a plurality of machine instructions arranged in a time series.

[0108] 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 at each device-side control cycle.

[0109] The local controller 300 may be configured to cache the machine instructions until the machine instructions are used. For example, the local controller 300 further includes a machine-side timing adjustment unit 315 .

[0110] The machine-side timing adjustment unit 315 stores the machine instruction received by the terminal communication unit 314, and calls the machine instruction in the machine-side control cycle corresponding to the first cycle information attached to the machine instruction. When the first cycle information is the above-mentioned cycle number when in use, the machine-side timing adjustment unit 315 calls the machine instruction in the machine-side control cycle whose control cycle number becomes the cycle number when in use. Calling the machine instruction in the machine-side control cycle whose control cycle number becomes the cycle number when in use means calling the machine instruction at a time that can be used in the machine-side control cycle. Therefore, in order to use it in the machine-side control cycle, calling the machine instruction before the machine-side control cycle is also included in calling the machine instruction in the machine-side control cycle. When the first cycle information is the above-mentioned additional cycle number, the machine-side timing adjustment unit 315 calculates the cycle number when in use based on the first cycle information (for example, adding a specified number), and calls the machine instruction in the machine-side control cycle whose control cycle number becomes the cycle number when in use.

[0111] The device-side timing adjustment unit 315 stores the called device instruction in the instruction storage unit 311 . Thus, the device control unit 313 controls the device body 10 based on the device instruction called by the device-side timing adjustment unit 315 .

[0112] The local controller 300 may be configured to generate a device-side control cycle synchronized with a control cycle in the corresponding controller 100. For example, the local controller 300 may further include a device-side timing generator 321, a device-side cycle generator 322, and a cycle counter 323.

[0113] The machine-side time generation unit 321 generates the machine-side time synchronously with the above-mentioned global time. For example, the machine-side time generation unit 321 obtains the global time received by the terminal communication unit 314 from the communication server 3 through TSN communication or other communication that ensures time synchronization via the wireless communication network 7, and generates the machine-side time synchronously with the obtained global time. The machine-side time generation unit 321 can also obtain 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 generation unit 321 makes the time counted by the timer 395 (described later) consistent with the global time.

[0114] The machine-side cycle generation unit 322 obtains the cycle timing received by the terminal communication unit 314 from the communication server 3 via the wireless communication network 7, and generates a machine-side control cycle synchronized with the control cycle in the corresponding controller 100 based on the acquired cycle timing. For example, the machine-side cycle generation unit 322 generates the machine-side control cycle based on the machine-side time and the cycle timing. For example, the machine-side cycle generation unit 322 sets a start timing synchronized with the start timing of the control cycle in the corresponding controller 100 based on the cycle timing, and repeatedly generates cycle pulses in the machine-side control cycle from the time point when the machine-side time reaches the start timing. The machine-side cycle generation unit 322 may also send a setting completion notification to the controller 100 at the time point when the setting of the start timing is completed. The cycle length of the machine-side control cycle generated by the machine-side cycle generation unit 322 is the same as the cycle length of the control cycle in the controller 100.

[0115] The cycle counter 323 counts the number of control cycles (for example, the number of cycle pulses described above) generated by the machine-side cycle generation unit 322 .

[0116] The local controller 300 may also be configured to add information indicating the use timing to the response information sent by the terminal communication unit 314 to the communication server 3. For example, the local controller 300 may also include an adding unit 324. The adding unit 324 adds the second period information to the response information. As described above, the response information sent by the terminal communication unit 314 is cached in the controller-side timing adjustment unit 116 of the corresponding controller 100 and is called at a timing synchronized with the control cycle. Therefore, the sending of the response information by the terminal communication unit 314 itself may not be synchronized with the control cycle.

[0117] The local controller 300 may be configured to generate a machine cycle synchronized with the machine-side control cycle. For example, the local controller 300 further includes a local cycle generation unit 325 and a cycle counter 326 .

[0118] The local cycle generation unit 325 generates a machine cycle based on the machine-side time and the cycle timing. For example, the local cycle generation unit 325 sets a start timing synchronized with the start timing of the control cycle in the corresponding controller 100 based on the cycle timing, and repeatedly generates a cycle pulse in the machine cycle from the time point when the machine-side time reaches the start timing.

[0119] The cycle counter 326 counts the number of machine cycles (for example, the number of cycle pulses described above) generated by the local cycle generation unit 325 .

[0120] (Communication Controller)

[0121] The controller-side timing adjustment unit 116, the communication cycle generation unit 131, the cycle counter 132, the cycle check unit 133, and the switch 134 only need to be provided at least between the controller 100 and the communication controller 200 (including in the controller 100 and in the communication controller 200), and need not be provided in the controller 100. The following is an example of a configuration in which the controller-side timing adjustment unit, the communication cycle generation unit, the cycle counter, the cycle check unit, and the switch are provided in the communication controller 200. In this case, Figure 6 As shown, the controller 100 may not include the controller-side timing adjustment unit 116, the communication cycle generation unit 131, the cycle counter 132, the cycle check unit 133, and the switch 134. Figure 7 As shown, the communication controller 200 includes a controller-side communication unit 211 , a device-side communication unit 212 , and a controller-side timing adjustment unit 213 as functional blocks.

[0122] The controller-side communication unit 211 receives machine commands or synchronous communication data from each of the plurality of controllers 100 via the wired communication network 8 , and transmits response information or synchronous communication data to each of the controllers 100 via the wired communication network 8 .

[0123] The device-side communication unit 212 transmits a device command to each of the plurality of local controllers 300 via the wireless communication network 7 , and obtains response information from each of the plurality of local controllers 300 via the wireless communication network 7 .

[0124] 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 the control cycle corresponding to the second cycle information attached to the response information. In the case where the second cycle information is the above-mentioned cycle number when in use, the controller-side timing adjustment unit 213 calls the response information in the control cycle when the control cycle number becomes the cycle number when in use. Calling the response information in the control cycle when the control cycle number becomes the cycle number when in use means calling the response information at a time that can be used in the control cycle. Therefore, in order to use it in the control cycle, calling the response information before the control cycle is also included in calling the response information in the control cycle. In the case where the second cycle information is the above-mentioned cycle number when acquired, the controller-side timing adjustment unit 213 calculates the cycle number when in use based on the second cycle information (for example, plus a specified number), and calls the response information in the control cycle when the control cycle number becomes the cycle number when in use.

[0125] 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 received information storage unit 112. Thus, the motion module 113 of the corresponding controller 100 executes the motion program based on the response information called by the controller-side timing adjustment unit 213.

[0126] 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 timing generator 221, a communication cycle generator 222, and a cycle counter 223.

[0127] The time generating unit 221 generates the communication server time synchronously with the above-mentioned global time. For example, the time generating unit 221 obtains the global time received from the time server 5 by the controller side communication unit 211 through the communication that ensures the time synchronization such as TSN communication via the wired communication network 8, and generates the communication server time synchronously with the obtained global time. For example, the time generating unit 221 makes the time counted by the timer 296 (described later) consistent with the global time. In the case where the time server 5 is assembled into the communication server 3, the time generating unit 221 uses the global time itself as the communication server time.

[0128] The communication cycle generation unit 222 generates a communication cycle synchronized with the control cycle of at least any one of the multiple controllers 100. For example, the communication cycle generation unit 222 generates a communication cycle based on the communication server time and the cycle timing sent by at least any one of the multiple controllers 100 to the local controller 300. For example, the communication cycle generation unit 222 sets the start timing synchronized with the start timing of the control cycle based on the cycle timing, and repeatedly generates cycle pulses in the communication cycle from the time point when the communication server time reaches the start timing. In addition, the start timing synchronized with the start timing of the control cycle includes a start timing that is offset by a specified period (e.g., half the cycle length of the control cycle) relative to the start timing of the control cycle.

[0129] The communication cycle generating unit 222 may also send a setting completion notification to the controller 100 at the time point when the setting of the start timing is completed. The cycle length of the communication cycle is an integer multiple (including 1) of the cycle length of the control cycle. The cycle length of the communication cycle may also be an integer fraction of the cycle length of the control cycle.

[0130] The cycle counter 223 counts the number of communication cycles (e.g., the number of cycle pulses) generated by the communication cycle generation unit 222. Since the communication cycle is generated synchronously with the control cycle, the control cycle number can be detected based on the communication cycle number. Therefore, the controller-side timing adjustment unit 213 can also call the response information in the control cycle where the control cycle number becomes the cycle number when used based on the communication cycle number.

[0131] The communication controller 200 may also be configured to generate the master timing. For example, the communication controller 200 may also include a timing host 224. The timing host 224 generates the master timing based on the communication server time. The timing host 224 sends the generated master timing to at least one of the plurality of controllers 100 via the wired communication network 8.

[0132] In the case where the communication controller 200 has a timing host 224 and at least one of the plurality of controllers 100 generates a control cycle based on the master timing, the communication cycle generation unit 222 generates a communication cycle based on the communication server time and the master timing. For example, the communication cycle generation unit 222 may also set the above-mentioned start timing based on the master timing. The generation of the control cycle in at least one of the plurality of controllers 100 and the generation of the communication cycle in the communication controller 200 are performed based on the same master timing, whereby the communication cycle is synchronized with the control cycle.

[0133] The communication controller 200 may also be configured to detect the transmission delay of the machine instruction based on the first cycle information included in the machine instruction. In addition, the communication controller 200 may also be configured to detect the reception delay of the response information based on the second cycle information included in the response information. For example, the communication controller 200 may also include a cycle check unit 225.

[0134] The cycle check unit 225 detects the transmission delay of the machine instruction based on the first cycle information included in the machine instruction. The transmission delay of the machine instruction refers to the delay to the extent that the local controller 300 does not have time to call the machine instruction. For example, before the machine-side communication unit 212 sends the machine instruction to the local controller 300, the cycle check unit 225 detects the transmission delay of the machine instruction when the control cycle number corresponding to the current communication cycle number becomes greater than the above-mentioned usage cycle number of the machine instruction.

[0135] The cycle check unit 225 may also detect a delay in receiving the response information based on the second cycle information included in the response information. The delay in receiving the response information refers to a delay to the extent that the controller-side timing adjustment unit 213 fails to call the response information in time. For example, after the machine-side communication unit 212 receives the response information from the machine 4, the cycle check unit 225 detects a delay in receiving the response information when the control cycle number corresponding to the current communication cycle number becomes greater than the above-mentioned cycle number when the response information is used.

[0136] As described above, since the communication cycle is generated synchronously with the control cycle, the control cycle number can be detected based on the communication cycle number. Therefore, the cycle check unit 225 can also detect the transmission delay of the machine instruction based on the first cycle information and the communication cycle number, and detect the reception delay of the response information based on the second cycle information and the communication cycle number.

[0137] The cycle check unit 225 may also cancel the sending of the machine command by the machine side communication unit 212 when detecting a delay in sending the machine command. For example, when the cycle check unit 225 detects a delay in sending the machine command, it discards the machine command before the machine side communication unit 212 sends the machine command. The cycle check unit 225 may also discard the response information when detecting a delay in receiving the response information.

[0138] The communication controller 200 may be configured to switch the destination of the data received from the controller 100 based on whether the data is sent to the managed device 4 or to another controller 100. In this case, the controller 100 may be configured to add the destination to the data sent to the communication controller 200. For example, the communication controller 200 has a switch 226.

[0139] If the data received by the controller-side communication unit 211 from a controller 100 is sent to the governing machine 4, the switch 226 sends the data to the governing local controller 300 via the machine-side communication unit 212 via the wireless communication network 7. If the data is sent to other controllers 100, the data is sent to the other controllers 100 via the wired communication network 8 through the controller-side communication unit 211.

[0140] When the switch 226 sends synchronous communication data to other controllers 100 through the controller-side communication unit 211, the controller-side timing adjustment unit 213 stores the synchronous communication data and calls the synchronous communication data in the control cycle corresponding to the first cycle information attached to the synchronous communication data. When the first cycle information is the above-mentioned cycle number when in use, the controller-side timing adjustment unit 213 calls the synchronous communication data in the control cycle when the control cycle number becomes the cycle number when in use. When the first cycle information is the above-mentioned additional cycle number, the controller-side timing adjustment unit 213 calculates the cycle number when in use based on the first cycle information (for example, adding a specified number), and calls the synchronous communication data in the control cycle when the control cycle number becomes the cycle number when in use.

[0141] The controller-side communication unit 211 transmits the synchronous communication data called by the controller-side timing adjustment unit 213 to the other controller 100 as its 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 received information storage unit 112. Thus, the motion module 113 of the other controller 100 executes the motion program based on the synchronous communication data called by the controller-side timing adjustment unit 213.

[0142] In the case where the data received by the controller-side communication unit 211 from the controller 100 includes synchronous communication data sent to other controllers 100, the cycle check unit 225 may also detect the reception delay of the synchronous communication data based on the first cycle information contained in the synchronous communication data. The reception delay of the synchronous communication data refers to the delay to the extent that the controller-side timing adjustment unit 213 does not have time to call the synchronous communication data. For example, after the controller-side communication unit 211 receives the synchronous communication data from the controller 100, the cycle check unit 225 detects the reception delay of the synchronous communication data when the control cycle number corresponding to the current communication cycle number becomes greater than the above-mentioned usage cycle number of the synchronous communication data. The cycle check unit 225 may also discard the synchronous communication data when the reception delay of the synchronous communication data is detected.

[0143] Figure 8 2 is a block diagram illustrating the hardware configuration of the controller server 2, the communication controller 200, and the local controller 300. Figure 8 As shown, 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 components of the circuit 190 is not limited to one.

[0144] The memory 193 stores a program that causes the controller server 2 to execute the following steps: receiving a response message sent by the governed machine 4 from the communication server 3 via the wired communication network 8; executing a motion program based on the received response message to generate a machine instruction for the governed machine 4; and sending the machine instruction to the communication server 3 via the wired communication network 8. The control method that the program causes the controller server 2 to execute may also include: storing the received response information, and calling the response information in a control cycle corresponding to the second cycle information attached to the response information. 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 memory 193 stores a program for causing the controller server 2 to constitute each functional block of the above-mentioned controller 100.

[0145] The memory 192 temporarily stores programs loaded from the storage 193. The processor 191 temporarily stores the calculation results in the memory 192 while executing the programs loaded into the memory 192. The wired communication port 194 communicates with the communication controller 200 via the wired communication network 8 according to the instructions from the processor 191. The timer 195 measures the elapsed time by counting clock pulses.

[0146] 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 .

[0147] The memory 293 stores a program for causing the communication controller 200 to execute the following communication method, which includes: receiving machine instructions from multiple controllers 100 via the wired communication network 8; sending machine instructions to multiple machines 4 via the wireless communication network 7; receiving response information from multiple machines 4 via the wireless communication network 7; and sending response information to multiple controllers 100 via the wired communication network 8. The communication method that the program causes the communication controller 200 to execute may also include: storing the received response information, and calling the response information in a control cycle corresponding to the second cycle information attached to the response information. In this case, sending the response information via the wired communication network 8 includes sending the response information called in the control cycle corresponding to the second cycle information. For example, the memory 293 stores a program for causing the communication controller 200 to constitute the above-mentioned functional blocks.

[0148] The memory 292 temporarily stores programs loaded from the storage 293. The processor 291 temporarily stores the calculation results in the memory 292 while executing the programs loaded into the memory 292. The wired communication port 294 communicates with the controller server 2 via the wired communication network 8 according to the instructions from the processor 291. The wireless communication port 295 communicates with the local controller 300 via the wireless communication base station 201 and the wireless communication terminal 301 according to the instructions from the processor 291. The timer 296 measures the elapsed time by counting clock pulses.

[0149] 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 driving circuit 396 .

[0150] The memory 393 stores a program for causing the local controller 300 to execute the following control method, which includes receiving a machine instruction via the communication server 3 and causing the machine body 10 to move based on the machine instruction. The control method that the program causes the local controller 300 to execute may also include: storing the received machine instruction, and calling the machine instruction in a machine-side control cycle corresponding to the first cycle information attached to the machine instruction. In this case, causing the machine body 10 to move based on the machine instruction includes: causing the machine body 10 to move based on the machine instruction called in the machine-side control cycle corresponding to the first cycle information. For example, the local controller 300 stores a program for causing the local controller 300 to constitute the above-mentioned functional blocks.

[0151] The memory 392 temporarily stores programs loaded from the storage 393. The processor 391 temporarily stores the calculation results in the memory 392 while executing the programs loaded in the memory 392. The wireless communication port 394 communicates with the communication controller 200 via the wireless communication terminal 301 and the wireless communication base station 201 according to the instructions from the processor 391. The timer 395 measures the elapsed time by counting the clock pulses. The drive circuit 396 supplies the drive power to the machine body 10 according to the instructions from the processor 391.

[0152] (Machine control steps)

[0153] Next, as an example of the device control method, an apparatus control procedure executed by the device control system 1 is illustrated. This procedure includes a cycle generation step such as a control cycle and a communication cycle, and an apparatus control step in the generated cycle.

[0154] (Overview of the cycle generation steps)

[0155] The cycle generating step includes: the controller 100 generates a control cycle; and the local controller 300 generates a machine-side control cycle synchronized with the control cycle.

[0156] Fig. 9 1 is a timing diagram illustrating an overview of the cycle generation step, and the horizontal axis of each diagram represents the elapsed time. (i) represents the information processing timing in the time server 5, (ii) represents the information processing timing for the control cycle generation in the controller 100, (iii) represents the information processing timing for the communication cycle generation in the controller 100, (iv) represents the information processing timing in the wireless communication terminal 301, and (v) represents the information timing in the local controller 300.

[0157] First, at time pt1, the time server 5 sends the global time to the controller 100. The controller 100 receives the global time at time pt2 and generates a 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 generates a machine-side time synchronized with the global time received by the wireless communication terminal 301 at time pt6.

[0158] The controller 100 sets the start timing of the control cycle at time pt11 based on the controller side time, and sets the start timing of the communication cycle at time pt12. The wireless communication terminal 301 receives the cycle timing from the communication controller 200 via the wireless communication base station 201 at time pt13, and the local controller 300 sets the start timing consistent with the above start timing at time pt14 based on the cycle timing received by the wireless communication terminal 301.

[0159] After that, the controller 100 starts to generate the control cycle c1 at the time pt21 corresponding to the start timing, starts to generate the communication cycle c2 at the time pt22 corresponding to the start timing, and the local controller 300 starts to generate the control cycle c3 at the time pt23 corresponding to the start timing. The cycle generation step is completed.

[0160] The control cycle generation step and the communication cycle generation step performed by the controller 100 in the cycle generation step, and the control cycle generation step performed by the local controller 300 are respectively described in detail below.

[0161] (Cycle generation step in controller)

[0162] Fig.10 is a flowchart illustrating the cycle generation steps in the controller 100. Fig.10 As shown, the controller 100 first executes steps S01, S02, S03, S04, and S05. In step S01, the controller-side time generation unit 121 waits for the synchronous communication unit 114 to receive the global time. In step S02, the controller-side time generation unit 121 generates the controller-side time synchronously with the global time received by the synchronous communication unit 114. In step S03, the controller-side cycle generation unit 122 sets the start timing of the control cycle based on the controller-side time. In addition, the communication cycle generation unit 131 sets the start timing of the communication cycle based on the controller-side time. In step S04, the controller-side cycle generation unit 122 sets the start flag of the control cycle to "cannot start". In step S05, the timing sending unit 123 sends the cycle timing of the control cycle (such as the above-mentioned start timing) to the local controller 300 via the communication server 3. The timing sending unit 123 can also send the cycle timing as the main timing to other controllers 100.

[0163] Next, the controller 100 executes step S06. In step S06, the timing transmission unit 123 confirms whether a setup completion notification is received from the local controller 300. In step S06, if it is determined that a setup completion notification is 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".

[0164] Next, the controller 100 executes step S08. In step S06, if it is determined that the setup completion notification has not been received from the local controller 300, the controller 100 does not execute step S07 but executes step S08. In step S08, the controller-side cycle generator 122 checks whether the control-side time has reached the start timing.

[0165] In step S08, if it is determined that the control-side time has not reached the start timing, the controller 100 returns the process to step S06. Thereafter, the reception confirmation of the setting completion notification is repeated until the control-side time reaches the start timing.

[0166] In step S08, when it is determined that the control-side time has reached the start timing, the controller 100 executes step S09. In step S09, the controller-side cycle generation unit 122 checks whether the start flag is "startable".

[0167] When it is determined in step S09 that the start flag is not "startable", the controller 100 returns the processing to step S03. Thus, the processing after the setting of the start timing 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 generation unit 122 starts generating the control cycle, and the timing sending unit 123 starts counting the number of control cycles. In addition, the communication cycle generation unit 131 starts generating the communication cycle, and the cycle counter 132 starts counting the communication cycle. The above is the completion of the control cycle generation step in the controller 100. In addition, in step S11, the communication cycle generation unit 131 may also start generating the communication cycle at a timing that is staggered from the start of generating the control cycle by the controller-side cycle generation unit 122.

[0168] (Control cycle generation step in local controller)

[0169] Fig.11 is a flow chart illustrating the cycle generation steps in the local controller 300. Fig.11As shown, the local controller 300 first executes steps S31, S32, and S33. In step S31, the machine-side time generation unit 321 waits for the terminal communication unit 314 to receive the global time. In step S32, the machine-side time generation unit 321 generates the machine-side time synchronously with the global time received by the terminal communication unit 314. In step S33, the machine-side cycle generation unit 322 waits for the terminal communication unit 314 to receive the cycle timing (such as the above-mentioned start timing) sent by the corresponding controller 100.

[0170] Next, the local controller 300 executes steps S34, S35, S36, S37, and S38. In step S34, the machine-side cycle generation unit 322 sets the start timing synchronized with the start timing of the control cycle in the corresponding controller 100 based on the cycle timing received by the terminal communication unit 314. In step S35, the machine-side cycle generation unit 322 sends a setting completion notification to the controller 100. In step S36, the machine-side cycle generation unit 322 waits for the machine-side moment to reach the start timing. In step S37, the machine-side cycle generation unit 322 starts generating the machine-side control cycle, and the cycle counter 323 starts counting the number of control cycles. In step S38, the local cycle generation unit 325 starts generating the machine cycle, and the cycle counter 326 starts counting the number of machine cycles. Above, the control cycle generation step in the local controller 300 is completed.

[0171] (Variation of the cycle generation step)

[0172] As described above, the controller 100 may also 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. Fig.12 is a flowchart showing the steps of period generation based on the main timing. Fig.12 As shown, the controller 100 first executes steps S51, S52, and S53. In step S51, the controller-side time generation unit 121 waits for the synchronous communication unit 114 to receive the global time. In step S52, the controller-side time generation unit 121 generates the controller-side time in synchronization with the global time received by the synchronous communication unit 114. In step S53, the controller-side cycle generation unit 122 waits for the synchronous communication unit 114 to receive the master timing.

[0173] Next, the controller 100 executes steps S55, S56, S57, and S58. In step S55, the controller-side cycle generation unit 122 sets the start timing synchronized with the main timing. In step S56, the controller-side cycle generation unit 122 sends a setting completion notification to the communication controller 200. In step S57, the controller-side cycle generation unit 122 waits for the controller-side moment to reach the start timing. In step S58, the controller-side cycle generation unit 122 starts generating the controller cycle, and the timing sending unit 123 starts counting the number of control cycles. Above, the control cycle generation step in the controller 100 is completed.

[0174] (Overview of machine control procedures)

[0175] The machine control steps include: the controller 100 executes the motion program in the control cycle to generate a machine instruction for the governed machine 4; attaches the first cycle information to the machine instruction; sends the machine instruction to the communication controller 200; the communication controller 200 receives the machine instruction; sends the machine instruction to the governed local controller 300; the governed local controller 300 receives the machine instruction from the communication controller 200; stores the received machine instruction, calls the machine instruction in the machine side control cycle corresponding to the first cycle information attached to the machine instruction; and enables the machine body 10 to realize movement based on the called machine instruction.

[0176] In addition, the machine control step may also include: the local controller 300 obtains response information based on the movement achieved by the machine body 10; attaches second cycle information to the response information; sends the response information to the communication controller 200; the communication controller 200 or the controller 100 stores the received response information, and calls the response information in a control cycle corresponding to the second cycle information attached to the response information; and the controller 100 executes the motion program based on the called response information.

[0177] Fig.13 The following are timing diagrams for illustrating the outline of the machine control steps. The horizontal axis of each diagram represents the elapsed time. (i) represents the information processing timing in the motion module 113, (ii) represents the information processing timing in the synchronous communication unit 114, (iii) represents the information processing timing in the controller-side timing adjustment unit 116, (iv) represents the information processing timing in the terminal communication unit 314, (v) represents the information processing timing in the machine-side timing adjustment unit 315, and (vi) represents the information processing timing in the machine control unit 313.

[0178] exist Fig.13In the figure, periods c11, c12, and c13 are control periods generated sequentially by the controller side period generation unit 122, periods c21, c22, and c23 are communication periods generated sequentially by the communication period generation unit 131 in synchronization with periods c11, c12, and c13, and periods c31, c32, and c33 are machine side control periods generated sequentially by the machine side period generation unit 322 in synchronization with periods c11, c12, and c13.

[0179] For example, the motion module 113 executes the motion program at time t10 of cycle c11 and generates a machine instruction. The machine instruction is sent by the synchronous communication unit 114 at time t11 and received by the terminal communication unit 314 at time t12. The machine instruction received by the terminal communication unit 314 is stored by the machine-side timing adjustment unit 315 at time t13 and called in the machine-side control cycle (for example, cycle c33) corresponding to the first cycle information attached to the machine instruction. Then, based on the called machine instruction, at time t14 of cycle c33, the machine control unit 313 causes the machine body 10 to move. Due to wireless communication, fluctuations occur at time t12, but due to the margin from time t12 to time t14, the fluctuations at time t12 are absorbed, and the machine instruction is used at time t14 synchronized with the control cycle.

[0180] The machine control unit 313 obtains the response information based on the movement achieved by the machine body 10 at time t110 of cycle c31. The response information is sent by the terminal communication unit 314 at time t111, stored by the controller-side timing adjustment unit 116 at time t112, and called in the control cycle (for example, cycle c13) corresponding to the second cycle information attached to the response information. The called response information is stored in the received information storage unit 112 through the synchronous communication unit 114 at time t113 immediately before cycle c13, and the motion module 113 executes the motion program at time t114 of cycle c13 based on the response information stored in the received information storage unit 112. Due to wireless communication, fluctuations occur at time t112, but due to the margin from time t112 to time t114, the fluctuations at time t112 are absorbed, and the response information is used at time t114 synchronized with the control cycle.

[0181] Hereinafter, the machine control steps are divided into control steps in the controller 100 and control steps in the local controller 300 and illustrated in detail.

[0182] (Control steps in controller)

[0183] The control steps in the controller 100 include a data receiving step and a data generating / transmitting step. The data receiving step and the data generating / transmitting step are repeatedly executed in parallel. The data receiving step may not necessarily be executed synchronously with the control cycle, but the data generating / transmitting step is executed synchronously with the control cycle.

[0184] Fig.14 is a flowchart illustrating the steps of data reception. Fig.14 As shown, the controller 100 first executes steps S91 and S92. In step S91, the synchronous communication unit 114 waits for the reception of data from the communication controller 200. In step S92, the cycle check unit 133 confirms whether there is no delay in receiving the data. For example, the cycle check unit 133 confirms whether there is no delay in sending the response information based on the second cycle information attached to the response information.

[0185] If it is determined in step S92 that there is a delay in receiving the data, the controller 100 executes step S93. In step S93, the cycle check unit 133 discards the data.

[0186] If it is determined in step S92 that there is no data reception delay, the controller 100 executes step S94. In step S94, the cycle check unit 133 causes the controller-side timing adjustment unit 116 to store the data. After executing steps S93 and S94, the controller 100 returns the process to step S91. The communication controller 200 repeats the above steps.

[0187] Fig.15 It is a flowchart of the steps of exemplifying data generation / transmission. The controller 100 first executes steps S71, S72, S73, S74, and S75. In step S71, the motion module 113 waits for the increment count of the number of control cycles by the cycle counter 124. In step S72, the controller-side timing adjustment unit 116 calls the received data (such as response information and synchronous communication data) corresponding to the current number of control cycles when the cycle number is used. In step S73, the motion module 113 executes the motion program and generates a machine instruction for the governed machine 4. For example, the motion module 113 calculates the motion performance of the governed machine 4 based on the response information stored in the received information storage unit 112, and calculates the machine instruction so that the motion performance follows the motion instruction. In step S74, the attachment unit 125 attaches the first cycle information to the machine instruction. In step S75, the synchronous communication unit 114 sends the machine instruction to the communication server 3 via the wired communication network 8. The specific processing content of step S75 will be described later.

[0188] 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 appending unit 125 appends the first cycle information to the synchronous communication data. In step S78, the synchronous communication unit 114 sends the synchronous communication data to the communication server 3 via the wired communication network 8. The specific processing content of step S78 will be described later. After that, the controller 100 returns the processing to step S71. The controller 100 repeats the above steps.

[0189] Fig.16 2 is a flowchart illustrating the steps of sending data in steps S75 and S78. Fig.16 As shown, the controller 100 first executes step S82. In step S82, the cycle check unit 133 confirms whether there is no data transmission delay. For example, the cycle check unit 133 confirms whether there is no machine instruction transmission delay based on the first cycle information attached to the machine instruction, and confirms whether there is no synchronous communication data transmission delay based on the first cycle information attached to the synchronous communication data.

[0190] If it is determined in step S82 that there is a data transmission delay, the controller 100 executes step S83. In step S83, the cycle check unit 133 discards the data.

[0191] In step S82 , when 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 to be transmitted to the managed device 4 or to another controller 100 .

[0192] In step S84 , when it is determined that the data is addressed to the managed device 4 , the communication controller 200 executes step S85 . In step S85 , the switch 134 transmits the data to the managed device 4 via the communication server 3 .

[0193] In step S84, if it is determined that the data is sent to another controller 100, the communication controller 200 executes step S86. In step S86, the switch 134 sends the data to the controller-side timing adjustment 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 steps.

[0194] (Control steps in local controller)

[0195] The control steps in the local controller 300 include a machine instruction receiving step, a timing adjustment step, and a machine control step. They are repeatedly executed in parallel. The machine instruction control step may not necessarily be executed synchronously with the control cycle, but the timing adjustment step is executed synchronously with the control cycle. The machine control step is executed synchronously with the machine cycle.

[0196] Fig.17 FIG. 1 is a flowchart illustrating the steps of receiving a machine instruction. Fig.17 As shown, the local controller 300 executes steps S111 and S112. In step S111, the terminal communication unit 314 waits for the reception of the machine command. In step S112, the machine-side timing adjustment 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 steps.

[0197] Fig.18 is a flowchart illustrating the timing adjustment steps. Fig.18 As shown, the local controller 300 executes steps S121, S122, S123, and S124. In step S121, the machine-side timing adjustment unit 315 waits for the increment count of the control cycle number performed by the cycle counter 323. In step S122, the machine-side timing adjustment unit 315 calls the machine instruction whose cycle number corresponds to the current control cycle number when used, and saves it in the instruction storage unit 311. As a result, the machine instruction stored in the instruction storage unit 311 is updated. In step S123, the appending unit 324 appends the second cycle information to the response information stored in the response information storage unit 312. In step S124, the terminal communication unit 314 sends the response information to the communication controller 200 via the wireless communication network 7. Thereafter, the local controller 300 returns the processing to step S121. The local controller 300 repeats the above steps.

[0198] Fig.19 is a flowchart illustrating the steps of machine control. Fig.19 As shown, the local controller 300 first executes steps S131 and S132. In step S131, the machine control unit 313 waits for the machine cycle number to be counted up by the cycle counter 326. In step S132, the cycle counter 326 confirms whether the machine instruction stored in the instruction storage unit 311 is updated.

[0199] In step S132, when it is determined that the machine instruction stored in the instruction storage unit 311 is 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 (for example, zero).

[0200] Next, the local controller 300 executes step S134. In step S132, if it is determined that the machine command stored in the command storage unit 311 has not been updated, the local controller 300 does not execute step S133 but executes step S134. In step S134, the machine control unit 313 generates drive data in a manner that reduces the deviation between the machine command and the response information stored in the response information storage unit 312.

[0201] 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 drive data. In step S136, the machine control unit 313 obtains response information based on the movement achieved 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 steps.

[0202] [Effects of this embodiment]

[0203] As described above, the machine control system 1 comprises: one or more machines 4, which are constructed in the real space and realize movement according to machine instructions respectively; one or more controllers 100, which are installed in the virtual space and control one or more machines 4 respectively; and a communication server 3, which communicates with one or more controllers 100 via a wired communication network 8 and communicates with one or more machines 4 via a wireless communication network 7. The one or more controllers 100 respectively have: a motion module 113, which executes the motion program in the control cycle and generates machine instructions for the corresponding machine 4; an addition unit 125, which adds first cycle information to the machine instructions; and a synchronous communication unit 114, which sends the machine instructions to the communication server 3. The one or more machines 4 respectively have: a terminal communication unit 314, which receives machine instructions from the communication server 3; and a machine-side timing adjustment unit 315, which stores the machine instructions received by the terminal communication unit 314 and calls the machine instructions in the machine-side control cycle corresponding to the first cycle information added to the machine instructions.

[0204] Since the fifth generation mobile communication system (5G) is put into practical use, high-speed wireless communication is possible, and thus the possibility of realizing machine control via wireless communication is also improved. In machine control, it is necessary to repeat the generation of machine instructions based on the execution of a motion program and the control of the machine corresponding to the machine instructions in a predetermined control cycle. In the case where the generated machine instructions are sent via a wireless communication network, the fluctuation of the reception timing of the machine instructions on the machine side is enlarged due to the wireless communication, and it may be difficult for the machine side to receive the machine instructions in the control cycle. According to the present machine control system 1, the machine instructions sent from the communication server 3 via the wireless communication network 7 are cached on the machine 4 side and called in the machine side control cycle corresponding to the first cycle information. In this way, by caching the machine instructions until the use timing thereof, the sending of the machine instructions from the controller 100 side is advanced, so that there is a margin from the reception timing of the machine instructions in the machine 4 to the use timing of the machine instructions. Through this margin, the fluctuation of the reception timing enlarged by the wireless communication can be absorbed, and the cached machine instructions can be called in the machine side control cycle. Therefore, in a system that transmits machine commands via wireless communication, generation of machine commands based on execution of a motion program and control of machines corresponding to the machine commands can be repeated in a control cycle, which is effective in realizing machine control via wireless communication.

[0205] Alternatively, one or more machines 4 may further include: a machine body 10 for realizing motion; a machine control unit 313 for realizing motion of the machine body 10 based on a machine instruction called by a machine-side timing adjustment unit 315, and obtaining response information based on the motion realized by the machine body 10; and an addition unit 324 for adding second cycle information to the response information, the terminal communication unit 314 sending the response information to the communication server 3, the machine control system 1 may further include a controller-side timing adjustment unit 116, 213 between one or more controllers 100 and the communication server 3, the controller-side timing adjustment unit 116, 213 storing the response information received from one or more machines 4, and calling the response information in a control cycle corresponding to the second cycle information added to the response information, and the motion module 113 executing the motion program based on the response information called by the controller-side timing adjustment unit 116, 213. In this case, the response information sent from the machine 4 via the wireless communication network is cached on the controller 100 side and called in a control cycle corresponding to the first cycle information. In this way, by implementing the function of caching the response information until its use timing, the response information from the machine 4 side is sent in advance, so that there is a margin between the reception timing of the response information on the controller 100 side and the use timing of the response information. This margin can absorb the fluctuation of the reception timing expanded by wireless communication, and call the cached response information in the control cycle. Therefore, in a system that sends response information via wireless communication, the reception of response information can be repeated in the control cycle. Therefore, it is more effective to realize machine control via wireless communication.

[0206] Alternatively, one or more controllers 100 may further include a timing transmission unit 123 for transmitting a cycle timing of a control cycle to a corresponding device 4, and one or more devices 4 may further include a device-side cycle generation unit 322, which generates a device-side control cycle synchronized with the control cycle in the corresponding controller 100 based on the cycle timing. In this case, after the synchronization process based on the cycle timing, a device-side control cycle synchronized with the control cycle in the controller 100 is generated in the device 4. Therefore, the burden of wireless communication can be suppressed, and the device-side control cycle in the device 4 can be easily synchronized with the control cycle in the controller.

[0207] Alternatively, one or more controllers 100 may further include: a controller-side time generating unit 121 that generates a controller-side time in synchronization with the time generated by the time server 5; and a controller-side cycle generating unit 122 that generates a control cycle based on the controller-side time, and one or more machines 4 may further include a machine-side time generating unit 321 that generates a machine-side time in synchronization with the time generated by the time server, and the machine-side cycle generating unit 322 generates a machine-side control cycle based on the time and cycle timing generated by the machine-side time generating unit 321. In this case, by aligning the time in the controller 100 and the machine 4 in advance, even if the reception timing of the cycle timing in the machine 4 fluctuates, the machine-side control cycle in the machine 4 can be generated at an appropriate timing based on the machine-side time.

[0208] The timing transmission unit 123 may also resend a cycle timing later than the previously sent cycle timing to the corresponding machine 4 when the machine side cycle generation unit 322 of the corresponding machine 4 fails to generate the machine side control cycle. 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.

[0209] The machine control unit 313 may also control the machine body 10 with a machine cycle whose cycle length is shorter than the control cycle based on the machine instruction called by the machine-side timing adjustment unit 315. In this case, it is possible to simultaneously realize the fixed periodicity of calling the machine instruction based on the control cycle and the appropriate control of the machine based on a more subdivided machine cycle.

[0210] The machine control system 1 includes a plurality of controllers 100 as one or more controllers, and each of the plurality of controllers 100 may include a controller-side timing adjustment unit 116. In this case, each of the plurality of controllers 100 can perform synchronous communication with the controlled machine 4, and on the other hand, the necessity of synchronizing the control cycle between the plurality of pairs of the controller 100 and the machine 4 using the same network is reduced, and the system can be easily configured.

[0211] A switch 134 may be further provided, and if the data sent by the synchronous communication unit 114 of one of the plurality of controllers 100 is sent to the corresponding device, the data is sent to the corresponding device 4 via the communication server 3, and if the data is sent to another controller 100, the data is sent to the controller-side timing adjustment unit 116 of the other controller 100 via the wired communication network 8. In this case, the synchronous communication unit 114 can be appropriately used separately for the synchronous communication between the controller 100 and the device 4 and the synchronous communication between the controllers 100.

[0212] 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.

[0213] 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 a master timing received via the wired communication network 8. In this case, the control cycles between the controllers 100 can be easily synchronized.

[0214] The communication server 3 may also include a timing host 224 that generates a main timing, and the controller-side cycle generation unit 122 receives the main timing from the timing host 224. In this case, in any of the plurality of controllers 100 whose control cycles should be synchronized, the same setting of the control cycle can be generated using the timing host generated by the timing host 224 of the communication server 3. Therefore, it is easy to add or delete a controller 100 to the system.

[0215] A cycle check unit 133 or 225 may be further provided between one or more controllers 100 and the communication server 3 to detect a transmission delay of the machine command based on the first cycle information included in the machine command. In this case, the reliability of transmission of the machine command synchronized with the control cycle can be improved.

[0216] The cycle check unit 133 may also cancel the transmission of the machine command when a delay in the transmission of the machine command is detected. In this case, by canceling the transmission of the machine command that is not called in time in the control cycle, wireless communication resources in the communication server 3 can be saved.

[0217] A cycle check unit 133, 225 may be further provided between one or more controllers 100 and the communication server 3, and the cycle check unit 133, 225 detects a reception delay of the response information based on the second cycle information included in the response information. In this case, it is possible to detect in advance the response information that is not available in the control cycle, for example, to replace the response information of the previous call to prevent the loss of the response information.

[0218] A communication cycle generating unit 131, 222 may be further provided between one or more controllers 100 and the communication server 3, the communication cycle generating unit 131, 222 generating a communication cycle synchronized with the control cycle of at least one of the one or more controllers 100, and the cycle checking unit 133, 225 detecting the transmission delay of the machine instruction based on the first cycle information added to the machine instruction and the cycle information of the communication cycle. In this case, the cycle checking unit 133, 225 can easily detect the transmission delay.

[0219] (Variation of the machine control system)

[0220] The machine control system 1 can be modified as appropriate as long as it includes at least one or more machines 4 and one or more controllers 100 installed in a virtual space of one or more servers that communicate with the one or more machines 4 and control the one or more machines 4 respectively. Fig. 20 As shown, the wireless communication network 7 may be replaced by a wired communication network 7A. Figure 5 , Figure 7 and Figure 8 In the embodiment, the wireless communication base station 201 and the wireless communication terminal 301 between the communication controller 200 and the local controller 300 are not required. Fig. 9 In this case, the processing of the wireless communication terminal 301 at time pt5 and pt13 is not necessary. Fig.21 As shown, the communication server 3 may also be replaced by a communication hub 3A such as a switching hub. In this case, the timing host 224 of the communication server 3 may also be set in any one of more than one servers other than the communication server 3 (e.g., the controller server 2, the time server 5 or the application server 6).

[0221] like Fig. 20 and Fig.21As shown, even in the case where the communication between the controller 100 and the machine 4 does not include wireless communication, the memory 193 stores a program that causes the controller 100 to be installed in the virtual space of the controller server 2 that communicates with the corresponding machine 4, and the controller 100 executes: at least in the control cycle, the motion program is executed to generate a machine instruction for the corresponding machine; first cycle information that specifies in which machine-side control cycle the machine instruction is called in the corresponding machine 4 is attached to the machine instruction; and the machine instruction attached with the first cycle information is sent to the corresponding machine 4. The memory 193 may also store a program that causes the controller to be installed in the virtual space of the controller server 2, and the controller also executes: receiving response information to which the second cycle information of the corresponding machine 4 is attached from the corresponding machine 4; and storing the received response information, calling the response information in the control cycle corresponding to the second cycle information attached to the response information, and the controller executes the motion program based on the called response information to generate the machine instruction.

[0222] As mentioned above, although embodiment was described, this disclosure is not necessarily limited to the said embodiment, Various changes are possible within the range which does not deviate from the summary.

[0223] Explanation of symbols

[0224] 1…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 transmission unit, 5…timing server, 125…additional unit, 211…controller side communication unit, 212…machine side communication unit, 116, 213…controller side timing adjustment unit, 131, 222…communication cycle generation unit, 224…timing host, 133, 225…cycle inspection 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…additional unit.

Claims

1. A machine control system comprising: One or more machines are constructed in real space and each machine moves according to machine instructions; and One or more controllers are installed in a virtual space of one or more servers that communicate with the one or more machines, and control the one or more machines respectively. The one or more controllers respectively have: A motion module, executing a motion program in a control cycle to generate the machine instructions for the corresponding machine; an appending unit, which appends the first cycle information to the machine instruction; and The synchronous communication unit sends the machine instruction including the first cycle information to the corresponding machine, The one or more machines each have: a terminal communication unit, receiving the machine instruction from the one or more servers; and The machine-side timing adjustment unit stores the machine instruction received by the terminal communication unit, and calls the machine instruction at a machine-side control cycle corresponding to the first cycle information added to the machine instruction.

2. The machine control system according to claim 1, wherein: The one or more machines each further have: a subject, which realizes said movement; a machine control unit that causes the main body to achieve motion based on the machine instruction called by the machine-side timing adjustment unit, and obtains response information based on the motion achieved by the main body; and an appending unit, which appends the second cycle information to the response information, The terminal communication unit sends the response information to the one or more servers. The one or more servers further include a controller-side timing adjustment unit that stores the response information received from the one or more devices and calls the response information in the control period corresponding to the second period information attached to the response information; The exercise module executes the exercise program based on the response information called by the controller-side timing adjustment unit.

3. The machine control system according to claim 1, wherein: The length of the machine-side control period is equal to the length of the control period.

4. The machine control system according to claim 1, wherein: Each of the one or more controllers further includes a timing transmission unit, and the timing transmission unit transmits the cycle timing of the control cycle to the corresponding device. Each of the one or more devices further includes a device-side cycle generating unit configured to generate the device-side control cycle synchronized with the control cycle in a corresponding controller among the one or more controllers based on the cycle timing.

5. The machine control system according to claim 4, wherein: The one or more controllers each further include: A controller-side time generating unit that generates a controller-side time in synchronization with a time generated by a time server; and a controller-side cycle generating unit, which generates the control cycle based on the controller-side time, Each of the one or more devices further includes a device-side time generating unit, wherein the device-side time generating unit generates a device-side time in synchronization with the time generated by the time server. The machine-side cycle generation unit further generates the machine-side control cycle based on the machine-side time generated by the machine-side time generation unit and the cycle timing.

6. The machine control system according to claim 5, wherein: The timing transmission unit retransmits a cycle timing later than the previously transmitted cycle timing to the corresponding device when the device-side cycle generation unit of the corresponding device fails to generate the device-side control cycle.

7. The machine control system according to claim 2, wherein: The machine control section further controls the main body with a machine cycle having a cycle length shorter than the machine-side control cycle based on the machine instruction called by the machine-side timing adjustment section.

8. The machine control system according to claim 2, wherein: The machine control system includes a plurality of controllers as the one or more controllers. Each of the plurality of controllers includes the controller-side timing adjustment unit.

9. The machine control system according to claim 8, wherein: The one or more servers further have: The switch sends the data to the corresponding machine if the data sent by the synchronous communication unit of one of the multiple controllers is sent to the corresponding machine, and sends the data to the controller-side timing adjustment unit of the other controller if the data is sent to other controllers.

10. The machine control system according to claim 9, wherein: The one controller further includes an asynchronous communication unit that transmits asynchronous communication data for other nodes including the other controller to the other nodes.

11. A machine control system according to any one of claims 8 to 10, wherein: At least one of the plurality of controllers further includes a controller-side cycle generating unit configured to generate the control cycle based on a main timing.

12. The machine control system of claim 11, wherein: The one or more servers have a timing host, and the timing host is configured to generate the master timing.

13. The machine control system according to any one of claims 1 to 7, wherein: The one or more servers further include a cycle checking unit configured to detect a transmission delay of the machine command based on the first cycle information included in the machine command.

14. The machine control system of claim 13, wherein: The cycle check section is further configured to cancel the transmission of the machine instruction when the transmission delay of the machine instruction is detected.

15. The machine control system of claim 2, wherein: The one or more servers further include a cycle checking unit configured to detect a reception delay of the response information based on the second cycle information included in the response information.

16. The machine control system of claim 13, wherein: The one or more servers further include a communication cycle generating unit, which generates a communication cycle in synchronization with a control cycle of at least one of the one or more controllers. The cycle check section further detects the transmission delay of the machine instruction based on the first cycle information attached to the machine instruction and the cycle information of the communication cycle.

17. A device comprising: A first processing module configured to repeatedly perform a first process including generating first information; A first adding unit, configured to add first period information to the first information; The first communication unit is configured to: sending the first information to a second device via a communication network; and receiving second information from the second device via the communication network, and appending second period information to the second information by the second device; as well as The timing adjustment unit is configured as follows: storing the received second information; and The second information is called in the first process corresponding to the second cycle information added to the stored second information.

18. A communication method, comprising: Repeating the first process including generating the first information; adding first period information to the first information; sending the first information to a second device via a communication network; receiving second information from the second device via the communication network, and appending second period information to the second information by the second device; storing the received second information; The stored second information is called in the first process corresponding to the second cycle information added to the stored second information.

Citation Information

Patent Citations

  • Machining system and control method

    JP2019209454A

  • Control system and control device

    EP3462257A1