WO2021024523A1 - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- WO2021024523A1 WO2021024523A1 PCT/JP2020/007163 JP2020007163W WO2021024523A1 WO 2021024523 A1 WO2021024523 A1 WO 2021024523A1 JP 2020007163 W JP2020007163 W JP 2020007163W WO 2021024523 A1 WO2021024523 A1 WO 2021024523A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- cycle
- control
- field device
- processing unit
- Prior art date
Links
- 238000004891 communication Methods 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 31
- 230000000737 periodic effect Effects 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 16
- 230000001360 synchronised effect Effects 0.000 description 14
- 238000004519 manufacturing process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41815—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/12—Plc mp multi processor system
- G05B2219/1214—Real-time communication between plc, Ethernet for configuration, monitor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15039—Display of reference, set value, of measured, feedback value
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25428—Field device
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33213—Communication cpu to synchronize axis between different machines
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34402—Synchronize programs for machines, processes, tasks, if one stops other also
Definitions
- the present invention relates to a control device capable of controlling a plurality of control targets.
- FA Vectory Automation
- PLC Programmable Logic Controller
- Such a control device not only directly controls the control target, but may also indirectly control the control target by giving a control command to another device.
- Patent Document 2 discloses a technique for realizing a control operation according to a plurality of types of programs having different execution formats with a single control device.
- a command value calculation is performed for a program in which the entire program is executed for each control cycle and a program in which the entire program is executed sequentially according to an intermediate code generated by a part of interpretation.
- a configuration is adopted in which each command value is output together for each control cycle.
- Patent Document 3 discloses a technique for synchronizing a plurality of signals periodically generated by different clocks in a control device.
- the control device generates a first processor that acquires a synchronization signal generated for each first cycle and a second cycle in which the first cycle is divided into n (n ⁇ 1). It has a second processor that generates a control signal for each third cycle in which the second cycle is divided into m (m ⁇ 2) using a timer, and performs a predetermined process at a timing based on the control signal. ..
- At least one of the plurality of control signals generated in the first cycle is a control signal to be synchronized with the synchronization signal
- the second processor is the synchronization signal and the control signal to be synchronized with the synchronization signal.
- the operation of the rotating shaft of the device for transporting the container is used as the master and the operation of the nozzle for filling the container is used as the slave to synchronize the master-slave operation, or the operation of the conveyor for transporting the work is performed.
- the master-slave operation is synchronized with the operation of the robot that operates on the work as the master and the slave, it is necessary for the user to correct the delay of the master-slave operation caused by the communication cycle.
- the present invention has been made in view of such a problem, and an object of the present invention is to provide a technique for easily performing synchronous control of operations for a field device.
- the control device cooperates with a plurality of field devices according to a predetermined program via a network that performs constant cycle communication. Further, the control device is based on the position of the first field device in the first cycle, and the position of the first field device that operates according to the first program in the second cycle after the first cycle.
- the first command value for operating the first field device is determined based on the prediction unit for calculating the first field device and the first program, and the first command value is determined via the interface unit for communicating with a plurality of field devices. Is transmitted to the first field device, and the second field device to be operated in cooperation with the first field device is operated based on the position calculated by the prediction unit and the second program. It is provided with a processing unit that determines the second command value of the above and transmits the second command value to the second field device via the interface unit.
- the prediction unit calculates the position of the first field device in the later cycle (second cycle), and based on this, the second field device to operate in cooperation with the first field device.
- the processing unit determines the operation command value. That is, in anticipation of the delay until the command value reaches the second field device, the operation of the second field device can be instructed by targeting the position of the first field device in a later cycle. Therefore, it becomes possible to easily perform synchronous control of operations for field equipment.
- the prediction unit adds a value obtained by multiplying the operating speed of the first field device by a predetermined correction coefficient to the position of the first field device in the first cycle, and adds the first field device in the second cycle.
- the position of may be calculated. For example, by such a calculation process, the position of the first field device in the second cycle can be predicted.
- one of the first program and the second program is a program according to the first execution format in which the whole is executed for each execution, and the other is a program according to the second execution format which is executed sequentially. It may be a program.
- the predetermined correction coefficient includes the first field device and the device of the type that operates according to the program according to the first execution format, and the device of the type that operates according to the program according to the second execution format. It may be determined according to the combination of the types of the second field equipment.
- the first execution format is a format in which the entire program is executed for each execution, and is, for example, an IEC (International Electrotechnical Commission) program including instructions for sequence control and motion control.
- the second execution format is a sequential execution format, for example, an application program that mainly controls a robot.
- the first field device that serves as a reference for the cooperative operation and the second field device that operates in cooperation with the first field device are, for example, devices that operate according to the first execution format or according to the second execution format.
- the amount of delay differs depending on whether the device is operating. Therefore, by determining the correction coefficient according to the combination of the types of the first field device and the second field device, an appropriate prediction can be made.
- the processing unit includes a first processing unit configured to be able to calculate a command value for controlling a field device by executing a program according to the first execution format for each control cycle in constant cycle communication. It is possible to execute a program according to the execution format of 2 and calculate a command value for controlling a field device for each control cycle according to an intermediate code generated by interpreting at least a part of the program by an interpreter.
- a second processing unit configured to be able to calculate the command value for controlling the field device even when the execution of the program according to the first execution format by the first processing unit is a starting point.
- the command value calculated by the 1st processing unit and the 2nd processing unit may be transmitted via the interface unit for each control cycle.
- the motion axis and the robot can be integrated and controlled, and can be easily controlled. It becomes possible to perform synchronous control of operations.
- the position of the first field device in the first cycle is the feedback value fed back from the first field device or the command value transmitted to the first field device, and the predetermined correction coefficient is the first.
- the position of the first field device in the cycle of is determined depending on whether it is a feedback value or a command value. Specifically, the above-mentioned values can be used as the positions of the first field equipment in the first cycle. However, the amount of delay differs depending on which value is used. Therefore, by determining the correction coefficient depending on which value is used, an appropriate prediction can be made.
- the fixed cycle communication may be a communication conforming to the EtherCAT (registered trademark) standard.
- EtherCAT registered trademark
- a field network that performs the above-mentioned processing can be configured.
- FIG. 1 It is a figure which shows the schematic structure of the control system including the integrated controller. It is a functional block diagram which imaged the function of an integrated controller. It is a figure which shows the flow of the process which is executed according to the control cycle in an integrated controller. It is a figure for demonstrating an example of communication between a control device and a field apparatus. It is a figure for demonstrating an example of the cooperative operation of a field device. It is a figure for demonstrating an example of the delay of the communication between a control device and a field device, and the cooperative operation of a field device. It is a figure for demonstrating the correction coefficient. It is a flowchart which shows an example of a correction process.
- FIG. 1 is a schematic configuration diagram of a control system 1 to which the control device 100 is applied
- FIG. 2 is an image of a functional unit formed in the control device 100.
- the control device 100 corresponds to an industrial controller that controls a control target of various equipments and devices.
- the control device 100 is a kind of computer that executes a control calculation as described later.
- the control device 100 may be connected to various field devices via the field network 2.
- Field equipment includes actuators that give some physical action to manufacturing equipment, production lines, etc. (hereinafter, also collectively referred to as "fields"), and input / output devices that exchange information with and from fields.
- a robot 210, a servo driver 220, and a motor 222 are exemplified as field devices.
- the servo driver 220 drives the motor 222 according to output data from the control device 100 (including, for example, "command values" such as position commands and speed commands).
- examples of the robot 210 include a parallel robot, a SCARA robot, and an articulated robot.
- the control device 100 is a control device configured to integrally control the robot 210, the servo driver 220, and the motor 222, and the details thereof will be described later.
- the control device 100 exchanges data with one or a plurality of field devices via the field network 2 or the like.
- the "field network” is also referred to as a "field bus”, but for the sake of simplicity of description, the term “field network” is generically referred to in the present application.
- the control device 100 collects data collected or generated in various field devices (hereinafter, also referred to as "input data") (input process), data such as commands to the field devices (hereinafter, “output data”). (Also referred to as)) is generated (arithmetic processing), and the generated output data is transmitted to the target field device (output processing).
- the field network 2 adopts a bus or network that performs constant periodic communication in which the arrival time of data is guaranteed.
- EtherCAT registered trademark
- the data exchanged between the control device 100 and the field device via the field network 2 is updated in a very short cycle of several hundred ⁇ sec order to several tens of msec order.
- the data update process of such exchanged data is also referred to as input / output refresh process.
- the control device 100 is also connected to other devices via the upper network 6.
- Ethernet registered trademark
- EtherNet / IP registered trademark
- one or more server devices 10 may be connected to the upper network 6.
- MES Manufacturing Execution System
- the manufacturing execution system acquires information from the manufacturing equipment and facilities to be controlled, monitors and manages the entire production, and can also handle order information, quality information, shipping information, and the like.
- a device that provides an information system service may be connected to the upper network 6.
- the control device 100 is a kind of computer that executes a predetermined control calculation as described above, and includes a processor and a memory necessary for the control calculation.
- the processor is composed of a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), and the like.
- As the processor a configuration having a plurality of cores may be adopted, or a plurality of the processors may be arranged.
- the memory includes a volatile storage device such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory), and a non-volatile storage device such as HDD (Hard Disk Drive) and SSD (Solid State Drive). Will be done.
- the processor reads and executes various programs stored in the memory to realize control according to the control target and various processes as described later.
- the user programs IEC program 51 and application program 52
- the user programs created according to the manufacturing equipment and equipment to be controlled are stored.
- the IEC program 51 in the present application is a program in which the entire program is scanned for each execution and one or a plurality of command values are calculated for each execution.
- the International Electrotechnical Commission International Electrotechnical Commission: Includes a program consisting of one or more instructions written in accordance with the international standard IEC61131-3 defined by IEC).
- the IEC program 51 includes sequence control and motion control instructions.
- Such an IEC program 51 corresponds to an execution format in which all programs are executed (scanned) in each control cycle, and is suitable for control that requires immediacy and high speed.
- the application program 52 in the present application is a control program for performing a specific machining or operation using a robot, and includes a program consisting of one or a plurality of instructions for realizing a control application by the robot, and is basic. It is distinguished from the IEC program 51.
- the application program 52 related to robot control adopts an interpreter method described in a robot language and executed line by line.
- the control device 100 includes an IEC program processing unit 40, a lower network interface 60, an upper network interface 20, a control application processing unit 30, a prediction unit 70, and a shared memory 71.
- the lower network interface 60 mediates the exchange of data between the IEC program processing unit 40 and the control application processing unit 30 and the field equipment connected via the field network 2.
- the upper network interface 20 mediates the exchange of data between the IEC program processing unit 40 and the control application processing unit 30 and the server device 10 connected via the upper network 6.
- the control device 100 receives an instruction such as start / end of production from the server device 10 connected via the upper network 6.
- the server device 10 may transmit an application program for operating the control application, recipe information (information such as parameters suitable for production), and the like to the control device 100.
- the IEC program processing unit 40 executes (scans) the IEC program 51 at predetermined control cycles to calculate one or a plurality of command values. That is, the IEC program processing unit 40 calculates the command value for each control cycle according to the IEC program 51.
- the IEC program 51 is executed in order to control a predetermined device including the motor 222.
- the motion processing unit 42 provides a function of calculating a command value for each control cycle according to a motion command included in the IEC program 51. That is, the motion command included in the IEC program 51 includes a command for instructing the behavior over a plurality of control cycles (for example, a command for the output of a predetermined device composed of the motor 222 to draw some trajectory).
- the motion processing unit 42 calculates a command value for each control cycle according to the instruction content of the executed motion command. That is, the motion processing unit 42 realizes the behavior instructed by the motion command by outputting the command value to the predetermined device for each control cycle.
- the motion processing unit 42 corresponds to the "first processing unit" according to the present invention.
- control application processing unit 30 calculates a command value for controlling the control application based on the application program 52, recipe information, and the like.
- the application program 52 is executed by the control application processing unit 30 in order to control the robot 210.
- the control application processing unit 30 calculates and outputs a command value for the control application in synchronization with the calculation and output of the command value by the IEC program processing unit 40. That is, the control application processing unit 30 executes the calculation processing of the instruction value in synchronization with the calculation processing by the IEC program processing unit 40.
- the synchronous processing between the IEC program processing unit 40 and the control application processing unit 30 will be described later.
- the control application processing unit 30 includes a motion processing unit 32, a buffer 33, and an interpreter 34 in order to realize a command value calculation synchronized with the command value calculation processing by the IEC program processing unit 40.
- the interpreter 34 has a buffer 33 that interprets at least a part of the sequential application program 52 to generate an intermediate code and stores the generated intermediate code.
- the intermediate code in the present application is a concept including instructions for calculating a command value for each control cycle, and may include one or more instructions, or one or more functions.
- the motion processing unit 32 calculates the command value for each control cycle according to the intermediate code generated in advance by the interpreter 34 and stored in the buffer 33.
- the processing unit 32 can calculate the command value for each control cycle.
- the coordinate system corresponding to each control application may be used for the instruction described in the intermediate code.
- the motion processing unit 32 corresponds to the "second processing unit” according to the present invention. Further, the motion processing unit 32 and the motion processing unit 42 correspond to the "processing unit” according to the present invention.
- the control device 100 is provided with a shared memory 71.
- a part or all of the processing result by the control application processing unit 30 is stored in the shared memory 71, and the IEC program processing unit 40 can refer to the data stored in the shared memory 71.
- the prediction unit 70 may also be able to read / write data to / from the shared memory 71.
- the robot 210 is controlled by the motion processing unit 32 using the intermediate code generated by the interpreter 34, but as another aspect of the control of the robot 210, the motion processing unit 32 It is also possible to control the robot 210 starting from the execution of the IEC program 51.
- the IEC program 51 includes a control command (motion command) for the robot 210.
- the control command for the robot 210 included therein is motion-processed. It is handed over to the unit 32 and controls the robot 210 based on the control command.
- control device 100 is configured to be able to control the robot 210 according to both the IEC program 51 and the application program 52 having different execution formats, the control device 100 is controlled to realize the user request based on the characteristics of each program.
- the system 1 can be constructed flexibly.
- the prediction unit 70 performs prediction processing for correcting operation delays for a plurality of field devices to be coordinated.
- Temporarily another field device (slave device for operation) that should operate in cooperation with the master device for operation based on a value indicating the current position or posture of the field device (also called the master device for operation) that is the reference for operation.
- the operation master device When calculating the operation command value for (also called), the operation master device must move or change its posture at the time when the operation slave device operates based on the control command including this command value. There is. Such a delay in operation occurs due to the difference in communication cycle and the time required for data processing.
- the prediction unit 70 predicts the position or posture of the operation master device at the time when the operation slave device operates, and the motion processing unit 32 and the motion processing unit 42 operate the command value based on the predicted value. Send to the slave device of. In this way, the prediction unit 70 performs advance angle correction so as to advance the operation timing of the operation slave device with respect to the operation of the operation master device, so that the user who uses the control device 100 can easily operate. It becomes possible to perform synchronous control of.
- the control device 100 integrates and controls the master device and the slave device. In particular, since the control device 100 can control the field equipment according to both the IEC program 51 and the application program 52, even a combination of various types of master devices and slave devices can be integrated and controlled.
- ⁇ Synchronous execution of programs> In the control device 100, synchronous execution of the IEC program 51 and the application program 52 is realized.
- the interpreter 34 of the control application processing unit 30 sequentially executes the application program 52 every cycle longer than the control cycle, for example, a cycle (control application synchronization cycle T2) twice the control cycle.
- the motion processing unit 42 of the IEC program processing unit 40 and the motion processing unit 32 of the control application processing unit 30 both calculate command values for the same control cycle. Therefore, the output of the command value from the control device 100 is performed synchronously in a predetermined control cycle.
- the IEC program processing unit 40 and the control application processing unit 30 each have a motion processing unit for continuously controlling the movement of the actuator, and these motion processing units synchronously output command values. By performing the calculation, both the control according to the IEC program 51 and the control according to the application program 52 can be executed in synchronization with the control cycle, whereby precise control in the control cycle unit is realized.
- FIG. 3 is a diagram showing an example of program execution timing in the control device 100.
- a high-priority task (upper process in FIG. 3) and a low-priority task (lower process in FIG. 3) have a high priority.
- the execution of the lower network interface 60, the IEC program processing unit 40 and its motion processing unit 42, and the execution of the motion processing unit 32 of the control application processing unit 30 are set as high-priority tasks, and the control application processing is performed.
- the execution of the interpreter 34 of the unit 30 is set as a low priority task.
- the command value calculation process B32 performed and the command value calculation process B32'performed by the motion processing unit 32 starting from the IEC program 51 are executed as high priority tasks.
- the process B34 that sequentially interprets the application program 52 is executed as a low priority task. In the high priority task in one control cycle T1, only one of the arithmetic processing B32 and the arithmetic processing B32'is performed.
- the high priority task is repeatedly executed every predetermined control cycle T1.
- the low priority task is executed each time the high priority task is not executed within each control cycle. That is, the execution time of the high priority task is assigned to each control cycle, and the low priority task is executed at a time other than the execution time of the high priority task.
- the high priority task will be described.
- the input / output refresh process B60 is executed, and then the entire IEC program 51 is executed (scanned) by the IEC program processing unit 40, and the sequence control is performed.
- One or more command values of (execution process B40) are calculated.
- the motion processing unit 42 executes the motion processing related to the motion instruction included in the IEC program 51, and calculates one or a plurality of command values for the motion instruction (execution processing B42).
- the motion processing unit 32 of the control application processing unit 30 prepares a motion command for controlling the robot 210 according to the intermediate code stored in the buffer 33 (execution processing B32), or is included therein from the IEC program 51.
- a motion command for controlling the robot 210 is prepared (execution process B32'). Whether the execution process B32 is performed or the execution process B32'is performed is determined based on a predetermined standard. Hereinafter, the same processing is repeated for each control cycle.
- the timing at which the motion processing unit 32 reads the intermediate code from the buffer 33 does not have to be each control cycle. This is because when the read intermediate code includes an instruction capable of calculating a command value over a plurality of control cycles T1, the intermediate code can be read at once in the plurality of control cycles T1.
- the interpreter 34 of the control application processing unit 30 sequentially executes the application program 52. That is, the interpreter 34 executes the reading and analysis of the application program 52 with low priority.
- the intermediate code generated by the interpreter 34 analyzing the application program 52 is sequentially stored in the buffer 33 while considering the capacity of the buffer 33.
- the intermediate code stored in the buffer 33 is sequentially referred to by the motion processing unit 32 of the control application processing unit 30, and is used for generating the command value in the arithmetic processing B32.
- the interpreter 34 generates an extra intermediate code equal to an integral multiple of the control cycle, which is the calculation cycle of the high priority task, in advance so as not to affect the processing by the motion processing unit 32.
- the command value for the control application can be calculated for each control cycle.
- the interpreter 34 suspends the interpretation of the application program 52 before the predetermined control application synchronization cycle (integer multiple of the control cycle) arrives.
- the interpreter 34 updates the data shared with the IEC program processing unit 40 every synchronization cycle.
- the input data and the output data acquired from the field side may also be updated (data synchronization).
- the control application processing unit 30 can also control the robot 210 by using the data acquired by the IEC program processing unit 40.
- the control application synchronization cycle may have any length as long as it is set to an integral multiple of the control cycle. It is appropriately set according to the control accuracy required in the control application.
- FIG. 4 is a diagram for explaining an example of communication between the control device and the field device.
- the communication may be any one that performs regular cycle communication, but in the present embodiment, communication is performed according to the EtherCAT standard.
- the control device 100 functions as a controller of the field network 2 and controls field devices such as the robot 210 and the servo driver 220. Further, each device may be connected by a daisy chain, a star type, a ring type or the like, but here, it is assumed that they are connected by a daisy chain. Then, in the control device 100, information according to a predetermined standard is stored in the data unit of the Ethernet frame, and is sequentially transmitted to the field devices connected in series (FIGS.
- each field device performs on-the-fly input / output processing to the transmitted / received Ethernet frame in each cycle.
- the bit positions and bit widths to which the own device should input / output data are assigned to each of the field devices in advance.
- the motion processing unit 32 and the motion processing unit 42 described above store command values for each field device in an Ethernet frame according to the application program 52 and the IEC program 51, respectively. At this time, the command value corrected based on the prediction result of the prediction unit 70 is used.
- FIG. 5 is a diagram for explaining an example of cooperative operation of field equipment.
- the motor 222 is operating the conveyor 8.
- the work 9 is placed on the conveyor 8, and the work 9 is conveyed according to the operation of the motor 222. Further, the robot 210 shall perform a predetermined operation on the work 9.
- the shaft position of the motor 222 is fed back from the servo driver 220 to the control device 100.
- the operating speed of the motor 222 may also be fed back.
- the control device 100 has a third cycle after the second cycle (FIG. 5) based on the axial position of the motor 222. : C3) predicts the axial position of the motor 222, determines the target position of the robot 210 based on the predicted position, and transmits a control command based on the target position to the robot 210.
- the robot 210 operates based on the target position.
- the work 9 is conveyed by the conveyor 8 to a predicted position ahead of the position in the second cycle, so that a plurality of field devices operate in synchronization with each other.
- FIG. 6 is a diagram for explaining an example of delay in communication between the control device and the field device and the cooperative operation of the field device.
- FIG. 6 shows the processing executed by the control device and the field device.
- the master device and the slave device shown in FIG. 6 are both field devices, and correspond to the operation master device and the operation slave device, respectively. Further, it is assumed that the operation master device is the servo driver 220 that controls the motor 222, and the operation slave device is the robot 210.
- “I / O” represents an input / output refresh process, and corresponds to, for example, B60 in FIG.
- UPG represents the execution of the user program.
- “MC” represents a motion control arithmetic process, and corresponds to, for example, B42 in FIG.
- RC represents a robot-controlled arithmetic process, and corresponds to, for example, B32 in FIG.
- ECAT represents communication processing in EtherCAT.
- IN and OUT represent input refresh and output refresh of field devices in EtherCAT, respectively, and correspond to input / output processing to the Ethernet frame shown in FIG.
- Trafficory represents the trajectory calculation process of the robot.
- cycle C11 data indicating the current position is input for feedback at "IN” of the master device. Further, in the cycle C12, data is fed back to the control device 100 in the master device “ECAT” and the control device “I / O", and in the control devices "MC” and “RC”, the data is sent to the field device. A control command is generated. Then, in the cycle C13, the control command is transmitted in the "I / O” of the control device and the "ECAT” of the slave device, read out in the "OUT” of the slave device, and the trajectory of the operation of the robot 210 in the "Tradition". Is calculated. After that, in the cycle C14, the robot 210 operates according to the calculated trajectory. It should be noted that processing is performed in parallel even in blocks not described.
- the robot 210 operates in the cycle C14, and the command value is calculated by the cycle C11 in which the servo driver 220 writes the current position for feedback and the operation processing of the motion control of the servo driver 220. It will be delayed from the cycle C12. Further, although not shown, the delay also depends on the combination of the types of the master device and the slave device, such as whether the master device is a servo driver, a robot, a slave device is a servo driver, or a robot. The size of is different.
- each of the master device and slave device of operation is a type of field device that operates by a program that conforms to the execution format that is entirely executed for each execution, or a program that conforms to the execution format that is executed sequentially.
- the magnitude of the delay also changes because the communication cycle and processing time differ depending on whether the field device operates based on the intermediate code generated by the interpreter from at least a part of the above. Therefore, the prediction unit 70 calculates the prediction position corrected for such a delay.
- the predicted position can be calculated using the axial position (current position) of the motor 222 and the operating speed.
- the predicted position may be obtained by the following equation (1).
- Predicted position current position + (current speed x correction coefficient) ⁇ ⁇ ⁇ (1)
- a value fed back from the servo driver 220 may be used, or a command value instructed in a control command to the servo driver 220 may be used.
- the current speed may be fed back from the servo driver 220, or may be calculated using the data string of the current position in the past cycle.
- the correction coefficient is a predetermined value and can be set according to the combination of the types of the operation master device and the operation slave device.
- the correction coefficient may be determined in association with a combination of types such as a robot and a motor for the operation master device and the operation slave device. Further, different correction coefficients may be used depending on whether the feedback position is used as the current position of the master device or the position of the control command is used.
- FIG. 7 is a diagram for explaining the correction coefficient.
- the "motion axis / axis group” corresponds to one or a plurality of motors, and is an example of a type of field device operated by a program according to an execution format in which the entire motor is executed for each execution.
- a "robot” is an example of a type of field device that operates based on an intermediate code generated by an interpreter from at least a part of a program according to an executable format that is executed sequentially.
- the amount of the period to be delayed is defined for the combination of the type of the operation master device and the type of the operation slave device. Further, different values are set depending on whether the feedback position is used as the current position of the master device or the position of the control command is used.
- a different delay period may be determined depending on the robot amplifier. Further, even when the robot 210 is controlled according to the IEC program 51 and the application program 52 having different execution formats, different delay period amounts may be set for each.
- the correction coefficient according to the delay period as shown in FIG. 7 the communication delay can be corrected and the field device can be synchronously controlled.
- the correction coefficient can be set in advance so that the correction coefficient also increases according to the magnitude of the delay cycle.
- FIG. 8 is a flowchart showing an example of the correction process.
- the control device 100 performs a process as shown in FIG. 8 when generating and transmitting a control command to a field device to be coordinated.
- the prediction unit 70 acquires the current position of the operation master device (FIG. 8: S101).
- the value fed back from the master device may be acquired as the current position, or the command value instructed in the control command to the master device may be acquired.
- the master device is a robot
- the current posture of the master device (combination of the positions of a plurality of motors included in the robot) may be acquired as the current position.
- the prediction unit 70 predicts the arrival position of the master device (FIG. 8: S102). In this step, the prediction unit 70 predicts the arrival position of the master device at the time of operation of the slave device.
- the arrival position can be calculated using, for example, the above-mentioned equation (1).
- the correction amount may be changed based on the combination of the type of the master device and the type of the slave device, and whether the current position of the master device is a value fed back from the master device. , The correction amount may be changed depending on whether the value is specified in the control command to the master device.
- the motion processing unit 32 or the motion processing unit 42 determines a command value to the slave device based on the predicted arrival position and transmits it to the slave device (FIG. 8: S103).
- the command value is determined so that the slave device is operated with the arrival position of the master device as the target.
- the slave device that receives the control command including the command value operates according to the command value.
- control device 100 determines whether to end the process (FIG. 8: S104). In this step, for example, it is determined whether all the operations of the field devices according to the predetermined user program have been completed. If it is determined that the process does not end (S104: NO), the process returns to S1 and the process is continued. On the other hand, when it is determined to end (S104: YES), the control device 100 ends the process.
- the control device 100 can correct the delay in communication and operation until the control command based on the current position reaches the field device and operates in the system that performs constant cycle communication.
- the control device 100 can process the application program 52 and the IEC program 51 in synchronization with each other, the types of the operation master device and the operation slave device may be different, for example, a motor and a robot. However, it can be integrated to correct the delay.
- control device described above is an example, and the control device according to the present invention is not limited to the above configuration.
- the configurations of the embodiments described may be modified or combined as much as possible without departing from the problems and technical ideas of the present invention.
- a control device (100) that cooperates with a plurality of field devices (210, 220) according to a predetermined program via a network (2) that performs constant cycle communication. Prediction to calculate the position of the first field device operating according to the first program in the second cycle after the first cycle based on the position of the first field device in the first cycle. Part (70) and Based on the first program, the first command value for the operation of the first field device is determined, and the first command value is set via an interface unit for communicating with the plurality of field devices. While transmitting to the first field device, the second command value of the operation of the second field device to be coordinated with the first field device is determined based on the predicted position and the second program. Then, the processing unit (32, 42) that transmits the second command value to the second field device via the interface unit (60), and A control device comprising.
- Control system 2 Field network 6: Upper network 10: Server device 30: Control application processing unit 40: IEC program processing unit 51: IEC program 52: Application program 70: Prediction unit 210: Robot 220: Servo driver 222: Motor
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Programmable Controllers (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
制御装置は、定周期通信を行うネットワークを介して、所定のプログラムに従い複数のフィールド機器を協調動作させる。また、制御装置は、第1周期における第1フィールド機器の位置に基づいて、第1周期よりも後の第2周期における、第1プログラムに従って動作する第1フィールド機器の位置を算出する予測部と、第1プログラムに基づいて、第1フィールド機器を動作させるための第1指令値を決定し、複数のフィールド機器と通信するためのインターフェイス部を介して第1指令値を第1フィールド機器に送信すると共に、予測部によって算出された位置と第2プログラムとに基づいて、第1フィールド機器と協調動作すべき第2フィールド機器を動作させるための第2指令値を決定しインターフェイス部を介して第2指令値を第2フィールド機器に送信する処理部とを備える。
Description
本発明は、複数の制御対象を制御し得る制御装置に関する。
様々な生産現場において、PLC(Programmable Logic Controller)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。このような制御装置は、直接的に制御対象を制御するだけではなく、他の装置に制御指令を与えることで、間接的に制御対象を制御する場合もある。また、これまで複数の専用装置を用いて実現されていた制御システムを、より少ない数の制御装置に統合したいというニーズも生じている。例えば、特許文献1に示す技術では、PLCのCPUユニットにおいて、モーション演算プログラムおよびユーザプログラムが同期して実行される。
また、特許文献2では、実行形式の異なる複数種類のプログラムに従う制御演算を単一の制御装置で実現する技術が開示されている。当該技術では、例えば、制御周期毎にプログラム全体が実行される形式のプログラムと、一部の解釈により生成される中間コードに従って逐次実行される形式のプログラムとに関して、それぞれの指令値演算を行い、制御周期毎に各指令値を併せて出力する構成が採用されている。
また、特許文献3では、異なるクロックによって周期的に生成される複数の信号を制御装置において同期させる技術が開示されている。当該技術では、制御装置は、第一の周期ごとに生成される同期信号を取得する第一のプロセッサと、第一の周期をn分割(n≧1)した第二の周期を生成し、かつ、タイマを用いて、第二の周期をm分割(m≧2)した第三の周期ごとに制御信号を発生させ、制御信号に基づいたタイミングで所定の処理を行う第二のプロセッサとを有する。そして、第一の周期において発生する複数の制御信号のうちの少なくとも1回が、同期信号と同期すべき制御信号であり、第二のプロセッサは、同期信号と、同期信号と同期すべき制御信号との間でタイミングに誤差が生じたことを検出した場合に、次回以降に開始するタイマの幅を一時的に変更することで誤差を補正する。
従来、例えば、容器を搬送する装置の回転軸の動作をマスタとし、容器に内容物を充填するためのノズルの動作をスレーブとして主従の動作を同期させる場合や、ワークを搬送するコンベアの動作をマスタとし、ワークに対する操作を行うロボットの動作をスレーブとして主従の動作を同期させる場合などにおいては、通信周期により生じる主従での動作の遅延をユーザが補正する必要があった。
本発明は、このような問題に鑑みてなされたものであり、フィールド機器に対し簡便に動作の同期制御を行うための技術を提供することを目的とする。
本発明に係る制御装置は、定周期通信を行うネットワークを介して、所定のプログラムに従い複数のフィールド機器を協調動作させる。また、制御装置は、第1の周期における第1のフィールド機器の位置に基づいて、第1の周期よりも後の第2の周期における、第1のプログラムに従って動作する第1のフィールド機器の位置を算出する予測部と、第1のプログラムに基づいて、第1のフィールド機器を動作させるための第1の指令値を決定し、複数のフィールド機器と通信するためのインターフェイス部を介して第1の指令値を第1のフィールド機器に送信すると共に、予測部によって算出された位置と第2のプログラムとに基づいて、第1のフィールド機器と協調動作すべき第2のフィールド機器を動作させるための第2の指令値を決定し、インターフェイス部を介して第2の指令値を第2のフィールド機器に送信する処理部とを備える。
定周期通信を行うネットワークを介してフィールド機器を制御する場合、フィールド機器が指令値を受信して動作するまでに、処理や通信に要する周期の分だけ遅延が発生する。制御装置によれば、後の周期(第2の周期)における第1のフィールド機器の位置を予測部が算出し、これに基づいて第1のフィールド機器と協調動作すべき第2のフィールド機器の動作の指令値を処理部が決定する。すなわち、指令値が第2のフィールド機器に到達するまでの遅延を見越して、後の周期における第1のフィールド機器の位置を目標として、第2のフィールド機器の動作を指示できるようになる。したがって、フィールド機器に対し簡便に動作の同期制御を行うことができるようになる。
また、予測部は、第1のフィールド機器の動作速度に所定の補正係数を乗じた値を、第1の周期における第1のフィールド機器の位置に加え、第2の周期における第1のフィールド機器の位置を算出するようにしてもよい。例えばこのような計算処理により、第2の周期における第1のフィールド機器の位置を予測することができる。
また、第1のプログラム及び第2のプログラムの一方は、実行毎に全体が実行される第1の実行形式に従ったプログラムであり、他方は、逐次実行される第2の実行形式に従ったプログラムであってもよい。そして、所定の補正係数は、第1の実行形式に従ったプログラムに従って動作する種類の機器と、第2の実行形式に従ったプログラムに従って動作する種類の機器とを含む、第1のフィールド機器及び第2のフィールド機器の種類の組み合わせに応じて決定されるようにしてもよい。第1の実行形式は、その実行毎にプログラム全体が実行される形式であり、例えばシーケンス制御およびモーション制御の命令を含むIEC(International Electrotechnical Commission)プログラムである。第2の実行形式は逐次実行の形式であり、例えば主としてロボットを制御するアプリケーションプログラムである。この場合、協調動作の基準となる第1のフィールド機器、及びこれと協調して動作する第2のフィールド機器が、それぞれ例えば第1の実行形式に従って動作する機器であるか第2の実行形式に従って動作する機器であるかによって、遅延量が異なる。したがって、第1のフィールド機器及び第2のフィールド機器の種別の組み合わせに応じて補正係数を決定することで、適切な予測ができるようになる。
また、処理部は、定周期通信における制御周期毎に第1の実行形式に従ったプログラムを実行してフィールド機器を制御するための指令値を演算可能に構成された第1処理部と、第2の実行形式に従ったプログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って制御周期毎にフィールド機器を制御するための指令値を演算可能であり、且つ、第1処理部による、第1の実行形式に従ったプログラムの実行を起点としても、該フィールド機器を制御するための該指令値を演算可能に構成された第2処理部とを含み、第1処理部及び第2処理部が演算した指令値を、インターフェイス部を介して制御周期毎に送信するようにしてもよい。
第1処理部及び第2処理部が演算した指令値を、上述した定周期通信における制御周期毎に送信することで、例えばモーション軸とロボットとを統合して制御できるようになると共に、簡便に動作の同期制御を行うことができるようになる。
また、第1の周期における第1のフィールド機器の位置は、第1のフィールド機器からフィードバックされたフィードバック値、又は第1のフィールド機器へ送信した指令値であり、所定の補正係数は、第1の周期における第1のフィールド機器の位置が、フィードバック値及び指令値のいずれであるかに応じて決定されるようにしてもよい。具体的には、上述のような値を第1の周期における第1のフィールド機器の位置として用いることができる。ただし、いずれの値を用いるかによっても遅延量が異なる。したがって、いずれの値を用いるかによって補正係数を決定することで、適切な予測ができるようになる。
また、定周期通信は、EtherCAT(登録商標)の規格に従う通信であってもよい。例えばこのような規格を採用することで、上述の処理を行うフィールドネットワークを構成することができる。
フィールド機器に対し簡便に動作の同期制御を行うことができるようになる。
<適用例>
実施形態に係る制御装置の適用例について、図1及び図2に基づいて説明する。図1は、当該制御装置100が適用される制御システム1の概略構成図であり、図2は、制御装置100に形成される機能部をイメージ化した図である。
実施形態に係る制御装置の適用例について、図1及び図2に基づいて説明する。図1は、当該制御装置100が適用される制御システム1の概略構成図であり、図2は、制御装置100に形成される機能部をイメージ化した図である。
制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータである。制御装置100は、フィールドネットワーク2を介して各種のフィールド機器と接続されてもよい。フィールド機器は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含み、図1においては、フィールド機器として、ロボット210や、サーボドライバ220及びモータ222が例示されている。サーボドライバ220は、制御装置100からの出力データ(例えば、位置指令や速度指令などの「指令値」を含む)に従って、モータ222を駆動する。また、ロボット210としては、パラレルロボット、スカラロボット、多関節ロボットが例示できる。このように制御装置100は、ロボット210やサーボドライバ220及びモータ222を統合的に制御し得るように構成された制御装置であり、その詳細については後述する。
制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器との間でデータを遣り取りする。一般的に「フィールドネットワーク」は、「フィールドバス」とも称されるが、説明の簡素化のため、本願においては、「フィールドネットワーク」と総称する。制御装置100は、各種のフィールド機器において収集または生成されたデータ(以下、「入力データ」とも称す。)を収集する処理(入力処理)、フィールド機器に対する指令などのデータ(以下、「出力データ」とも称す。)を生成する処理(演算処理)、生成した出力データを対象のフィールド機器へ送信する処理(出力処理)等を行う。
ここで、フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)等が知られている。そして、フィールドネットワーク2を介して、制御装置100とフィールド機器との間で遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
また、制御装置100は、上位ネットワーク6を介して、他の装置にも接続されている。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)やEtherNet/IP(登録商標)が採用されてもよい。より具体的には、上位ネットワーク6には、1または複数のサーバ装置10が接続されてもよい。サーバ装置10としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を上位ネットワーク6に接続するようにしてもよい。
ここで、図2に基づいて、制御装置100の構成について説明する。制御装置100は、上記の通り所定の制御演算を実行する一種のコンピュータであり、当該制御演算に必要なプロセッサやメモリを備えている。当該プロセッサは、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサとしては、複数のコアを有する構成を採用してもよいし、当該プロセッサを複数配置してもよい。当該メモリとしては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置や、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。そして、プロセッサは、メモリに格納された各種プログラムを読出して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。メモリには、基本的な機能を実現するためのシステムプログラムに加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラム(IECプログラム51およびアプリケーションプログラム52)が格納される。
なお、本願におけるIECプログラム51とは、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が演算されるプログラムであり、典型的には、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。IECプログラム51には、シーケンス制御およびモーション制御の命令が含まれる。このようなIECプログラム51は、制御周期毎にすべてのプログラムが実行(スキャン)される実行形式に対応するものであり、即時性および高速性が要求される制御に好適である。一方で、本願におけるアプリケーションプログラム52は、ロボットを用いて特定の加工や動作を行うための制御プログラムであり、ロボットによる制御アプリケーションを実現するための1または複数の命令からなるプログラムを包含し、基本的には、IECプログラム51とは区別される。ロボット制御に関するアプリケーションプログラム52は、一例として、ロボット言語を用いて記述され、1行ずつ逐次実行されるインタプリタ方式が採用される。
そして、図2に示すように、制御装置100は、IECプログラム処理部40と、下位ネットワークインターフェイス60と、上位ネットワークインターフェイス20と、制御アプリケーション処理部30と、予測部70と、共有メモリ71とを有する。下位ネットワークインターフェイス60は、IECプログラム処理部40および制御アプリケーション処理部30と、フィールドネットワーク2を介して接続されているフィールド機器との間のデータの遣り取りを仲介する。上位ネットワークインターフェイス20は、IECプログラム処理部40および制御アプリケーション処理部30と、上位ネットワーク6を介して接続されているサーバ装置10との間のデータの遣り取りを仲介する。例えば、制御装置100は、上位ネットワーク6を介して接続されているサーバ装置10から、生産の開始/終了といった指示を受ける。サーバ装置10は、制御アプリケーションを動作させるためのアプリケーションプログラムおよびレシピ情報(生産に適したパラメータなどの情報)などを制御装置100に送信することもある。
IECプログラム処理部40は、予め定められた制御周期毎にIECプログラム51を実行(スキャン)して1または複数の指令値を演算する。すなわち、IECプログラム処理部40は、IECプログラム51に従って、制御周期毎に指令値を演算する。なお、本願では、モータ222を含んで構成される所定の装置を制御するためにIECプログラム51の実行が行われるものとする。そして、モーション処理部42は、IECプログラム51に含まれるモーション命令に従って、制御周期毎に指令値を演算する機能を提供する。すなわち、IECプログラム51に含まれるモーション命令は、複数の制御周期に亘る挙動を指示する命令(例えば、モータ222で構成される所定の装置の出力が何らかの軌道を描くための命令)を含む。このようなモーション命令が実行されると、実行されたモーション命令の指示内容に従って、モーション処理部42が制御周期毎に指令値を演算する。すなわち、モーション処理部42は、上記の所定の装置に対して制御周期毎に指令値を出力することで、モーション命令により指示された挙動を実現する。なお、モーション処理部42は、本発明に係る「第1処理部」に相当する。
次に、制御アプリケーション処理部30は、アプリケーションプログラム52およびレシピ情報などに基づいて、制御アプリケーションを制御するための指令値を演算する。なお、本願では、ロボット210を制御するためにアプリケーションプログラム52が制御アプリケーション処理部30によって実行されるものとする。制御アプリケーション処理部30は、IECプログラム処理部40による指令値の演算および出力と同期して、制御アプリケーション用の指令値を演算および出力する。すなわち、制御アプリケーション処理部30は、IECプログラム処理部40による演算処理と同期して、指令値の演算処理を実行する。なお、このIECプログラム処理部40と制御アプリケーション処理部30の同期処理については、後述する。IECプログラム処理部40による指令値の演算処理と同期した指令値の演算を実現するために、制御アプリケーション処理部30は、モーション処理部32と、バッファ33と、インタプリタ34とを含む。
インタプリタ34は、逐次アプリケーションプログラム52の少なくとも一部を解釈して中間コードを生成するとともに、生成した中間コードを格納するバッファ33を有する。本願における中間コードは、制御周期毎に指令値を演算するための命令を包含する概念であり、1または複数の命令、あるいは、1または複数の関数を含んでもよい。そして、モーション処理部32は、インタプリタ34が事前に生成しバッファ33に格納されている中間コードに従って、制御周期毎に指令値を演算する。一般的に、アプリケーションプログラム52に記述される命令(コード)は、逐次実行されるために、指令値の演算周期を保証できないが、本願開示では、このように中間コードを利用することで、モーション処理部32は、制御周期毎に指令値を演算できるようになる。中間コードにおいて記述される命令には、各制御アプリケーションに応じた座標系が用いられてもよい。なお、モーション処理部32は、本発明に係る「第2処理部」に相当する。また、モーション処理部32及びモーション処理部42は、本発明に係る「処理部」に相当する。
そして、IECプログラム処理部40と制御アプリケーション処理部30との間でデータを共有するために、制御装置100には共有メモリ71が設けられる。本願開示では、制御アプリケーション処理部30による処理結果の一部または全部が共有メモリ71に格納され、IECプログラム処理部40は、共有メモリ71に格納されたデータを参照することができる。また、IECプログラム処理部40から共有メモリ71へのデータ書込みも可能であってもよく、このようにIECプログラム処理部40から書込まれたデータは、インタプリタ34およびモーション処理部32から参照可能とされる。また、予測部70も、共有メモリ71に対しデータを読み書きできるようにしてもよい。
ここで、上記の通り、ロボット210は、インタプリタ34により生成される中間コードを利用してモーション処理部32により制御されるが、更にロボット210の制御の別の態様として、モーション処理部32は、IECプログラム51の実行を起点としてロボット210を制御することも可能とする。この場合、IECプログラム51にロボット210の制御指令(モーション指令)が含まれており、先ずIECプログラム処理部40によってIECプログラム51が実行されると、そこに含まれるロボット210の制御指令がモーション処理部32に引き渡されて、その制御指令に基づいてロボット210を制御する。
このように制御装置100は、実行形式の異なるIECプログラム51とアプリケーションプログラム52の両者に従ってロボット210を制御可能に構成されているため、各プログラムの特性を踏まえて、ユーザ要求を実現するための制御システム1をフレキシブルに構築することができる。
また、予測部70は、協調動作すべき複数のフィールド機器に関し、動作の遅延を補正するための予測処理を行う。仮に、動作の基準となるフィールド機器(動作のマスタ装置とも呼ぶ)の現在の位置又は姿勢を示す値に基づいて、動作のマスタ装置と協調して動作すべき他のフィールド機器(動作のスレーブ装置とも呼ぶ)に対する動作の指令値を算出する場合、この指令値を含む制御指令に基づいて動作のスレーブ装置が動作する時点においては、動作のマスタ装置はさらに移動したり姿勢を変化させていることがある。このような動作の遅延は、通信周期の差やデータ処理に要する時間に起因して生じる。そこで、予測部70は、動作のスレーブ装置が動作する時点の、動作のマスタ装置の位置又は姿勢を予測し、モーション処理部32及びモーション処理部42は、予測された値に基づく指令値を動作のスレーブ装置に送信する。このように、予測部70が、動作のマスタ装置の動作に対して動作のスレーブ装置の動作のタイミングを早めるような進角補正を行うことにより、制御装置100を使用するユーザは、簡便に動作の同期制御を行うことができるようになる。なお、制御装置100は、マスタ装置及びスレーブ装置を統合して制御する。特に、制御装置100は、IECプログラム51及びアプリケーションプログラム52の両者に従ってフィールド機器の制御ができるため、様々な種類のマスタ装置及びスレーブ装置の組み合わせであっても、統合して制御できる。
<プログラムの同期実行>
制御装置100においては、IECプログラム51とアプリケーションプログラム52の同期実行が実現される。制御アプリケーション処理部30のインタプリタ34は、制御周期より長い周期、例えば、制御周期の2倍分の周期(制御アプリケーション同期周期T2)毎にアプリケーションプログラム52を逐次実行する。ただし、IECプログラム処理部40のモーション処理部42および制御アプリケーション処理部30のモーション処理部32は、いずれも同一の制御周期毎に指令値を演算する。したがって、制御装置100からの指令値の出力は、いずれも予め定められた制御周期で同期して行われる。このように、IECプログラム処理部40および制御アプリケーション処理部30は、アクチュエータの動きを連続的に制御するためのモーション処理部をそれぞれ有しており、これらのモーション処理部が同期して指令値を演算することで、IECプログラム51に従う制御およびアプリケーションプログラム52に従う制御の両方を制御周期と同期させて実行することができ、これによって制御周期単位での精密な制御が実現される。
制御装置100においては、IECプログラム51とアプリケーションプログラム52の同期実行が実現される。制御アプリケーション処理部30のインタプリタ34は、制御周期より長い周期、例えば、制御周期の2倍分の周期(制御アプリケーション同期周期T2)毎にアプリケーションプログラム52を逐次実行する。ただし、IECプログラム処理部40のモーション処理部42および制御アプリケーション処理部30のモーション処理部32は、いずれも同一の制御周期毎に指令値を演算する。したがって、制御装置100からの指令値の出力は、いずれも予め定められた制御周期で同期して行われる。このように、IECプログラム処理部40および制御アプリケーション処理部30は、アクチュエータの動きを連続的に制御するためのモーション処理部をそれぞれ有しており、これらのモーション処理部が同期して指令値を演算することで、IECプログラム51に従う制御およびアプリケーションプログラム52に従う制御の両方を制御周期と同期させて実行することができ、これによって制御周期単位での精密な制御が実現される。
次に、制御装置100におけるIECプログラム51およびアプリケーションプログラム52の実行タイミングの詳細について、図3に基づいて説明する。図3は、制御装置100におけるプログラムの実行タイミングの一例を示す図である。なお、制御装置100においては、プロセッサのリソースを考慮して、優先度が高い高優先度タスク(図3中の上段の処理)と優先度が低い低優先度タスク(図3中の下段の処理)が設定されている。具体的には、下位ネットワークインターフェイス60、IECプログラム処理部40とそのモーション処理部42の実行、および制御アプリケーション処理部30のモーション処理部32の実行は、高優先度タスクとして設定され、制御アプリケーション処理部30のインタプリタ34の実行は低優先度タスクとして設定されている。
すなわち、下位ネットワークインターフェイス60に関連する入出力リフレッシュ処理B60、IECプログラム51の実行処理B40、IECプログラム51に従ってモーション処理部42によって行われる指令値の演算処理B42、アプリケーションプログラム52に従ってモーション処理部32によって行われる指令値の演算処理B32、および、IECプログラム51を起点としてモーション処理部32によって行われる指令値の演算処理B32’は、高優先度タスクとして実行される。一方、アプリケーションプログラム52を逐次解釈する処理B34は、低優先度タスクとして実行される。なお、1つの制御周期T1での高優先度タスクにおいては、演算処理B32と演算処理B32’については何れか一方のみが行われることになる。
ここで、高優先度タスクは、予め定められた制御周期T1毎に繰返し実行される。低優先度タスクは、各制御周期内で高優先度タスクが実行されていない期間に都度実行される。すなわち、制御周期毎に、高優先度タスクの実行時間が割当てられ、高優先度タスクの実行時間以外の時間において、低優先度タスクが実行される。
まず、高優先度タスクについて説明すると、各制御周期が到来すると、入出力リフレッシュ処理B60が実行された後、IECプログラム処理部40によりIECプログラム51の全体が実行(スキャン)されて、シーケンス制御についての1または複数の指令値が演算される(実行処理B40)。併せて、モーション処理部42によりIECプログラム51に含まれるモーション命令に関するモーション処理が実行されて、モーション命令についての1または複数の指令値が演算される(実行処理B42)。さらに、制御アプリケーション処理部30のモーション処理部32により、バッファ33に格納されている中間コードに従ってロボット210の制御用のモーション指令が準備され(実行処理B32)、又は、IECプログラム51からそこに含まれるロボット210の制御用のモーション指令が準備される(実行処理B32’)。実行処理B32が行われるか実行処理B32’が行われるかは、所定の基準に基づいて決定されるものとする。以下、同様の処理が制御周期毎に繰返される。なお、モーション処理部32がバッファ33から中間コードを読み出すタイミングは、各制御周期でなくともよい。これは、読み出された中間コードは、複数の制御周期T1にわたって指令値を演算できるだけの命令を含む場合、その複数の制御周期T1においては中間コードの読み出しを一度で行える。
このように、ある制御周期における高優先度タスクの実行が完了すると、モータ222等に関するシーケンス制御についての指令値及びそのモーション制御についての指令値と、ロボット210に関する制御アプリケーションについての指令値のセットが用意される。これらの指令値は、基本的には、次の制御周期が到来すると、フィールド側に反映される。すなわち、IECプログラム処理部40および制御アプリケーション処理部30は、同一の制御周期で入力データに応じた指令値を演算するので、入力に同期した出力を実現できる。
一方、低優先度タスクについては、制御アプリケーション処理部30のインタプリタ34は、アプリケーションプログラム52を逐次実行する。すなわち、インタプリタ34は、アプリケーションプログラム52の読込みおよび解析を低優先度で実行する。インタプリタ34がアプリケーションプログラム52を解析処理して生成された中間コードは、バッファ33の容量を考慮しながら、逐次、バッファ33に格納される。バッファ33に格納された中間コードは、制御アプリケーション処理部30のモーション処理部32により順次参照されて、演算処理B32での指令値の生成に用いられる。このとき、インタプリタ34は、高優先度タスクの演算周期である制御周期の整数倍分の中間コードを事前に余分に生成しておくことで、モーション処理部32による処理に影響を与えることなく、制御アプリケーションに対する指令値を制御周期毎に演算できる。
また、インタプリタ34は、予め定められた制御アプリケーション同期周期(制御周期の整数倍)が到来する前に、アプリケーションプログラム52の解釈を一時停止する。その一時停止したタイミングで、IECプログラム処理部40と制御アプリケーション処理部30との間でデータ同期を行うことで、双方に整合性をもつデータを共有する。このように、インタプリタ34は、同期周期毎に、IECプログラム処理部40との間で共有するデータを更新する。共有データの更新に併せて、フィールド側から取得される入力データおよび出力データについても更新(データ同期)するようにしてもよい。これにより、制御アプリケーション処理部30側でも、IECプログラム処理部40で取得されたデータを利用してロボット210の制御が可能となる。制御アプリケーション同期周期は、制御周期の整数倍に設定されれば、どのような長さであってもよい。制御アプリケーションにおいて要求される制御の精度などに応じて、適宜設定される。
<フィールド機器の同期制御>
図4は、制御装置とフィールド機器との通信の一例を説明するための図である。通信は、定周期通信を行うものであればよいが、本実施形態では、EtherCATの規格に従って通信を行うものとする。制御装置100は、フィールドネットワーク2のコントローラとして機能し、ロボット210やサーボドライバ220等のフィールド機器を制御する。また、各装置は、デイジーチェーン、スター型、リング型等で接続され得るが、ここではデイジーチェーンで接続されるものとする。そして、制御装置100においてイーサネットフレームのデータ部に所定の規格に従う情報が格納され、直列に接続されたフィールド機器へ順に送信される(図4:S1、S2)。また、イーサネットフレームは、フィールド機器の終端で折り返し、逆方向に制御装置100まで戻される(図4:S3、S4)。これにより、1周期の入出力処理が完了する。また、フィールド機器の各々は、各周期において、送受信するイーサネットフレームへオンザフライで入出力処理を行う。なお、フィールド機器の各々には、自装置がデータを入出力すべきビット位置及びビット幅が予め割り当てられている。上述したモーション処理部32及びモーション処理部42は、それぞれアプリケーションプログラム52及びIECプログラム51に従い、各フィールド機器への指令値をイーサネットフレームに格納する。このとき、予測部70の予測結果に基づいて補正された指令値が用いられる。
図4は、制御装置とフィールド機器との通信の一例を説明するための図である。通信は、定周期通信を行うものであればよいが、本実施形態では、EtherCATの規格に従って通信を行うものとする。制御装置100は、フィールドネットワーク2のコントローラとして機能し、ロボット210やサーボドライバ220等のフィールド機器を制御する。また、各装置は、デイジーチェーン、スター型、リング型等で接続され得るが、ここではデイジーチェーンで接続されるものとする。そして、制御装置100においてイーサネットフレームのデータ部に所定の規格に従う情報が格納され、直列に接続されたフィールド機器へ順に送信される(図4:S1、S2)。また、イーサネットフレームは、フィールド機器の終端で折り返し、逆方向に制御装置100まで戻される(図4:S3、S4)。これにより、1周期の入出力処理が完了する。また、フィールド機器の各々は、各周期において、送受信するイーサネットフレームへオンザフライで入出力処理を行う。なお、フィールド機器の各々には、自装置がデータを入出力すべきビット位置及びビット幅が予め割り当てられている。上述したモーション処理部32及びモーション処理部42は、それぞれアプリケーションプログラム52及びIECプログラム51に従い、各フィールド機器への指令値をイーサネットフレームに格納する。このとき、予測部70の予測結果に基づいて補正された指令値が用いられる。
図5は、フィールド機器の協調動作の一例を説明するための図である。図5の例では、モータ222はコンベア8を動作させているものとする。なお、コンベア8上にはワーク9が載置され、ワーク9はモータ222の動作に応じて搬送される。また、ロボット210は、ワーク9に対し所定の動作を行うものとする。
例えば、第1の周期(図5:C1)において、モータ222の軸位置がサーボドライバ220から制御装置100にフィードバックされる。なお、モータ222の動作の速度が併せてフィードバックされてもよい。第1の周期よりも後の第2の周期(図5:C2)においては、制御装置100は、モータ222の軸位置に基づいて、第2の周期よりも後の第3の周期(図5:C3)におけるモータ222の軸位置を予測すると共に、予測位置に基づいてロボット210の目標位置を決定し、目標位置に基づく制御指令をロボット210に送信する。そして、第3の周期においては、ロボット210は、目標位置に基づいて動作する。第3の周期においては、ワーク9はコンベア8によって第2の周期における位置よりも先の予測位置まで搬送されており、複数のフィールド機器が同期して動作するようになる。
図6は、制御装置とフィールド機器との通信、及びフィールド機器の協調動作の遅延の一例を説明するための図である。図6は、制御装置及びフィールド機器が実行する処理を示している。なお、図6に示すマスタ装置及びスレーブ装置は、いずれもフィールド機器であり、それぞれ動作のマスタ装置、動作のスレーブ装置に相当する。また、動作のマスタ装置はモータ222を制御するサーボドライバ220であり、動作のスレーブ装置は、ロボット210であるものとする。「I/O」は、入出力リフレッシュ処理を表し、例えば図3のB60に相当する。「UPG」は、ユーザプログラムの実行を表す。「MC」は、モーション制御の演算処理を表し、例えば図3のB42に相当する。「RC」は、ロボット制御の演算処理を表し、例えば図3のB32に相当する。「ECAT」は、EtherCATにおける通信処理を表す。「IN」、「OUT」は、それぞれEtherCATにおけるフィールド機器の入力リフレッシュ、出力リフレッシュを表し、図4に示したイーサネットフレームへの入出力処理に相当する。「Trajectory」は、ロボットの軌跡計算処理を表す。
周期C11では、マスタ装置の「IN」においてフィードバックのために現在位置を示すデータが入力される。また、周期C12では、マスタ装置の「ECAT」及び制御装置の「I/O」において、制御装置100へデータがフィードバックされると共に、制御装置の「MC」、「RC」において、フィールド機器への制御指令が生成される。そして、周期C13では、制御装置の「I/O」及びスレーブ装置の「ECAT」において、制御指令が送信され、スレーブ装置の「OUT」において読み出され、「Trajectory」においてロボット210の動作の軌跡が計算される。その後、周期C14において、ロボット210は計算された軌跡に従って動作する。なお、説明していないブロックにおいても並行して処理が行われる。
図6に示す通り、ロボット210が動作するのは周期C14であり、サーボドライバ220がフィードバックのために現在位置を書き込んだ周期C11や、サーボドライバ220のモーション制御の演算処理によって指令値を算出した周期C12からは遅れることになる。また、図示していないが、マスタ装置がサーボドライバであるか、ロボットであるか、スレーブ装置がサーボドライバであるか、ロボットであるかといった、マスタ装置とスレーブ装置の種別の組み合わせによっても、遅延の大きさは異なる。換言すれば、動作のマスタ装置及びスレーブ装置の各々が、実行毎に全体が実行される実行形式に従ったプログラムにより動作する種類のフィールド機器であるか、逐次実行される実行形式に従ったプログラムの少なくとも一部から、インタプリタによって生成される中間コードに基づいて動作する種類のフィールド機器であるかによって、通信周期や処理時間が異なるため遅延の大きさも変わる。そこで、予測部70は、このような遅延を補正した予測位置を算出する。
予測位置は、モータ222の軸位置(現在位置)と動作速度とを用いて算出できる。例えば、以下の式(1)により予測位置を求めてもよい。
予測位置=現在位置+(現在速度×補正係数) ・・・(1)
現在位置は、サーボドライバ220からフィードバックされる値を用いてもよいし、サーボドライバ220への制御指令において指示した指令値を用いてもよい。現在速度は、サーボドライバ220からフィードバックされるようにしてもよいし、過去の周期における現在位置のデータ列を用いて算出してもよい。補正係数は所定の値であり、動作のマスタ装置及び動作のスレーブ装置の種別の組み合わせに応じて設定することができる。例えば、動作のマスタ装置及び動作のスレーブ装置についての、ロボットやモータといった種別の組み合わせに対応付けて、補正係数を定めておくようにしてもよい。また、マスタ装置の現在位置としてフィードバックされた位置を用いるか、制御指令の位置を用いるかによって異なる補正係数を用いるようにしてもよい。
予測位置=現在位置+(現在速度×補正係数) ・・・(1)
現在位置は、サーボドライバ220からフィードバックされる値を用いてもよいし、サーボドライバ220への制御指令において指示した指令値を用いてもよい。現在速度は、サーボドライバ220からフィードバックされるようにしてもよいし、過去の周期における現在位置のデータ列を用いて算出してもよい。補正係数は所定の値であり、動作のマスタ装置及び動作のスレーブ装置の種別の組み合わせに応じて設定することができる。例えば、動作のマスタ装置及び動作のスレーブ装置についての、ロボットやモータといった種別の組み合わせに対応付けて、補正係数を定めておくようにしてもよい。また、マスタ装置の現在位置としてフィードバックされた位置を用いるか、制御指令の位置を用いるかによって異なる補正係数を用いるようにしてもよい。
図7は、補正係数を説明するための図である。なお、「モーション軸・軸グループ」は、1又は複数のモータに相当し、実行毎に全体が実行される実行形式に従ったプログラムにより動作する種類のフィールド機器の一例である。また、「ロボット」は、逐次実行される実行形式に従ったプログラムの少なくとも一部から、インタプリタによって生成される中間コードに基づいて動作する種類のフィールド機器の一例である。図7の例では、動作のマスタ装置の種別と動作のスレーブ装置の種類との組み合わせに対し、遅延する周期の量が定められている。また、マスタ装置の現在位置としてフィードバックされた位置を用いる場合と、制御指令の位置を用いる場合とでも、異なる値が定められている。なお、ロボットについては、さらにロボットアンプに応じて異なる遅延周期を定めるようにしてもよい。また、実行形式の異なるIECプログラム51とアプリケーションプログラム52とに従ってロボット210を制御する場合についても、それぞれ異なる遅延周期量が定められていてもよい。図7に示したような遅延周期に応じた補正係数を用いることにより、通信遅延を補正することができ、フィールド装置の同期制御が可能になる。例えば、遅延周期の大きさに応じて補正係数も大きくなるように、予め補正係数を定めておくことができる。
<補正処理>
図8は、補正処理の一例を示すフローチャートである。制御装置100は、協調動作すべきフィールド機器への制御指令を生成及び送信する際に、図8に示すような処理を行う。まず、予測部70は、動作のマスタ装置の現在位置を取得する(図8:S101)。本ステップでは、現在位置として、マスタ装置からフィードバックされた値を取得してもよいし、マスタ装置への制御指令において指示した指令値を取得してもよい。また、マスタ装置がロボットである場合は、現在位置として、マスタ装置の現在の姿勢(ロボットが備える複数のモータの位置の組み合わせ)を取得してもよい。
図8は、補正処理の一例を示すフローチャートである。制御装置100は、協調動作すべきフィールド機器への制御指令を生成及び送信する際に、図8に示すような処理を行う。まず、予測部70は、動作のマスタ装置の現在位置を取得する(図8:S101)。本ステップでは、現在位置として、マスタ装置からフィードバックされた値を取得してもよいし、マスタ装置への制御指令において指示した指令値を取得してもよい。また、マスタ装置がロボットである場合は、現在位置として、マスタ装置の現在の姿勢(ロボットが備える複数のモータの位置の組み合わせ)を取得してもよい。
そして、予測部70は、マスタ装置の到達位置を予測する(図8:S102)。本ステップでは、予測部70は、スレーブ装置の動作時点におけるマスタ装置の到達位置を予測する。到達位置は、例えば上述した式(1)を用いて算出することができる。また、本ステップにおいては、マスタ装置の種類とスレーブ装置の種類との組み合わせに基づいて補正量を変更するようにしてもよいし、マスタ装置の現在位置がマスタ装置からフィードバックされた値であるか、マスタ装置への制御指令において指示した値であるかによって補正量を変更するようにしてもよい。
また、モーション処理部32又はモーション処理部42は、予測された到達位置に基づいてスレーブ装置への指令値を決定し、スレーブ装置へ送信する(図8:S103)。本ステップでは、例えばマスタ装置の到達位置を目標としてスレーブ装置を動作させるように指令値を決定する。一方、指令値を含む制御指令を受けたスレーブ装置は、指令値に従って動作を行う。
また、制御装置100は、処理を終了するか判断する(図8:S104)。本ステップでは、例えば所定のユーザプログラムに従うフィールド機器の動作がすべて終了したか判断する。終了しないと判断された場合(S104:NO)、S1に戻り処理を継続する。一方、終了すると判断された場合(S104:YES)、制御装置100は処理を終了する。
以上のように、制御装置100は、定周期通信を行うシステムにおいて、現在位置に基づく制御指令がフィールド機器に到達して動作するまでの通信及び動作の遅延を補正できるようになる。特に、制御装置100は、アプリケーションプログラム52とIECプログラム51とを同期させて処理することができるため、動作のマスタ装置及び動作のスレーブ装置の種類が、例えばモータとロボットのように異なる場合であっても統合して遅延の補正ができる。
以上、実施形態について説明したが、上述した制御装置は一例であり、本発明に係る制御装置は、上記の構成には限定されない。説明した実施形態の構成は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り変更したり組み合わせることができる。
<付記1>
定周期通信を行うネットワーク(2)を介して、所定のプログラムに従い複数のフィールド機器(210、220)を協調動作させる制御装置(100)であって、
第1の周期における第1のフィールド機器の位置に基づいて、前記第1の周期よりも後の第2の周期における、第1のプログラムに従って動作する前記第1のフィールド機器の位置を算出する予測部(70)と、
前記第1のプログラムに基づいて、前記第1のフィールド機器の動作の第1の指令値を決定し、前記複数のフィールド機器と通信するためのインターフェイス部を介して前記第1の指令値を前記第1のフィールド機器に送信すると共に、予測された位置と第2のプログラムとに基づいて、前記第1のフィールド機器と協調動作すべき第2のフィールド機器の動作の第2の指令値を決定し、前記インターフェイス部(60)を介して前記第2の指令値を前記第2のフィールド機器に送信する処理部(32、42)と、
を備える制御装置。
定周期通信を行うネットワーク(2)を介して、所定のプログラムに従い複数のフィールド機器(210、220)を協調動作させる制御装置(100)であって、
第1の周期における第1のフィールド機器の位置に基づいて、前記第1の周期よりも後の第2の周期における、第1のプログラムに従って動作する前記第1のフィールド機器の位置を算出する予測部(70)と、
前記第1のプログラムに基づいて、前記第1のフィールド機器の動作の第1の指令値を決定し、前記複数のフィールド機器と通信するためのインターフェイス部を介して前記第1の指令値を前記第1のフィールド機器に送信すると共に、予測された位置と第2のプログラムとに基づいて、前記第1のフィールド機器と協調動作すべき第2のフィールド機器の動作の第2の指令値を決定し、前記インターフェイス部(60)を介して前記第2の指令値を前記第2のフィールド機器に送信する処理部(32、42)と、
を備える制御装置。
1: 制御システム
2: フィールドネットワーク
6: 上位ネットワーク
10: サーバ装置
30: 制御アプリケーション処理部
40: IECプログラム処理部
51: IECプログラム
52: アプリケーションプログラム
70: 予測部
210: ロボット
220: サーボドライバ
222: モータ
2: フィールドネットワーク
6: 上位ネットワーク
10: サーバ装置
30: 制御アプリケーション処理部
40: IECプログラム処理部
51: IECプログラム
52: アプリケーションプログラム
70: 予測部
210: ロボット
220: サーボドライバ
222: モータ
Claims (6)
- 定周期通信を行うネットワークを介して、所定のプログラムに従い複数のフィールド機器を協調動作させる制御装置であって、
第1の周期における第1のフィールド機器の位置に基づいて、前記第1の周期よりも後の第2の周期における、第1のプログラムに従って動作する前記第1のフィールド機器の位置を算出する予測部と、
前記第1のプログラムに基づいて、前記第1のフィールド機器を動作させるための第1の指令値を決定し、前記複数のフィールド機器と通信するためのインターフェイス部を介して前記第1の指令値を前記第1のフィールド機器に送信すると共に、前記予測部によって算出された位置と第2のプログラムとに基づいて、前記第1のフィールド機器と協調動作すべき第2のフィールド機器を動作させるための第2の指令値を決定し、前記インターフェイス部を介して前記第2の指令値を前記第2のフィールド機器に送信する処理部と、
を備える制御装置。 - 前記予測部は、前記第1のフィールド機器の動作速度に所定の補正係数を乗じた値を、前記第1の周期における前記第1のフィールド機器の位置に加え、前記第2の周期における前記第1のフィールド機器の位置を算出する
請求項1に記載の制御装置。 - 前記第1のプログラム及び前記第2のプログラムの一方は、実行毎に全体が実行される第1の実行形式に従ったプログラムであり、他方は、逐次実行される第2の実行形式に従ったプログラムであり、
前記所定の補正係数は、前記第1の実行形式に従ったプログラムに従って動作する種類の機器と、前記第2の実行形式に従ったプログラムに従って動作する種類の機器とを含む、前記第1のフィールド機器及び前記第2のフィールド機器の種類の組み合わせに応じて決定される
請求項2に記載の制御装置。 - 前記処理部は、
前記定周期通信における制御周期毎に前記第1の実行形式に従ったプログラムを実行して前記フィールド機器を制御するための指令値を演算可能に構成された第1処理部と、
前記第2の実行形式に従ったプログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に前記フィールド機器を制御するための指令値を演算可能であり、且つ、前記第1処理部による、前記第1の実行形式に従ったプログラムの実行を起点としても、該フィールド機器を制御するための該指令値を演算可能に構成された第2処理部と、
を含み、
前記第1処理部及び前記第2処理部が演算した前記指令値を、前記インターフェイス部を介して前記制御周期毎に送信する
請求項3に記載の制御装置。 - 前記第1の周期における前記第1のフィールド機器の位置は、前記第1のフィールド機器からフィードバックされたフィードバック値、又は前記第1のフィールド機器へ送信した指令値であり、
前記所定の補正係数は、前記第1の周期における前記第1のフィールド機器の位置が、前記フィードバック値及び前記送信した指令値のいずれであるかにさらに応じて決定される
請求項2から4のいずれか一項に記載の制御装置。 - 前記定周期通信は、EtherCAT(登録商標)の規格に従う通信である
請求項1から5のいずれか一項に記載の制御装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20851183.2A EP3992735B1 (en) | 2019-08-07 | 2020-02-21 | Control device |
US17/629,539 US12111629B2 (en) | 2019-08-07 | 2020-02-21 | Control device |
CN202080054963.3A CN114207534B (zh) | 2019-08-07 | 2020-02-21 | 控制装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-145127 | 2019-08-07 | ||
JP2019145127A JP7318406B2 (ja) | 2019-08-07 | 2019-08-07 | 制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021024523A1 true WO2021024523A1 (ja) | 2021-02-11 |
Family
ID=74503369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/007163 WO2021024523A1 (ja) | 2019-08-07 | 2020-02-21 | 制御装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US12111629B2 (ja) |
EP (1) | EP3992735B1 (ja) |
JP (1) | JP7318406B2 (ja) |
CN (1) | CN114207534B (ja) |
WO (1) | WO2021024523A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012194662A (ja) | 2011-03-15 | 2012-10-11 | Omron Corp | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
JP2018190068A (ja) * | 2017-04-28 | 2018-11-29 | ファナック株式会社 | 制御装置及び機械学習装置 |
JP2019036043A (ja) | 2017-08-10 | 2019-03-07 | オムロン株式会社 | 制御装置 |
JP2019062288A (ja) * | 2017-09-25 | 2019-04-18 | オムロン株式会社 | 制御システムおよび制御装置 |
JP2019101480A (ja) | 2017-11-28 | 2019-06-24 | オムロン株式会社 | 制御装置および制御方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6804580B1 (en) * | 2003-04-03 | 2004-10-12 | Kuka Roboter Gmbh | Method and control system for controlling a plurality of robots |
US7860609B2 (en) * | 2005-05-06 | 2010-12-28 | Fanuc Robotics America, Inc. | Robot multi-arm control system |
JP4185926B2 (ja) * | 2005-08-26 | 2008-11-26 | ファナック株式会社 | ロボット協調制御方法及びシステム |
JP4661823B2 (ja) * | 2007-04-16 | 2011-03-30 | 日産自動車株式会社 | エンジン制御装置 |
US9046890B2 (en) | 2008-09-05 | 2015-06-02 | Fanuc Robotics America, Inc. | Line tracking data over Ethernet |
JP6244622B2 (ja) * | 2012-12-14 | 2017-12-13 | オムロン株式会社 | 制御装置、制御プログラムおよび制御方法 |
JP6111642B2 (ja) * | 2012-12-14 | 2017-04-12 | オムロン株式会社 | 制御装置、制御プログラムおよび制御方法 |
US9840008B2 (en) * | 2013-03-19 | 2017-12-12 | Panasonic Intellectual Property Management Co., Ltd. | Robot system control method and robot system |
CN105024777B (zh) * | 2015-07-29 | 2017-10-24 | 上海新时达电气股份有限公司 | 基于EtherCAT实时以太网的伺服驱动器同步方法 |
ES2936406T3 (es) * | 2016-05-10 | 2023-03-16 | Panasonic Ip Man Co Ltd | Sistema de control de motores |
JP6724831B2 (ja) * | 2017-03-16 | 2020-07-15 | 株式会社安川電機 | コントロールシステム、コントローラ及び制御方法 |
JP6903275B2 (ja) * | 2017-09-14 | 2021-07-14 | オムロン株式会社 | 制御装置および制御方法 |
JP6950415B2 (ja) | 2017-09-29 | 2021-10-13 | オムロン株式会社 | 制御装置 |
-
2019
- 2019-08-07 JP JP2019145127A patent/JP7318406B2/ja active Active
-
2020
- 2020-02-21 EP EP20851183.2A patent/EP3992735B1/en active Active
- 2020-02-21 US US17/629,539 patent/US12111629B2/en active Active
- 2020-02-21 CN CN202080054963.3A patent/CN114207534B/zh active Active
- 2020-02-21 WO PCT/JP2020/007163 patent/WO2021024523A1/ja unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012194662A (ja) | 2011-03-15 | 2012-10-11 | Omron Corp | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
JP2018190068A (ja) * | 2017-04-28 | 2018-11-29 | ファナック株式会社 | 制御装置及び機械学習装置 |
JP2019036043A (ja) | 2017-08-10 | 2019-03-07 | オムロン株式会社 | 制御装置 |
JP2019062288A (ja) * | 2017-09-25 | 2019-04-18 | オムロン株式会社 | 制御システムおよび制御装置 |
JP2019101480A (ja) | 2017-11-28 | 2019-06-24 | オムロン株式会社 | 制御装置および制御方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3992735A4 |
Also Published As
Publication number | Publication date |
---|---|
CN114207534A (zh) | 2022-03-18 |
EP3992735B1 (en) | 2024-07-17 |
JP7318406B2 (ja) | 2023-08-01 |
CN114207534B (zh) | 2024-08-27 |
US20220269238A1 (en) | 2022-08-25 |
EP3992735A4 (en) | 2023-07-05 |
EP3992735A1 (en) | 2022-05-04 |
JP2021026587A (ja) | 2021-02-22 |
US12111629B2 (en) | 2024-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10761515B2 (en) | Control system for controlling control object and control device for linking control applications in control system | |
EP3477405B1 (en) | Control device | |
JP6903275B2 (ja) | 制御装置および制御方法 | |
JP6950385B2 (ja) | 制御装置および制御方法 | |
US9753447B2 (en) | Control unit, output control method and program | |
EP3460602B1 (en) | Control apparatus and control method | |
EP3764175B1 (en) | Control device and control system | |
WO2021024523A1 (ja) | 制御装置 | |
JP7294078B2 (ja) | 制御装置 | |
JP7230703B2 (ja) | 制御装置 | |
WO2021145124A1 (ja) | 制御装置 | |
JP2022048289A (ja) | 制御装置および制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20851183 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020851183 Country of ref document: EP Effective date: 20220127 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |