WO2022162959A1 - Control system, robot controller, and control method - Google Patents

Control system, robot controller, and control method Download PDF

Info

Publication number
WO2022162959A1
WO2022162959A1 PCT/JP2021/009582 JP2021009582W WO2022162959A1 WO 2022162959 A1 WO2022162959 A1 WO 2022162959A1 JP 2021009582 W JP2021009582 W JP 2021009582W WO 2022162959 A1 WO2022162959 A1 WO 2022162959A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
control device
control
correction amount
robot controller
Prior art date
Application number
PCT/JP2021/009582
Other languages
French (fr)
Japanese (ja)
Inventor
征彦 仲野
哲司 若年
誠啓 里村
知行 島村
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2022162959A1 publication Critical patent/WO2022162959A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]

Definitions

  • the present invention relates to a control system, a robot controller and a control method.
  • Patent Document 1 discloses a configuration in which a single control device realizes control calculations according to a plurality of types of programs with different execution formats.
  • One object of the present invention is to provide a technique for more accurately correcting the trajectory of a robot.
  • a control system includes a control device for controlling a controlled object, a robot controller for controlling a robot, and a network for periodically updating data between the control device and the robot controller.
  • the controller includes means for periodically transmitting corrections to the trajectory of the robot.
  • the robot controller calculates a command value for each control cycle in accordance with a command received from the control device, and calculates a corrected command value for each control cycle based on the command value and a correction amount periodically received from the control device. and means for calculating
  • the robot controller calculates the original command value for each control cycle according to the command received from the control device, and corrects the command value calculated for each control cycle by the correction received from the control device.
  • a command value after correction can be calculated by reflecting the amount.
  • the control device may further include means for periodically executing the first user program for calculating the correction amount according to arbitrarily created instructions. According to this configuration, the controller can arbitrarily calculate an arbitrary correction amount to be reflected in the robot.
  • the first user program may include instructions for periodically transmitting correction amounts for the trajectory of the robot. According to this configuration, the user can easily correct the robot simply by including a predetermined instruction in the first user program.
  • the command for periodically transmitting the correction amount for the trajectory of the robot may be written in the first user program in the form of a function. According to this configuration, it is possible to easily describe a command for implementing the process of periodically transmitting the correction amount for the trajectory of the robot.
  • the control device may further include means for sequentially transmitting commands to the robot controller by sequentially executing the second user program. According to this configuration, by including in the second user program a command that defines the original trajectory of the robot, the robot can be operated along the intended trajectory.
  • the execution cycle of the second user program may be set longer than the execution cycle of the first user program. According to this configuration, the first user program for calculating the correction amount can be executed in a shorter cycle.
  • the robot controller may be configured to enable or disable calculation of the corrected command value according to specific instructions received from the controller. According to this configuration, it can be used so as to enable the correction to the trajectory of the robot only during an arbitrary period.
  • the robot controller may further include means for periodically transmitting the state values of the robot.
  • the control device can acquire the state value of the robot, so that the acquired state value of the robot can be reflected in the calculation of the correction amount.
  • a robot controller for controlling a robot.
  • the robot controller includes an interface for connecting to a control device for controlling a controlled object via a network.
  • the network is configured such that data is periodically updated between the control device and the robot controller.
  • the robot controller includes means for receiving a correction amount for the trajectory of the robot periodically transmitted from the control device, means for calculating a command value for each control cycle according to a command received from the control device, and receiving the command value from the control device. means for calculating a corrected command value for each control cycle based on the correction amount received periodically.
  • a control device for controlling a controlled object a robot controller for controlling a robot, and a network for periodically updating data between the control device and the robot controller.
  • a control method in a control system comprising: The control method comprises the steps of: a control device periodically transmitting a correction amount for the trajectory of the robot; a step in which the robot controller calculates a command value for each control cycle according to a command received from the control device; calculating a corrected command value for each control cycle based on the command value and the correction amount periodically received from the control device.
  • FIG. 1 is a schematic diagram showing a system configuration example of a control system according to an embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a control device that configures the control system according to the present embodiment
  • FIG. 3 is a schematic diagram showing a hardware configuration example of a robot controller that configures the control system according to the present embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a servo controller that configures the control system according to the present embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a support device that configures the control system according to the present embodiment
  • FIG. 1 is a schematic diagram showing a system configuration example of a control system according to an embodiment
  • FIG. It is a figure which shows the example of application of the control system which concerns on this Embodiment.
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a control device that configures the control system according to the present embodiment
  • FIG. 3 is a schematic diagram showing a hardware configuration example
  • FIG. 4 is a schematic diagram showing an execution example of a program in the control device according to the embodiment; It is a figure which shows an example of the trajectory control of the robot by the control system which concerns on this Embodiment.
  • FIG. 7 is a diagram showing an example of processing when a correction command is included in an application program in the control system according to the embodiment;
  • FIG. 7 is a diagram showing an example of processing for realizing target trajectory correction of the robot in the control system according to the present embodiment;
  • FIG. 2 is a schematic diagram showing a system configuration corresponding to a program example of the control system according to the present embodiment;
  • FIG. 12 is a diagram showing an example of an IEC program for realizing the application shown in FIG. 12;
  • FIG. 5 is a diagram showing an example of a function indicating a correction amount reflecting command of the control system according to the embodiment;
  • 4 is a flow chart showing a processing procedure executed by the control device of the control system according to the present embodiment;
  • 4 is a flow chart showing a processing procedure executed by the robot controller of the control system according to the embodiment;
  • FIG. 1 is a schematic diagram showing a system configuration example of a control system 1 according to this embodiment.
  • control system 1 includes a control device 100 for controlling a controlled object, a robot controller 250 network-connected to control device 100 via field network 10, and a servo controller 350. .
  • the control device 100 periodically exchanges data with devices connected to the field network 10 and executes processing as described later.
  • the control device 100 may typically be realized by a PLC (Programmable Logic Controller).
  • the robot controller 250 is in charge of controlling the robot 200. More specifically, the robot controller 250 functions as an interface with the robot 200, outputs commands for driving the robot 200 in accordance with commands from the control device 100, and obtains state information of the robot 200. and output to the control device 100 .
  • any robot such as a vertical articulated robot, a horizontal articulated (scalar) robot, a parallel link robot, or an orthogonal robot can be adopted.
  • the servo controller 350 is in charge of controlling the servo motor 300. More specifically, servo controller 350 drives servo motor 300 according to a command from control device 100 , acquires state information of servo motor 300 , and outputs the information to control device 100 .
  • EtherCAT registered trademark
  • EtherNet/IP protocols for industrial networks such as EtherCAT (registered trademark) and EtherNet/IP can be used.
  • EtherCAT registered trademark
  • EtherNet/IP EtherNet/IP
  • the control device 100 may be connected to the display device 500 and the server device 600 via the host network 20 .
  • a protocol for industrial networks such as EtherNet/IP can be used.
  • the control device 100 may be connected to a support device 400 for installing user programs (the IEC program 150 and the application program 160, which will be described later) executed by the control device 100 and performing various settings.
  • user programs the IEC program 150 and the application program 160, which will be described later
  • FIG. 2 is a diagram showing an application example of the control system 1 according to this embodiment. Referring to FIG. 2 , commands for generating the trajectory of robot 200 are sequentially transmitted from control device 100 to robot controller 250 .
  • the robot controller 250 calculates a command value for the robot 200 in each control cycle according to commands received from the control device 100 .
  • the control device 100 transmits the correction amount for the trajectory of the robot 200 to the robot controller 250 every control cycle.
  • the robot controller 250 calculates the corrected command value for each control cycle based on the command value and the correction amount periodically received from the control device 100 .
  • the robot controller 250 then outputs the corrected command value to the robot 200 .
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 that configures the control system 1 according to the present embodiment.
  • control device 100 includes processor 102, main memory 104, storage 110, memory card interface 112, host network controller 106, field network controller 108, local bus controller 116, USB and a USB controller 120 that provides a (Universal Serial Bus) interface. These components are connected via processor bus 118 .
  • the processor 102 corresponds to an arithmetic processing unit that executes control arithmetic, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads a program stored in the storage 110, develops it in the main memory 104, and executes it, thereby implementing control calculations for the controlled object.
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • the main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
  • the storage 110 is configured by, for example, a non-volatile storage device such as SSD (Solid State Drive) or HDD (Hard Disk Drive).
  • the storage 110 stores a system program 1102 for realizing basic functions, an IEC program 150 and an application program 160 created according to the object to be controlled.
  • the IEC program 150 includes instructions for realizing main control other than the control of the robot 200 in the control system 1.
  • An IEC program 150 may typically include sequence instructions and motion instructions.
  • the IEC program 150 may be written in any language defined by IEC61131-3 defined by the International Electrotechnical Commission (IEC). However, the IEC program 150 may include a program written in a manufacturer's own language other than the language defined by IEC61131-3.
  • the application program 160 includes instructions for controlling the operation of the robot 200.
  • the application program 160 may include instructions written in a predetermined programming language (for example, programming language for robot control such as V+ language or programming language for NC control such as G code).
  • the memory card interface 112 accepts a memory card 114, which is an example of a removable storage medium.
  • the memory card interface 112 is capable of reading/writing arbitrary data from/to the memory card 114 .
  • the host network controller 106 exchanges data with arbitrary information processing devices (such as the display device 500 and the server device 600 shown in FIGS. 1 and 2) via the host network 20 .
  • the field network controller 108 exchanges data with each device via the field network 10.
  • the field network controller 108 may function as a communication master of the field network 10.
  • the local bus controller 116 exchanges data with any functional unit 130 included in the control device 100 via the local bus 122 .
  • the functional unit 130 includes, for example, an analog I/O unit responsible for inputting and/or outputting analog signals, a digital I/O unit responsible for inputting and/or outputting digital signals, a counter unit receiving pulses from an encoder, etc. And so on.
  • the USB controller 120 exchanges data with any information processing device (such as the support device 400) via a USB connection.
  • FIG. 4 is a schematic diagram showing a hardware configuration example of the robot controller 250 that configures the control system 1 according to this embodiment.
  • robot controller 250 includes field network controller 252 and control processing circuit 260 .
  • the field network controller 252 mainly exchanges data with the control device 100 via the field network 10 . That is, field network controller 252 corresponds to an interface for connecting control device 100 via field network 10 .
  • control processing circuit 260 executes arithmetic processing required to drive the robot 200 .
  • control processing circuitry 260 includes processor 262 , main memory 264 , storage 266 and interface circuitry 270 .
  • a processor 262 executes control operations for driving the robot 200 .
  • the main memory 264 is composed of, for example, a volatile memory device such as DRAM or SRAM.
  • the storage 266 is configured by, for example, a non-volatile storage device such as SSD or HDD.
  • a system program 268 for realizing control for driving the robot 200 is stored in the storage 266 .
  • the system program 268 includes instructions for executing control operations related to the operation of the robot 200 and instructions related to interfacing with the robot 200 .
  • FIG. 5 is a schematic diagram showing a hardware configuration example of the servo controller 350 that configures the control system 1 according to this embodiment. 5, servo controller 350 includes a field network controller 352, a control processing circuit 360, and a drive circuit 370. FIG.
  • the field network controller 352 mainly exchanges data with the control device 100 via the field network 10 .
  • control processing circuit 360 executes arithmetic processing necessary for controlling the servo motor 300 .
  • control processing circuitry 360 includes processor 362 , main memory 364 , and storage 366 .
  • the processor 362 executes control calculations related to the servomotor 300 .
  • the main memory 364 is composed of, for example, a volatile memory device such as DRAM or SRAM.
  • the storage 366 is configured by, for example, a non-volatile storage device such as SSD or HDD.
  • the storage 366 stores a system program 368 for realizing drive control of the servo motor 300 .
  • the system program 368 includes instructions for executing control calculations related to the operation of the servomotor 300 and instructions related to interfacing with the servomotor 300 .
  • the drive circuit 370 includes a converter circuit, an inverter circuit, and the like, and according to commands calculated by the control processing circuit 360, generates power of specified voltage, current, and phase, and supplies it to the servo motor 300.
  • the servomotor 300 is not limited to the name of a servomotor, and may be an induction motor, a synchronous motor, a permanent magnet motor, or a reluctance motor. You may
  • the support device 400 that configures the control system 1 according to the present embodiment may be implemented using a general-purpose personal computer as an example.
  • FIG. 6 is a schematic diagram showing a hardware configuration example of the support device 400 that configures the control system 1 according to the present embodiment.
  • support device 400 includes processor 402 such as a CPU or MPU, main memory 404, input unit 406, display unit 408, storage 410, network controller 416, USB controller 418, and an optical drive 420 . These components are connected via bus 424 .
  • the processor 402 reads out various programs stored in the storage 410, develops them in the main memory 404, and executes them, thereby developing user programs (IEC programs 150 and application programs 160) executed by the control device 100. Provide processing.
  • the storage 410 is composed of, for example, non-volatile storage devices such as SSDs and HDDs.
  • the storage 410 typically includes an OS 412, a development program 414 for creating a user program to be executed in the control device 100, debugging the created user program, defining the system configuration, setting various parameters, and the like. is stored.
  • the storage 410 may store necessary programs other than the programs shown in FIG.
  • the input unit 406 is composed of a keyboard, mouse, etc., and receives user operations.
  • a display unit 408 includes a display, various indicators, a printer, and the like, and outputs processing results from the processor 402 and the like.
  • a network controller 416 controls the exchange of data with other devices via any network.
  • a USB controller 418 controls data exchange with the control device 100 via a USB connection.
  • the support device 400 has an optical drive 420, and from a recording medium 422 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, The stored program is read and installed in the storage 410 or the like.
  • a recording medium 422 for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • DVD Digital Versatile Disc
  • the various programs executed by the support device 400 may be installed via the computer-readable recording medium 422, or may be installed by downloading them from a server device on the network. Also, the functions provided by the support device 400 according to the present embodiment may be realized by using some of the modules provided by the OS 412 .
  • Display device 500 configuring control system 1 according to the present embodiment may be realized using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 500 is well known, detailed description thereof will not be given here.
  • Server device 600 that configures control system 1 according to the present embodiment may be implemented using a general-purpose personal computer as an example. Since the basic hardware configuration example of the server device 600 is well known, detailed description thereof will not be given here.
  • FIG. 3 to 6 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • FIG. 7 is a schematic diagram showing an example of program execution in the control device 100 according to the present embodiment.
  • FIG. 7 shows an example in which a plurality of tasks are set according to priority, and each task shares resources of the processor 102 according to its priority.
  • FIG. 7 shows an example in which two types of tasks, a high-priority task and a low-priority task, are executed. More specifically, the input/output refresh process 140, the execution process 142 of the IEC program 150, the motion command execution process 144 included in the IEC program 150, and the execution process 146 after interpretation of the application program 160 are performed in the control cycle T1. is executed as a high-priority task of
  • the high-priority task is repeatedly executed every control cycle T1.
  • a low-priority task is executed each time a high-priority task is not executed. That is, the execution time of the high-priority task is allocated for each control cycle, and the low-priority task is executed during the time other than the execution time of the high-priority task.
  • the application program 160 is sequentially interpreted by an interpreter (not shown).
  • the intermediate code generated by the interpreter interpreting the application program 160 is sequentially queued (enqueued) in the buffer 148 .
  • the intermediate code queued in the buffer 148 is referred to each time in the execution process 146 to generate instructions.
  • the control device 100 includes a function of sequentially transmitting commands to the robot controller 250 by sequentially executing the application program 160 (second user program).
  • the interpretation (interpreter) of the application program 160 is executed in a period longer than the control period T1, and punctuality is not sufficiently ensured. That is, the execution cycle (application cycle T2) of the application program 160 (second user program) is set longer than the execution cycle (control cycle T1) of the IEC program 150 (first user program).
  • the robot controller 250 (FIGS. 1 and 2) normally calculates the command value for each control cycle of the robot controller 250 based on the command transmitted from the control device 100, there is no problem with accuracy. .
  • FIG. 8 is a diagram showing an example of trajectory control of the robot 200 by the control system 1 according to this embodiment.
  • FIG. 8 shows tracking correction of the robot 200 as an example of target trajectory correction. More specifically, when the robot 200 performs predetermined processing on a workpiece placed on the XY stage, there is a case of correcting fluctuations occurring in the XY stage.
  • the trajectory of the robot 200 is corrected by a correction amount according to the movement of the XY stage for a configuration that controls the robot 200 according to a predetermined robot trajectory.
  • FIG. 9 is a diagram showing an example of processing when a correction command is included in the application program 160 in the control system 1 according to this embodiment.
  • application program 160 is executed in control device 100 .
  • FIG. 9 shows the code of the robot program written in V+ language as an example. In the V+ language, each instruction is called a "keyword". In the following, a case where "keyword" is used as an example of "instruction" will be described.
  • the application program 160 includes a MOVES keyword 161, which is an instruction for moving to specified coordinates, and a WHILE instruction 162, which is an instruction for specifying repeat processing.
  • the WHILE command 162 includes a correction amount calculation command 163 and an ALTER keyword 164 instructing correction of the specified correction amount. That is, after the MOVES keyword 161 is transmitted, the calculation of the correction amount and the instruction to correct the correction amount are repeatedly executed until the execution of the MOVES keyword 161 is completed.
  • the MOVES keyword 161 is first sent to the robot controller 250, and then the ALTER keyword 164 is repeatedly sent.
  • the robot controller 250 repeats the command value calculation 281 and the command value output 283 every control cycle T3 of the robot controller 250 because the command requires one or more control cycles T3.
  • the command value calculation 281 is processing (interpolation processing) for calculating a trajectory for the target position p1 associated with the MOVES keyword 161 .
  • the command value is output from the robot controller 250 to the robot 200 every control cycle T3. That is, the robot controller 250 calculates a command value for each control period T3 according to a keyword (an example of a command) received from the control device 100.
  • a keyword an example of a command
  • the robot controller 250 receives the ALTER keyword 164
  • the correction amount addition 282 is performed using the correction amount 284 included in the ALTER keyword 164.
  • a command value to which the correction amount 284 is added (or subtracted) is output.
  • the ALTER keyword 164 is an instruction whose execution is completed in one control cycle T3. Therefore, the correction processing for the command value is executed each time the ALTER keyword 164 is received.
  • the transmission cycle of the ALTER keyword 164 is not constant and is not necessarily synchronized with the control cycle T1 of the control device. Therefore, there is a possibility that the execution timing of the correction process in the robot controller 250 varies.
  • FIG. 10 is a diagram showing a processing example for realizing target trajectory correction of the robot 200 in the control system 1 according to the present embodiment.
  • control device 100 executes IEC program 150 and application program 160 .
  • the IEC program 150 includes a correction amount calculation command 151 and a correction amount reflection command 152.
  • Application program 160 includes MOVES keyword 161, which is an instruction for moving to specified coordinates.
  • the MOVES keyword 161 is first sent to the robot controller 250 by the control device 100 executing the application program 160 .
  • the robot controller 250 Upon receiving the MOVES keyword 161, the robot controller 250 repeatedly executes command value calculation 281 and command value output 283 every control period T3 of the robot controller 250.
  • the control device 100 executes the IEC program 150 every control cycle T1.
  • the correction amount 286 is calculated according to the correction amount calculation command 151 and the correction amount 286 is transmitted to the robot controller 250 according to the correction amount reflection command 152 .
  • the correction amount calculation command 151 corresponds to elements for calculating the correction amount for the trajectory of the robot 200 .
  • the correction amount reflection command 152 corresponds to an element that periodically transmits the correction amount for the trajectory of the robot 200 .
  • control device 100 periodically executes the IEC program 150 (first user program) for calculating the correction amount 286 according to arbitrary created instructions.
  • the IEC program 150 (first user program) includes a correction amount reflection command 152 as a command for periodically transmitting the correction amount 286 for the trajectory of the robot 200 .
  • the control device 100 and the robot controller 250 are connected via the field network 10 in which data transmission (data update) is performed every communication cycle T4. Therefore, data can be exchanged (exchanged) between the control device 100 and the robot controller 250 every communication cycle T4.
  • control cycle T3 of the robot controller 250 is set to be about the same as or longer than the control cycle T1 and the communication cycle T4 (control cycle T3 ⁇ control cycle T1, communication cycle T4).
  • the correction amount 286 is updated in a sufficiently early period compared to the period T3.
  • the robot controller 250 can receive the correction amount 286 for the trajectory of the robot 200 periodically transmitted from the control device 100 . Then, the robot controller 250 executes the correction amount addition 282 using the correction amount 286 calculated by the control device 100 for each control cycle. As a result, a command value to which the correction amount 284 is added (or subtracted) is output. That is, the robot controller 250 calculates the corrected command value every control cycle T3 based on the command value and the correction amount 286 periodically received from the control device 100 .
  • An enable/disable switch 287 is provided on the path through which the correction amount 286 is input to the correction amount addition 282, and is enabled or disabled by the ALTON keyword and ALTOFF keyword, respectively, as described later. be. That is, the robot controller 250 enables or disables calculation of the command value after correction according to a specific keyword (example of command) received from the control device 100 .
  • the target trajectory correction by the robot controller 250 can be reliably performed at each predetermined control cycle T3, and the correction amount calculated by the control device 100 286 can be reflected in the target trajectory correction without substantial delay.
  • the robot controller 250 periodically transmits state information 288 (the position of each axis of the robot 200, the input/output values of the robot 200, the execution state of commands, etc.) to the control device 100. That is, the robot controller 250 has elements that periodically transmit the state values of the robot 200 .
  • the state information 288 is also transmitted every communication cycle T4. Therefore, the control device 100 can also calculate the correction amount every control cycle T1 based on the state information 288 periodically received from the robot controller 250 . Therefore, the correction amount can be calculated with higher accuracy.
  • FIG. 11 is a schematic diagram showing a system configuration corresponding to a program example of the control system 1 according to this embodiment.
  • controller 100 is connected via field network 10 to robot controller 250 that controls robot 200 and distance sensor 50 attached to end effector 210 of robot 200 .
  • the control device 100 can transmit command values to the robot controller 250 and can acquire state information from the robot controller 250 . Also, the control device 100 can acquire the distance measured from the distance sensor 50 .
  • FIG. 12 is a schematic diagram showing an example of an application using the robot 200 shown in FIG.
  • FIG. 13 is a diagram showing an example of an application program 160 for realizing the application shown in FIG.
  • application program 160 includes an enabling unit 165 for instructing robot controller 250 to enable target trajectory correction, and an initial position moving unit 166 for moving robot 200 to the initial position.
  • an execution validating unit 167 for validating execution of the correction amount reflection command 152 in the IEC program, an execution waiting unit 168 waiting for the execution of the correction amount reflection command 152 in the IEC program, and the robot 200 are predetermined.
  • It includes a trajectory target commanding unit 169 for operating on the trajectory set and an end processing unit 170 for terminating the processing.
  • the validation unit 165 includes an ALTON keyword that is a command for validating the target trajectory correction.
  • the robot controller 250 activates the correction amount addition 282 of the target trajectory correction shown in FIG. 10 by receiving the ALTON keyword.
  • the initial position moving part 166 includes the MOVES keyword, which is an instruction for moving to specified coordinates. Note that the object loc.
  • the initial position is stored in init.
  • the execution enabler 167 includes an instruction to set the Boolean variable ebool_sp1 to "TRUE".
  • the execution waiting unit 168 includes an instruction to wait processing until the Boolean variable gStartComp becomes "TRUE" in the IEC program 150.
  • the Boolean variable gStartComp corresponds to the compensation ready flag 158 shown in FIG.
  • the trajectory target command section 169 includes three MOVES keywords, and is defined to sequentially move to target positions p1, p2, and p3, respectively.
  • the termination processing unit 170 includes an ALTOFF keyword, which is a command for invalidating the target trajectory correction.
  • FIG. 14 is a diagram showing an example of an IEC program 150 for realizing the application shown in FIG.
  • IEC program 150 includes activation monitoring instruction 159 for executing activation and monitoring of application program 160 , correction amount calculation instruction 151 , and correction amount reflecting instruction 152 .
  • the activation monitoring instruction 159 activates the application program 160 and monitors the execution state of the application program 160 when a predetermined condition for operating the robot 200 is satisfied.
  • the correction amount calculation command 151 uses the reference distance 156 (cBaseDiff) and the current distance 157 (E002_input_Data_1) measured by the distance sensor 50 as the second element (Offset[2]) of the structure Offset indicating the correction amount 155. Contains instructions to compute the difference. The calculation of the correction amount 155 is performed on the condition that the application program running flag 154 indicating that the application program 160 is running is "TRUE".
  • a correction amount 155 (Offset) calculated by the correction amount calculation command 151 is input to the correction amount reflection command 152 .
  • the correction amount 155 is transmitted to the robot controller 250 by executing the correction amount reflection command 152 . Further, the correction amount reflection command 152 sets the correction preparation completion flag 158 to "TRUE" if the correction amount 155 can be transmitted.
  • the correction amount reflection command 152 may be in any format, but may adopt a function format as shown in FIG. 14, for example.
  • FIG. 15 is a diagram showing an example of functions indicating the correction amount reflection command 152 of the control system 1 according to the present embodiment.
  • correction amount reflection command 152 includes robot designation 1521, execution designation 1522, and correction amount designation 1523 as inputs. Further, the correction amount reflection command 152 includes, as outputs, a currently selected robot 1524, a correction preparation completion flag 1525, a busy flag 1526, an abort flag 1527, an error flag 1528, and an error ID 1529.
  • a variable for designating the target robot 200 is set in the robot designation 1521 .
  • a Boolean variable for instructing execution of the correction amount reflection instruction 152 is set in the execution designation 1522 .
  • a variable indicating the correction amount to be transmitted to the robot controller 250 of the target robot 200 is set in the correction amount specification 1523 .
  • the correction amount may include not only the correction value for a specific axis, but also correction values for each of a plurality of axes.
  • the selected robot 1524 outputs information for specifying the selected robot 200 .
  • the correction preparation completion flag 1525 outputs information indicating whether or not the target trajectory correction for the selected robot 200 can be executed. From the busy flag 1526, the abort flag 1527, and the error flag 1528, presence/absence of a busy state, presence/absence of an abort occurrence, presence/absence of an error occurrence, and the like are output.
  • the error ID 1529 outputs information for identifying the error that has occurred.
  • the correction amount reflection command 152 which is a command for periodically transmitting the correction amount 286 for the trajectory of the robot 200, may be written in the IEC program 150 (first user program) in the form of a function.
  • the application shown in FIG. 12 can be controlled.
  • FIG. 16 is a flow chart showing a processing procedure executed by the control device 100 of the control system 1 according to this embodiment.
  • FIG. 16A shows the process of executing the IEC program 150 by the control device 100
  • FIG. 16B shows the process of executing the application program 160 by the control device 100.
  • FIG. Each step shown in FIGS. 16A and 16B may be implemented by processor 102 of control device 100 executing a program.
  • control device 100 first executes input/output refresh processing 140 . More specifically, the control device 100 outputs the command value calculated in the previous control cycle (step S100), and acquires the input value used in the current control cycle (step S102).
  • the command value output from control device 100 includes correction amount 286 used for target trajectory correction.
  • Input values obtained by controller 100 include state information 288 from robot controller 250 .
  • the control device 100 determines whether or not the target trajectory correction can be executed based on the obtained input value and the internally held state value (step S104).
  • step S104 the control device 100 calculates the correction amount 284 used for the target trajectory correction according to the correction amount calculation command 151 (step S106), and the correction amount reflecting command 152 , the calculated correction amount 284 is set (step S108).
  • the set correction amount 284 becomes the command value in the next control cycle T1.
  • the control device 100 periodically transmits the correction amount 284 for the trajectory of the robot 200 .
  • control device 100 sequentially executes application program 160 to determine whether the content of the target line is a keyword (step S150). If the content of the target line is a keyword (YES in step S150), control device 100 transmits the target keyword to robot controller 250 (step S152).
  • control device 100 executes the content of the target line and stores the execution result in the target variable (step S154).
  • the target line includes control instructions such as DO-WHILE statements and IF statements.
  • FIG. 17 is a flow chart showing a processing procedure executed by the robot controller 250 of the control system 1 according to this embodiment. The processing shown in FIG. 17 is repeatedly executed in each control cycle T3 of the robot controller 250. In FIG. Each step shown in FIG. 17 may be implemented by the processor 262 of the robot controller 250 executing a program.
  • robot controller 250 first executes input/output refresh processing. More specifically, the robot controller 250 outputs the command value calculated in the previous control cycle (step S200), and acquires the input value used in the current control cycle (step S202). Output of command values from robot controller 250 includes output of commands to drive robot 200 and transmission of state information 288 including state values of the previous control cycle to control device 100 .
  • the input values acquired by the robot controller 250 include state values of the robot 200 (positions of the axes of the robot 200, input/output values of the robot 200, etc.).
  • the robot controller 250 determines whether or not any keyword has been received from the control device 100 (step S204). If any keyword has been received from control device 100 (YES in step S204), robot controller 250 stores the received keyword in the buffer (step S206). If no keyword has been received from control device 100 (NO in step S204), the process of step S206 is skipped.
  • the robot controller 250 determines whether or not some keyword is being executed (step S208). If some keyword is being executed (YES in step S208), robot controller 250 calculates the command value for the current control cycle according to the keyword being executed (step S210). In this manner, the robot controller 250 calculates command values for each control period T3 according to the keyword (an example of command) received from the control device 100 .
  • step S212 determines whether or not the keyword is stored in the buffer. If a keyword is stored in the buffer (YES in step S212), robot controller 250 reads the keyword from the buffer (step S214) and calculates a command value according to the read keyword (step S216).
  • the robot controller 250 determines whether or not target trajectory correction is enabled (step S218). If target trajectory correction is enabled (YES in step S218), robot controller 250 adds the correction amount acquired in step S202 to the command value to calculate a corrected command value (step S220). Thus, the robot controller 250 calculates the corrected command value every control cycle T3 based on the command value and the correction amount 286 periodically received from the control device 100 .
  • step S220 If target trajectory correction is not enabled (NO in step S218), the process of step S220 is skipped.
  • the robot controller 250 outputs the command value or the corrected command value to the robot 200 (step S222).
  • a control device for controlling a controlled object; a robot controller (250) for controlling the robot (200); a network (10) for periodically updating data between the controller and the robot controller;
  • the control device comprises means (102, 152) for periodically transmitting a correction amount (161) for the trajectory of the robot,
  • the robot controller is Means (262, 281) for calculating a command value for each control cycle according to a command received from the control device;
  • a control system comprising means (262, 282) for calculating a command value after correction in each control cycle based on the command value and a correction amount periodically received from the control device.
  • a control method in a control system (1) comprising a step in which the control device periodically transmits a correction amount for the trajectory of the robot (S108); a step in which the robot controller calculates a command value for each control cycle according to the command received from the control device (S210, S216);
  • a control method comprising a step (S220) in which the robot controller calculates a corrected command value for each control cycle based on the command value and a correction amount periodically received from the control device.
  • the robot controller 250 calculates the original command value for each control cycle according to the command received from the control device 100, and calculates the command value calculated for each control cycle.
  • the corrected command value can be calculated by reflecting the correction amount received from the control device 100 .

Abstract

This control system includes: a control device for controlling a control target; a robot controller for controlling a robot; and a network that periodically updates data between the control device and the robot controller. The control device includes a means that periodically transmits correction amounts for a robot trajectory. The robot controller includes a means that calculates command values for each control period, following orders received from the control device, and a means that calculates post-correction command values for each control period on the basis of the aforementioned command values and the correction amounts periodically received from the control device.

Description

制御システム、ロボットコントローラおよび制御方法Control system, robot controller and control method
 本発明は、制御システム、ロボットコントローラおよび制御方法に関する。 The present invention relates to a control system, a robot controller and a control method.
 様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。近年のICT(Information and Communication Technology)の進歩に伴って、制御装置は、従来のシーケンス制御だけではなく、ロボットや工作機械などを制御することも可能になっている。 FA (Factory Automation) technology using control devices such as PLCs (Programmable Controllers) is widely used in various production sites. With recent advances in ICT (Information and Communication Technology), controllers can now control robots, machine tools, and the like in addition to conventional sequence control.
 例えば、特開2019-036043号公報(特許文献1)は、実行形式の異なる複数種類のプログラムに従う制御演算を単一の制御装置で実現する構成を開示する。 For example, Japanese Patent Laying-Open No. 2019-036043 (Patent Document 1) discloses a configuration in which a single control device realizes control calculations according to a plurality of types of programs with different execution formats.
特開2019-036043号公報JP 2019-036043 A
 例えば、XYステージ上に配置されたワークに対して、ロボットで何らかの加工を行うような構成を想定すると、XYステージの動きに合わせて、ロボットを制御することが好ましい。本発明は、ロボットの軌道に対する補正をより正確に実現する技術を提供することを一つの目的としている。 For example, assuming a configuration in which a robot performs some processing on a workpiece placed on the XY stage, it is preferable to control the robot in accordance with the movement of the XY stage. One object of the present invention is to provide a technique for more accurately correcting the trajectory of a robot.
 本発明のある局面に従う制御システムは、制御対象を制御するための制御装置と、ロボットを制御するためのロボットコントローラと、制御装置とロボットコントローラとの間で周期的にデータを更新するネットワークとを含む。制御装置は、ロボットの軌道に対する補正量を周期的に送信する手段を含む。ロボットコントローラは、制御装置から受信した命令に従って制御周期毎に指令値を計算する手段と、指令値と制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算する手段とを含む。 A control system according to one aspect of the present invention includes a control device for controlling a controlled object, a robot controller for controlling a robot, and a network for periodically updating data between the control device and the robot controller. include. The controller includes means for periodically transmitting corrections to the trajectory of the robot. The robot controller calculates a command value for each control cycle in accordance with a command received from the control device, and calculates a corrected command value for each control cycle based on the command value and a correction amount periodically received from the control device. and means for calculating
 この構成によれば、ロボットコントローラは、制御装置から受信した命令に従って、本来の指令値を制御周期毎に計算するとともに、制御周期毎に計算される指令値に対して、制御装置から受信した補正量を反映して、補正後の指令値を計算できる。これによって、ロボットの軌道を任意に補正しようとした場合に、制御装置での補正量の計算結果を制御周期からずれることなく、確実に反映できる。これによって、ロボットの軌道について任意の補正を行う場合であっても、より精度の高い制御を行うことができる。 According to this configuration, the robot controller calculates the original command value for each control cycle according to the command received from the control device, and corrects the command value calculated for each control cycle by the correction received from the control device. A command value after correction can be calculated by reflecting the amount. As a result, when the trajectory of the robot is to be arbitrarily corrected, the calculation result of the correction amount in the control device can be reliably reflected without deviating from the control cycle. As a result, even if the trajectory of the robot is arbitrarily corrected, more accurate control can be performed.
 制御装置は、任意に作成された命令に従って補正量を計算するための第1のユーザプログラムを周期的に実行する手段をさらに含んでいてもよい。この構成によれば、制御装置では、ロボットに反映する任意の補正量を任意に計算できる。 The control device may further include means for periodically executing the first user program for calculating the correction amount according to arbitrarily created instructions. According to this configuration, the controller can arbitrarily calculate an arbitrary correction amount to be reflected in the robot.
 第1のユーザプログラムは、ロボットの軌道に対する補正量を周期的に送信するための命令を含んでいてもよい。この構成によれば、ユーザは、第1のユーザプログラムに所定の命令を含めるだけで、ロボットに対する補正を容易に実現できる。 The first user program may include instructions for periodically transmitting correction amounts for the trajectory of the robot. According to this configuration, the user can easily correct the robot simply by including a predetermined instruction in the first user program.
 ロボットの軌道に対する補正量を周期的に送信するための命令は、ファンクション形式で第1のユーザプログラムに記述されるようにしてもよい。この構成によれば、ロボットの軌道に対する補正量を周期的に送信する処理を実現するための命令を簡単に記述できる。 The command for periodically transmitting the correction amount for the trajectory of the robot may be written in the first user program in the form of a function. According to this configuration, it is possible to easily describe a command for implementing the process of periodically transmitting the correction amount for the trajectory of the robot.
 制御装置は、第2のユーザプログラムを逐次実行することで、ロボットコントローラへ命令を逐次送信する手段をさらに含んでいてもよい。この構成によれば、ロボットの本来の軌道を規定する命令を第2のユーザプログラムに含ませることで、ロボットを意図した軌道で動作させることができる。 The control device may further include means for sequentially transmitting commands to the robot controller by sequentially executing the second user program. According to this configuration, by including in the second user program a command that defines the original trajectory of the robot, the robot can be operated along the intended trajectory.
 第2のユーザプログラムの実行周期は、第1のユーザプログラムの実行周期に比較して長く設定されてもよい。この構成によれば、補正量を計算する第1のユーザプログラムをより短い周期で実行できる。 The execution cycle of the second user program may be set longer than the execution cycle of the first user program. According to this configuration, the first user program for calculating the correction amount can be executed in a shorter cycle.
 ロボットコントローラは、制御装置から受信した特定の命令に従って、補正後の指令値の計算を有効化または無効化するように構成されてもよい。この構成によれば、ロボットの軌道に対する補正を任意の期間の間だけ有効化するような使い方ができる。 The robot controller may be configured to enable or disable calculation of the corrected command value according to specific instructions received from the controller. According to this configuration, it can be used so as to enable the correction to the trajectory of the robot only during an arbitrary period.
 ロボットコントローラは、ロボットの状態値を周期的に送信する手段をさらに含んでいてもよい。この構成によれば、制御装置は、ロボットの状態値を取得できるので、取得したロボットの状態値を補正量の計算などに反映できる。 The robot controller may further include means for periodically transmitting the state values of the robot. According to this configuration, the control device can acquire the state value of the robot, so that the acquired state value of the robot can be reflected in the calculation of the correction amount.
 本発明の別の局面に従えば、ロボットを制御するためのロボットコントローラが提供される。ロボットコントローラは、制御対象を制御するための制御装置とネットワークを介して接続するためのインターフェイスを含む。ネットワークにおいては、制御装置とロボットコントローラとの間で周期的にデータが更新されるように構成されている。ロボットコントローラは、制御装置から周期的に送信されるロボットの軌道に対する補正量を受信する手段と、制御装置から受信した命令に従って制御周期毎に指令値を計算する手段と、指令値と制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算する手段とを含む。 According to another aspect of the present invention, a robot controller for controlling a robot is provided. The robot controller includes an interface for connecting to a control device for controlling a controlled object via a network. The network is configured such that data is periodically updated between the control device and the robot controller. The robot controller includes means for receiving a correction amount for the trajectory of the robot periodically transmitted from the control device, means for calculating a command value for each control cycle according to a command received from the control device, and receiving the command value from the control device. means for calculating a corrected command value for each control cycle based on the correction amount received periodically.
 本発明のさらに別の局面に従えば、制御対象を制御するための制御装置と、ロボットを制御するためのロボットコントローラと、制御装置とロボットコントローラとの間で周期的にデータを更新するネットワークとを備える制御システムにおける制御方法が提供される。制御方法は、制御装置が、ロボットの軌道に対する補正量を周期的に送信するステップと、ロボットコントローラが、制御装置から受信した命令に従って制御周期毎に指令値を計算するステップと、ロボットコントローラが、指令値と制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算するステップとを含む。 According to still another aspect of the present invention, a control device for controlling a controlled object, a robot controller for controlling a robot, and a network for periodically updating data between the control device and the robot controller. There is provided a control method in a control system comprising: The control method comprises the steps of: a control device periodically transmitting a correction amount for the trajectory of the robot; a step in which the robot controller calculates a command value for each control cycle according to a command received from the control device; calculating a corrected command value for each control cycle based on the command value and the correction amount periodically received from the control device.
 本発明によれば、ロボットの軌道に対する補正をより正確に実現できる。 According to the present invention, it is possible to more accurately correct the trajectory of the robot.
本実施の形態に係る制御システムのシステム構成例を示す模式図である。1 is a schematic diagram showing a system configuration example of a control system according to an embodiment; FIG. 本実施の形態に係る制御システムの適用例を示す図である。It is a figure which shows the example of application of the control system which concerns on this Embodiment. 本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a control device that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成するロボットコントローラのハードウェア構成例を示す模式図である。FIG. 3 is a schematic diagram showing a hardware configuration example of a robot controller that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成するサーボコントローラのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a servo controller that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a support device that configures the control system according to the present embodiment; 本実施の形態に係る制御装置におけるプログラムの実行例を示す模式図である。FIG. 4 is a schematic diagram showing an execution example of a program in the control device according to the embodiment; 本実施の形態に係る制御システムによるロボットの軌道制御の一例を示す図である。It is a figure which shows an example of the trajectory control of the robot by the control system which concerns on this Embodiment. 本実施の形態に係る制御システムにおいてアプリケーションプログラムに補正命令を含めた場合の処理例を示す図である。FIG. 7 is a diagram showing an example of processing when a correction command is included in an application program in the control system according to the embodiment; 本実施の形態に係る制御システムにおけるロボットの目標軌道補正を実現するための処理例を示す図である。FIG. 7 is a diagram showing an example of processing for realizing target trajectory correction of the robot in the control system according to the present embodiment; 本実施の形態に係る制御システムのプログラム例に対応するシステム構成を示す模式図である。FIG. 2 is a schematic diagram showing a system configuration corresponding to a program example of the control system according to the present embodiment; FIG. 図11に示すロボットを用いたアプリケーションの一例を示す模式図である。FIG. 12 is a schematic diagram showing an example of an application using the robot shown in FIG. 11; 図12に示すアプリケーションを実現するためのアプリケーションプログラムの一例を示す図である。13 is a diagram showing an example of an application program for realizing the application shown in FIG. 12; FIG. 図12に示すアプリケーションを実現するためのIECプログラムの一例を示す図である。13 is a diagram showing an example of an IEC program for realizing the application shown in FIG. 12; FIG. 本実施の形態に係る制御システムの補正量反映命令を示すファンクションの一例を示す図である。FIG. 5 is a diagram showing an example of a function indicating a correction amount reflecting command of the control system according to the embodiment; 本実施の形態に係る制御システムの制御装置で実行される処理手順を示すフローチャートである。4 is a flow chart showing a processing procedure executed by the control device of the control system according to the present embodiment; 本実施の形態に係る制御システムのロボットコントローラで実行される処理手順を示すフローチャートである。4 is a flow chart showing a processing procedure executed by the robot controller of the control system according to the embodiment;
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are denoted by the same reference numerals, and the description thereof will not be repeated.
 <A.適用例>
 まず、本実施の形態に係る制御システム1のシステム構成例について説明する。
<A. Application example>
First, a system configuration example of the control system 1 according to the present embodiment will be described.
 図1は、本実施の形態に係る制御システム1のシステム構成例を示す模式図である。図1を参照して、制御システム1は、制御対象を制御するための制御装置100と、フィールドネットワーク10を介して制御装置100とネットワーク接続された、ロボットコントローラ250と、サーボコントローラ350とを含む。 FIG. 1 is a schematic diagram showing a system configuration example of a control system 1 according to this embodiment. Referring to FIG. 1, control system 1 includes a control device 100 for controlling a controlled object, a robot controller 250 network-connected to control device 100 via field network 10, and a servo controller 350. .
 制御装置100は、フィールドネットワーク10に接続されたデバイスとの間で周期的にデータをやり取りして、後述するような処理を実行する。制御装置100は、典型的には、PLC(プログラマブルロジックコントローラ)により実現されてもよい。 The control device 100 periodically exchanges data with devices connected to the field network 10 and executes processing as described later. The control device 100 may typically be realized by a PLC (Programmable Logic Controller).
 ロボットコントローラ250は、ロボット200の制御を担当する。より具体的には、ロボットコントローラ250は、ロボット200との間のインターフェイスとして機能し、制御装置100からの指令に従って、ロボット200を駆動するための指令を出力するとともに、ロボット200の状態情報を取得して制御装置100へ出力する。 The robot controller 250 is in charge of controlling the robot 200. More specifically, the robot controller 250 functions as an interface with the robot 200, outputs commands for driving the robot 200 in accordance with commands from the control device 100, and obtains state information of the robot 200. and output to the control device 100 .
 ロボット200は、例えば、垂直多関節ロボット、水平多関節(スカラ)ロボット、パラレルリンクロボット、直交ロボットなどの任意のロボットを採用できる。 For the robot 200, any robot such as a vertical articulated robot, a horizontal articulated (scalar) robot, a parallel link robot, or an orthogonal robot can be adopted.
 サーボコントローラ350は、サーボモータ300の制御を担当する。より具体的には、サーボコントローラ350は、制御装置100からの指令に従って、サーボモータ300を駆動するとともに、サーボモータ300の状態情報を取得して制御装置100へ出力する。 The servo controller 350 is in charge of controlling the servo motor 300. More specifically, servo controller 350 drives servo motor 300 according to a command from control device 100 , acquires state information of servo motor 300 , and outputs the information to control device 100 .
 フィールドネットワーク10には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。プロトコルとしてEtherCATを採用した場合には、制御装置100とフィールドネットワーク10に接続されたデバイスとの間で、例えば、数百μ秒~数m秒の定周期でデータを更新できる。 For the field network 10, protocols for industrial networks such as EtherCAT (registered trademark) and EtherNet/IP can be used. When EtherCAT is adopted as the protocol, data can be updated between the control device 100 and devices connected to the field network 10 at regular intervals of several hundred microseconds to several milliseconds, for example.
 制御装置100は、上位ネットワーク20を介して、表示装置500およびサーバ装置600に接続されてもよい。上位ネットワーク20には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。 The control device 100 may be connected to the display device 500 and the server device 600 via the host network 20 . For the upper network 20, a protocol for industrial networks such as EtherNet/IP can be used.
 制御装置100には、制御装置100で実行されるユーザプログラム(後述する、IECプログラム150およびアプリケーションプログラム160)のインストールや各種設定を行うためのサポート装置400が接続されてもよい。 The control device 100 may be connected to a support device 400 for installing user programs (the IEC program 150 and the application program 160, which will be described later) executed by the control device 100 and performing various settings.
 図2は、本実施の形態に係る制御システム1の適用例を示す図である。図2を参照して、制御装置100からロボットコントローラ250に対して、ロボット200の軌道を生成するための命令が逐次送信される。 FIG. 2 is a diagram showing an application example of the control system 1 according to this embodiment. Referring to FIG. 2 , commands for generating the trajectory of robot 200 are sequentially transmitted from control device 100 to robot controller 250 .
 ロボットコントローラ250は、制御装置100から受信した命令に従って、ロボット200に対する指令値を制御周期毎に計算する。並行して、制御装置100は、ロボットコントローラ250に対して、ロボット200の軌道に対する補正量を制御周期毎に送信する。ロボットコントローラ250は、指令値と制御装置100から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算する。そして、ロボットコントローラ250は、補正後の指令値をロボット200へ出力する。 The robot controller 250 calculates a command value for the robot 200 in each control cycle according to commands received from the control device 100 . In parallel, the control device 100 transmits the correction amount for the trajectory of the robot 200 to the robot controller 250 every control cycle. The robot controller 250 calculates the corrected command value for each control cycle based on the command value and the correction amount periodically received from the control device 100 . The robot controller 250 then outputs the corrected command value to the robot 200 .
 <B.ハードウェア構成例>
 次に、図1および図2に示す制御システム1を構成する主要装置のハードウェア構成例について説明する。
<B. Hardware configuration example>
Next, an example of hardware configuration of main devices constituting the control system 1 shown in FIGS. 1 and 2 will be described.
 (b1:制御装置100)
 図3は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
(b1: control device 100)
FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 that configures the control system 1 according to the present embodiment. Referring to FIG. 3, control device 100 includes processor 102, main memory 104, storage 110, memory card interface 112, host network controller 106, field network controller 108, local bus controller 116, USB and a USB controller 120 that provides a (Universal Serial Bus) interface. These components are connected via processor bus 118 .
 プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、制御対象に対する制御演算を実現する。 The processor 102 corresponds to an arithmetic processing unit that executes control arithmetic, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads a program stored in the storage 110, develops it in the main memory 104, and executes it, thereby implementing control calculations for the controlled object.
 メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。 The main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory). The storage 110 is configured by, for example, a non-volatile storage device such as SSD (Solid State Drive) or HDD (Hard Disk Drive).
 ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたIECプログラム150およびアプリケーションプログラム160などが格納される。 The storage 110 stores a system program 1102 for realizing basic functions, an IEC program 150 and an application program 160 created according to the object to be controlled.
 IECプログラム150は、制御システム1におけるロボット200の制御以外の主たる制御を実現するための命令を含む。IECプログラム150は、典型的には、シーケンス命令およびモーション命令を含み得る。IECプログラム150は、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されてもよい。但し、IECプログラム150は、IEC61131-3で規定される言語以外のメーカ独自言語で記述されるプログラムを含んでいてもよい。 The IEC program 150 includes instructions for realizing main control other than the control of the robot 200 in the control system 1. An IEC program 150 may typically include sequence instructions and motion instructions. The IEC program 150 may be written in any language defined by IEC61131-3 defined by the International Electrotechnical Commission (IEC). However, the IEC program 150 may include a program written in a manufacturer's own language other than the language defined by IEC61131-3.
 アプリケーションプログラム160は、ロボット200の動作を制御するための命令を含む。アプリケーションプログラム160は、所定のプログラミング言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述された命令を含んでいてもよい。 The application program 160 includes instructions for controlling the operation of the robot 200. The application program 160 may include instructions written in a predetermined programming language (for example, programming language for robot control such as V+ language or programming language for NC control such as G code).
 メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。 The memory card interface 112 accepts a memory card 114, which is an example of a removable storage medium. The memory card interface 112 is capable of reading/writing arbitrary data from/to the memory card 114 .
 上位ネットワークコントローラ106は、上位ネットワーク20を介して、任意の情報処理装置(図1および図2に示される表示装置500およびサーバ装置600など)との間でデータをやり取りする。 The host network controller 106 exchanges data with arbitrary information processing devices (such as the display device 500 and the server device 600 shown in FIGS. 1 and 2) via the host network 20 .
 フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、それぞれのデバイスとの間でデータをやり取りする。図1および図2に示すシステム構成例において、フィールドネットワークコントローラ108は、フィールドネットワーク10の通信マスタとして機能してもよい。 The field network controller 108 exchanges data with each device via the field network 10. In the system configuration examples shown in FIGS. 1 and 2, the field network controller 108 may function as a communication master of the field network 10. FIG.
 ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100に含まれる任意の機能ユニット130との間でデータをやり取りする。機能ユニット130は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニット、エンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。 The local bus controller 116 exchanges data with any functional unit 130 included in the control device 100 via the local bus 122 . The functional unit 130 includes, for example, an analog I/O unit responsible for inputting and/or outputting analog signals, a digital I/O unit responsible for inputting and/or outputting digital signals, a counter unit receiving pulses from an encoder, etc. And so on.
 USBコントローラ120は、USB接続を介して、任意の情報処理装置(サポート装置400など)との間でデータをやり取りする。 The USB controller 120 exchanges data with any information processing device (such as the support device 400) via a USB connection.
 (b2:ロボットコントローラ250)
 図4は、本実施の形態に係る制御システム1を構成するロボットコントローラ250のハードウェア構成例を示す模式図である。図4を参照して、ロボットコントローラ250は、フィールドネットワークコントローラ252と、制御処理回路260とを含む。
(b2: robot controller 250)
FIG. 4 is a schematic diagram showing a hardware configuration example of the robot controller 250 that configures the control system 1 according to this embodiment. Referring to FIG. 4, robot controller 250 includes field network controller 252 and control processing circuit 260 .
 フィールドネットワークコントローラ252は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。すなわち、フィールドネットワークコントローラ252は、制御装置100とフィールドネットワーク10を介して接続するためのインターフェイスに相当する。 The field network controller 252 mainly exchanges data with the control device 100 via the field network 10 . That is, field network controller 252 corresponds to an interface for connecting control device 100 via field network 10 .
 制御処理回路260は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ264と、ストレージ266と、インターフェイス回路270とを含む。 The control processing circuit 260 executes arithmetic processing required to drive the robot 200 . As an example, control processing circuitry 260 includes processor 262 , main memory 264 , storage 266 and interface circuitry 270 .
 プロセッサ262は、ロボット200を駆動するための制御演算を実行する。メインメモリ264は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ266は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 A processor 262 executes control operations for driving the robot 200 . The main memory 264 is composed of, for example, a volatile memory device such as DRAM or SRAM. The storage 266 is configured by, for example, a non-volatile storage device such as SSD or HDD.
 ストレージ266には、ロボット200を駆動するための制御を実現するためのシステムプログラム268が格納される。システムプログラム268は、ロボット200の動作に係る制御演算を実行する命令、および、ロボット200との間のインターフェイスに係る命令を含む。 A system program 268 for realizing control for driving the robot 200 is stored in the storage 266 . The system program 268 includes instructions for executing control operations related to the operation of the robot 200 and instructions related to interfacing with the robot 200 .
 インターフェイス回路270は、ロボット200との間でデータをやり取りする。
 (b3:サーボコントローラ350)
 図5は、本実施の形態に係る制御システム1を構成するサーボコントローラ350のハードウェア構成例を示す模式図である。図5を参照して、サーボコントローラ350は、フィールドネットワークコントローラ352と、制御処理回路360と、ドライブ回路370とを含む。
Interface circuit 270 exchanges data with robot 200 .
(b3: servo controller 350)
FIG. 5 is a schematic diagram showing a hardware configuration example of the servo controller 350 that configures the control system 1 according to this embodiment. 5, servo controller 350 includes a field network controller 352, a control processing circuit 360, and a drive circuit 370. FIG.
 フィールドネットワークコントローラ352は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。 The field network controller 352 mainly exchanges data with the control device 100 via the field network 10 .
 制御処理回路360は、サーボモータ300の制御に必要な演算処理を実行する。一例として、制御処理回路360は、プロセッサ362と、メインメモリ364と、ストレージ366とを含む。 The control processing circuit 360 executes arithmetic processing necessary for controlling the servo motor 300 . As an example, control processing circuitry 360 includes processor 362 , main memory 364 , and storage 366 .
 プロセッサ362は、サーボモータ300に係る制御演算を実行する。メインメモリ364は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ366は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 The processor 362 executes control calculations related to the servomotor 300 . The main memory 364 is composed of, for example, a volatile memory device such as DRAM or SRAM. The storage 366 is configured by, for example, a non-volatile storage device such as SSD or HDD.
 ストレージ366には、サーボモータ300の駆動制御を実現するためのシステムプログラム368が格納される。システムプログラム368は、サーボモータ300の動作に係る制御演算を実行する命令、および、サーボモータ300との間のインターフェイスに係る命令を含む。 The storage 366 stores a system program 368 for realizing drive control of the servo motor 300 . The system program 368 includes instructions for executing control calculations related to the operation of the servomotor 300 and instructions related to interfacing with the servomotor 300 .
 ドライブ回路370は、コンバータ回路およびインバータ回路などを含み、制御処理回路360により計算された指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ300へ供給する。 The drive circuit 370 includes a converter circuit, an inverter circuit, and the like, and according to commands calculated by the control processing circuit 360, generates power of specified voltage, current, and phase, and supplies it to the servo motor 300.
 サーボモータ300は、サーボモータとの名称に限定されず、誘導型モータ、同期型モータ、永久磁石型モータ、リラクタンスモータのいずれを採用してもよいし、回転型だけではなく、リニアモータを採用してもよい。 The servomotor 300 is not limited to the name of a servomotor, and may be an induction motor, a synchronous motor, a permanent magnet motor, or a reluctance motor. You may
 (b4:サポート装置400)
 本実施の形態に係る制御システム1を構成するサポート装置400は、一例として、汎用パソコンを用いて実現されてもよい。
(b4: support device 400)
The support device 400 that configures the control system 1 according to the present embodiment may be implemented using a general-purpose personal computer as an example.
 図6は、本実施の形態に係る制御システム1を構成するサポート装置400のハードウェア構成例を示す模式図である。図6を参照して、サポート装置400は、CPUやMPUなどのプロセッサ402と、メインメモリ404と、入力部406と、表示部408と、ストレージ410と、ネットワークコントローラ416と、USBコントローラ418と、光学ドライブ420とを含む。これらのコンポーネントはバス424を介して接続される。 FIG. 6 is a schematic diagram showing a hardware configuration example of the support device 400 that configures the control system 1 according to the present embodiment. 6, support device 400 includes processor 402 such as a CPU or MPU, main memory 404, input unit 406, display unit 408, storage 410, network controller 416, USB controller 418, and an optical drive 420 . These components are connected via bus 424 .
 プロセッサ402は、ストレージ410に格納された各種プログラムを読み出して、メインメモリ404に展開して実行することで、制御装置100で実行されるユーザプログラム(IECプログラム150およびアプリケーションプログラム160)の開発などの処理を提供する。 The processor 402 reads out various programs stored in the storage 410, develops them in the main memory 404, and executes them, thereby developing user programs (IEC programs 150 and application programs 160) executed by the control device 100. Provide processing.
 ストレージ410は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。ストレージ410には、典型的には、OS412と、制御装置100において実行されるユーザプログラムの作成、作成したユーザプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム414とが格納される。ストレージ410には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。 The storage 410 is composed of, for example, non-volatile storage devices such as SSDs and HDDs. The storage 410 typically includes an OS 412, a development program 414 for creating a user program to be executed in the control device 100, debugging the created user program, defining the system configuration, setting various parameters, and the like. is stored. The storage 410 may store necessary programs other than the programs shown in FIG.
 入力部406は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部408は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ402からの処理結果などを出力する。 The input unit 406 is composed of a keyboard, mouse, etc., and receives user operations. A display unit 408 includes a display, various indicators, a printer, and the like, and outputs processing results from the processor 402 and the like.
 ネットワークコントローラ416は、任意のネットワークを介した他の装置との間のデータのやり取りを制御する。USBコントローラ418は、USB接続を介して制御装置100との間のデータのやり取りを制御する。 A network controller 416 controls the exchange of data with other devices via any network. A USB controller 418 controls data exchange with the control device 100 via a USB connection.
 サポート装置400は、光学ドライブ420を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体422(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ410などにインストールされる。 The support device 400 has an optical drive 420, and from a recording medium 422 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, The stored program is read and installed in the storage 410 or the like.
 サポート装置400で実行される各種プログラムは、コンピュータ読取可能な記録媒体422を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置400が提供する機能は、OS412が提供するモジュールの一部を利用する形で実現される場合もある。 The various programs executed by the support device 400 may be installed via the computer-readable recording medium 422, or may be installed by downloading them from a server device on the network. Also, the functions provided by the support device 400 according to the present embodiment may be realized by using some of the modules provided by the OS 412 .
 (b5:表示装置500)
 本実施の形態に係る制御システム1を構成する表示装置500は、一例として、汎用パソコンを用いて実現されてもよい。表示装置500の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b5: display device 500)
Display device 500 configuring control system 1 according to the present embodiment may be realized using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 500 is well known, detailed description thereof will not be given here.
 (b6:サーバ装置600)
 本実施の形態に係る制御システム1を構成するサーバ装置600は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置600の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b6: server device 600)
Server device 600 that configures control system 1 according to the present embodiment may be implemented using a general-purpose personal computer as an example. Since the basic hardware configuration example of the server device 600 is well known, detailed description thereof will not be given here.
 (b7:その他の形態)
 図3~図6には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
(b7: other forms)
3 to 6 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
 <C.IECプログラムおよびアプリケーションプログラムの実行>
 次に、本実施の形態に係る制御装置100におけるIECプログラム150およびアプリケーションプログラム160の実行について説明する。
<C. Execution of IEC Program and Application Program>
Next, execution of IEC program 150 and application program 160 in control device 100 according to the present embodiment will be described.
 図7は、本実施の形態に係る制御装置100におけるプログラムの実行例を示す模式図である。図7には、一例として、優先度別に複数のタスクが設定され、各タスクがそれぞれの優先度に応じてプロセッサ102のリソースを共有する例を示す。 FIG. 7 is a schematic diagram showing an example of program execution in the control device 100 according to the present embodiment. FIG. 7 shows an example in which a plurality of tasks are set according to priority, and each task shares resources of the processor 102 according to its priority.
 図7に示す例では、高優先タスクと低優先タスクとの2種類のタスクが実行される例を示す。より具体的には、入出力リフレッシュ処理140、IECプログラム150の実行処理142、IECプログラム150に含まれるモーション命令の実行処理144と、アプリケーションプログラム160の解釈後の実行処理146とは、制御周期T1の高優先タスクとして実行される。 The example shown in FIG. 7 shows an example in which two types of tasks, a high-priority task and a low-priority task, are executed. More specifically, the input/output refresh process 140, the execution process 142 of the IEC program 150, the motion command execution process 144 included in the IEC program 150, and the execution process 146 after interpretation of the application program 160 are performed in the control cycle T1. is executed as a high-priority task of
 一方、アプリケーションプログラム160を逐次解釈する処理は、アプリケーション周期T2(>制御周期T1)の低優先タスクとして実行される。 On the other hand, the process of sequentially interpreting the application program 160 is executed as a low-priority task with an application cycle T2 (>control cycle T1).
 高優先タスクは、制御周期T1毎に繰返し実行される。低優先タスクは、高優先タスクが実行されていない期間に都度実行される。すなわち、制御周期毎に、高優先タスクの実行時間が割当てられ、高優先タスクの実行時間以外の時間において、低優先タスクが実行される。 The high-priority task is repeatedly executed every control cycle T1. A low-priority task is executed each time a high-priority task is not executed. That is, the execution time of the high-priority task is allocated for each control cycle, and the low-priority task is executed during the time other than the execution time of the high-priority task.
 アプリケーションプログラム160は、図示しないインタプリタによって逐次解釈される。インタプリタがアプリケーションプログラム160を解釈して生成された中間コードは、逐次、バッファ148にキューイング(エンキュー)される。バッファ148にキューイングされた中間コードは、実行処理146において都度参照されて、指令が生成される。このように、制御装置100は、アプリケーションプログラム160(第2のユーザプログラム)を逐次実行することで、ロボットコントローラ250へ命令を逐次送信する機能を含む。 The application program 160 is sequentially interpreted by an interpreter (not shown). The intermediate code generated by the interpreter interpreting the application program 160 is sequentially queued (enqueued) in the buffer 148 . The intermediate code queued in the buffer 148 is referred to each time in the execution process 146 to generate instructions. Thus, the control device 100 includes a function of sequentially transmitting commands to the robot controller 250 by sequentially executing the application program 160 (second user program).
 図7に示すように、アプリケーションプログラム160の解釈(インタプリタ)は、制御周期T1とは長い周期で実行されるともに、定時性も十分には確保されない。すなわち、アプリケーションプログラム160(第2のユーザプログラム)の実行周期(アプリケーション周期T2)は、IECプログラム150(第1のユーザプログラム)の実行周期(制御周期T1)に比較して長く設定される。但し、通常は、ロボットコントローラ250(図1および図2)が制御装置100から送信された指令に基づいて、ロボットコントローラ250の制御周期毎に指令値を計算するので、精度上の問題は生じない。 As shown in FIG. 7, the interpretation (interpreter) of the application program 160 is executed in a period longer than the control period T1, and punctuality is not sufficiently ensured. That is, the execution cycle (application cycle T2) of the application program 160 (second user program) is set longer than the execution cycle (control cycle T1) of the IEC program 150 (first user program). However, since the robot controller 250 (FIGS. 1 and 2) normally calculates the command value for each control cycle of the robot controller 250 based on the command transmitted from the control device 100, there is no problem with accuracy. .
 <D.課題>
 次に、図7に示すプログラム実行において生じ得る課題について説明する。一例として、ロボットコントローラ250の軌道に対して任意の補正(以下、「目標軌道補正」とも称す。)を行う処理を想定する。
<D. Issue>
Next, problems that may arise in executing the program shown in FIG. 7 will be described. As an example, assume processing for performing arbitrary correction (hereinafter also referred to as “target trajectory correction”) for the trajectory of the robot controller 250 .
 図8は、本実施の形態に係る制御システム1によるロボット200の軌道制御の一例を示す図である。図8には、目標軌道補正の例として、ロボット200のトラッキング補正を示す。より具体的には、XYステージ上に配置されたワークに対して、ロボット200で所定の加工を行う場合に、XYステージに生じる変動を補正するような場合が挙げられる。 FIG. 8 is a diagram showing an example of trajectory control of the robot 200 by the control system 1 according to this embodiment. FIG. 8 shows tracking correction of the robot 200 as an example of target trajectory correction. More specifically, when the robot 200 performs predetermined processing on a workpiece placed on the XY stage, there is a case of correcting fluctuations occurring in the XY stage.
 この場合、予め定められたロボット軌道に従ってロボット200を制御する構成に対して、XYステージの動きに応じた補正量でロボット200の軌道を補正することになる。 In this case, the trajectory of the robot 200 is corrected by a correction amount according to the movement of the XY stage for a configuration that controls the robot 200 according to a predetermined robot trajectory.
 次に、図8に示すようなロボット200に対する目標軌道補正を実現する方法の一例について説明する。 Next, an example of a method for realizing target trajectory correction for the robot 200 as shown in FIG. 8 will be described.
 図9は、本実施の形態に係る制御システム1においてアプリケーションプログラム160に補正命令を含めた場合の処理例を示す図である。図9を参照して、制御装置100では、アプリケーションプログラム160が実行される。図9には、一例として、V+言語で記述されたロボットプログラムのコードを示す。V+言語においては、各命令は「キーワード」と称される。以下では、「命令」の一例として「キーワード」を用いる場合について説明するが、「キーワード」に限られず、言語体系に応じた任意の命令を用いることができる。 FIG. 9 is a diagram showing an example of processing when a correction command is included in the application program 160 in the control system 1 according to this embodiment. Referring to FIG. 9 , application program 160 is executed in control device 100 . FIG. 9 shows the code of the robot program written in V+ language as an example. In the V+ language, each instruction is called a "keyword". In the following, a case where "keyword" is used as an example of "instruction" will be described.
 より具体的には、アプリケーションプログラム160は、指定された座標に移動するための命令であるMOVESキーワード161と、繰返し処理を指定する命令であるWHILE命令162とを含む。WHILE命令162には、補正量の計算命令163と、指定された補正量の補正を指示するALTERキーワード164とを含む。すなわち、MOVESキーワード161の送信後、MOVESキーワード161の実行が完了するまで、補正量の計算および補正量の補正の指示が繰返し実行される。 More specifically, the application program 160 includes a MOVES keyword 161, which is an instruction for moving to specified coordinates, and a WHILE instruction 162, which is an instruction for specifying repeat processing. The WHILE command 162 includes a correction amount calculation command 163 and an ALTER keyword 164 instructing correction of the specified correction amount. That is, after the MOVES keyword 161 is transmitted, the calculation of the correction amount and the instruction to correct the correction amount are repeatedly executed until the execution of the MOVES keyword 161 is completed.
 制御装置100がアプリケーションプログラム160を実行することで、まず、MOVESキーワード161がロボットコントローラ250へ送信され、その後、ALTERキーワード164が繰返し送信される。 When the control device 100 executes the application program 160, the MOVES keyword 161 is first sent to the robot controller 250, and then the ALTER keyword 164 is repeatedly sent.
 一方、ロボットコントローラ250は、MOVESキーワード161を受信すると、1または複数の制御周期T3を必要とする命令であるので、ロボットコントローラ250の制御周期T3毎に指令値計算281および指令値出力283を繰返し実行する。指令値計算281は、MOVESキーワード161に付随する目標位置p1に対する軌道を計算する処理(補間処理)である。この処理によって、ロボットコントローラ250からロボット200に対して制御周期T3毎に指令値が出力されることになる。すなわち、ロボットコントローラ250は、制御装置100から受信したキーワード(命令の一例)に従って制御周期T3毎に指令値を計算する。 On the other hand, upon receiving the MOVES keyword 161, the robot controller 250 repeats the command value calculation 281 and the command value output 283 every control cycle T3 of the robot controller 250 because the command requires one or more control cycles T3. Run. The command value calculation 281 is processing (interpolation processing) for calculating a trajectory for the target position p1 associated with the MOVES keyword 161 . By this processing, the command value is output from the robot controller 250 to the robot 200 every control cycle T3. That is, the robot controller 250 calculates a command value for each control period T3 according to a keyword (an example of a command) received from the control device 100. FIG.
 加えて、ロボットコントローラ250は、ALTERキーワード164を受信すると、ALTERキーワード164に含まれている補正量284を用いて、補正量加算282を実行する。これによって、補正量284が加算(あるいは、減算)された指令値が出力される。なお、ALTERキーワード164は、1回の制御周期T3で実行が完了する命令である。そのため、指令値に対する補正処理は、ALTERキーワード164を受信する都度実行されることになる。 In addition, when the robot controller 250 receives the ALTER keyword 164, the correction amount addition 282 is performed using the correction amount 284 included in the ALTER keyword 164. As a result, a command value to which the correction amount 284 is added (or subtracted) is output. The ALTER keyword 164 is an instruction whose execution is completed in one control cycle T3. Therefore, the correction processing for the command value is executed each time the ALTER keyword 164 is received.
 但し、アプリケーションプログラム160の実行周期は非定周期なので、ALTERキーワード164の送信周期は一定せず、また、制御装置の制御周期T1とも必ずしも同期しない。そのため、ロボットコントローラ250における補正処理の実行タイミングがばらつく可能性がある。 However, since the execution cycle of the application program 160 is non-fixed, the transmission cycle of the ALTER keyword 164 is not constant and is not necessarily synchronized with the control cycle T1 of the control device. Therefore, there is a possibility that the execution timing of the correction process in the robot controller 250 varies.
 <E.解決手段>
 次に、上述したような課題を解決するための構成について説明する。
<E. Solution>
Next, a configuration for solving the problems described above will be described.
 図10は、本実施の形態に係る制御システム1におけるロボット200の目標軌道補正を実現するための処理例を示す図である。図10を参照して、制御装置100では、IECプログラム150およびアプリケーションプログラム160が実行される。 FIG. 10 is a diagram showing a processing example for realizing target trajectory correction of the robot 200 in the control system 1 according to the present embodiment. Referring to FIG. 10, control device 100 executes IEC program 150 and application program 160 .
 図10に示す例では、IECプログラム150は、補正量計算命令151および補正量反映命令152を含む。アプリケーションプログラム160は、指定された座標に移動するための命令であるMOVESキーワード161を含む。 In the example shown in FIG. 10, the IEC program 150 includes a correction amount calculation command 151 and a correction amount reflection command 152. Application program 160 includes MOVES keyword 161, which is an instruction for moving to specified coordinates.
 図9と同様に、制御装置100がアプリケーションプログラム160を実行することで、まず、MOVESキーワード161がロボットコントローラ250へ送信される。ロボットコントローラ250は、MOVESキーワード161を受信すると、ロボットコントローラ250の制御周期T3毎に指令値計算281および指令値出力283を繰返し実行する。 As in FIG. 9, the MOVES keyword 161 is first sent to the robot controller 250 by the control device 100 executing the application program 160 . Upon receiving the MOVES keyword 161, the robot controller 250 repeatedly executes command value calculation 281 and command value output 283 every control period T3 of the robot controller 250. FIG.
 一方、制御装置100は、制御周期T1毎にIECプログラム150を実行する。IECプログラム150が実行されることで、補正量計算命令151に従って、補正量286が計算されるとともに、補正量反映命令152に従って、補正量286がロボットコントローラ250へ送信される。すなわち、補正量計算命令151は、ロボット200の軌道に対する補正量を計算するための要素に相当する。また、補正量反映命令152は、ロボット200の軌道に対する補正量を周期的に送信する要素に相当する。 On the other hand, the control device 100 executes the IEC program 150 every control cycle T1. By executing the IEC program 150 , the correction amount 286 is calculated according to the correction amount calculation command 151 and the correction amount 286 is transmitted to the robot controller 250 according to the correction amount reflection command 152 . That is, the correction amount calculation command 151 corresponds to elements for calculating the correction amount for the trajectory of the robot 200 . Also, the correction amount reflection command 152 corresponds to an element that periodically transmits the correction amount for the trajectory of the robot 200 .
 このように、制御装置100は、任意の作成された命令に従って補正量286を計算するためのIECプログラム150(第1のユーザプログラム)を周期的に実行するようになっている。そして、IECプログラム150(第1のユーザプログラム)は、ロボット200の軌道に対する補正量286を周期的に送信するための命令として補正量反映命令152を含む。 In this way, the control device 100 periodically executes the IEC program 150 (first user program) for calculating the correction amount 286 according to arbitrary created instructions. The IEC program 150 (first user program) includes a correction amount reflection command 152 as a command for periodically transmitting the correction amount 286 for the trajectory of the robot 200 .
 制御装置100およびロボットコントローラ250は、通信周期T4毎にデータ伝送(データ更新)がされるフィールドネットワーク10を介して接続されている。そのため、制御装置100とロボットコントローラ250との間では、通信周期T4毎にデータをやり取り(交換)できる。 The control device 100 and the robot controller 250 are connected via the field network 10 in which data transmission (data update) is performed every communication cycle T4. Therefore, data can be exchanged (exchanged) between the control device 100 and the robot controller 250 every communication cycle T4.
 通常、制御周期T1と通信周期T4とは一致するように設定される(制御周期T1=通信周期T4)ので、ロボットコントローラ250は、制御装置100が計算した補正量286を制御周期T1(あるいは、通信周期T4)毎に受信できる。 Normally, the control period T1 and the communication period T4 are set to match (control period T1=communication period T4), so the robot controller 250 sets the correction amount 286 calculated by the control device 100 to the control period T1 (or It can be received every communication cycle T4).
 通常、ロボットコントローラ250の制御周期T3は、制御周期T1および通信周期T4と同程度あるいはより長くなるように設定される(制御周期T3≧制御周期T1,通信周期T4)ので、ロボットコントローラ250の制御周期T3に比較して、十分早い周期で補正量286は更新されることになる。 Normally, the control cycle T3 of the robot controller 250 is set to be about the same as or longer than the control cycle T1 and the communication cycle T4 (control cycle T3≧control cycle T1, communication cycle T4). The correction amount 286 is updated in a sufficiently early period compared to the period T3.
 そのため、ロボットコントローラ250は、制御装置100から周期的に送信されるロボット200の軌道に対する補正量286を受信することができる。そして、ロボットコントローラ250は、制御装置100が制御周期毎に計算する補正量286を用いて、補正量加算282を実行する。これによって、補正量284が加算(あるいは、減算)された指令値が出力される。すなわち、ロボットコントローラ250は、指令値と制御装置100から周期的に受信する補正量286とに基づいて、制御周期T3毎に補正後の指令値を計算する。 Therefore, the robot controller 250 can receive the correction amount 286 for the trajectory of the robot 200 periodically transmitted from the control device 100 . Then, the robot controller 250 executes the correction amount addition 282 using the correction amount 286 calculated by the control device 100 for each control cycle. As a result, a command value to which the correction amount 284 is added (or subtracted) is output. That is, the robot controller 250 calculates the corrected command value every control cycle T3 based on the command value and the correction amount 286 periodically received from the control device 100 .
 なお、補正量286が補正量加算282に入力される経路上には、有効化/無効化スイッチ287が設けられており、後述するようなALTONキーワードおよびALTOFFキーワードによって、それぞれ有効化または無効化される。すなわち、ロボットコントローラ250は、制御装置100から受信した特定のキーワード(命令の一例)に従って、補正後の指令値の計算を有効化または無効化する。 An enable/disable switch 287 is provided on the path through which the correction amount 286 is input to the correction amount addition 282, and is enabled or disabled by the ALTON keyword and ALTOFF keyword, respectively, as described later. be. That is, the robot controller 250 enables or disables calculation of the command value after correction according to a specific keyword (example of command) received from the control device 100 .
 このように、本実施の形態に係る制御システム1においては、ロボットコントローラ250による目標軌道補正を予め定められた制御周期T3毎に確実に行うことができるとともに、制御装置100により計算された補正量286を実質的な遅延なく目標軌道補正に反映できる。 As described above, in the control system 1 according to the present embodiment, the target trajectory correction by the robot controller 250 can be reliably performed at each predetermined control cycle T3, and the correction amount calculated by the control device 100 286 can be reflected in the target trajectory correction without substantial delay.
 ロボットコントローラ250は、状態情報288(ロボット200の各軸の位置、ロボット200の入出力値、命令の実行状態など)を制御装置100へ周期的に送信する。すなわち、ロボットコントローラ250は、ロボット200の状態値を周期的に送信する要素を有している。状態情報288についても通信周期T4毎に送信されることになる。そのため、制御装置100は、ロボットコントローラ250から周期的に受信する状態情報288に基づいて、補正量の計算を制御周期T1毎に行うこともできる。そのため、補正量をより高い精度で計算できる。 The robot controller 250 periodically transmits state information 288 (the position of each axis of the robot 200, the input/output values of the robot 200, the execution state of commands, etc.) to the control device 100. That is, the robot controller 250 has elements that periodically transmit the state values of the robot 200 . The state information 288 is also transmitted every communication cycle T4. Therefore, the control device 100 can also calculate the correction amount every control cycle T1 based on the state information 288 periodically received from the robot controller 250 . Therefore, the correction amount can be calculated with higher accuracy.
 <F.プログラム例>
 次に、本実施の形態に係る制御システム1のプログラム例について説明する。
<F. Program example>
Next, a program example of the control system 1 according to this embodiment will be described.
 図11は、本実施の形態に係る制御システム1のプログラム例に対応するシステム構成を示す模式図である。図11を参照して、制御装置100には、フィールドネットワーク10を介して、ロボット200を制御するロボットコントローラ250と、ロボット200のエンドエフェクタ210に装着された距離センサ50とが接続されている。 FIG. 11 is a schematic diagram showing a system configuration corresponding to a program example of the control system 1 according to this embodiment. Referring to FIG. 11 , controller 100 is connected via field network 10 to robot controller 250 that controls robot 200 and distance sensor 50 attached to end effector 210 of robot 200 .
 制御装置100は、ロボットコントローラ250に対して指令値を送信することができるとともに、ロボットコントローラ250から状態情報を取得できる。また、制御装置100は、距離センサ50から計測された距離を取得できる。 The control device 100 can transmit command values to the robot controller 250 and can acquire state information from the robot controller 250 . Also, the control device 100 can acquire the distance measured from the distance sensor 50 .
 図12は、図11に示すロボット200を用いたアプリケーションの一例を示す模式図である。 FIG. 12 is a schematic diagram showing an example of an application using the robot 200 shown in FIG.
 図12(A)を参照して、ロボット200のエンドエフェクタ210とベース42上に配置されたワーク40との距離を一致に維持する処理を想定する。このような処理は、例えば、ワーク40の検査やワーク40に対する塗布などのアプリケーションに必要になる。 With reference to FIG. 12(A), assume a process of maintaining the same distance between the end effector 210 of the robot 200 and the work 40 placed on the base 42 . Such processing is required for applications such as inspection of the workpiece 40 and application to the workpiece 40, for example.
 図12(B)を参照して、ロボット200のエンドエフェクタ210とワーク40などの露出面との距離を基準距離に維持する場合を想定する。この場合、距離センサ50により計測された距離に補正量を加算または減算した結果が基準距離と一致するように、補正量が計算される。すなわち、「基準距離=距離センサ50により計測された距離+補正量」となるように、補正量が制御周期毎に計算される。 With reference to FIG. 12(B), it is assumed that the distance between the end effector 210 of the robot 200 and the exposed surface such as the workpiece 40 is maintained at the reference distance. In this case, the correction amount is calculated so that the result of adding or subtracting the correction amount to the distance measured by the distance sensor 50 matches the reference distance. That is, the correction amount is calculated for each control cycle such that "reference distance=distance measured by distance sensor 50+correction amount".
 図13は、図12に示すアプリケーションを実現するためのアプリケーションプログラム160の一例を示す図である。図13を参照して、アプリケーションプログラム160は、ロボットコントローラ250に対して、目標軌道補正の有効化を指示する有効化部165と、ロボット200を初期位置に移動させるための初期位置移動部166と、IECプログラムでの補正量反映命令152の実行を有効化するための実行有効化部167と、IECプログラムでの補正量反映命令152の実行を待つ実行待機部168と、ロボット200を予め定められた軌道で動作させるための軌道目標指令部169と、処理を終了するための終了処理部170とを含む。 FIG. 13 is a diagram showing an example of an application program 160 for realizing the application shown in FIG. Referring to FIG. 13, application program 160 includes an enabling unit 165 for instructing robot controller 250 to enable target trajectory correction, and an initial position moving unit 166 for moving robot 200 to the initial position. , an execution validating unit 167 for validating execution of the correction amount reflection command 152 in the IEC program, an execution waiting unit 168 waiting for the execution of the correction amount reflection command 152 in the IEC program, and the robot 200 are predetermined. It includes a trajectory target commanding unit 169 for operating on the trajectory set and an end processing unit 170 for terminating the processing.
 有効化部165は、目標軌道補正を有効化するための命令であるALTONキーワードを含む。ロボットコントローラ250は、ALTONキーワードを受信することで、図10に示す目標軌道補正の補正量加算282を有効化する。 The validation unit 165 includes an ALTON keyword that is a command for validating the target trajectory correction. The robot controller 250 activates the correction amount addition 282 of the target trajectory correction shown in FIG. 10 by receiving the ALTON keyword.
 初期位置移動部166は、指定された座標に移動するための命令であるMOVESキーワードを含む。なお、オブジェクトloc.initには、初期位置が格納されている。 The initial position moving part 166 includes the MOVES keyword, which is an instruction for moving to specified coordinates. Note that the object loc. The initial position is stored in init.
 実行有効化部167は、ブール変数ebool_sp1を「TRUE」に設定する命令を含む。 The execution enabler 167 includes an instruction to set the Boolean variable ebool_sp1 to "TRUE".
 実行待機部168は、IECプログラム150においてブール変数gStartCompが「TRUE」になるまで処理を待機する命令を含む。ブール変数gStartCompは、図14に示す補正準備完了フラグ158に対応する。 The execution waiting unit 168 includes an instruction to wait processing until the Boolean variable gStartComp becomes "TRUE" in the IEC program 150. The Boolean variable gStartComp corresponds to the compensation ready flag 158 shown in FIG.
 軌道目標指令部169は、3つのMOVESキーワードを含み、それぞれ目標位置p1,p2,p3へ順次移動することが規定されている。 The trajectory target command section 169 includes three MOVES keywords, and is defined to sequentially move to target positions p1, p2, and p3, respectively.
 終了処理部170は、目標軌道補正を無効化するための命令であるALTOFFキーワードを含む。 The termination processing unit 170 includes an ALTOFF keyword, which is a command for invalidating the target trajectory correction.
 図14は、図12に示すアプリケーションを実現するためのIECプログラム150の一例を示す図である。図14を参照して、IECプログラム150は、アプリケーションプログラム160の起動および監視を実行するための起動監視命令159と、補正量計算命令151と、補正量反映命令152とを含む。 FIG. 14 is a diagram showing an example of an IEC program 150 for realizing the application shown in FIG. Referring to FIG. 14 , IEC program 150 includes activation monitoring instruction 159 for executing activation and monitoring of application program 160 , correction amount calculation instruction 151 , and correction amount reflecting instruction 152 .
 起動監視命令159は、ロボット200を動作させるための所定条件が満たされると、アプリケーションプログラム160を起動するとともに、アプリケーションプログラム160の実行状態を監視する。 The activation monitoring instruction 159 activates the application program 160 and monitors the execution state of the application program 160 when a predetermined condition for operating the robot 200 is satisfied.
 補正量計算命令151は、補正量155を示す構造体Offsetの2番目の要素(Offset[2])として、基準距離156(cBaseDiff)と距離センサ50により計測された現在距離157(E002_input_Data_1)との差分を計算する命令を含む。なお、補正量155の計算は、アプリケーションプログラム160が実行中であることを示すアプリケーションプログラム実行中フラグ154が「TRUE」であることを条件に実行される。 The correction amount calculation command 151 uses the reference distance 156 (cBaseDiff) and the current distance 157 (E002_input_Data_1) measured by the distance sensor 50 as the second element (Offset[2]) of the structure Offset indicating the correction amount 155. Contains instructions to compute the difference. The calculation of the correction amount 155 is performed on the condition that the application program running flag 154 indicating that the application program 160 is running is "TRUE".
 補正量反映命令152には、補正量計算命令151において計算される補正量155(Offset)が入力される。補正量反映命令152が実行されることで、補正量155がロボットコントローラ250へ送信される。また、補正量反映命令152は、補正量155を送信できる状態であれば、補正準備完了フラグ158を「TRUE」に設定する。 A correction amount 155 (Offset) calculated by the correction amount calculation command 151 is input to the correction amount reflection command 152 . The correction amount 155 is transmitted to the robot controller 250 by executing the correction amount reflection command 152 . Further, the correction amount reflection command 152 sets the correction preparation completion flag 158 to "TRUE" if the correction amount 155 can be transmitted.
 補正量反映命令152は、どのような形式であってもよいが、例えば、図14に示すようにファンクション形式を採用してもよい。 The correction amount reflection command 152 may be in any format, but may adopt a function format as shown in FIG. 14, for example.
 図15は、本実施の形態に係る制御システム1の補正量反映命令152を示すファンクションの一例を示す図である。図15を参照して、補正量反映命令152は、入力として、ロボット指定1521と、実行指定1522と、補正量指定1523とを含む。また、補正量反映命令152は、出力として、選択中ロボット1524と、補正準備完了フラグ1525と、ビジーフラグ1526と、アボートフラグ1527と、エラーフラグ1528と、エラーID1529とを含む。 FIG. 15 is a diagram showing an example of functions indicating the correction amount reflection command 152 of the control system 1 according to the present embodiment. Referring to FIG. 15, correction amount reflection command 152 includes robot designation 1521, execution designation 1522, and correction amount designation 1523 as inputs. Further, the correction amount reflection command 152 includes, as outputs, a currently selected robot 1524, a correction preparation completion flag 1525, a busy flag 1526, an abort flag 1527, an error flag 1528, and an error ID 1529.
 ロボット指定1521には、対象のロボット200を指定するための変数が設定される。実行指定1522には、補正量反映命令152の実行を指示するためのブール変数が設定される。補正量指定1523には、対象のロボット200のロボットコントローラ250へ送信される補正量を示す変数が設定される。 A variable for designating the target robot 200 is set in the robot designation 1521 . A Boolean variable for instructing execution of the correction amount reflection instruction 152 is set in the execution designation 1522 . A variable indicating the correction amount to be transmitted to the robot controller 250 of the target robot 200 is set in the correction amount specification 1523 .
 補正量を示す変数として構造体を用いる場合には、例えば、X軸の補正量[mm]、Y軸の補正量[mm]、Z軸の補正量[mm]、X軸の補正量[deg]、Y軸の補正量[deg]、Z軸の補正量[deg]などを格納する構造体を採用することができる。すなわち、補正量としては、特定の軸についての補正値だけではなく、複数の軸それぞれについての補正値を含んでいてもよい。 When a structure is used as a variable indicating the correction amount, for example, X-axis correction amount [mm], Y-axis correction amount [mm], Z-axis correction amount [mm], X-axis correction amount [deg ], the Y-axis correction amount [deg], the Z-axis correction amount [deg], and the like. That is, the correction amount may include not only the correction value for a specific axis, but also correction values for each of a plurality of axes.
 選択中ロボット1524からは、選択中のロボット200を特定するための情報が出力される。補正準備完了フラグ1525は、選択中のロボット200に対する目標軌道補正が実行可能な状態であるか否かを示す情報が出力される。ビジーフラグ1526、アボートフラグ1527、エラーフラグ1528からは、ビジー状態の有無、アボート発生の有無、エラー発生の有無などが出力される。エラーID1529からは、発生したエラーを特定するための情報が出力される。 The selected robot 1524 outputs information for specifying the selected robot 200 . The correction preparation completion flag 1525 outputs information indicating whether or not the target trajectory correction for the selected robot 200 can be executed. From the busy flag 1526, the abort flag 1527, and the error flag 1528, presence/absence of a busy state, presence/absence of an abort occurrence, presence/absence of an error occurrence, and the like are output. The error ID 1529 outputs information for identifying the error that has occurred.
 このように、ロボット200の軌道に対する補正量286を周期的に送信するための命令である補正量反映命令152は、ファンクション形式でIECプログラム150(第1のユーザプログラム)に記述されてもよい。 In this way, the correction amount reflection command 152, which is a command for periodically transmitting the correction amount 286 for the trajectory of the robot 200, may be written in the IEC program 150 (first user program) in the form of a function.
 上述したようなIECプログラム150およびアプリケーションプログラム160を用いることで、図12に示すアプリケーションを制御できる。 By using the IEC program 150 and the application program 160 as described above, the application shown in FIG. 12 can be controlled.
 <G.処理手順>
 次に、本実施の形態に係る制御システム1の制御装置100およびロボットコントローラ250で実行される処理について説明する。
<G. Processing procedure>
Next, processing executed by the control device 100 and the robot controller 250 of the control system 1 according to this embodiment will be described.
 図16は、本実施の形態に係る制御システム1の制御装置100で実行される処理手順を示すフローチャートである。図16(A)には、制御装置100がIECプログラム150を実行する処理を示し、図16(B)には、制御装置100がアプリケーションプログラム160を実行する処理を示す。図16(A)および図16(B)に示す各ステップは、制御装置100のプロセッサ102がプログラムを実行することで実現されてもよい。 FIG. 16 is a flow chart showing a processing procedure executed by the control device 100 of the control system 1 according to this embodiment. FIG. 16A shows the process of executing the IEC program 150 by the control device 100, and FIG. 16B shows the process of executing the application program 160 by the control device 100. FIG. Each step shown in FIGS. 16A and 16B may be implemented by processor 102 of control device 100 executing a program.
 図16(A)に示す処理は、制御装置100の制御周期T1毎に繰返し実行される。図16(A)を参照して、制御装置100は、まず、入出力リフレッシュ処理140を実行する。より具体的には、制御装置100は、前回の制御周期で計算した指令値を出力し(ステップS100)、今回の制御周期で利用する入力値を取得する(ステップS102)。制御装置100から出力される指令値は、目標軌道補正に用いられる補正量286が含まれる。制御装置100が取得する入力値は、ロボットコントローラ250からの状態情報288を含む。 The process shown in FIG. 16(A) is repeatedly executed in each control period T1 of the control device 100. Referring to FIG. 16A, control device 100 first executes input/output refresh processing 140 . More specifically, the control device 100 outputs the command value calculated in the previous control cycle (step S100), and acquires the input value used in the current control cycle (step S102). The command value output from control device 100 includes correction amount 286 used for target trajectory correction. Input values obtained by controller 100 include state information 288 from robot controller 250 .
 制御装置100は、取得した入力値および内部的に保持する状態値に基づいて、目標軌道補正を実行できる状態であるか否かを判断する(ステップS104)。 The control device 100 determines whether or not the target trajectory correction can be executed based on the obtained input value and the internally held state value (step S104).
 目標軌道補正を実行できる状態であれば(ステップS104においてYES)、制御装置100は、補正量計算命令151に従って、目標軌道補正に用いる補正量284を計算し(ステップS106)、補正量反映命令152に従って、計算した補正量284をセットする(ステップS108)。セットされた補正量284が次回の制御周期T1における指令値となる。このような手順によって、制御装置100は、ロボット200の軌道に対する補正量284を周期的に送信する。 If the target trajectory correction can be executed (YES in step S104), the control device 100 calculates the correction amount 284 used for the target trajectory correction according to the correction amount calculation command 151 (step S106), and the correction amount reflecting command 152 , the calculated correction amount 284 is set (step S108). The set correction amount 284 becomes the command value in the next control cycle T1. Through such procedures, the control device 100 periodically transmits the correction amount 284 for the trajectory of the robot 200 .
 図16(B)に示す処理は、1回の実行がアプリケーション周期T2内に収まるように、逐次実行される。図16(B)を参照して、制御装置100は、アプリケーションプログラム160を逐次実行して、対象行の内容がキーワードであるか否かを判断する(ステップS150)。対象行の内容がキーワードであれば(ステップS150においてYES)、制御装置100は、対象のキーワードをロボットコントローラ250へ送信する(ステップS152)。 The processing shown in FIG. 16(B) is executed sequentially so that one execution is within the application period T2. Referring to FIG. 16B, control device 100 sequentially executes application program 160 to determine whether the content of the target line is a keyword (step S150). If the content of the target line is a keyword (YES in step S150), control device 100 transmits the target keyword to robot controller 250 (step S152).
 対象行の内容がキーワードでなければ(ステップS150においてNO)、制御装置100は、対象行の内容を実行して、その実行結果を対象変数に格納する(ステップS154)。例えば、対象行は、DO~WHILE文やIF文などの制御命令を含む。 If the content of the target line is not a keyword (NO in step S150), control device 100 executes the content of the target line and stores the execution result in the target variable (step S154). For example, the target line includes control instructions such as DO-WHILE statements and IF statements.
 図17は、本実施の形態に係る制御システム1のロボットコントローラ250で実行される処理手順を示すフローチャートである。図17に示す処理は、ロボットコントローラ250の制御周期T3毎に繰返し実行される。図17に示す各ステップは、ロボットコントローラ250のプロセッサ262がプログラムを実行することで実現されてもよい。 FIG. 17 is a flow chart showing a processing procedure executed by the robot controller 250 of the control system 1 according to this embodiment. The processing shown in FIG. 17 is repeatedly executed in each control cycle T3 of the robot controller 250. In FIG. Each step shown in FIG. 17 may be implemented by the processor 262 of the robot controller 250 executing a program.
 図17を参照して、ロボットコントローラ250は、まず、入出力リフレッシュ処理を実行する。より具体的には、ロボットコントローラ250は、前回の制御周期で計算した指令値を出力し(ステップS200)、今回の制御周期で利用する入力値を取得する(ステップS202)。ロボットコントローラ250からの指令値の出力は、ロボット200を駆動する指令の出力、および、前回の制御周期の状態値を含む状態情報288の制御装置100への送信を含む。ロボットコントローラ250が取得する入力値は、ロボット200の状態値(ロボット200の各軸の位置やロボット200の入出力値など)を含む。 Referring to FIG. 17, robot controller 250 first executes input/output refresh processing. More specifically, the robot controller 250 outputs the command value calculated in the previous control cycle (step S200), and acquires the input value used in the current control cycle (step S202). Output of command values from robot controller 250 includes output of commands to drive robot 200 and transmission of state information 288 including state values of the previous control cycle to control device 100 . The input values acquired by the robot controller 250 include state values of the robot 200 (positions of the axes of the robot 200, input/output values of the robot 200, etc.).
 続いて、ロボットコントローラ250は、制御装置100から何らかのキーワードを受信したか否かを判断する(ステップS204)。制御装置100から何らかのキーワードを受信していれば(ステップS204においてYES)、ロボットコントローラ250は、受信したキーワードをバッファに格納する(ステップS206)。制御装置100から何らのキーワードも受信していなければ(ステップS204においてNO)、ステップS206の処理はスキップされる。 Subsequently, the robot controller 250 determines whether or not any keyword has been received from the control device 100 (step S204). If any keyword has been received from control device 100 (YES in step S204), robot controller 250 stores the received keyword in the buffer (step S206). If no keyword has been received from control device 100 (NO in step S204), the process of step S206 is skipped.
 続いて、ロボットコントローラ250は、何らかのキーワードを実行中であるか否かを判断する(ステップS208)。何らかのキーワードを実行中であれば(ステップS208においてYES)、ロボットコントローラ250は、実行中のキーワードに従って、今回の制御周期の指令値を計算する(ステップS210)。このように、ロボットコントローラ250は、制御装置100から受信したキーワード(命令の一例)に従って制御周期T3毎に指令値を計算する。 Subsequently, the robot controller 250 determines whether or not some keyword is being executed (step S208). If some keyword is being executed (YES in step S208), robot controller 250 calculates the command value for the current control cycle according to the keyword being executed (step S210). In this manner, the robot controller 250 calculates command values for each control period T3 according to the keyword (an example of command) received from the control device 100 .
 何らのキーワードも実行中でなければ(ステップS208においてNO)、ロボットコントローラ250は、バッファにキーワードが格納されているか否かを判断する(ステップS212)。バッファにキーワードが格納されていれば(ステップS212においてYES)、ロボットコントローラ250は、バッファからキーワードを読み出して(ステップS214)、読み出したキーワードに従って指令値を計算する(ステップS216)。 If no keyword is being executed (NO in step S208), the robot controller 250 determines whether or not the keyword is stored in the buffer (step S212). If a keyword is stored in the buffer (YES in step S212), robot controller 250 reads the keyword from the buffer (step S214) and calculates a command value according to the read keyword (step S216).
 ロボットコントローラ250は、目標軌道補正が有効化されているか否かを判断する(ステップS218)。目標軌道補正が有効化されていれば(ステップS218においてYES)、ロボットコントローラ250は、ステップS202において取得した補正量を指令値に加算して、補正後の指令値を計算する(ステップS220)。このように、ロボットコントローラ250は、指令値と制御装置100から周期的に受信する補正量286とに基づいて、制御周期T3毎に補正後の指令値を計算する。 The robot controller 250 determines whether or not target trajectory correction is enabled (step S218). If target trajectory correction is enabled (YES in step S218), robot controller 250 adds the correction amount acquired in step S202 to the command value to calculate a corrected command value (step S220). Thus, the robot controller 250 calculates the corrected command value every control cycle T3 based on the command value and the correction amount 286 periodically received from the control device 100 .
 目標軌道補正が有効化されていなければ(ステップS218においてNO)、ステップS220の処理はスキップされる。 If target trajectory correction is not enabled (NO in step S218), the process of step S220 is skipped.
 最終的に、ロボットコントローラ250は、指令値または補正後の指令値をロボット200へ出力する(ステップS222)。 Finally, the robot controller 250 outputs the command value or the corrected command value to the robot 200 (step S222).
 バッファにキーワードが格納されていなければ(ステップS212においてNO)、ステップS214~S222の処理はスキップされる。 If no keyword is stored in the buffer (NO in step S212), the processing of steps S214 to S222 is skipped.
 <H.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
<H. Note>
The present embodiment as described above includes the following technical ideas.
 [構成1]
 制御対象を制御するための制御装置(100)と、
 ロボット(200)を制御するためのロボットコントローラ(250)と、
 前記制御装置と前記ロボットコントローラとの間で周期的にデータを更新するネットワーク(10)とを備え、
 前記制御装置は、前記ロボットの軌道に対する補正量(161)を周期的に送信する手段(102,152)を備え、
 前記ロボットコントローラは、
  前記制御装置から受信した命令に従って制御周期毎に指令値を計算する手段(262,281)と、
  前記指令値と前記制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算する手段(262,282)とを備える、制御システム。
[Configuration 1]
a control device (100) for controlling a controlled object;
a robot controller (250) for controlling the robot (200);
a network (10) for periodically updating data between the controller and the robot controller;
The control device comprises means (102, 152) for periodically transmitting a correction amount (161) for the trajectory of the robot,
The robot controller is
Means (262, 281) for calculating a command value for each control cycle according to a command received from the control device;
A control system comprising means (262, 282) for calculating a command value after correction in each control cycle based on the command value and a correction amount periodically received from the control device.
 [構成2]
 前記制御装置は、任意に作成された命令に従って前記補正量を計算するための第1のユーザプログラム(150)を周期的に実行する手段をさらに備える、構成1に記載の制御システム。
[Configuration 2]
2. The control system of arrangement 1, wherein said controller further comprises means for periodically executing a first user program (150) for calculating said correction amount in accordance with arbitrarily constructed instructions.
 [構成3]
 前記第1のユーザプログラムは、前記ロボットの軌道に対する補正量を周期的に送信するための命令(152)を含む、構成2に記載の制御システム。
[Configuration 3]
3. The control system of arrangement 2, wherein the first user program includes instructions (152) for periodically transmitting corrections to the trajectory of the robot.
 [構成4]
 前記ロボットの軌道に対する補正量を周期的に送信するための命令は、ファンクション形式で前記第1のユーザプログラムに記述される、構成3に記載の制御システム。
[Configuration 4]
The control system according to configuration 3, wherein the command for periodically transmitting the correction amount for the trajectory of the robot is written in the first user program in a function format.
 [構成5]
 前記制御装置は、第2のユーザプログラムを逐次実行することで、前記ロボットコントローラへ命令を逐次送信する手段(102,160)をさらに備える、構成2~4のいずれか1項に記載の制御システム。
[Configuration 5]
The control system according to any one of configurations 2 to 4, wherein the control device further comprises means (102, 160) for sequentially transmitting commands to the robot controller by sequentially executing a second user program. .
 [構成6]
 前記第2のユーザプログラムの実行周期(T2)は、前記第1のユーザプログラムの実行周期(T1)に比較して長く設定される、構成5に記載の制御システム。
[Configuration 6]
The control system according to configuration 5, wherein the execution cycle (T2) of the second user program is set longer than the execution cycle (T1) of the first user program.
 [構成7]
 前記ロボットコントローラは、前記制御装置から受信した特定の命令に従って、補正後の指令値の計算を有効化または無効化するように構成されている(287)、構成1~6のいずれか1項に記載の制御システム。
[Configuration 7]
7. The system of any one of clauses 1-6, wherein the robot controller is configured to enable or disable (287) calculation of corrected command values according to specific instructions received from the controller. Control system as described.
 [構成8]
 前記ロボットコントローラは、前記ロボットの状態値(288)を周期的に送信する手段をさらに備える、構成1~7のいずれか1項に記載の制御システム。
[Configuration 8]
8. The control system of any one of the preceding arrangements, wherein the robot controller further comprises means for periodically transmitting a state value (288) of the robot.
 [構成9]
 ロボット(200)を制御するためのロボットコントローラ(250)であって、
 制御対象を制御するための制御装置(100)とネットワーク(10)を介して接続するためのインターフェイス(252)を備え、前記ネットワークにおいては、前記制御装置と前記ロボットコントローラとの間で周期的にデータが更新されるように構成されており、
 前記制御装置から周期的に送信される前記ロボットの軌道に対する補正量(161)を受信する手段と、
 前記制御装置から受信した命令に従って制御周期毎に指令値を計算する手段(262,281)と、
 前記指令値と前記制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算する手段(262,282)とを備える、ロボットコントローラ。
[Configuration 9]
A robot controller (250) for controlling a robot (200), comprising:
An interface (252) for connecting to a control device (100) for controlling a controlled object via a network (10), wherein in the network, periodic communication is performed between the control device and the robot controller data is configured to be refreshed, and
means for receiving a correction amount (161) to the trajectory of the robot periodically transmitted from the controller;
Means (262, 281) for calculating a command value for each control cycle according to a command received from the control device;
A robot controller comprising means (262, 282) for calculating a command value after correction in each control cycle based on the command value and a correction amount periodically received from the control device.
 [構成10]
 制御対象を制御するための制御装置(100)と、ロボット(200)を制御するためのロボットコントローラ(250)と、前記制御装置と前記ロボットコントローラとの間で周期的にデータを更新するネットワーク(10)とを備える制御システム(1)における制御方法であって、
 前記制御装置が、前記ロボットの軌道に対する補正量を周期的に送信するステップ(S108)と、
 前記ロボットコントローラが、前記制御装置から受信した命令に従って制御周期毎に指令値を計算するステップ(S210,S216)と、
 前記ロボットコントローラが、前記指令値と前記制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算するステップ(S220)とを備える、制御方法。
[Configuration 10]
A control device (100) for controlling a controlled object, a robot controller (250) for controlling a robot (200), and a network ( 10) A control method in a control system (1) comprising
a step in which the control device periodically transmits a correction amount for the trajectory of the robot (S108);
a step in which the robot controller calculates a command value for each control cycle according to the command received from the control device (S210, S216);
A control method comprising a step (S220) in which the robot controller calculates a corrected command value for each control cycle based on the command value and a correction amount periodically received from the control device.
 <I.利点>
 本実施の形態に係る制御システム1において、ロボットコントローラ250は、制御装置100から受信した命令に従って、本来の指令値を制御周期毎に計算するとともに、制御周期毎に計算される指令値に対して、制御装置100から受信した補正量を反映して、補正後の指令値を計算できる。これによって、ロボット200の軌道を任意の補正しようとした場合に、制御装置での補正量の計算結果を制御周期からずれることなく、確実に反映できる。これによって、ロボットの軌道について任意に補正を行う場合であっても、より精度の高い制御を行うことができる。
<I. Advantage>
In the control system 1 according to the present embodiment, the robot controller 250 calculates the original command value for each control cycle according to the command received from the control device 100, and calculates the command value calculated for each control cycle. , the corrected command value can be calculated by reflecting the correction amount received from the control device 100 . As a result, when the trajectory of the robot 200 is to be arbitrarily corrected, the calculation result of the correction amount in the control device can be reliably reflected without deviating from the control cycle. As a result, even if the trajectory of the robot is arbitrarily corrected, more accurate control can be performed.
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed this time should be considered illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all modifications within the scope and meaning equivalent to the scope of the claims.
 1 制御システム、10 フィールドネットワーク、20 上位ネットワーク、40 ワーク、42 ベース、50 距離センサ、100 制御装置、102,262,362,402 プロセッサ、104,264,364,404 メインメモリ、106 上位ネットワークコントローラ、108,252,352 フィールドネットワークコントローラ、110,266,366,410 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118 プロセッサバス、120,418 USBコントローラ、122 ローカルバス、130 機能ユニット、140 入出力リフレッシュ処理、142,144,146 実行処理、148 バッファ、150 IECプログラム、151 補正量計算命令、152 補正量反映命令、154 アプリケーションプログラム実行中フラグ、155,284,286 補正量、156 基準距離、157 現在距離、158 補正準備完了フラグ、159 起動監視命令、160 アプリケーションプログラム、161 MOVESキーワード、162 WHILE命令、163 計算命令、164 ALTERキーワード、165 有効化部、166 初期位置移動部、167 実行有効化部、168 実行待機部、169 軌道目標指令部、170 終了処理部、200 ロボット、210 エンドエフェクタ、250 ロボットコントローラ、260,360 制御処理回路、268,368,1102 システムプログラム、270 インターフェイス回路、281 指令値計算、282 補正量加算、283 指令値出力、287 無効化スイッチ、288 状態情報、300 サーボモータ、350 サーボコントローラ、370 ドライブ回路、400 サポート装置、406 入力部、408 表示部、412 OS、414 開発プログラム、416 ネットワークコントローラ、420 光学ドライブ、422 記録媒体、424 バス、500 表示装置、600 サーバ装置、1521 ロボット指定、1522 実行指定、1523 補正量指定、1524 選択中ロボット、1525 補正準備完了フラグ、1526 ビジーフラグ、1527 アボートフラグ、1528 エラーフラグ、1529 エラーID、T1,T3 制御周期、T2 アプリケーション周期、T4 通信周期。 1 control system, 10 field network, 20 host network, 40 work, 42 base, 50 distance sensor, 100 control device, 102, 262, 362, 402 processor, 104, 264, 364, 404 main memory, 106 host network controller, 108, 252, 352 field network controller, 110, 266, 366, 410 storage, 112 memory card interface, 114 memory card, 116 local bus controller, 118 processor bus, 120, 418 USB controller, 122 local bus, 130 functional unit, 140 input/output refresh process, 142, 144, 146 execution process, 148 buffer, 150 IEC program, 151 correction amount calculation instruction, 152 correction amount reflection instruction, 154 application program execution flag, 155, 284, 286 correction amount, 156 reference Distance, 157 Current distance, 158 Correction preparation completion flag, 159 Startup monitoring instruction, 160 Application program, 161 MOVES keyword, 162 WHILE instruction, 163 Calculation instruction, 164 ALTER keyword, 165 Validation part, 166 Initial position movement part, 167 Execution Validation unit 168 execution standby unit 169 trajectory target command unit 170 end processing unit 200 robot 210 end effector 250 robot controller 260, 360 control processing circuit 268, 368, 1102 system program 270 interface circuit, 281 command value calculation, 282 correction amount addition, 283 command value output, 287 invalidation switch, 288 status information, 300 servo motor, 350 servo controller, 370 drive circuit, 400 support device, 406 input unit, 408 display unit, 412 OS , 414 development program, 416 network controller, 420 optical drive, 422 recording medium, 424 bus, 500 display device, 600 server device, 1521 robot specification, 1522 execution specification, 1523 compensation amount specification, 1524 selected robot, 1525 compensation ready flag, 1526 busy flag, 1527 abort flag, 1528 error flag, 1529 error ID, T1, T3 control period, T2 application period, T 4 Communication cycle.

Claims (10)

  1.  制御対象を制御するための制御装置と、
     ロボットを制御するためのロボットコントローラと、
     前記制御装置と前記ロボットコントローラとの間で周期的にデータを更新するネットワークとを備え、
     前記制御装置は、前記ロボットの軌道に対する補正量を周期的に送信する手段を備え、
     前記ロボットコントローラは、
      前記制御装置から受信した命令に従って制御周期毎に指令値を計算する手段と、
      前記指令値と前記制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算する手段とを備える、制御システム。
    a control device for controlling a controlled object;
    a robot controller for controlling the robot;
    a network for periodically updating data between the controller and the robot controller;
    The control device comprises means for periodically transmitting a correction amount for the trajectory of the robot,
    The robot controller is
    means for calculating a command value for each control cycle according to a command received from the control device;
    A control system comprising means for calculating a command value after correction in each control cycle based on the command value and a correction amount periodically received from the control device.
  2.  前記制御装置は、任意に作成された命令に従って前記補正量を計算するための第1のユーザプログラムを周期的に実行する手段をさらに備える、請求項1に記載の制御システム。 3. The control system according to claim 1, wherein said controller further comprises means for periodically executing a first user program for calculating said correction amount according to arbitrarily created instructions.
  3.  前記第1のユーザプログラムは、前記ロボットの軌道に対する補正量を周期的に送信するための命令を含む、請求項2に記載の制御システム。 3. The control system according to claim 2, wherein the first user program includes instructions for periodically transmitting a correction amount to the trajectory of the robot.
  4.  前記ロボットの軌道に対する補正量を周期的に送信するための命令は、ファンクション形式で前記第1のユーザプログラムに記述される、請求項3に記載の制御システム。 4. The control system according to claim 3, wherein the command for periodically transmitting the correction amount for the trajectory of the robot is written in the first user program in a function format.
  5.  前記制御装置は、第2のユーザプログラムを逐次実行することで、前記ロボットコントローラへ命令を逐次送信する手段をさらに備える、請求項2~4のいずれか1項に記載の制御システム。 The control system according to any one of claims 2 to 4, wherein the control device further comprises means for sequentially transmitting commands to the robot controller by sequentially executing a second user program.
  6.  前記第2のユーザプログラムの実行周期は、前記第1のユーザプログラムの実行周期に比較して長く設定される、請求項5に記載の制御システム。 The control system according to claim 5, wherein the execution cycle of said second user program is set longer than the execution cycle of said first user program.
  7.  前記ロボットコントローラは、前記制御装置から受信した特定の命令に従って、補正後の指令値の計算を有効化または無効化するように構成されている、請求項1~6のいずれか1項に記載の制御システム。 7. The robot controller according to any one of claims 1 to 6, wherein the robot controller is configured to enable or disable calculation of corrected command values according to specific instructions received from the controller. control system.
  8.  前記ロボットコントローラは、前記ロボットの状態値を周期的に送信する手段をさらに備える、請求項1~7のいずれか1項に記載の制御システム。 The control system according to any one of claims 1 to 7, wherein the robot controller further comprises means for periodically transmitting state values of the robot.
  9.  ロボットを制御するためのロボットコントローラであって、
     制御対象を制御するための制御装置とネットワークを介して接続するためのインターフェイスを備え、前記ネットワークにおいては、前記制御装置と前記ロボットコントローラとの間で周期的にデータが更新されるように構成されており、
     前記制御装置から周期的に送信される前記ロボットの軌道に対する補正量を受信する手段と、
     前記制御装置から受信した命令に従って制御周期毎に指令値を計算する手段と、
     前記指令値と前記制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算する手段とを備える、ロボットコントローラ。
    A robot controller for controlling a robot,
    An interface for connecting to a control device for controlling a controlled object via a network is provided, and in the network, data is periodically updated between the control device and the robot controller. and
    means for receiving a correction amount for the trajectory of the robot periodically transmitted from the control device;
    means for calculating a command value for each control cycle according to a command received from the control device;
    A robot controller, comprising means for calculating a command value after correction in each control cycle based on the command value and a correction amount periodically received from the control device.
  10.  制御対象を制御するための制御装置と、ロボットを制御するためのロボットコントローラと、前記制御装置と前記ロボットコントローラとの間で周期的にデータを更新するネットワークとを備える制御システムにおける制御方法であって、
     前記制御装置が、前記ロボットの軌道に対する補正量を周期的に送信するステップと、
     前記ロボットコントローラが、前記制御装置から受信した命令に従って制御周期毎に指令値を計算するステップと、
     前記ロボットコントローラが、前記指令値と前記制御装置から周期的に受信する補正量とに基づいて、制御周期毎に補正後の指令値を計算するステップとを備える、制御方法。
    A control method in a control system comprising a control device for controlling a controlled object, a robot controller for controlling a robot, and a network for periodically updating data between the control device and the robot controller. hand,
    the controller periodically transmitting a correction amount for the trajectory of the robot;
    a step in which the robot controller calculates a command value for each control cycle according to the command received from the control device;
    A control method, wherein the robot controller calculates a corrected command value for each control cycle based on the command value and a correction amount periodically received from the control device.
PCT/JP2021/009582 2021-01-27 2021-03-10 Control system, robot controller, and control method WO2022162959A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-011175 2021-01-27
JP2021011175A JP2022114753A (en) 2021-01-27 2021-01-27 Control system, robot controller, and control method

Publications (1)

Publication Number Publication Date
WO2022162959A1 true WO2022162959A1 (en) 2022-08-04

Family

ID=82653242

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/009582 WO2022162959A1 (en) 2021-01-27 2021-03-10 Control system, robot controller, and control method

Country Status (2)

Country Link
JP (1) JP2022114753A (en)
WO (1) WO2022162959A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019049947A (en) * 2017-09-12 2019-03-28 オムロン株式会社 Controller and control method
JP2020149631A (en) * 2019-03-15 2020-09-17 オムロン株式会社 Control system, relay device, and relay program
JP2020201584A (en) * 2019-06-06 2020-12-17 オムロン株式会社 Control system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019049947A (en) * 2017-09-12 2019-03-28 オムロン株式会社 Controller and control method
JP2020149631A (en) * 2019-03-15 2020-09-17 オムロン株式会社 Control system, relay device, and relay program
JP2020201584A (en) * 2019-06-06 2020-12-17 オムロン株式会社 Control system

Also Published As

Publication number Publication date
JP2022114753A (en) 2022-08-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
US10761884B2 (en) Control device for operating multiple types of programs in different execution formats
JP6903275B2 (en) Control device and control method
US10678218B2 (en) Control device
US10908577B2 (en) Control device
US20190095246A1 (en) Support device and non-transitory storage medium
WO2021106467A1 (en) Control system, control device, and control method
JP6900863B2 (en) Control unit, control method and control program
US20230101517A1 (en) Robot control system and control method
US11855907B2 (en) Robot control system and control method
WO2022162959A1 (en) Control system, robot controller, and control method
US20220397880A1 (en) Control device
WO2012124145A1 (en) Computation unit, assistance unit, assistance program, recording medium storing assistance program, and operation method in assistance device
US20220221833A1 (en) Controller
WO2022162958A1 (en) Control device, program execution method, and program
JP7375632B2 (en) Control system and support equipment
WO2021145124A1 (en) Control device
WO2021181800A1 (en) Robot control system and control method
WO2022168336A1 (en) Control device, control method, and control program
Kelkar EtherCAT based motion controller
JP2021144586A (en) Robot control system and control method

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: 21922968

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21922968

Country of ref document: EP

Kind code of ref document: A1