WO2021181800A1 - Robot control system and control method - Google Patents

Robot control system and control method Download PDF

Info

Publication number
WO2021181800A1
WO2021181800A1 PCT/JP2020/047240 JP2020047240W WO2021181800A1 WO 2021181800 A1 WO2021181800 A1 WO 2021181800A1 JP 2020047240 W JP2020047240 W JP 2020047240W WO 2021181800 A1 WO2021181800 A1 WO 2021181800A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
control device
command
program
control
Prior art date
Application number
PCT/JP2020/047240
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 WO2021181800A1 publication Critical patent/WO2021181800A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators

Definitions

  • This technology relates to robot control systems and control methods.
  • Patent Document 1 discloses a configuration for constructing an automation facility using a robot at low cost without learning a robot language. do.
  • the purpose of this technology is to provide a robot control system suitable for production equipment including one or more robots.
  • the robot control system includes a first control device and a second control device that is network-connected to the first control device and controls the robot.
  • the first control device includes a first program execution unit that generates a command instructing the behavior of the robot by executing a robot program, and a first communication unit that transmits a command to the second control device.
  • the second control device is a second communication unit that receives a command transmitted from the first control device, and each axis of the robot so as to realize the behavior instructed by the command from the first control device. Includes a command value generator that sequentially generates command values for driving.
  • the processing load can be distributed, the behavior of one or more robots can be controlled even if the processing capacity of the first control device is not high. Further, since the resource of the first control device required to control the behavior of the robot can be made relatively small, the first control device executes not only the process related to the behavior of the robot but also another process. It is possible to increase the expandability of the system.
  • the second control device may further include a target trajectory generating unit that generates a target trajectory of the robot according to a command from the first control device.
  • the command value generation unit may sequentially generate command values according to the target trajectory.
  • the first control device only needs to generate a command instructing the behavior of the robot without considering the kinematics of the robot to be controlled, and therefore the processing load in the first control device. Can be reduced. Further, by generating the target trajectory in the second control device, the robot can be controlled with higher accuracy.
  • the first control device may further include a second program execution unit that periodically generates an output value given to the second control device by executing the IEC program.
  • the first communication unit may transmit the output value and the command to the second control device.
  • the second control device may further include a process execution unit that executes the process according to the output value from the first control device.
  • the first program execution unit executes the robot program sequentially, and the second program execution unit cyclically executes the IEC program independently of the execution of the robot program by the first program execution unit. May be good.
  • the first communication unit may periodically transmit a communication frame including an output value.
  • the command may be transmitted to the second control device using a plurality of communication frames.
  • the command can be transmitted to the second control device even when the data length of the generated command is long.
  • the first program execution unit may be configured to be able to interpret a plurality of programming languages, and may generate commands according to a predetermined command system without depending on the programming language.
  • the first control device may be network-connected to a plurality of second control devices.
  • the first communication unit may send a command to each of the plurality of second control devices.
  • a plurality of robots can be controlled by using one first control device.
  • the second communication unit may transmit the state value related to the robot to be controlled to the first control device.
  • the first control device can realize various processes based on the state values related to the robot.
  • a control method is directed to a robot control system including a first control device and a second control device networked with the first control device to control the robot. Be done.
  • the control method includes a step in which the first control device executes a robot program to generate a command instructing the behavior of the robot given to the second control device, and a second control device issues a command.
  • a robot control system suitable for production equipment including one or more robots can be realized.
  • FIG. 1 is a schematic diagram showing an outline of the robot control system 1 according to the present embodiment.
  • the robot control system 1 is connected to the control device 100 (first control device) and the control device 100 via a network, and the robot controller 250 (second control device) for controlling the robot 200. And include. A plurality of robot controllers 250 may be connected to the control device 100.
  • the control target of the robot control system 1 is not limited to the robot 200.
  • the control device 100 can control various devices and machines constituting the production equipment including the robot 200 in addition to the robot 200.
  • the control device 100 may be linked with a safety controller that monitors the operation of the robot 200. That is, in the present specification, the term "robot control system" is used to mean a system having a function of controlling a robot, and does not exclude controlling other than the robot.
  • the control device 100 transmits the robot program execution engine 152 (first program execution unit) that generates a command 158 instructing the behavior of the robot 200 and the command 158 to the robot controller 250 by executing the robot program 1108. It has a communication unit 50 (composed of a field network controller 108, a communication control module 160, a communication driver 162, etc., which will be described later).
  • the robot controller 250 includes a communication unit 60 (consisting of a field network controller 252, a communication control module 280, a communication driver 282, etc., which will be described later) for receiving a command 158 transmitted from the control device 100, and a command 158 from the control device 100. It has a command value generation module 290 (command value generation unit) that sequentially generates command values for driving each axis of the robot 200 so as to realize the behavior instructed by.
  • a communication unit 60 consisting of a field network controller 252, a communication control module 280, a communication driver 282, etc., which will be described later
  • a command value generation module 290 command value generation unit
  • the axis of the robot 200 may form a joint, it is also referred to as the "axis or joint" of the robot 200 in the following description. That is, in the present specification, the term “axis” of the robot 200 is used to include an axis and a joint.
  • the control device 100 and the robot controller 250 cooperate to control the behavior of the robot 200.
  • the processing load can be distributed.
  • the behavior of the plurality of robots 200 can be controlled even if the processing capacity of the control device 100 is not high.
  • the control device 100 can execute not only the process related to the behavior of the robot 200 but also another process. It is possible to increase the expandability of the system.
  • FIG. 2 is a schematic diagram showing a configuration example of the robot control system 1 according to the present embodiment.
  • the robot control system 1 according to the present embodiment includes a control device 100 and one or more robots 200 connected to the control device 100 via a field network 20.
  • the behavior of each of the robots 200 is controlled by the robot controller 250.
  • the robot controller 250 is connected to the control device 100 via a network to control the robot 200. More specifically, the robot controller 250 outputs a command value for controlling the robot 200 in accordance with a command from the control device 100 (command 158 described later).
  • a custom robot 200A having one or a plurality of axes or joints arbitrarily created according to an application may be used.
  • any general-purpose robot 200B such as a horizontal articulated (scalar) robot, a vertical articulated robot, a parallel link robot, and a Cartesian robot may be used.
  • Any device such as an I / O unit, a safety I / O unit, and a safety controller may be connected to the field network 20.
  • an operation pendant 300 for operating the robot 200 is connected to the field network 20.
  • EtherCAT registered trademark
  • EtherNet / IP protocols for industrial networks
  • the control device 100 may be connected to the support device 400, the display device 500, and the server device 600 via the host network 12.
  • a protocol for an industrial network EtherNet / IP, or the like can be used.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 constituting the robot control system 1 according to the present embodiment.
  • the control device 100 includes a processor 102, a main memory 104, a storage 110, a memory card interface 112, an upper network controller 106, a field network controller 108, a local bus controller 116, and a USB. Includes a USB controller 120 that provides a (Universal Serial Bus) interface. These components are connected via the processor bus 118.
  • a USB controller 120 that provides a (Universal Serial Bus) interface.
  • the processor 102 corresponds to an arithmetic processing unit that executes control operations, 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, expands it in the main memory 104, and executes it to realize a control operation for a controlled object.
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • the main memory 104 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or a SRAM (Static Random Access Memory).
  • the storage 110 is composed of, for example, a non-volatile storage device such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive).
  • the storage 110 stores a system program 1102 for realizing basic functions, an IEC program 1104 created according to a control target, and the like.
  • the IEC program 1104 may include sequence instructions and / or motion instructions.
  • the "IEC program” is used to mean a program that defines the processing executed by a general PLC (programmable logic controller).
  • the IEC program means a program written in any language defined by IEC 61131-3 defined by the International Electrotechnical Commission (IEC).
  • the IEC program may include a program written in a manufacturer's own language other than the language specified in IEC61131-3.
  • the storage 110 may further store the robot program 1108 and the setting information 1109 for controlling the behavior of the robot 200.
  • the robot program 1108 may be written in a predetermined programming language (for example, a programming language for robot control such as V + language or a programming language related to NC control such as G code).
  • the setting information 1109 includes various setting values (for example, speed limit value, acceleration limit value, jerk limit value, etc.) for the robot 200.
  • the memory card interface 112 accepts a memory card 114, which is an example of a removable storage medium.
  • the memory card interface 112 can read and write arbitrary data to and from the memory card 114.
  • the upper network controller 106 exchanges data with an arbitrary information processing device (support device 400, display device 500, server device 600, etc. shown in FIG. 2) via the upper network.
  • an arbitrary information processing device support device 400, display device 500, server device 600, etc. shown in FIG. 2
  • the field network controller 108 exchanges data with an arbitrary device such as a robot 200 via the field network 20.
  • the field network controller 108 may function as a communication master of the field network 20.
  • the local bus controller 116 exchanges data with and from an arbitrary functional unit 130 constituting the control device 100 via the local bus 122.
  • the functional unit 130 is, for example, an analog I / O unit that is in charge of input and / or output of an analog signal, a digital I / O unit that is in charge of input and / or output of a digital signal, a counter unit that receives pulses from an encoder, and the like. And so on.
  • the USB controller 120 exchanges data with an arbitrary information processing device via a USB connection.
  • FIG. 4 is a schematic diagram showing a hardware configuration example of the robot 200 constituting the robot control system 1 according to the present embodiment.
  • FIG. 4 shows a configuration example when a custom robot 200A is adopted as the robot 200.
  • the custom robot 200A is connected to the robot controller 250.
  • the custom robot 200A and the robot controller 250 may be integrally configured or may be configured as separate bodies.
  • the custom robot 200A includes a drive circuit 220 according to the number of shafts or joints, and a motor 230 driven by the drive circuit 220.
  • Each of the drive circuits 220 includes a converter circuit, an inverter circuit, and the like, generates electric power having a voltage, current, and phase specified according to a command value from the robot controller 250, and supplies the electric power to the motor 230.
  • Each of the motors 230 is an actuator that is mechanically coupled to any shaft or joint of the arm portion 210 constituting the custom robot 200A and drives the corresponding shaft or joint by the rotation of the motor 230.
  • the motor 230 a motor having characteristics according to the arm portion 210 to be driven can be adopted.
  • the motor 230 any of an inductive motor, a synchronous motor, a permanent magnet type motor, and a reluctance motor may be adopted, and not only a rotary type but also a linear motor may be adopted.
  • a drive circuit 220 corresponding to the motor 230 to be driven is adopted.
  • the robot controller 250 includes a field network controller 252 and a control processing circuit 260.
  • the field network controller 252 mainly exchanges data with the control device 100 via the field network 20.
  • the control processing circuit 260 executes arithmetic processing necessary for driving the custom robot 200A.
  • the control processing circuit 260 includes a processor 262, a main memory 266, a storage 270, and an interface circuit 268.
  • the processor 262 executes a control operation for driving the custom robot 200A.
  • the main memory 266 is composed of, for example, a volatile storage device such as a DRAM or SRAM.
  • the storage 270 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.
  • the storage 270 stores a robot system program 2702 for realizing control for driving the robot 200, and setting information 2704 including a group of setting parameters required for processing by the robot controller 250.
  • the interface circuit 268 gives a command value to each drive circuit 220.
  • the interface circuit 268 and the drive circuit 220 may be electrically connected by a hard wire or may be connected by a data link.
  • FIG. 5 is a schematic diagram showing another hardware configuration example of the robot 200 constituting the robot control system 1 according to the present embodiment.
  • FIG. 5 shows a configuration example when a general-purpose robot 200B is adopted as the robot 200.
  • the general-purpose robot 200B incorporates one or more motors and drive circuits (not shown), and when the target trajectory of the general-purpose robot 200B is instructed, it corresponds to the instructed target trajectory. Drive one or more motors.
  • FIG. 6 is a schematic view showing a hardware configuration example of the operation pendant 300 constituting the robot control system 1 according to the present embodiment.
  • the operation pendant 300 includes a field network controller 352, a control processing circuit 360, and an operation key group 380.
  • the field network controller 352 mainly exchanges data with the control device 100 via the field network 20.
  • the control processing circuit 360 includes a processor 362, a main memory 366, firmware 370, and an interface circuit 368.
  • the processor 362 realizes the processing required for the operation pendant 300 by executing the firmware 370.
  • the main memory 366 is composed of, for example, a volatile storage device such as a DRAM or SRAM.
  • the interface circuit 368 exchanges signals with the operation key group 380.
  • the operation key group 380 is an input device that accepts user operations.
  • the operation key group 380 may include an indicator or the like indicating an input state.
  • FIG. 7 is a schematic view showing a hardware configuration example of the support device 400 constituting the robot control system 1 according to the present embodiment.
  • the support device 400 may be realized by using a general-purpose personal computer as an example.
  • the support device 400 includes a processor 402, a main memory 404, an input unit 406, a display unit 408, a storage 410, an optical drive 412, a USB controller 420, and a communication controller 422. include. These components are connected via the processor bus 418.
  • the processor 402 is required for the support device 400 by reading a program (OS 4102 and development program 4104, for example) stored in the storage 410, which is composed of a CPU, a GPU, or the like, and deploying and executing the program in the main memory 404. Various functions are realized.
  • a program OS 4102 and development program 4104, for example
  • the main memory 404 is composed of, for example, a volatile storage device such as a DRAM or SRAM.
  • the storage 410 is composed of, for example, a non-volatile storage device such as an HDD or SSD.
  • the storage 410 stores an OS 4102 for realizing basic functions, a development program 4104 for realizing a development environment, and the like.
  • an OS 4102 for realizing basic functions e.g., a development program 4104 for realizing a development environment, and the like.
  • the development environment it is possible to create a program executed by the control device 100, debug the program, set the operation of the control device 100, set the operation of the device connected to the control device 100, and set the field network 20. It has become.
  • the input unit 406 is composed of a keyboard, a mouse, etc., and accepts user operations.
  • the display unit 408 is composed of a display, various indicators, and the like, and displays processing results and the like by the processor 402.
  • the USB controller 420 exchanges data with the control device 100 and the like via the USB connection.
  • the communication controller 422 exchanges data with an arbitrary information processing device via the host network 12.
  • the support device 400 has an optical drive 412, and is stored in a storage medium 414 (for example, an optical storage medium such as a DVD (Digital Versatile Disc)) that temporarily stores a computer-readable program.
  • a storage medium 414 for example, an optical storage medium such as a DVD (Digital Versatile Disc)
  • the stored program is read and installed in the storage 410 or the like.
  • the development program 4104 or the like executed by the support device 400 may be installed via a computer-readable storage medium 414, or may be installed by downloading from a server device or the like on the network. Further, the function provided by the support device 400 according to the present embodiment may be realized by using a part of the modules provided by the OS 4102.
  • support device 400 may be removed from the control device 100 while the robot control system 1 is in operation.
  • the display device 500 constituting the robot control system 1 according to the present embodiment may be realized by using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 500 is the same as the hardware configuration example of the support device 400 shown in FIG. 7, detailed description is not given here.
  • the server device 600 constituting the robot control system 1 according to the present embodiment may be realized by using a general-purpose personal computer as an example. Since the basic hardware configuration example of the server device 600 is the same as the hardware configuration example of the support device 400 shown in FIG. 7, detailed description is not given here.
  • FIGS. 3 to 7 show configuration examples in which necessary functions are provided by executing a program by one or more processors, and some or all of these provided functions are provided by dedicated hardware. 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
  • the main part of the control device 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer).
  • a general-purpose architecture for example, an industrial personal computer based on a general-purpose personal computer.
  • virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • a configuration in which functions such as a support device 400 and a display device 500 are integrated with the control device 100 may be adopted.
  • FIG. 8 is a schematic diagram showing an example of a functional configuration for controlling the behavior of the robot 200 in the robot control system 1 according to the present embodiment.
  • a command 158 or the like for controlling the robot 200 is exchanged between the control device 100 and one or a plurality of robot controllers 250.
  • the control device 100 includes an IEC program execution engine 150, a robot program execution engine 152, a communication control module 160, a communication driver 162, and an external communication interface 164. These elements may typically be realized by the processor 102 of the control device 100 executing the system program 1102.
  • the IEC program execution engine 150 (second program execution unit) periodically generates an output value given to the robot controller 250 by executing the IEC program 1104. More specifically, the IEC program execution engine 150 cyclically executes the IEC program 1104 at predetermined control cycles. The control cycle of the control device 100 is typically assumed to be about several hundred ⁇ sec to several hundred msec.
  • the IEC program execution engine 150 outputs an internal command (for example, transmission start and transmission stop of the command 158) to the robot program execution engine 152 according to the execution of the IEC program 1104, and / or the state from the robot program execution engine 152.
  • the value (for example, the state of the robot program 1108 being executed by the robot program execution engine 152) is acquired.
  • the robot program execution engine 152 (first program execution unit) generates a command 158 instructing the behavior of the robot 200 by executing the robot program 1108. That is, the robot program execution engine 152 sequentially executes the robot program 1108, and transmits a command 158 or the like for controlling the robot 200 to one or a plurality of robot controllers 250. More specifically, the robot program execution engine 152 includes a robot program interpretation module 154 and a command generation module 156.
  • the robot program interpretation module 154 sequentially reads and parses the robot program 1108, and outputs the internal command obtained by the parse to the command generation module 156.
  • the robot program interpretation module 154 can interpret instructions related to signal input / output, file access, and communication in addition to instructions related to the behavior of the robot 200 described in the programming language included in the robot program 1108.
  • the start and stop of reading the robot program 1108 by the robot program interpretation module 154 may be controlled by the command generation module 156.
  • the command generation module 156 generates commands 158 for each of the robot controllers 250 according to internal commands from the robot program interpretation module 154.
  • the command generation module 156 functions as a host for one or more connected robot controllers 250. More specifically, the command generation module 156 is an internal command exchanged with the IEC program execution engine 150 and / or an internal command exchanged with the support device 400 via the external communication interface 164. In response to this, the robot program interpretation module 154 controls the start and stop of execution of the robot program 1108, and also controls the start and stop of the generation of the command 158 for the robot controller 250.
  • the command generation module 156 may collect information such as state values and errors from the robot controller 250.
  • the communication control module 160 and the communication driver 162 correspond to a communication unit that transmits a command 158 to the robot controller 250.
  • the communication control module 160 and the communication driver 162 transmit the output value from the IEC program execution engine 150 and the command 158 from the robot program execution engine 152 to the robot controller 250.
  • the communication control module 160 manages the exchange of data with one or a plurality of connected robot controllers 250.
  • the communication control module 160 may generate a communication instance that manages data communication for each connected robot controller 250, and may manage data communication using the generated communication instance.
  • the communication driver 162 is an internal interface that uses the field network controller 108 (see FIG. 3) to perform data communication with one or a plurality of connected robot controllers 250.
  • Each of the robot controllers 250 includes a communication control module 280, a communication driver 282, a robot drive engine 284, and a signal output driver 292. These elements may typically be realized by the processor 262 (control processing circuit 260) of the robot controller 250 executing the robot system program 2702.
  • the communication control module 280 manages the exchange of data with the connected control device 100.
  • the communication control module 280 may generate a communication instance that manages data communication with the connected control device 100, and may manage data communication using the generated communication instance.
  • the communication driver 282 is an internal interface that performs data communication with the connected control device 100 by using the field network controller 252 (see FIG. 4).
  • the robot drive engine 284 executes a process for driving the robot 200 to be controlled (including the custom robot 200A and / or the general-purpose robot 200B) in accordance with the command 158 from the control device 100. More specifically, the robot drive engine 284 includes a management module 286, a target trajectory generation module 288, and a command value generation module 290.
  • the management module 286 corresponds to a processing execution unit that executes processing according to an output value from the control device 100. More specifically, the management module 286 manages the control mode, the start / end of the generation of the target trajectory from the command 158, and the like according to the output value from the control device 100.
  • the target trajectory generation module 288 (target trajectory generation unit) generates a target trajectory of the robot 200 to be controlled (including: custom robot 200A and / or general-purpose robot 200B) according to the command 158 from the control device 100.
  • the generated target trajectory is typically the hourly position of the tip of the robot 200 (change in position with respect to time) and / or the hourly velocity of the tip of the robot 200 (change in velocity with respect to time). ) Etc. are included.
  • the target trajectory generation module 288 may output the generated target trajectory to the command value generation module 290 (typically when driving the custom robot 200A shown in FIG. 4), or via the signal output driver 292. It may be output directly to the robot 200 (typically, when driving the general-purpose robot 200B shown in FIG. 5).
  • the command value generation module 290 sequentially generates command values for driving each axis of the robot 200 so as to realize the behavior instructed by the command 158 from the control device 100. More specifically, the command value generation module 290 sequentially generates command values for each of the motors 230 constituting the robot 200 to be controlled according to the target trajectory generated by the target trajectory generation module 288. The command value generation module 290 may update the command value at a predetermined control cycle or at a predetermined event.
  • the control cycle of the target trajectory generation module 288 of the robot controller 250 is typically assumed to be about several hundred ⁇ sec to several hundred msec, which is about the same as the control cycle of the control device 100. On the other hand, it is assumed that the control cycle of the command value generation module 290 of the robot controller 250 is faster than the control cycle of the target trajectory generation module 288 (for example, about several to ten and several times).
  • the command value generation module 290 calculates each command value given to the motor 230 for driving the robot 200 along the target trajectory based on the kinematics of the robot 200 to be controlled.
  • the command value generation module 290 sets the target position (change in position / angle with respect to time), target speed (change in speed / angular velocity with respect to time), and target acceleration (change in acceleration / angular acceleration with respect to time) as command values given to the motor 230. ) And / or the target acceleration (change in jerk / angular jerk with time) and so on.
  • the robot drive engine 284 may acquire the parameters necessary for calculating the target trajectory and / or the command value with reference to the setting information 2704 (see FIG. 4).
  • the signal output driver 292 utilizes an interface circuit 268 (see FIG. 4) to output a command value and / or a target trajectory to one or more connected drive circuits 220 and / or a robot 200 internally. It is an interface.
  • FIG. 9 is a schematic diagram illustrating data processing for controlling the behavior of the robot 200 in the robot control system 1 according to the present embodiment.
  • the robot program 1108 written in a predetermined programming language is input to the robot program execution engine 152 of the control device 100.
  • the robot program execution engine 152 has a different robot program 1108 for each robot 200. Entered. Further, in a production facility in which a plurality of the same production lines are arranged in parallel and a robot 200 that performs the same work is arranged in each production line, the robot program execution engine 152 is common. Robot program 1108 may be input. However, the generated commands 158 may be independently transmitted to the robot controller 250.
  • a plurality of robot programs 1108 described in different programming languages may be input to the robot program execution engine 152.
  • the robot program execution engine 152 can generate a command 158 written according to a common command system even when a robot program 1108 written in a different programming language is input.
  • the robot program execution engine 152 may be configured to be able to interpret a plurality of programming languages.
  • the robot program execution engine 152 may generate a command 158 according to a predetermined command system without depending on a programming language.
  • the robot program execution engine 152 (robot program interpretation module 154) interprets the input robot program 1108 and generates an internal command. Further, the robot program execution engine 152 (command generation module 156) generates a command 158 for controlling the behavior of the robot 200 according to the generated internal command.
  • command 158 may be generated for one or a plurality of connected robot controllers 250, respectively.
  • the generated command 158 is transmitted to the corresponding robot controller 250 via the field network 20 (see FIG. 2).
  • the communication unit 50 (composed of the field network controller 108, the communication control module 160, the communication driver 162, etc.) of the control device 100 is A command 158 is transmitted to each of the plurality of robot controllers 250.
  • the target trajectory generation module 288 of the robot controller 250 generates a target trajectory according to the command 158 from the control device 100.
  • the generated target trajectory may be output to the general-purpose robot 200B as it is. That is, the robot controller 250 may output the target trajectory to the outside.
  • the command value generation module 290 of the robot controller 250 generates command values for each of the motors 230 constituting the robot 200 to be controlled according to the generated target trajectory.
  • Any command system can be adopted as the command system for defining the command 158. From the viewpoint of reducing the processing related to the generation of the command 158, it is preferable to adopt a command group that can be easily generated from the instructions described in the robot program 1108.
  • the control device 100 generates a command 158 from one or a plurality of robot programs 1108.
  • the robot controller 250 drives the robot 200 to be controlled according to the generated command 158.
  • the robot program 1108 is a program for controlling the behavior of the robot 200.
  • the behavior of the robot 200 for example, the timing for starting / stopping the operation of the robot 200, the conditions for operating the robot 200 (for example, the linkage with the equipment in the pre-process or the post-process), and so on. It is also necessary to control the safety conditions and the like related to the robot 200.
  • the IEC program 1104 may include logic for collecting state values related to the operation of the robot 200 and determining the timing for starting / stopping the operation of the robot 200.
  • FIG. 10 is a diagram showing an example of an IEC program 1104 and a robot program 1108 executed by the control device 100 constituting the robot control system 1 according to the present embodiment.
  • FIG. 10A shows an example of the IEC program 1104 described in a ladder diagram (LD language).
  • the example of the IEC program 1104 shown in FIG. 10A includes instructions relating to a process of turning on the power of the robot 200 to be controlled and a process of executing calibration of the robot 200 to be controlled.
  • the IEC program 1104 may include a function block as an element.
  • the IEC program 1104 may include code written in structured text (ST language).
  • FIG. 10B shows an example of a robot program 1108 written in V + language.
  • the V + language is a kind of high-level language for controlling the behavior of the robot 200.
  • FIG. 11 is a time chart showing an execution example of a program in the control device 100 constituting the robot control system 1 according to the present embodiment.
  • the IEC program execution engine 150 and the robot program execution engine 152 execute the processes independently.
  • the IEC program execution engine 150 cyclically executes (repeatedly executes) the IEC program 1104 every predetermined control cycle T1.
  • the cyclic execution of the IEC program 1104 includes an output update process 1502 and an input update process 1504.
  • the output update process 1502 includes a process of reflecting the output value determined by the execution of the IEC program 1104 on the internal variables and / or the target device.
  • the output value for the device connected via the field network 20 is stored in the communication frame and transmitted on the field network 20.
  • the input update process 1504 includes a process of acquiring an input value (state value) necessary for executing the IEC program 1104 from an internal variable and / or a target device.
  • the input value from the device connected via the field network 20 is acquired from the communication frame propagating on the field network 20.
  • the communication control module 160 sends out a communication frame on the field network 20 in synchronization with the control cycle T1 and receives the communication frame that circulates on the field network 20 and returns.
  • the communication control module 160 stores the output value generated by the IEC program execution engine 150 and / or the command 158 generated by the command generation module 156 in the communication frame and is included in the returned communication frame.
  • the input value (state value) is held so that the IEC program execution engine 150 and the command generation module 156 can refer to it.
  • the command generation module 156 generates a command 158 according to an internal command from the robot program interpretation module 154. Typically, the timing at which the command generation module 156 generates the command 158 is determined by the output value from the IEC program execution engine 150. In the example shown in FIG. 11, an example is shown in which the IEC program execution engine 150 generates a command 158 in response to an output value from the IEC program execution engine 150. The generation of the command 158 by the IEC program execution engine 150 may be synchronized with the timing of the output update process 1502 of the IEC program execution engine 150.
  • the robot program interpretation module 154 typically executes the robot program 1108 independently of the control cycle T1.
  • the start / stop of execution of the robot program 1108 by the robot program interpretation module 154 may be controlled by the command generation module 156.
  • the robot program execution engine 152 sequentially executes the robot program 1108.
  • the IEC program execution engine 150 cyclically executes the IEC program 1104 independently of the execution of the robot program 1108 by the robot program execution engine 152.
  • FIG. 12 is a schematic diagram showing an example of the communication frame 40 used in the robot control system 1 according to the present embodiment.
  • a data area 42 is allocated to each device connected to the field network 20 (robot controller 250 in the configuration example shown in FIG. 2).
  • Each of the data areas 42 includes an output value area 44 and an input value area 46.
  • the output value area 44 stores an output value generated by the control device 100 (IEC program execution engine 150) and / or a command 158 generated by the control device 100 (robot program execution engine 152).
  • Information acquired or generated by the corresponding device is stored in the input value area 46.
  • the communication unit 60 (composed of the field network controller 252, the communication control module 280, the communication driver 282, etc.) of the robot controller 250 has a state value (for example, of the robot 200) related to the robot 200 to be controlled. Information such as operation mode and position) is transmitted to the controller 100.
  • Data is written in the output value area 44 by the control device 100, and the data is read by the corresponding device.
  • the input value area 46 data is written by the corresponding device, and data is read by the control device 100.
  • Data is exchanged between the control device 100 and one or more robot controllers 250 via the communication frame 40 shown in FIG.
  • the communication unit 50 (composed of the field network controller 108, the communication control module 160, the communication driver 162, etc.) of the control device 100 periodically transmits the communication frame 40 including the output value.
  • the command 158 may be transmitted to the robot controller 250 using a plurality of communication frames 40.
  • the allocation of the data area 42 of the communication frame 40 shown in FIG. 12 is an example, and the data area may be allocated in any way.
  • the data area 42 may be allocated only to some devices connected to the field network 20.
  • each of the data areas 42 may include only one of the output value area 44 and the input value area 46.
  • the command 158 transmitted from the control device 100 to the specific robot controller 250 may not fit in the corresponding output value area 44.
  • the communication cycle of the communication frame 40 is relatively short (for example, several msec to several tens of msec) as compared with the cycle of updating the command value for the robot 200. Therefore, even if one command 158 is transmitted by using the plurality of communication frames 40, there is no problem in controlling the robot 200. Therefore, the control device 100 may divide one command 158 into a plurality of communication frames 40 and transmit the command 158 depending on the situation.
  • FIG. 13 is a diagram for explaining a processing example in which the command 158 is divided into a plurality of communication frames 40 and transmitted in the robot control system 1 according to the present embodiment.
  • the data string of the command 158 is divided into sizes that fit in the output value area 44, and each is stored in a plurality of communication frames 40 that are continuous in time.
  • a command 158 is transmitted using three communication frames 40.
  • the robot controller 250 restores the command 158 by acquiring and combining the divided data from the plurality of communication frames 40.
  • FIG. 14 is a flowchart showing a processing procedure in the control device 100 constituting the robot control system 1 according to the present embodiment. Each step shown in FIG. 14 may typically be realized by the processor 102 of the control device 100 executing the system program 1102. As shown in FIG. 14, in the control device 100, the processing by the IEC program execution engine 150 and the processing by the robot program execution engine 152 (robot program interpretation module 154 and command generation module 156) are executed in parallel.
  • the control device 100 determines whether or not the next control cycle has arrived (step S100). If the next control cycle has not arrived (NO in step S100), the control device 100 waits for processing until the next control cycle arrives.
  • control device 100 If the next control cycle has arrived (YES in step S100), the control device 100 outputs the output value determined by the execution of the IEC program 1104 in the previous control cycle (step S102).
  • the process of outputting the output value includes the process of outputting the output value to the robot program execution engine 152.
  • control device 100 acquires the latest input value (step S104), and determines the output value by executing the IEC program 1104 using the acquired latest input value (step S106). Then, the process of step S100 or less is repeated.
  • the control device 100 determines whether or not the reading start condition of the robot program 1108 is satisfied (step S150).
  • the reading start condition of the robot program 1108 may be defined by appropriately combining an output value from the IEC program execution engine 150, an input value from the robot controller 250, an instruction from the support device 400, and other arbitrary information.
  • step S150 If the reading start condition of the robot program 1108 is not satisfied (NO in step S150), the control device 100 skips the processes of steps S152 and S154.
  • step S150 If the reading start condition of the robot program 1108 is satisfied (YES in step S150), the control device 100 executes the robot program 1108 to instruct the robot behavior given to the robot controller 250. Is generated, and the generated command 158 is transmitted to the robot controller 250 (steps S152 to S160).
  • control device 100 sequentially reads the target robot program 1108 (step S152), parses the read robot program 1108, and generates an internal command (step S154).
  • the control device 100 determines whether or not the output start condition of the command 158 is satisfied (step S156).
  • the output start condition of the command 158 may be specified by appropriately combining an output value from the IEC program execution engine 150, an input value from the robot controller 250, an instruction from the support device 400, and any other information.
  • step S156 the control device 100 determines whether or not the next control cycle has arrived. If the next control cycle has not arrived (NO in step S158), the control device 100 waits for processing until the next control cycle arrives.
  • step S158 the control device 100 generates and outputs a command 158 according to an internal command generated in advance (step S160).
  • step S156 If the output start condition of the command 158 is not satisfied (NO in step S156), the control device 100 skips the processes of steps S158 and S160.
  • FIG. 15 is a flowchart showing a processing procedure in the robot controller 250 constituting the robot control system 1 according to the present embodiment. Each step shown in FIG. 15 may be realized by the processor 262 (control processing circuit 260) of the robot controller 250 executing the robot system program 2702.
  • the processing by the target trajectory generation module 288 and the processing by the command value generation module 290 are executed in parallel.
  • the robot controller 250 determines whether or not a command 158 has been received from the control device 100 (step S200). If the command 158 has not been received from the control device 100 (NO in step S200), the robot controller 250 repeats the process of step S200.
  • step S200 If the command 158 is received from the control device 100 (YES in step S200), the robot controller 250 determines whether or not all of the commands 158 have been received (step S202). If only a part of the command 158 is received (NO in step S202), the robot controller 250 repeats the processes of step S200 and the following.
  • step S202 If all of the commands 158 have been received (YES in step S202), the robot controller 250 generates a target trajectory according to the received command 158 (step S204). Then, the process of step S200 or less is repeated.
  • the robot controller 250 determines whether or not the next control cycle has arrived (step S250). If the next control cycle has not arrived (NO in step S250), the robot controller 250 waits for processing until the next control cycle arrives.
  • the robot controller 250 stores the latest predetermined input value in the communication frame 40 and transmits it to the control device 100 (step S252). Then, the robot controller 250 refers to the communication frame 40 and acquires the latest output value transmitted from the control device 100 (step S254). Then, the robot controller 250 determines whether or not the output condition of the command value for the robot 200 is satisfied (step S256).
  • the output condition of the command value for the robot 200 is an appropriate combination of the latest output value transmitted from the control device 100, the state value held by the management module 286, the state value acquired by the robot controller 250, and any other information. It may be specified.
  • step S256 If the output condition of the command value for the robot 200 is not satisfied (NO in step S256), the robot controller 250 skips the processes of steps S258 and S260.
  • step S256 the robot controller 250 will realize the behavior instructed by the command 158 from the control device 100.
  • Command values for driving the shaft are sequentially generated (steps S258 to S260). More specifically, the robot controller 250 generates a command value for each of the motors 230 constituting the robot 200 to be controlled according to a target trajectory generated in advance (step S258). Then, the robot controller 250 outputs each generated command value (step S260).
  • Robot control system (1) The first control device (100) and A second control device (250) for controlling the robot (200), which is network-connected to the first control device, is provided.
  • the first control device is A first program execution unit (152) that generates a command (158) for instructing the behavior of the robot (200) by executing the robot program (1108).
  • a first communication unit (108, 160, 162) for transmitting the command to the second control device is provided.
  • the second control device is A second communication unit (252, 280, 282) that receives the command transmitted from the first control device, and A robot control including a command value generation unit (290) that sequentially generates command values for driving each axis of the robot so as to realize the behavior instructed by the command from the first control device. system.
  • the second control device further includes a target trajectory generating unit (288) that generates a target trajectory of the robot according to the command from the first control device.
  • the robot control system according to configuration 1, wherein the command value generation unit sequentially generates the command values according to the target trajectory.
  • the first control device further includes a second program execution unit (150) that periodically generates an output value given to the second control device by executing the IEC program (1104).
  • the first communication unit transmits the output value and the command to the second control device.
  • the robot control system according to any one of configurations 1 to 3, wherein the second control device further includes a process execution unit (286) that executes a process according to the output value from the first control device.
  • the first program execution unit sequentially executes the robot program, and the first program execution unit executes the robot program sequentially.
  • the first communication unit periodically transmits a communication frame (40) including the output value, and the first communication unit periodically transmits the communication frame (40) including the output value.
  • the robot control system according to configuration 4 or 5, wherein the command is transmitted to the second control device using the plurality of communication frames.
  • the first program execution unit is configured to be able to interpret a plurality of programming languages, and generates the command according to a predetermined command system without depending on the programming language.
  • the robot control system according to item 1.
  • the first control device is network-connected to a plurality of the second control devices.
  • the robot control system according to any one of configurations 1 to 7, wherein the first communication unit transmits a command to each of the plurality of second control devices.
  • a control method in a robot control system (1) including a first control device (100) and a second control device (250) connected to the first control device via a network to control the robot (200). And A step (S152 to S160) in which the first control device executes a robot program (1108) to generate a command (158) instructing the behavior of the robot given to the second control device.
  • a control method including a first control device (100) and a second control device (250) connected to the first control device via a network to control the robot (200).
  • a step (S152 to S160) in which the first control device executes a robot program (1
  • a configuration is adopted in which the control device 100 and the robot controller 250 cooperate to control the behavior of the robot 200.
  • the processing load can be distributed.
  • the behavior of the plurality of robots 200 can be controlled even if the processing capacity of the control device 100 is not high.
  • the control device 100 can execute not only the process related to the behavior of the robot 200 but also another process. It is possible to increase the expandability of the system.
  • 1 robot control system 12 upper network, 20 field network, 40 communication frame, 42 data area, 44 output value area, 46 input value area, 50, 60 communication unit, 100 control device, 102, 262, 362, 402 processor, 104,266,366,404 main memory, 106 upper network controller, 108,252,352 field network controller, 110,270,410 storage, 112 memory card interface, 114 memory card, 116 local bus controller, 118,418 processor bus , 120, 420 USB controller, 122 local bus, 130 functional unit, 150 IEC program execution engine, 152 robot program execution engine, 154 robot program interpretation module, 156 command generation module, 158 commands, 160, 280 communication control module, 162, 282 communication driver, 164 external communication interface, 200 robot, 200A custom robot, 200B general-purpose robot, 210 arm part, 220 drive circuit, 230 motor, 250 robot controller, 260, 360 control processing circuit, 268,368 interface circuit, 284 robot Drive engine, 286 management program, 288 target trajectory generation module, 290 command value generation module, 2

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

This robot control system includes a first control device, and a second control device that is network-connected to the first control device and is used for controlling a robot. The first control device includes a first program execution unit that executes a robot program to generate a command for instructing a behavior of a robot, and a first communication unit that transmits the command to the second control device. The second control device includes a second communication unit that receives the command transmitted from the first control device, and a command value generation unit that sequentially generates command values for driving each shaft of the robot so as to carry out the behavior instructed by the command from the first control device.

Description

ロボット制御システムおよび制御方法Robot control system and control method
 本技術は、ロボット制御システムおよび制御方法に関する。 This technology relates to robot control systems and control methods.
 従来より、FA(Factory Automation)分野においては、ロボットが様々なアプリケーションに用いられている。 Conventionally, robots have been used for various applications in the FA (Factory Automation) field.
 一般的に、ロボットの制御には、所定のプログラミング言語で記述されたプログラムが用いられる。ロボットの制御をより簡素化する観点として、例えば、特開2018-196908号公報(特許文献1)は、ロボット言語を習得することなく、ロボットを使用した自動化設備を低コストで構築する構成を開示する。 Generally, a program written in a predetermined programming language is used to control the robot. From the viewpoint of further simplifying the control of the robot, for example, Japanese Patent Application Laid-Open No. 2018-196908 (Patent Document 1) discloses a configuration for constructing an automation facility using a robot at low cost without learning a robot language. do.
特開2018-196908号公報JP-A-2018-196908
 上述の先行技術文献に示される構成は、単に、ロボット言語により記述されたプログラムを作成するのではなく、ロボットコントローラに対するパラメータを入力することで、ロボットの動作を制御することで、構築コストを低減するものである。 The configuration shown in the above-mentioned prior art document reduces the construction cost by controlling the operation of the robot by inputting parameters to the robot controller, instead of simply creating a program written in the robot language. To do.
 しかしながら、実際の生産設備においては、複数のロボットが配置されることも多い。上述の先行技術文献に示される構成は、複数のロボットが配置される場合については、何ら想定していない。さらに、実際の生産設備は、ロボットだけではなく、様々な装置や機械が組み合わせられる。 However, in actual production equipment, multiple robots are often placed. The configuration shown in the above prior art document does not assume any case where a plurality of robots are arranged. Furthermore, the actual production equipment is not limited to robots, but various devices and machines are combined.
 本技術は、1または複数のロボットを含む生産設備に適したロボット制御システムを提供することを目的とする。 The purpose of this technology is to provide a robot control system suitable for production equipment including one or more robots.
 本技術のある実施の形態に係るロボット制御システムは、第1の制御装置と、第1の制御装置とネットワーク接続され、ロボットを制御するための第2の制御装置とを含む。第1の制御装置は、ロボットプログラムを実行することで、ロボットの挙動を指示するコマンドを生成する第1のプログラム実行部と、コマンドを第2の制御装置へ送信する第1の通信部とを含む。第2の制御装置は、第1の制御装置から送信されるコマンドを受信する第2の通信部と、第1の制御装置からのコマンドによって指示された挙動を実現するように、ロボットの各軸を駆動するための指令値を順次生成する指令値生成部とを含む。 The robot control system according to an embodiment of the present technology includes a first control device and a second control device that is network-connected to the first control device and controls the robot. The first control device includes a first program execution unit that generates a command instructing the behavior of the robot by executing a robot program, and a first communication unit that transmits a command to the second control device. include. The second control device is a second communication unit that receives a command transmitted from the first control device, and each axis of the robot so as to realize the behavior instructed by the command from the first control device. Includes a command value generator that sequentially generates command values for driving.
 この構成によれば、処理負荷を分散させることができるため、第1の制御装置の処理能力が高くなくても、1または複数のロボットの挙動を制御できる。また、ロボットの挙動を制御するために要求される第1の制御装置のリソースを相対的に小さくできるので、第1の制御装置において、ロボットの挙動に係る処理だけではなく、別の処理を実行させることができ、システムの拡張性を高めることができる。 According to this configuration, since the processing load can be distributed, the behavior of one or more robots can be controlled even if the processing capacity of the first control device is not high. Further, since the resource of the first control device required to control the behavior of the robot can be made relatively small, the first control device executes not only the process related to the behavior of the robot but also another process. It is possible to increase the expandability of the system.
 第2の制御装置は、第1の制御装置からのコマンドに従って、ロボットの目標軌道を生成する目標軌道生成部をさらに含んでいてもよい。指令値生成部は、目標軌道に従って指令値を順次生成してもよい。 The second control device may further include a target trajectory generating unit that generates a target trajectory of the robot according to a command from the first control device. The command value generation unit may sequentially generate command values according to the target trajectory.
 この構成によれば、第1の制御装置は、制御対象のロボットのキネマティクスなどを考慮することなく、ロボットの挙動を指示するコマンドのみを生成すればよいので、第1の制御装置における処理負荷を低減できる。また、第2の制御装置において目標軌道を生成することで、より高い精度でロボットを制御できる。 According to this configuration, the first control device only needs to generate a command instructing the behavior of the robot without considering the kinematics of the robot to be controlled, and therefore the processing load in the first control device. Can be reduced. Further, by generating the target trajectory in the second control device, the robot can be controlled with higher accuracy.
 第1の制御装置は、IECプログラムを実行することで、第2の制御装置に与える出力値を周期的に生成する第2のプログラム実行部をさらに含んでいてもよい。第1の通信部は、出力値およびコマンドを第2の制御装置へ送信してもよい。第2の制御装置は、第1の制御装置からの出力値に従って処理を実行する処理実行部をさらに含んでいてもよい。 The first control device may further include a second program execution unit that periodically generates an output value given to the second control device by executing the IEC program. The first communication unit may transmit the output value and the command to the second control device. The second control device may further include a process execution unit that executes the process according to the output value from the first control device.
 この構成によれば、第2の制御装置において、ロボットの制御だけではなく、シーケンス制御なども実装できる。 According to this configuration, not only robot control but also sequence control and the like can be implemented in the second control device.
 第1のプログラム実行部は、ロボットプログラムを逐次実行し、第2のプログラム実行部は、第1のプログラム実行部によるロボットプログラムの実行とは独立して、IECプログラムをサイクリック実行するようにしてもよい。 The first program execution unit executes the robot program sequentially, and the second program execution unit cyclically executes the IEC program independently of the execution of the robot program by the first program execution unit. May be good.
 この構成によれば、IECプログラムのサイクリック実行を維持しつつ、実行時間が不定のロボットプログラムも実行できる。 According to this configuration, it is possible to execute a robot program whose execution time is indefinite while maintaining cyclic execution of the IEC program.
 第1の通信部は、出力値を含む通信フレームを周期的に送信してもよい。コマンドは、複数の通信フレームを用いて第2の制御装置へ送信されてもよい。 The first communication unit may periodically transmit a communication frame including an output value. The command may be transmitted to the second control device using a plurality of communication frames.
 この構成によれば、生成されるコマンドのデータ長が長い場合であっても、第2の制御装置へコマンドを送信できる。 According to this configuration, the command can be transmitted to the second control device even when the data length of the generated command is long.
 第1のプログラム実行部は、複数のプログラミング言語を解釈可能に構成されるとともに、プログラミング言語に依存することなく、予め定められたコマンド体系に従うコマンドを生成してもよい。 The first program execution unit may be configured to be able to interpret a plurality of programming languages, and may generate commands according to a predetermined command system without depending on the programming language.
 この構成によれば、第2の制御装置が指令値を順次生成する処理を簡素化できる。
 第1の制御装置は、複数の第2の制御装置とネットワーク接続されていてもよい。第1の通信部は、複数の第2の制御装置へそれぞれコマンドを送信してもよい。
According to this configuration, it is possible to simplify the process in which the second control device sequentially generates command values.
The first control device may be network-connected to a plurality of second control devices. The first communication unit may send a command to each of the plurality of second control devices.
 この構成によれば、1つの第1の制御装置を用いて、複数のロボットを制御できる。
 第2の通信部は、制御対象のロボットに関する状態値を第1の制御装置へ送信してもよい。
According to this configuration, a plurality of robots can be controlled by using one first control device.
The second communication unit may transmit the state value related to the robot to be controlled to the first control device.
 この構成によれば、第1の制御装置は、ロボットに関する状態値に基づく各種処理を実現できる。 According to this configuration, the first control device can realize various processes based on the state values related to the robot.
 本技術の別の実施の形態に係る制御方法は、第1の制御装置と、第1の制御装置とネットワーク接続され、ロボットを制御するための第2の制御装置とを含むロボット制御システムに向けられる。制御方法は、第1の制御装置が、ロボットプログラムを実行することで、第2の制御装置に与えるロボットの挙動を指示するコマンドを生成するステップと、第1の制御装置が、コマンドを第2の制御装置へ送信するステップと、第2の制御装置が、第1の制御装置から送信されるコマンドを受信するステップと、第2の制御装置が、第1の制御装置からのコマンドによって指示された挙動を実現するように、ロボットの各軸を駆動するための指令値を順次生成するステップとを含む。 A control method according to another embodiment of the present technology is directed to a robot control system including a first control device and a second control device networked with the first control device to control the robot. Be done. The control method includes a step in which the first control device executes a robot program to generate a command instructing the behavior of the robot given to the second control device, and a second control device issues a command. The step of transmitting to the control device of the above, the step of the second control device receiving the command transmitted from the first control device, and the second control device being instructed by the command from the first control device. It includes a step of sequentially generating command values for driving each axis of the robot so as to realize the above behavior.
 本技術によれば、1または複数のロボットを含む生産設備に適したロボット制御システムを実現できる。 According to this technology, a robot control system suitable for production equipment including one or more robots can be realized.
本実施の形態に係るロボット制御システムの概略を示す模式図である。It is a schematic diagram which shows the outline of the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムの構成例を示す模式図である。It is a schematic diagram which shows the structural example of the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムを構成する制御装置のハードウェア構成例を示す模式図である。It is a schematic diagram which shows the hardware configuration example of the control device which comprises the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムを構成するロボットのハードウェア構成例を示す模式図である。It is a schematic diagram which shows the hardware configuration example of the robot which comprises the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムを構成するロボットの別のハードウェア構成例を示す模式図である。It is a schematic diagram which shows another hardware configuration example of the robot which comprises the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムを構成する操作ペンダントのハードウェア構成例を示す模式図である。It is a schematic diagram which shows the hardware configuration example of the operation pendant which constitutes the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。It is a schematic diagram which shows the hardware configuration example of the support device which comprises the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムにおけるロボットの挙動を制御するための機能構成の一例を示す模式図である。It is a schematic diagram which shows an example of the functional structure for controlling the behavior of a robot in the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムにおけるロボットの挙動を制御するためのデータ処理を概略する模式図である。It is a schematic diagram which outlines the data processing for controlling the behavior of a robot in the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムを構成する制御装置で実行されるIECプログラムおよびロボットプログラムの一例を示す図である。It is a figure which shows an example of the IEC program and the robot program executed by the control device which comprises the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムを構成する制御装置におけるプログラムの実行例を示すタイムチャートである。It is a time chart which shows the execution example of the program in the control device which comprises the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムで利用される通信フレームの一例を示す模式図である。It is a schematic diagram which shows an example of the communication frame used in the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムにおいてコマンドを複数の通信フレームに分割して送信する処理例を説明するための図である。It is a figure for demonstrating the processing example which divides and transmits a command into a plurality of communication frames in the robot control system which concerns on this Embodiment. 本実施の形態に係るロボット制御システムを構成する制御装置における処理手順を示すフローチャートである。It is a flowchart which shows the processing procedure in the control device which comprises the robot control system which concerns on this embodiment. 本実施の形態に係るロボット制御システムを構成するロボットコントローラにおける処理手順を示すフローチャートである。It is a flowchart which shows the processing procedure in the robot controller which comprises the robot control system which concerns on this embodiment.
 本技術の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 The embodiment of the present technology will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are designated by the same reference numerals and the description thereof will not be repeated.
 <A.適用例>
 まず、本技術が適用される場面の一例について説明する。図1は、本実施の形態に係るロボット制御システム1の概略を示す模式図である。
<A. Application example>
First, an example of a situation in which the present technology is applied will be described. FIG. 1 is a schematic diagram showing an outline of the robot control system 1 according to the present embodiment.
 図1を参照して、ロボット制御システム1は、制御装置100(第1の制御装置)と、制御装置100とネットワーク接続され、ロボット200を制御するためのロボットコントローラ250(第2の制御装置)とを含む。なお、制御装置100には、複数のロボットコントローラ250が接続されてもよい。 With reference to FIG. 1, the robot control system 1 is connected to the control device 100 (first control device) and the control device 100 via a network, and the robot controller 250 (second control device) for controlling the robot 200. And include. A plurality of robot controllers 250 may be connected to the control device 100.
 以下の説明では、主としてロボット200を制御するロボット制御システム1の構成例を示すが、ロボット制御システム1の制御対象はロボット200に限られるものではない。例えば、制御装置100は、ロボット200に加えて、ロボット200を含む生産設備を構成する様々な装置や機械を制御することができる。さらに、制御装置100は、ロボット200の動作を監視するセーフティコントローラと連係してもよい。すなわち、本明細書において、「ロボット制御システム」との用語は、ロボットを制御する機能を有しているシステムという意味で用いられ、ロボット以外を制御することを排除するものではない。 In the following description, a configuration example of the robot control system 1 that mainly controls the robot 200 will be shown, but the control target of the robot control system 1 is not limited to the robot 200. For example, the control device 100 can control various devices and machines constituting the production equipment including the robot 200 in addition to the robot 200. Further, the control device 100 may be linked with a safety controller that monitors the operation of the robot 200. That is, in the present specification, the term "robot control system" is used to mean a system having a function of controlling a robot, and does not exclude controlling other than the robot.
 制御装置100は、ロボットプログラム1108を実行することで、ロボット200の挙動を指示するコマンド158を生成するロボットプログラム実行エンジン152(第1のプログラム実行部)と、コマンド158をロボットコントローラ250へ送信する通信部50(後述する、フィールドネットワークコントローラ108、通信制御モジュール160、通信ドライバ162などで構成)とを有している。 The control device 100 transmits the robot program execution engine 152 (first program execution unit) that generates a command 158 instructing the behavior of the robot 200 and the command 158 to the robot controller 250 by executing the robot program 1108. It has a communication unit 50 (composed of a field network controller 108, a communication control module 160, a communication driver 162, etc., which will be described later).
 ロボットコントローラ250は、制御装置100から送信されるコマンド158を受信する通信部60(後述する、フィールドネットワークコントローラ252、通信制御モジュール280、通信ドライバ282などで構成)と、制御装置100からのコマンド158によって指示された挙動を実現するように、ロボット200の各軸を駆動するための指令値を順次生成する指令値生成モジュール290(指令値生成部)とを有している。 The robot controller 250 includes a communication unit 60 (consisting of a field network controller 252, a communication control module 280, a communication driver 282, etc., which will be described later) for receiving a command 158 transmitted from the control device 100, and a command 158 from the control device 100. It has a command value generation module 290 (command value generation unit) that sequentially generates command values for driving each axis of the robot 200 so as to realize the behavior instructed by.
 なお、ロボット200の軸は、関節(ジョイント)を構成することもあるので、以下の説明では、ロボット200の「軸または関節」とも称す。すなわち、本明細書において、ロボット200の「軸」との用語は、軸および関節を含む意味で用いられる。 Since the axis of the robot 200 may form a joint, it is also referred to as the "axis or joint" of the robot 200 in the following description. That is, in the present specification, the term "axis" of the robot 200 is used to include an axis and a joint.
 本実施の形態に係るロボット制御システム1においては、制御装置100とロボットコントローラ250とが連係してロボット200の挙動を制御する。このような構成を採用することで、処理負荷を分散させることができる。その結果、制御装置100の処理能力が高くなくても、複数のロボット200の挙動を制御できる。また、ロボット200の挙動を制御するために要求される制御装置100のリソースを相対的に小さくできるので、制御装置100において、ロボット200の挙動に係る処理だけではなく、別の処理を実行させることができ、システムの拡張性を高めることができる。 In the robot control system 1 according to the present embodiment, the control device 100 and the robot controller 250 cooperate to control the behavior of the robot 200. By adopting such a configuration, the processing load can be distributed. As a result, the behavior of the plurality of robots 200 can be controlled even if the processing capacity of the control device 100 is not high. Further, since the resource of the control device 100 required to control the behavior of the robot 200 can be made relatively small, the control device 100 can execute not only the process related to the behavior of the robot 200 but also another process. It is possible to increase the expandability of the system.
 <B.システム構成例>
 次に、本実施の形態に係るロボット制御システム1の構成例について説明する。
<B. System configuration example>
Next, a configuration example of the robot control system 1 according to the present embodiment will be described.
 図2は、本実施の形態に係るロボット制御システム1の構成例を示す模式図である。図2を参照して、本実施の形態に係るロボット制御システム1は、制御装置100と、フィールドネットワーク20を介して制御装置100と接続された、1または複数のロボット200を含む。 FIG. 2 is a schematic diagram showing a configuration example of the robot control system 1 according to the present embodiment. With reference to FIG. 2, the robot control system 1 according to the present embodiment includes a control device 100 and one or more robots 200 connected to the control device 100 via a field network 20.
 ロボット200の各々は、ロボットコントローラ250により挙動が制御される。ロボットコントローラ250は、制御装置100とネットワーク接続され、ロボット200を制御する。より具体的には、ロボットコントローラ250は、制御装置100からの指令(後述するコマンド158)に従って、ロボット200を制御するための指令値を出力する。ロボット200としては、アプリケーションに応じて任意に作成される1または複数の軸または関節を有するカスタムロボット200Aが用いられてもよい。さらに、ロボット200としては、水平多関節(スカラ)ロボット、垂直多関節ロボット、パラレルリンクロボット、直交ロボットなどの任意の汎用ロボット200Bが用いられてもよい。 The behavior of each of the robots 200 is controlled by the robot controller 250. The robot controller 250 is connected to the control device 100 via a network to control the robot 200. More specifically, the robot controller 250 outputs a command value for controlling the robot 200 in accordance with a command from the control device 100 (command 158 described later). As the robot 200, a custom robot 200A having one or a plurality of axes or joints arbitrarily created according to an application may be used. Further, as the robot 200, any general-purpose robot 200B such as a horizontal articulated (scalar) robot, a vertical articulated robot, a parallel link robot, and a Cartesian robot may be used.
 フィールドネットワーク20には、I/Oユニット、セーフティI/Oユニット、セーフティコントローラなどの任意のデバイスが接続されてもよい。図2に示す構成例においては、フィールドネットワーク20には、ロボット200を操作するための操作ペンダント300が接続されている。 Any device such as an I / O unit, a safety I / O unit, and a safety controller may be connected to the field network 20. In the configuration example shown in FIG. 2, an operation pendant 300 for operating the robot 200 is connected to the field network 20.
 フィールドネットワーク20には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。 For the field network 20, EtherCAT (registered trademark), EtherNet / IP, and the like, which are protocols for industrial networks, can be used.
 制御装置100は、上位ネットワーク12を介して、サポート装置400と、表示装置500と、サーバ装置600とに接続されてもよい。上位ネットワーク12には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。 The control device 100 may be connected to the support device 400, the display device 500, and the server device 600 via the host network 12. For the upper network 12, a protocol for an industrial network, EtherNet / IP, or the like can be used.
 <C.ハードウェア構成例>
 次に、図2に示すロボット制御システム1を構成する主要装置のハードウェア構成例について説明する。
<C. Hardware configuration example>
Next, a hardware configuration example of the main device constituting the robot control system 1 shown in FIG. 2 will be described.
 (c1:制御装置100)
 図3は、本実施の形態に係るロボット制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
(C1: Control device 100)
FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 constituting the robot control system 1 according to the present embodiment. With reference to FIG. 3, the control device 100 includes a processor 102, a main memory 104, a storage 110, a memory card interface 112, an upper network controller 106, a field network controller 108, a local bus controller 116, and a USB. Includes a USB controller 120 that provides a (Universal Serial Bus) interface. These components are connected via the 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 operations, 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, expands it in the main memory 104, and executes it to realize a control operation for a 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 a volatile storage device such as a DRAM (Dynamic Random Access Memory) or a SRAM (Static Random Access Memory). The storage 110 is composed of, for example, a non-volatile storage device such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive).
 ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたIECプログラム1104などが格納される。IECプログラム1104は、シーケンス命令および/またはモーション命令を含み得る。 The storage 110 stores a system program 1102 for realizing basic functions, an IEC program 1104 created according to a control target, and the like. The IEC program 1104 may include sequence instructions and / or motion instructions.
 本明細書において、「IECプログラム」は、一般的なPLC(プログラマブルロジックコントローラ)で実行される処理を規定するプログラムという意味で用いられる。典型的には、IECプログラムは、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されるプログラムを意味する。但し、IECプログラムは、IEC61131-3で規定される言語以外のメーカ独自言語で記述されるプログラムを包含し得る。 In the present specification, the "IEC program" is used to mean a program that defines the processing executed by a general PLC (programmable logic controller). Typically, the IEC program means a program written in any language defined by IEC 61131-3 defined by the International Electrotechnical Commission (IEC). However, the IEC program may include a program written in a manufacturer's own language other than the language specified in IEC61131-3.
 ストレージ110には、ロボット200の挙動を制御するためのロボットプログラム1108および設定情報1109がさらに格納されてもよい。ロボットプログラム1108は、後述するように、所定のプログラミング言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述されてもよい。設定情報1109は、ロボット200に対する各種設定値(例えば、速度制限値、加速度制限値、ジャーク制限値など)を含む。 The storage 110 may further store the robot program 1108 and the setting information 1109 for controlling the behavior of the robot 200. As will be described later, the robot program 1108 may be written in a predetermined programming language (for example, a programming language for robot control such as V + language or a programming language related to NC control such as G code). The setting information 1109 includes various setting values (for example, speed limit value, acceleration limit value, jerk limit value, etc.) for the robot 200.
 メモリカードインターフェイス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 can read and write arbitrary data to and from the memory card 114.
 上位ネットワークコントローラ106は、上位ネットワークを介して、任意の情報処理装置(図2に示されるサポート装置400、表示装置500、サーバ装置600など)との間でデータを遣り取りする。 The upper network controller 106 exchanges data with an arbitrary information processing device (support device 400, display device 500, server device 600, etc. shown in FIG. 2) via the upper network.
 フィールドネットワークコントローラ108は、フィールドネットワーク20を介して、ロボット200などの任意のデバイスとの間でデータを遣り取りする。図2に示すシステム構成例において、フィールドネットワークコントローラ108は、フィールドネットワーク20の通信マスタとして機能してもよい。 The field network controller 108 exchanges data with an arbitrary device such as a robot 200 via the field network 20. In the system configuration example shown in FIG. 2, the field network controller 108 may function as a communication master of the field network 20.
 ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100を構成する任意の機能ユニット130との間でデータを遣り取りする。機能ユニット130は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニット、エンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。 The local bus controller 116 exchanges data with and from an arbitrary functional unit 130 constituting the control device 100 via the local bus 122. The functional unit 130 is, for example, an analog I / O unit that is in charge of input and / or output of an analog signal, a digital I / O unit that is in charge of input and / or output of a digital signal, a counter unit that receives pulses from an encoder, and the like. And so on.
 USBコントローラ120は、USB接続を介して、任意の情報処理装置との間でデータを遣り取りする。 The USB controller 120 exchanges data with an arbitrary information processing device via a USB connection.
 制御装置100が提供するロボット200の制御に係る機能については、後述する。
 (c2:ロボット200およびロボットコントローラ250)
 図4は、本実施の形態に係るロボット制御システム1を構成するロボット200のハードウェア構成例を示す模式図である。図4には、ロボット200としてカスタムロボット200Aを採用した場合の構成例を示す。
The functions related to the control of the robot 200 provided by the control device 100 will be described later.
(C2: Robot 200 and Robot Controller 250)
FIG. 4 is a schematic diagram showing a hardware configuration example of the robot 200 constituting the robot control system 1 according to the present embodiment. FIG. 4 shows a configuration example when a custom robot 200A is adopted as the robot 200.
 図4を参照して、カスタムロボット200Aは、ロボットコントローラ250に接続されている。なお、カスタムロボット200Aとロボットコントローラ250とは、一体的に構成されてもよいし、別体として構成されてもよい。 With reference to FIG. 4, the custom robot 200A is connected to the robot controller 250. The custom robot 200A and the robot controller 250 may be integrally configured or may be configured as separate bodies.
 カスタムロボット200Aは、軸または関節の数に応じたドライブ回路220と、ドライブ回路220により駆動されるモータ230とを含む。ドライブ回路220の各々は、コンバータ回路およびインバータ回路などを含み、ロボットコントローラ250からの指令値に従って指定された電圧・電流・位相の電力を生成して、モータ230へ供給する。 The custom robot 200A includes a drive circuit 220 according to the number of shafts or joints, and a motor 230 driven by the drive circuit 220. Each of the drive circuits 220 includes a converter circuit, an inverter circuit, and the like, generates electric power having a voltage, current, and phase specified according to a command value from the robot controller 250, and supplies the electric power to the motor 230.
 モータ230の各々は、カスタムロボット200Aを構成するアーム部210のいずれかの軸または関節と機械的に結合されており、モータ230の回転によって対応する軸または関節を駆動するアクチュエータである。 Each of the motors 230 is an actuator that is mechanically coupled to any shaft or joint of the arm portion 210 constituting the custom robot 200A and drives the corresponding shaft or joint by the rotation of the motor 230.
 モータ230としては、駆動するアーム部210に応じた特性のモータを採用できる。例えば、モータ230として、誘導型モータ、同期型モータ、永久磁石型モータ、リラクタンスモータのいずれを採用してもよいし、回転型だけではなく、リニアモータを採用してもよい。駆動対象のモータ230に応じたドライブ回路220が採用される。 As the motor 230, a motor having characteristics according to the arm portion 210 to be driven can be adopted. For example, as the motor 230, any of an inductive motor, a synchronous motor, a permanent magnet type motor, and a reluctance motor may be adopted, and not only a rotary type but also a linear motor may be adopted. A drive circuit 220 corresponding to the motor 230 to be driven is adopted.
 ロボットコントローラ250は、フィールドネットワークコントローラ252と、制御処理回路260とを含む。 The robot controller 250 includes a field network controller 252 and a control processing circuit 260.
 フィールドネットワークコントローラ252は、フィールドネットワーク20を介して、主として、制御装置100との間でデータを遣り取りする。 The field network controller 252 mainly exchanges data with the control device 100 via the field network 20.
 制御処理回路260は、カスタムロボット200Aを駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ266と、ストレージ270と、インターフェイス回路268とを含む。 The control processing circuit 260 executes arithmetic processing necessary for driving the custom robot 200A. As an example, the control processing circuit 260 includes a processor 262, a main memory 266, a storage 270, and an interface circuit 268.
 プロセッサ262は、カスタムロボット200Aを駆動するための制御演算を実行する。メインメモリ266は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ270は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 The processor 262 executes a control operation for driving the custom robot 200A. The main memory 266 is composed of, for example, a volatile storage device such as a DRAM or SRAM. The storage 270 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.
 ストレージ270には、ロボット200を駆動するための制御を実現するためのロボットシステムプログラム2702、および、ロボットコントローラ250での処理に必要な設定パラメータ群を含む設定情報2704が格納される。 The storage 270 stores a robot system program 2702 for realizing control for driving the robot 200, and setting information 2704 including a group of setting parameters required for processing by the robot controller 250.
 インターフェイス回路268は、それぞれのドライブ回路220に対して、それぞれ指令値を与える。インターフェイス回路268とドライブ回路220との間は、ハードワイヤーで電気的に接続されていてもよいし、データリンクで接続されていてもよい。 The interface circuit 268 gives a command value to each drive circuit 220. The interface circuit 268 and the drive circuit 220 may be electrically connected by a hard wire or may be connected by a data link.
 図5は、本実施の形態に係るロボット制御システム1を構成するロボット200の別のハードウェア構成例を示す模式図である。図5には、ロボット200として汎用ロボット200Bを採用した場合の構成例を示す。 FIG. 5 is a schematic diagram showing another hardware configuration example of the robot 200 constituting the robot control system 1 according to the present embodiment. FIG. 5 shows a configuration example when a general-purpose robot 200B is adopted as the robot 200.
 図5を参照して、汎用ロボット200Bは、1または複数のモータおよびドライブ回路(図示しない)が組み込まれており、汎用ロボット200Bの目標軌道が指示されると、指示された目標軌道に応じて1または複数のモータを駆動する。 With reference to FIG. 5, the general-purpose robot 200B incorporates one or more motors and drive circuits (not shown), and when the target trajectory of the general-purpose robot 200B is instructed, it corresponds to the instructed target trajectory. Drive one or more motors.
 図4に示すカスタムロボット200Aを駆動する場合には、軸または関節に対応するドライブ回路220に対してそれぞれ指令値を与える必要があるのに対して、図5に示す汎用ロボット200Bを駆動する場合には、汎用ロボット200Bの目標軌道を指示するだけでよい。 When driving the custom robot 200A shown in FIG. 4, it is necessary to give a command value to each of the drive circuits 220 corresponding to the shaft or the joint, whereas when driving the general-purpose robot 200B shown in FIG. It is only necessary to indicate the target trajectory of the general-purpose robot 200B.
 ロボットコントローラ250が提供するロボット200の制御に係る機能については、後述する。 The functions related to the control of the robot 200 provided by the robot controller 250 will be described later.
 (c3:操作ペンダント300)
 図6は、本実施の形態に係るロボット制御システム1を構成する操作ペンダント300のハードウェア構成例を示す模式図である。図6を参照して、操作ペンダント300は、フィールドネットワークコントローラ352と、制御処理回路360と、操作キー群380とを含む。
(C3: Operation pendant 300)
FIG. 6 is a schematic view showing a hardware configuration example of the operation pendant 300 constituting the robot control system 1 according to the present embodiment. With reference to FIG. 6, the operation pendant 300 includes a field network controller 352, a control processing circuit 360, and an operation key group 380.
 フィールドネットワークコントローラ352は、フィールドネットワーク20を介して、主として、制御装置100との間でデータを遣り取りする。 The field network controller 352 mainly exchanges data with the control device 100 via the field network 20.
 制御処理回路360は、プロセッサ362と、メインメモリ366と、ファームウェア370と、インターフェイス回路368とを含む。 The control processing circuit 360 includes a processor 362, a main memory 366, firmware 370, and an interface circuit 368.
 プロセッサ362は、ファームウェア370を実行することで、操作ペンダント300に必要な処理を実現する。メインメモリ366は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。 The processor 362 realizes the processing required for the operation pendant 300 by executing the firmware 370. The main memory 366 is composed of, for example, a volatile storage device such as a DRAM or SRAM.
 インターフェイス回路368は、操作キー群380との間で信号を遣り取りする。
 操作キー群380は、ユーザ操作を受け付ける入力装置である。操作キー群380は、入力状態を示すインジケータなどを含んでいてもよい。
The interface circuit 368 exchanges signals with the operation key group 380.
The operation key group 380 is an input device that accepts user operations. The operation key group 380 may include an indicator or the like indicating an input state.
 (c4:サポート装置400)
 図7は、本実施の形態に係るロボット制御システム1を構成するサポート装置400のハードウェア構成例を示す模式図である。サポート装置400は、一例として、汎用パソコンを用いて実現されてもよい。
(C4: Support device 400)
FIG. 7 is a schematic view showing a hardware configuration example of the support device 400 constituting the robot control system 1 according to the present embodiment. The support device 400 may be realized by using a general-purpose personal computer as an example.
 図7を参照して、サポート装置400は、プロセッサ402と、メインメモリ404と、入力部406と、表示部408と、ストレージ410と、光学ドライブ412と、USBコントローラ420と、通信コントローラ422とを含む。これらのコンポーネントは、プロセッサバス418を介して接続されている。 With reference to FIG. 7, the support device 400 includes a processor 402, a main memory 404, an input unit 406, a display unit 408, a storage 410, an optical drive 412, a USB controller 420, and a communication controller 422. include. These components are connected via the processor bus 418.
 プロセッサ402は、CPUやGPUなどで構成され、ストレージ410に格納されたプログラム(一例として、OS4102および開発プログラム4104)を読み出して、メインメモリ404に展開して実行することで、サポート装置400に必要な各種機能を実現する。 The processor 402 is required for the support device 400 by reading a program (OS 4102 and development program 4104, for example) stored in the storage 410, which is composed of a CPU, a GPU, or the like, and deploying and executing the program in the main memory 404. Various functions are realized.
 メインメモリ404は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ410は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。 The main memory 404 is composed of, for example, a volatile storage device such as a DRAM or SRAM. The storage 410 is composed of, for example, a non-volatile storage device such as an HDD or SSD.
 ストレージ410には、基本的な機能を実現するためのOS4102、および、開発環境を実現するための開発プログラム4104などが格納される。開発環境においては、制御装置100で実行されるプログラムの作成、プログラムのデバッグ、制御装置100の動作に係る設定、制御装置100に接続されるデバイスの動作に対する設定、フィールドネットワーク20に関する設定などが可能になっている。 The storage 410 stores an OS 4102 for realizing basic functions, a development program 4104 for realizing a development environment, and the like. In the development environment, it is possible to create a program executed by the control device 100, debug the program, set the operation of the control device 100, set the operation of the device connected to the control device 100, and set the field network 20. It has become.
 入力部406は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部408は、ディスプレイや各種インジケータなどで構成され、プロセッサ402による処理結果などを表示する。 The input unit 406 is composed of a keyboard, a mouse, etc., and accepts user operations. The display unit 408 is composed of a display, various indicators, and the like, and displays processing results and the like by the processor 402.
 USBコントローラ420は、USB接続を介して、制御装置100などとの間のデータを遣り取りする。通信コントローラ422は、上位ネットワーク12を介して、任意の情報処理装置との間でデータを遣り取りする。 The USB controller 420 exchanges data with the control device 100 and the like via the USB connection. The communication controller 422 exchanges data with an arbitrary information processing device via the host network 12.
 サポート装置400は、光学ドライブ412を有しており、コンピュータ読み取り可能なプログラムを非一過的に格納する記憶媒体414(例えば、DVD(Digital Versatile Disc)などの光学記憶媒体)から、その中に格納されたプログラムが読み取られてストレージ410などにインストールされる。 The support device 400 has an optical drive 412, and is stored in a storage medium 414 (for example, an optical storage medium such as a DVD (Digital Versatile Disc)) that temporarily stores a computer-readable program. The stored program is read and installed in the storage 410 or the like.
 サポート装置400で実行される開発プログラム4104などは、コンピュータ読み取り可能な記憶媒体414を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置400が提供する機能は、OS4102が提供するモジュールの一部を利用する形で実現される場合もある。 The development program 4104 or the like executed by the support device 400 may be installed via a computer-readable storage medium 414, or may be installed by downloading from a server device or the like on the network. Further, the function provided by the support device 400 according to the present embodiment may be realized by using a part of the modules provided by the OS 4102.
 なお、ロボット制御システム1の稼動中において、サポート装置400は、制御装置100から取り外されていてもよい。 Note that the support device 400 may be removed from the control device 100 while the robot control system 1 is in operation.
 (c5:表示装置500)
 本実施の形態に係るロボット制御システム1を構成する表示装置500は、一例として、汎用パソコンを用いて実現されてもよい。表示装置500の基本的なハードウェア構成例は、図7に示すサポート装置400のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。
(C5: Display device 500)
The display device 500 constituting the robot control system 1 according to the present embodiment may be realized by using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 500 is the same as the hardware configuration example of the support device 400 shown in FIG. 7, detailed description is not given here.
 (c6:サーバ装置600)
 本実施の形態に係るロボット制御システム1を構成するサーバ装置600は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置600の基本的なハードウェア構成例は、図7に示すサポート装置400のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。
(C6: Server device 600)
The server device 600 constituting the robot control system 1 according to the present embodiment may be realized by using a general-purpose personal computer as an example. Since the basic hardware configuration example of the server device 600 is the same as the hardware configuration example of the support device 400 shown in FIG. 7, detailed description is not given here.
 (c7:その他の形態)
 図3~図7には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
(C7: Other forms)
FIGS. 3 to 7 show configuration examples in which necessary functions are provided by executing a program by one or more processors, and some or all of these provided functions are provided by dedicated hardware. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
 制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。さらに、制御装置100にサポート装置400や表示装置500などの機能を統合した構成を採用してもよい。 The main part of the control device 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS. Further, a configuration in which functions such as a support device 400 and a display device 500 are integrated with the control device 100 may be adopted.
 <D.機能構成例>
 ロボット200を制御するための機能構成の一例について説明する。
<D. Function configuration example>
An example of the functional configuration for controlling the robot 200 will be described.
 図8は、本実施の形態に係るロボット制御システム1におけるロボット200の挙動を制御するための機能構成の一例を示す模式図である。図8を参照して、制御装置100と1または複数のロボットコントローラ250との間で、ロボット200を制御するためのコマンド158などが遣り取りされる。 FIG. 8 is a schematic diagram showing an example of a functional configuration for controlling the behavior of the robot 200 in the robot control system 1 according to the present embodiment. With reference to FIG. 8, a command 158 or the like for controlling the robot 200 is exchanged between the control device 100 and one or a plurality of robot controllers 250.
 制御装置100は、IECプログラム実行エンジン150と、ロボットプログラム実行エンジン152と、通信制御モジュール160と、通信ドライバ162と、外部通信インターフェイス164とを含む。これらのエレメントは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現してもよい。 The control device 100 includes an IEC program execution engine 150, a robot program execution engine 152, a communication control module 160, a communication driver 162, and an external communication interface 164. These elements may typically be realized by the processor 102 of the control device 100 executing the system program 1102.
 IECプログラム実行エンジン150(第2のプログラム実行部)は、IECプログラム1104を実行することで、ロボットコントローラ250に与える出力値を周期的に生成する。より具体的には、IECプログラム実行エンジン150は、IECプログラム1104を所定の制御周期毎にサイクリック実行する。制御装置100の制御周期としては、典型的には、数百μsec~数100msec程度が想定される。IECプログラム実行エンジン150は、IECプログラム1104の実行に従って、内部コマンド(例えば、コマンド158の送信開始および送信停止など)をロボットプログラム実行エンジン152へ出力し、および/または、ロボットプログラム実行エンジン152から状態値(例えば、ロボットプログラム実行エンジン152が実行しているロボットプログラム1108の状態など)を取得する。 The IEC program execution engine 150 (second program execution unit) periodically generates an output value given to the robot controller 250 by executing the IEC program 1104. More specifically, the IEC program execution engine 150 cyclically executes the IEC program 1104 at predetermined control cycles. The control cycle of the control device 100 is typically assumed to be about several hundred μsec to several hundred msec. The IEC program execution engine 150 outputs an internal command (for example, transmission start and transmission stop of the command 158) to the robot program execution engine 152 according to the execution of the IEC program 1104, and / or the state from the robot program execution engine 152. The value (for example, the state of the robot program 1108 being executed by the robot program execution engine 152) is acquired.
 ロボットプログラム実行エンジン152(第1のプログラム実行部)は、ロボットプログラム1108を実行することで、ロボット200の挙動を指示するコマンド158を生成する。すなわち、ロボットプログラム実行エンジン152は、ロボットプログラム1108を逐次実行して、1または複数のロボットコントローラ250に対して、ロボット200を制御するためのコマンド158などを送信する。より具体的には、ロボットプログラム実行エンジン152は、ロボットプログラム解釈モジュール154と、コマンド生成モジュール156とを含む。 The robot program execution engine 152 (first program execution unit) generates a command 158 instructing the behavior of the robot 200 by executing the robot program 1108. That is, the robot program execution engine 152 sequentially executes the robot program 1108, and transmits a command 158 or the like for controlling the robot 200 to one or a plurality of robot controllers 250. More specifically, the robot program execution engine 152 includes a robot program interpretation module 154 and a command generation module 156.
 ロボットプログラム解釈モジュール154は、ロボットプログラム1108を順次読み込んでパースし、パースにより得られた内部コマンドをコマンド生成モジュール156へ出力する。ロボットプログラム解釈モジュール154は、ロボットプログラム1108に含まれるプログラミング言語により記述されたロボット200の挙動に係る命令に加えて、信号の入出力、ファイルアクセスおよび通信に係る命令も解釈できる。 The robot program interpretation module 154 sequentially reads and parses the robot program 1108, and outputs the internal command obtained by the parse to the command generation module 156. The robot program interpretation module 154 can interpret instructions related to signal input / output, file access, and communication in addition to instructions related to the behavior of the robot 200 described in the programming language included in the robot program 1108.
 ロボットプログラム解釈モジュール154によるロボットプログラム1108の読み込み開始や停止などは、コマンド生成モジュール156により制御されてもよい。 The start and stop of reading the robot program 1108 by the robot program interpretation module 154 may be controlled by the command generation module 156.
 コマンド生成モジュール156は、ロボットプログラム解釈モジュール154からの内部コマンドに従って、ロボットコントローラ250の各々に対するコマンド158を生成する。 The command generation module 156 generates commands 158 for each of the robot controllers 250 according to internal commands from the robot program interpretation module 154.
 コマンド生成モジュール156は、接続されている1または複数のロボットコントローラ250のホストとして機能する。より具体的には、コマンド生成モジュール156は、IECプログラム実行エンジン150との間で遣り取りされる内部コマンド、および/または、外部通信インターフェイス164を介してサポート装置400との間で遣り取りされる内部コマンドに応じて、ロボットプログラム解釈モジュール154でのロボットプログラム1108の実行の開始および停止を制御するとともに、ロボットコントローラ250に対するコマンド158の生成の開始および停止を制御する。 The command generation module 156 functions as a host for one or more connected robot controllers 250. More specifically, the command generation module 156 is an internal command exchanged with the IEC program execution engine 150 and / or an internal command exchanged with the support device 400 via the external communication interface 164. In response to this, the robot program interpretation module 154 controls the start and stop of execution of the robot program 1108, and also controls the start and stop of the generation of the command 158 for the robot controller 250.
 コマンド生成モジュール156は、ロボットコントローラ250から状態値およびエラーなどの情報を収集するようにしてもよい。 The command generation module 156 may collect information such as state values and errors from the robot controller 250.
 説明の便宜上、ロボットプログラム解釈モジュール154と、コマンド生成モジュール156とを分離した構成例を示すが、これらのモジュールを分離することなく、一体的に実装してもよい。 For convenience of explanation, a configuration example in which the robot program interpretation module 154 and the command generation module 156 are separated is shown, but these modules may be integrally mounted without being separated.
 通信制御モジュール160および通信ドライバ162は、コマンド158をロボットコントローラ250へ送信する通信部に相当する。通信制御モジュール160および通信ドライバ162は、IECプログラム実行エンジン150からの出力値およびロボットプログラム実行エンジン152からのコマンド158をロボットコントローラ250へ送信する。 The communication control module 160 and the communication driver 162 correspond to a communication unit that transmits a command 158 to the robot controller 250. The communication control module 160 and the communication driver 162 transmit the output value from the IEC program execution engine 150 and the command 158 from the robot program execution engine 152 to the robot controller 250.
 通信制御モジュール160は、接続されている1または複数のロボットコントローラ250との間のデータの遣り取りを管理する。通信制御モジュール160は、接続されているロボットコントローラ250毎にデータ通信を管理する通信インスタンスを生成し、生成した通信インスタンスを用いてデータ通信を管理するようにしてもよい。 The communication control module 160 manages the exchange of data with one or a plurality of connected robot controllers 250. The communication control module 160 may generate a communication instance that manages data communication for each connected robot controller 250, and may manage data communication using the generated communication instance.
 通信ドライバ162は、フィールドネットワークコントローラ108(図3参照)を利用して、接続されている1または複数のロボットコントローラ250との間でデータ通信を行う内部インターフェイスである。 The communication driver 162 is an internal interface that uses the field network controller 108 (see FIG. 3) to perform data communication with one or a plurality of connected robot controllers 250.
 ロボットコントローラ250の各々は、通信制御モジュール280と、通信ドライバ282と、ロボット駆動エンジン284と、信号出力ドライバ292とを含む。これらのエレメントは、典型的には、ロボットコントローラ250のプロセッサ262(制御処理回路260)がロボットシステムプログラム2702を実行することで実現してもよい。 Each of the robot controllers 250 includes a communication control module 280, a communication driver 282, a robot drive engine 284, and a signal output driver 292. These elements may typically be realized by the processor 262 (control processing circuit 260) of the robot controller 250 executing the robot system program 2702.
 通信制御モジュール280は、接続されている制御装置100との間のデータの遣り取りを管理する。通信制御モジュール280は、接続されている制御装置100との間でデータ通信を管理する通信インスタンスを生成し、生成した通信インスタンスを用いてデータ通信を管理するようにしてもよい。 The communication control module 280 manages the exchange of data with the connected control device 100. The communication control module 280 may generate a communication instance that manages data communication with the connected control device 100, and may manage data communication using the generated communication instance.
 通信ドライバ282は、フィールドネットワークコントローラ252(図4参照)を利用して、接続されている制御装置100との間でデータ通信を行う内部インターフェイスである。 The communication driver 282 is an internal interface that performs data communication with the connected control device 100 by using the field network controller 252 (see FIG. 4).
 ロボット駆動エンジン284は、制御装置100からのコマンド158に従って、制御対象のロボット200(含:カスタムロボット200Aおよび/または汎用ロボット200B)を駆動するための処理を実行する。より具体的には、ロボット駆動エンジン284は、管理モジュール286と、目標軌道生成モジュール288と、指令値生成モジュール290とを含む。 The robot drive engine 284 executes a process for driving the robot 200 to be controlled (including the custom robot 200A and / or the general-purpose robot 200B) in accordance with the command 158 from the control device 100. More specifically, the robot drive engine 284 includes a management module 286, a target trajectory generation module 288, and a command value generation module 290.
 管理モジュール286は、制御装置100からの出力値に従って処理を実行する処理実行部に相当する。より具体的には、管理モジュール286は、制御装置100からの出力値に従って、制御モードや、コマンド158から目標軌道の生成の開始/終了などを管理する。 The management module 286 corresponds to a processing execution unit that executes processing according to an output value from the control device 100. More specifically, the management module 286 manages the control mode, the start / end of the generation of the target trajectory from the command 158, and the like according to the output value from the control device 100.
 目標軌道生成モジュール288(目標軌道生成部)は、制御装置100からのコマンド158に従って、制御対象のロボット200(含:カスタムロボット200Aおよび/または汎用ロボット200B)の目標軌道を生成する。生成される目標軌道は、典型的には、ロボット200の先端部の時間毎の位置(時間に対する位置の変化)、および/または、ロボット200の先端部の時間毎の速度(時間に対する速度の変化)などを含む。 The target trajectory generation module 288 (target trajectory generation unit) generates a target trajectory of the robot 200 to be controlled (including: custom robot 200A and / or general-purpose robot 200B) according to the command 158 from the control device 100. The generated target trajectory is typically the hourly position of the tip of the robot 200 (change in position with respect to time) and / or the hourly velocity of the tip of the robot 200 (change in velocity with respect to time). ) Etc. are included.
 目標軌道生成モジュール288は、生成する目標軌道を指令値生成モジュール290へ出力してもよいし(典型的には、図4に示すカスタムロボット200Aを駆動する場合)、信号出力ドライバ292を介してロボット200へ直接出力してもよい(典型的には、図5に示す汎用ロボット200Bを駆動する場合)。 The target trajectory generation module 288 may output the generated target trajectory to the command value generation module 290 (typically when driving the custom robot 200A shown in FIG. 4), or via the signal output driver 292. It may be output directly to the robot 200 (typically, when driving the general-purpose robot 200B shown in FIG. 5).
 指令値生成モジュール290は、制御装置100からのコマンド158によって指示された挙動を実現するように、ロボット200の各軸を駆動するための指令値を順次生成する。より具体的には、指令値生成モジュール290は、目標軌道生成モジュール288により生成される目標軌道に従って、制御対象のロボット200を構成するそれぞれのモータ230に対する指令値を順次生成する。指令値生成モジュール290は、指令値を所定の制御周期毎または所定のイベント毎に更新してもよい。 The command value generation module 290 sequentially generates command values for driving each axis of the robot 200 so as to realize the behavior instructed by the command 158 from the control device 100. More specifically, the command value generation module 290 sequentially generates command values for each of the motors 230 constituting the robot 200 to be controlled according to the target trajectory generated by the target trajectory generation module 288. The command value generation module 290 may update the command value at a predetermined control cycle or at a predetermined event.
 ロボットコントローラ250の目標軌道生成モジュール288の制御周期としては、典型的には、制御装置100の制御周期と同程度の数百μsec~数100msec程度が想定される。一方、ロボットコントローラ250の指令値生成モジュール290の制御周期は、目標軌道生成モジュール288の制御周期より高速である(例えば、数~10数倍程度)ことが想定される。 The control cycle of the target trajectory generation module 288 of the robot controller 250 is typically assumed to be about several hundred μsec to several hundred msec, which is about the same as the control cycle of the control device 100. On the other hand, it is assumed that the control cycle of the command value generation module 290 of the robot controller 250 is faster than the control cycle of the target trajectory generation module 288 (for example, about several to ten and several times).
 より具体的には、指令値生成モジュール290は、制御対象のロボット200のキネマティクスに基づいて、目標軌道に沿ってロボット200を駆動するためのモータ230に与えるそれぞれの指令値を算出する。指令値生成モジュール290は、モータ230に与える指令値として、目標位置(時間に対する位置/角度の変化)、目標速度(時間に対する速度/角速度の変化)、目標加速度(時間に対する加速度/角加速度の変化)、および/または、目標加速度(時間に対する加加速度/角加加速度の変化)などを算出する。 More specifically, the command value generation module 290 calculates each command value given to the motor 230 for driving the robot 200 along the target trajectory based on the kinematics of the robot 200 to be controlled. The command value generation module 290 sets the target position (change in position / angle with respect to time), target speed (change in speed / angular velocity with respect to time), and target acceleration (change in acceleration / angular acceleration with respect to time) as command values given to the motor 230. ) And / or the target acceleration (change in jerk / angular jerk with time) and so on.
 ロボット駆動エンジン284は、設定情報2704(図4参照)を参照して、目標軌道および/または指令値を算出するのに必要なパラメータを取得してもよい。 The robot drive engine 284 may acquire the parameters necessary for calculating the target trajectory and / or the command value with reference to the setting information 2704 (see FIG. 4).
 説明の便宜上、目標軌道生成モジュール288と、指令値生成モジュール290とを分離した構成例を示すが、これらのモジュールを分離することなく、一体的に実装してもよい。 For convenience of explanation, a configuration example in which the target trajectory generation module 288 and the command value generation module 290 are separated is shown, but these modules may be integrally mounted without being separated.
 信号出力ドライバ292は、インターフェイス回路268(図4参照)を利用して、指令値および/または目標軌道を、接続されている1または複数のドライブ回路220および/またはロボット200へ出力するための内部インターフェイスである。 The signal output driver 292 utilizes an interface circuit 268 (see FIG. 4) to output a command value and / or a target trajectory to one or more connected drive circuits 220 and / or a robot 200 internally. It is an interface.
 図9は、本実施の形態に係るロボット制御システム1におけるロボット200の挙動を制御するためのデータ処理を概略する模式図である。図9を参照して、制御装置100のロボットプログラム実行エンジン152には、所定のプログラミング言語で記述されたロボットプログラム1108が入力される。 FIG. 9 is a schematic diagram illustrating data processing for controlling the behavior of the robot 200 in the robot control system 1 according to the present embodiment. With reference to FIG. 9, the robot program 1108 written in a predetermined programming language is input to the robot program execution engine 152 of the control device 100.
 例えば、同一の生産ラインに複数のロボット200が配置されており、それぞれのロボット200が異なる作業を行うような生産設備においては、ロボットプログラム実行エンジン152には、ロボット200毎に異なるロボットプログラム1108が入力される。また、複数の同一の生産ラインが並列して配置されるとともに、それぞれの生産ラインに同一の作業を行うロボット200が配置されているような生産設備においては、ロボットプログラム実行エンジン152には、共通のロボットプログラム1108が入力されてもよい。但し、生成されるコマンド158は、ロボットコントローラ250へそれぞれ独立して送信されてもよい。 For example, in a production facility in which a plurality of robots 200 are arranged on the same production line and each robot 200 performs different work, the robot program execution engine 152 has a different robot program 1108 for each robot 200. Entered. Further, in a production facility in which a plurality of the same production lines are arranged in parallel and a robot 200 that performs the same work is arranged in each production line, the robot program execution engine 152 is common. Robot program 1108 may be input. However, the generated commands 158 may be independently transmitted to the robot controller 250.
 また、ロボットプログラム実行エンジン152には、異なるプログラミング言語(例えば、V+言語およびGコード)で記述された複数のロボットプログラム1108が入力されてもよい。ロボットプログラム実行エンジン152は、異なるプログラミング言語で記述されたロボットプログラム1108が入力された場合であっても、共通のコマンド体系に従って記述されたコマンド158を生成できる。 Further, a plurality of robot programs 1108 described in different programming languages (for example, V + language and G code) may be input to the robot program execution engine 152. The robot program execution engine 152 can generate a command 158 written according to a common command system even when a robot program 1108 written in a different programming language is input.
 このように、ロボットプログラム実行エンジン152は、複数のプログラミング言語を解釈可能に構成されてもよい。この場合、ロボットプログラム実行エンジン152は、プログラミング言語に依存することなく、予め定められたコマンド体系に従うコマンド158を生成するようにしてもよい。 In this way, the robot program execution engine 152 may be configured to be able to interpret a plurality of programming languages. In this case, the robot program execution engine 152 may generate a command 158 according to a predetermined command system without depending on a programming language.
 ロボットプログラム実行エンジン152(ロボットプログラム解釈モジュール154)は、入力されたロボットプログラム1108を解釈して内部コマンドを生成する。さらに、ロボットプログラム実行エンジン152(コマンド生成モジュール156)は、生成した内部コマンドに従って、ロボット200の挙動を制御するためのコマンド158を生成する。 The robot program execution engine 152 (robot program interpretation module 154) interprets the input robot program 1108 and generates an internal command. Further, the robot program execution engine 152 (command generation module 156) generates a command 158 for controlling the behavior of the robot 200 according to the generated internal command.
 なお、コマンド158は、接続されている1または複数のロボットコントローラ250に対してそれぞれ生成されてもよい。 Note that the command 158 may be generated for one or a plurality of connected robot controllers 250, respectively.
 生成されたコマンド158は、フィールドネットワーク20(図2参照)を介して、対応するロボットコントローラ250へ送信される。このように、制御装置100が複数のロボットコントローラ250とネットワーク接続されている場合には、制御装置100の通信部50(フィールドネットワークコントローラ108、通信制御モジュール160、通信ドライバ162などで構成)は、複数のロボットコントローラ250へそれぞれコマンド158を送信する。 The generated command 158 is transmitted to the corresponding robot controller 250 via the field network 20 (see FIG. 2). In this way, when the control device 100 is network-connected to the plurality of robot controllers 250, the communication unit 50 (composed of the field network controller 108, the communication control module 160, the communication driver 162, etc.) of the control device 100 is A command 158 is transmitted to each of the plurality of robot controllers 250.
 ロボットコントローラ250の目標軌道生成モジュール288は、制御装置100からのコマンド158に従って、目標軌道を生成する。生成される目標軌道は、そのまま汎用ロボット200Bへ出力されてもよい。すなわち、ロボットコントローラ250は、目標軌道を外部出力してもよい。 The target trajectory generation module 288 of the robot controller 250 generates a target trajectory according to the command 158 from the control device 100. The generated target trajectory may be output to the general-purpose robot 200B as it is. That is, the robot controller 250 may output the target trajectory to the outside.
 一方、ロボットコントローラ250の指令値生成モジュール290は、生成される目標軌道に従って、制御対象のロボット200を構成するそれぞれのモータ230に対する指令値を生成する。 On the other hand, the command value generation module 290 of the robot controller 250 generates command values for each of the motors 230 constituting the robot 200 to be controlled according to the generated target trajectory.
 なお、コマンド158を規定するコマンド体系としては、任意のものを採用できる。コマンド158の生成に係る処理を低減する観点からは、ロボットプログラム1108に記述される命令から容易に生成できるコマンド群を採用することが好ましい。 Any command system can be adopted as the command system for defining the command 158. From the viewpoint of reducing the processing related to the generation of the command 158, it is preferable to adopt a command group that can be easily generated from the instructions described in the robot program 1108.
 図9に示すように、本実施の形態に係るロボット制御システム1において、制御装置100は、1または複数のロボットプログラム1108からコマンド158を生成する。ロボットコントローラ250は、生成されるコマンド158に従って、制御対象のロボット200を駆動する。 As shown in FIG. 9, in the robot control system 1 according to the present embodiment, the control device 100 generates a command 158 from one or a plurality of robot programs 1108. The robot controller 250 drives the robot 200 to be controlled according to the generated command 158.
 <E.制御装置100で実行される処理>
 上述したように、ロボットプログラム1108は、ロボット200の挙動を制御するためのプログラムである。但し、ロボット200の挙動を制御するためには、例えば、ロボット200の動作を開始/停止するタイミング、ロボット200を動作させるための条件(例えば、前工程あるいは後工程にある設備との連係)、ロボット200に係るセーフティ条件などを制御する必要もある。
<E. Processing executed by the control device 100>
As described above, the robot program 1108 is a program for controlling the behavior of the robot 200. However, in order to control the behavior of the robot 200, for example, the timing for starting / stopping the operation of the robot 200, the conditions for operating the robot 200 (for example, the linkage with the equipment in the pre-process or the post-process), and so on. It is also necessary to control the safety conditions and the like related to the robot 200.
 そこで、制御装置100においては、ロボットプログラム1108だけではなく、IECプログラム1104も並列的に実行できるようにしてもよい。IECプログラム1104は、ロボット200の動作に係る状態値を収集して、ロボット200の動作を開始/停止するタイミングを決定するロジックなどを含んでいてもよい。 Therefore, in the control device 100, not only the robot program 1108 but also the IEC program 1104 may be executed in parallel. The IEC program 1104 may include logic for collecting state values related to the operation of the robot 200 and determining the timing for starting / stopping the operation of the robot 200.
 図10は、本実施の形態に係るロボット制御システム1を構成する制御装置100で実行されるIECプログラム1104およびロボットプログラム1108の一例を示す図である。 FIG. 10 is a diagram showing an example of an IEC program 1104 and a robot program 1108 executed by the control device 100 constituting the robot control system 1 according to the present embodiment.
 図10(A)には、ラダー・ダイアグラム(LD言語)で記述されたIECプログラム1104の例を示す。図10(A)に示すIECプログラム1104の例は、制御対象のロボット200の電源を投入する処理、および、制御対象のロボット200のキャリブレーションを実行する処理に関する命令を含む。 FIG. 10A shows an example of the IEC program 1104 described in a ladder diagram (LD language). The example of the IEC program 1104 shown in FIG. 10A includes instructions relating to a process of turning on the power of the robot 200 to be controlled and a process of executing calibration of the robot 200 to be controlled.
 なお、図10(A)に示すように、IECプログラム1104は、ファンクションブロックを要素として含んでいてもよい。さらに、IECプログラム1104は、ストラクチャード・テキスト(ST言語)で記述されたコードを含んでいてもよい。 As shown in FIG. 10A, the IEC program 1104 may include a function block as an element. In addition, the IEC program 1104 may include code written in structured text (ST language).
 図10(B)には、V+言語で記述されたロボットプログラム1108の例を示す。図10(B)に示すように、V+言語は、ロボット200の挙動を制御するための一種の高級言語である。 FIG. 10B shows an example of a robot program 1108 written in V + language. As shown in FIG. 10B, the V + language is a kind of high-level language for controlling the behavior of the robot 200.
 次に、制御装置100におけるIECプログラム1104およびロボットプログラム1108の並列実行について説明する。 Next, parallel execution of the IEC program 1104 and the robot program 1108 in the control device 100 will be described.
 図11は、本実施の形態に係るロボット制御システム1を構成する制御装置100におけるプログラムの実行例を示すタイムチャートである。図11に示すように、制御装置100においては、IECプログラム実行エンジン150ならびにロボットプログラム実行エンジン152(ロボットプログラム解釈モジュール154およびコマンド生成モジュール156)がそれぞれ処理を独立して実行する。 FIG. 11 is a time chart showing an execution example of a program in the control device 100 constituting the robot control system 1 according to the present embodiment. As shown in FIG. 11, in the control device 100, the IEC program execution engine 150 and the robot program execution engine 152 (robot program interpretation module 154 and command generation module 156) execute the processes independently.
 IECプログラム実行エンジン150は、IECプログラム1104を予め定められた制御周期T1毎にサイクリック実行(繰り返し実行)する。IECプログラム1104のサイクリック実行は、出力更新処理1502および入力更新処理1504を含む。 The IEC program execution engine 150 cyclically executes (repeatedly executes) the IEC program 1104 every predetermined control cycle T1. The cyclic execution of the IEC program 1104 includes an output update process 1502 and an input update process 1504.
 出力更新処理1502は、IECプログラム1104の実行により決定された出力値を、内部変数および/または対象のデバイスに反映する処理を含む。特に、フィールドネットワーク20を介して接続されているデバイスに対する出力値は、通信フレームに格納されてフィールドネットワーク20上に送出される。 The output update process 1502 includes a process of reflecting the output value determined by the execution of the IEC program 1104 on the internal variables and / or the target device. In particular, the output value for the device connected via the field network 20 is stored in the communication frame and transmitted on the field network 20.
 入力更新処理1504は、IECプログラム1104の実行に必要な入力値(状態値)を、内部変数および/または対象のデバイスから取得する処理を含む。特に、フィールドネットワーク20を介して接続されているデバイスからの入力値は、フィールドネットワーク20上を伝搬する通信フレームから取得される。 The input update process 1504 includes a process of acquiring an input value (state value) necessary for executing the IEC program 1104 from an internal variable and / or a target device. In particular, the input value from the device connected via the field network 20 is acquired from the communication frame propagating on the field network 20.
 通信制御モジュール160は、制御周期T1に同期して、フィールドネットワーク20上に通信フレームを送出するとともに、フィールドネットワーク20上を巡回して戻ってきた通信フレームを受信する。通信制御モジュール160は、IECプログラム実行エンジン150により生成された出力値、および/または、およびコマンド生成モジュール156により生成されたコマンド158を、通信フレームに格納するとともに、戻ってきた通信フレームに含まれる入力値(状態値)をIECプログラム実行エンジン150およびコマンド生成モジュール156が参照できるように保持する。 The communication control module 160 sends out a communication frame on the field network 20 in synchronization with the control cycle T1 and receives the communication frame that circulates on the field network 20 and returns. The communication control module 160 stores the output value generated by the IEC program execution engine 150 and / or the command 158 generated by the command generation module 156 in the communication frame and is included in the returned communication frame. The input value (state value) is held so that the IEC program execution engine 150 and the command generation module 156 can refer to it.
 コマンド生成モジュール156は、ロボットプログラム解釈モジュール154からの内部コマンドに従ってコマンド158を生成する。典型的には、コマンド生成モジュール156がコマンド158を生成するタイミングは、IECプログラム実行エンジン150からの出力値によって決定される。図11に示す例では、IECプログラム実行エンジン150からの出力値に応答して、IECプログラム実行エンジン150がコマンド158を生成する例を示す。IECプログラム実行エンジン150によるコマンド158の生成は、IECプログラム実行エンジン150の出力更新処理1502のタイミングと同期させてもよい。 The command generation module 156 generates a command 158 according to an internal command from the robot program interpretation module 154. Typically, the timing at which the command generation module 156 generates the command 158 is determined by the output value from the IEC program execution engine 150. In the example shown in FIG. 11, an example is shown in which the IEC program execution engine 150 generates a command 158 in response to an output value from the IEC program execution engine 150. The generation of the command 158 by the IEC program execution engine 150 may be synchronized with the timing of the output update process 1502 of the IEC program execution engine 150.
 ロボットプログラム解釈モジュール154は、典型的には、制御周期T1とは独立して、ロボットプログラム1108を実行する。ロボットプログラム解釈モジュール154によるロボットプログラム1108の実行の開始/停止は、コマンド生成モジュール156により制御されてもよい。 The robot program interpretation module 154 typically executes the robot program 1108 independently of the control cycle T1. The start / stop of execution of the robot program 1108 by the robot program interpretation module 154 may be controlled by the command generation module 156.
 図11に示すように、ロボットプログラム実行エンジン152は、ロボットプログラム1108を逐次実行する。IECプログラム実行エンジン150は、ロボットプログラム実行エンジン152によるロボットプログラム1108の実行とは独立して、IECプログラム1104をサイクリック実行する。 As shown in FIG. 11, the robot program execution engine 152 sequentially executes the robot program 1108. The IEC program execution engine 150 cyclically executes the IEC program 1104 independently of the execution of the robot program 1108 by the robot program execution engine 152.
 <F.通信フレーム>
 次に、フィールドネットワーク20上を伝搬する通信フレームの一例について説明する。フィールドネットワーク20としてEtherCATを採用する場合には、各種情報を格納した通信フレームがデバイス間を周期的に巡回することになる。このような通信フレームを採用することで、フィールドネットワーク20に接続されたデバイス間でデータの遣り取りが可能となる。
<F. Communication frame>
Next, an example of a communication frame propagating on the field network 20 will be described. When EtherCAT is adopted as the field network 20, a communication frame storing various information periodically circulates between the devices. By adopting such a communication frame, data can be exchanged between devices connected to the field network 20.
 図12は、本実施の形態に係るロボット制御システム1で利用される通信フレーム40の一例を示す模式図である。図12を参照して、一例として、通信フレーム40は、フィールドネットワーク20に接続されているデバイス毎(図2に示す構成例においては、ロボットコントローラ250)にデータ領域42が割り当てられている。データ領域42の各々は、出力値領域44および入力値領域46を含む。 FIG. 12 is a schematic diagram showing an example of the communication frame 40 used in the robot control system 1 according to the present embodiment. With reference to FIG. 12, as an example, in the communication frame 40, a data area 42 is allocated to each device connected to the field network 20 (robot controller 250 in the configuration example shown in FIG. 2). Each of the data areas 42 includes an output value area 44 and an input value area 46.
 出力値領域44には、制御装置100(IECプログラム実行エンジン150)により生成される出力値、および/または、制御装置100(ロボットプログラム実行エンジン152)により生成されるコマンド158が格納される。 The output value area 44 stores an output value generated by the control device 100 (IEC program execution engine 150) and / or a command 158 generated by the control device 100 (robot program execution engine 152).
 入力値領域46には、対応するデバイスにより取得または生成された情報が格納される。図2に示す構成例においては、ロボットコントローラ250の通信部60(フィールドネットワークコントローラ252、通信制御モジュール280、通信ドライバ282などで構成)は、制御対象のロボット200に関する状態値(例えば、ロボット200の動作モードや位置などの情報)を制御装置100へ送信する。 Information acquired or generated by the corresponding device is stored in the input value area 46. In the configuration example shown in FIG. 2, the communication unit 60 (composed of the field network controller 252, the communication control module 280, the communication driver 282, etc.) of the robot controller 250 has a state value (for example, of the robot 200) related to the robot 200 to be controlled. Information such as operation mode and position) is transmitted to the controller 100.
 出力値領域44には、制御装置100によりデータが書き込まれ、対応するデバイスによりデータが読み込まれる。一方、入力値領域46は、対応するデバイスによりデータが書き込まれ、制御装置100によりデータが読み込まれる。 Data is written in the output value area 44 by the control device 100, and the data is read by the corresponding device. On the other hand, in the input value area 46, data is written by the corresponding device, and data is read by the control device 100.
 図12に示される通信フレーム40を介して、制御装置100と1または複数のロボットコントローラ250との間で、データを遣り取りする。図12に示すように、制御装置100の通信部50(フィールドネットワークコントローラ108、通信制御モジュール160、通信ドライバ162などで構成)は、出力値を含む通信フレーム40を周期的に送信する。コマンド158は、複数の通信フレーム40を用いてロボットコントローラ250へ送信されてもよい。 Data is exchanged between the control device 100 and one or more robot controllers 250 via the communication frame 40 shown in FIG. As shown in FIG. 12, the communication unit 50 (composed of the field network controller 108, the communication control module 160, the communication driver 162, etc.) of the control device 100 periodically transmits the communication frame 40 including the output value. The command 158 may be transmitted to the robot controller 250 using a plurality of communication frames 40.
 なお、図12に示す通信フレーム40のデータ領域42の割り当ては一例であり、どのようにデータ領域を割り当ててもよい。例えば、フィールドネットワーク20に接続される一部のデバイスに対してのみデータ領域42を割り当てるようにしてもよい。また、データ領域42の各々は、出力値領域44および入力値領域46の一方のみを含むようにしてもよい。 Note that the allocation of the data area 42 of the communication frame 40 shown in FIG. 12 is an example, and the data area may be allocated in any way. For example, the data area 42 may be allocated only to some devices connected to the field network 20. Further, each of the data areas 42 may include only one of the output value area 44 and the input value area 46.
 通信フレーム40のデータサイズには制限があるので、制御装置100から特定のロボットコントローラ250へ送信されるコマンド158が対応する出力値領域44に収まらない可能性もある。一方で、ロボット200に対する指令値を更新する周期に比較して、通信フレーム40の通信周期は、相対的に短い(例えば、数msec~数10msec)。そのため、1つのコマンド158を複数の通信フレーム40を用いて送信しても、ロボット200を制御上での問題はない。そのため、制御装置100は、状況に応じて、1つのコマンド158を複数の通信フレーム40に分割して送信するようにしてもよい。 Since the data size of the communication frame 40 is limited, the command 158 transmitted from the control device 100 to the specific robot controller 250 may not fit in the corresponding output value area 44. On the other hand, the communication cycle of the communication frame 40 is relatively short (for example, several msec to several tens of msec) as compared with the cycle of updating the command value for the robot 200. Therefore, even if one command 158 is transmitted by using the plurality of communication frames 40, there is no problem in controlling the robot 200. Therefore, the control device 100 may divide one command 158 into a plurality of communication frames 40 and transmit the command 158 depending on the situation.
 図13は、本実施の形態に係るロボット制御システム1においてコマンド158を複数の通信フレーム40に分割して送信する処理例を説明するための図である。図13を参照して、コマンド158のデータ列を出力値領域44に収まるサイズに分割し、時間的に連続する複数の通信フレーム40にそれぞれ格納する。 FIG. 13 is a diagram for explaining a processing example in which the command 158 is divided into a plurality of communication frames 40 and transmitted in the robot control system 1 according to the present embodiment. With reference to FIG. 13, the data string of the command 158 is divided into sizes that fit in the output value area 44, and each is stored in a plurality of communication frames 40 that are continuous in time.
 図13に示す例では、コマンド158が3つの通信フレーム40を用いて送信される例を示す。ロボットコントローラ250は、複数の通信フレーム40からそれぞれ分割されたデータを取得して結合することで、コマンド158を復元する。 In the example shown in FIG. 13, a command 158 is transmitted using three communication frames 40. The robot controller 250 restores the command 158 by acquiring and combining the divided data from the plurality of communication frames 40.
 このように、必要に応じて、複数の通信フレーム40を用いてコマンド158を分割して送信する機能を採用することで、データ長の長いコマンド158であっても、対象のロボットコントローラ250へ送信できる。 In this way, by adopting the function of dividing and transmitting the command 158 using a plurality of communication frames 40 as necessary, even the command 158 having a long data length is transmitted to the target robot controller 250. can.
 <G.処理手順>
 次に、本実施の形態に係るロボット制御システム1における処理手順について説明する。
<G. Processing procedure>
Next, the processing procedure in the robot control system 1 according to the present embodiment will be described.
 図14は、本実施の形態に係るロボット制御システム1を構成する制御装置100における処理手順を示すフローチャートである。図14に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現してもよい。図14に示すように、制御装置100においては、IECプログラム実行エンジン150による処理と、ロボットプログラム実行エンジン152(ロボットプログラム解釈モジュール154およびコマンド生成モジュール156)による処理とが並列して実行される。 FIG. 14 is a flowchart showing a processing procedure in the control device 100 constituting the robot control system 1 according to the present embodiment. Each step shown in FIG. 14 may typically be realized by the processor 102 of the control device 100 executing the system program 1102. As shown in FIG. 14, in the control device 100, the processing by the IEC program execution engine 150 and the processing by the robot program execution engine 152 (robot program interpretation module 154 and command generation module 156) are executed in parallel.
 IECプログラム実行エンジン150に係る処理として、制御装置100は、次の制御周期が到来したか否かを判断する(ステップS100)。次の制御周期が到来していなければ(ステップS100においてNO)、制御装置100は、次の制御周期の到来まで処理を待つ。 As a process related to the IEC program execution engine 150, the control device 100 determines whether or not the next control cycle has arrived (step S100). If the next control cycle has not arrived (NO in step S100), the control device 100 waits for processing until the next control cycle arrives.
 次の制御周期が到来していれば(ステップS100においてYES)、制御装置100は、前の制御周期におけるIECプログラム1104の実行により決定された出力値を出力する(ステップS102)。なお、出力値を出力する処理は、ロボットプログラム実行エンジン152へ出力値を出力する処理を含む。 If the next control cycle has arrived (YES in step S100), the control device 100 outputs the output value determined by the execution of the IEC program 1104 in the previous control cycle (step S102). The process of outputting the output value includes the process of outputting the output value to the robot program execution engine 152.
 続いて、制御装置100は、最新の入力値を取得し(ステップS104)、取得した最新の入力値を利用して、IECプログラム1104を実行することで、出力値を決定する(ステップS106)。そして、ステップS100以下の処理が繰り返される。 Subsequently, the control device 100 acquires the latest input value (step S104), and determines the output value by executing the IEC program 1104 using the acquired latest input value (step S106). Then, the process of step S100 or less is repeated.
 一方、ロボットプログラム実行エンジン152に係る処理として、制御装置100は、ロボットプログラム1108の読み込み開始条件が成立しているか否かを判断する(ステップS150)。ロボットプログラム1108の読み込み開始条件は、IECプログラム実行エンジン150からの出力値、ロボットコントローラ250からの入力値、サポート装置400からの指示、その他の任意の情報を適宜組み合わせて規定されてもよい。 On the other hand, as a process related to the robot program execution engine 152, the control device 100 determines whether or not the reading start condition of the robot program 1108 is satisfied (step S150). The reading start condition of the robot program 1108 may be defined by appropriately combining an output value from the IEC program execution engine 150, an input value from the robot controller 250, an instruction from the support device 400, and other arbitrary information.
 ロボットプログラム1108の読み込み開始条件が成立していなければ(ステップS150においてのNOの場合)、制御装置100は、ステップS152およびS154の処理をスキップする。 If the reading start condition of the robot program 1108 is not satisfied (NO in step S150), the control device 100 skips the processes of steps S152 and S154.
 ロボットプログラム1108の読み込み開始条件が成立していれば(ステップS150においてのYESの場合)、制御装置100は、ロボットプログラム1108を実行することで、ロボットコントローラ250に与えるロボットの挙動を指示するコマンド158を生成するとともに、生成したコマンド158をロボットコントローラ250へ送信するステップ(ステップS152~S160)。 If the reading start condition of the robot program 1108 is satisfied (YES in step S150), the control device 100 executes the robot program 1108 to instruct the robot behavior given to the robot controller 250. Is generated, and the generated command 158 is transmitted to the robot controller 250 (steps S152 to S160).
 より具体的には、制御装置100は、対象のロボットプログラム1108を順次読み込み(ステップS152)、読み込んだロボットプログラム1108をパースして、内部コマンドを生成する(ステップS154)。 More specifically, the control device 100 sequentially reads the target robot program 1108 (step S152), parses the read robot program 1108, and generates an internal command (step S154).
 制御装置100は、コマンド158の出力開始条件が成立しているか否かを判断する(ステップS156)。コマンド158の出力開始条件は、IECプログラム実行エンジン150からの出力値、ロボットコントローラ250からの入力値、サポート装置400からの指示、その他の任意の情報を適宜組み合わせて規定されてもよい。 The control device 100 determines whether or not the output start condition of the command 158 is satisfied (step S156). The output start condition of the command 158 may be specified by appropriately combining an output value from the IEC program execution engine 150, an input value from the robot controller 250, an instruction from the support device 400, and any other information.
 制御装置100は、コマンド158の出力開始条件が成立していれば(ステップS156においてYESの場合)、制御装置100は、次の制御周期が到来したか否かを判断する(ステップS158)。次の制御周期が到来していなければ(ステップS158においてNO)、制御装置100は、次の制御周期の到来まで処理を待つ。 If the output start condition of the command 158 is satisfied (YES in step S156), the control device 100 determines whether or not the next control cycle has arrived (step S158). If the next control cycle has not arrived (NO in step S158), the control device 100 waits for processing until the next control cycle arrives.
 次の制御周期が到来していれば(ステップS158においてYES)、制御装置100は、予め生成されている内部コマンドに従ってコマンド158を生成して出力する(ステップS160)。 If the next control cycle has arrived (YES in step S158), the control device 100 generates and outputs a command 158 according to an internal command generated in advance (step S160).
 コマンド158の出力開始条件が成立していなければ(ステップS156においてNOの場合)、制御装置100は、ステップS158およびS160の処理をスキップする。 If the output start condition of the command 158 is not satisfied (NO in step S156), the control device 100 skips the processes of steps S158 and S160.
 そして、ステップS150以下の処理が繰り返される。
 図15は、本実施の形態に係るロボット制御システム1を構成するロボットコントローラ250における処理手順を示すフローチャートである。図15に示す各ステップは、ロボットコントローラ250のプロセッサ262(制御処理回路260)がロボットシステムプログラム2702を実行することで実現してもよい。
Then, the process of step S150 or less is repeated.
FIG. 15 is a flowchart showing a processing procedure in the robot controller 250 constituting the robot control system 1 according to the present embodiment. Each step shown in FIG. 15 may be realized by the processor 262 (control processing circuit 260) of the robot controller 250 executing the robot system program 2702.
 図15に示すように、ロボットコントローラ250においては、目標軌道生成モジュール288による処理と、指令値生成モジュール290による処理とが並列して実行される。 As shown in FIG. 15, in the robot controller 250, the processing by the target trajectory generation module 288 and the processing by the command value generation module 290 are executed in parallel.
 目標軌道生成モジュール288に係る処理として、ロボットコントローラ250は、制御装置100からコマンド158を受信したか否かを判断する(ステップS200)。制御装置100からコマンド158を受信していなければ(ステップS200においてNOの場合)、ロボットコントローラ250は、ステップS200の処理を繰り返す。 As a process related to the target trajectory generation module 288, the robot controller 250 determines whether or not a command 158 has been received from the control device 100 (step S200). If the command 158 has not been received from the control device 100 (NO in step S200), the robot controller 250 repeats the process of step S200.
 制御装置100からコマンド158を受信していれば(ステップS200においてYESの場合)、ロボットコントローラ250は、コマンド158のすべてを受信しているか否かを判断する(ステップS202)。コマンド158の一部のみを受信していれば(ステップS202においてNOの場合)、ロボットコントローラ250は、ステップS200以下の処理を繰り返す。 If the command 158 is received from the control device 100 (YES in step S200), the robot controller 250 determines whether or not all of the commands 158 have been received (step S202). If only a part of the command 158 is received (NO in step S202), the robot controller 250 repeats the processes of step S200 and the following.
 コマンド158のすべてを受信していれば(ステップS202においてYESの場合)、ロボットコントローラ250は、受信したコマンド158に従って目標軌道を生成する(ステップS204)。そして、ステップS200以下の処理が繰り返される。 If all of the commands 158 have been received (YES in step S202), the robot controller 250 generates a target trajectory according to the received command 158 (step S204). Then, the process of step S200 or less is repeated.
 一方、指令値生成モジュール290に係る処理として、ロボットコントローラ250は、次の制御周期が到来したか否かを判断する(ステップS250)。次の制御周期が到来していなければ(ステップS250においてNO)、ロボットコントローラ250は、次の制御周期の到来まで処理を待つ。 On the other hand, as a process related to the command value generation module 290, the robot controller 250 determines whether or not the next control cycle has arrived (step S250). If the next control cycle has not arrived (NO in step S250), the robot controller 250 waits for processing until the next control cycle arrives.
 次の制御周期が到来していれば(ステップS250においてYES)、ロボットコントローラ250は、予め定められた最新の入力値を通信フレーム40に格納して、制御装置100へ送信する(ステップS252)。そして、ロボットコントローラ250は、通信フレーム40を参照して、制御装置100から送信された最新の出力値を取得する(ステップS254)。そして、ロボットコントローラ250は、ロボット200に対する指令値の出力条件が成立しているか否かを判断する(ステップS256)。ロボット200に対する指令値の出力条件は、制御装置100から送信された最新の出力値、管理モジュール286が保持する状態値、ロボットコントローラ250で取得される状態値、その他の任意の情報を適宜組み合わせて規定されてもよい。 If the next control cycle has arrived (YES in step S250), the robot controller 250 stores the latest predetermined input value in the communication frame 40 and transmits it to the control device 100 (step S252). Then, the robot controller 250 refers to the communication frame 40 and acquires the latest output value transmitted from the control device 100 (step S254). Then, the robot controller 250 determines whether or not the output condition of the command value for the robot 200 is satisfied (step S256). The output condition of the command value for the robot 200 is an appropriate combination of the latest output value transmitted from the control device 100, the state value held by the management module 286, the state value acquired by the robot controller 250, and any other information. It may be specified.
 ロボット200に対する指令値の出力条件が成立していなければ(ステップS256においてNOの場合)、ロボットコントローラ250は、ステップS258およびS260の処理をスキップする。 If the output condition of the command value for the robot 200 is not satisfied (NO in step S256), the robot controller 250 skips the processes of steps S258 and S260.
 ロボット200に対する指令値の出力条件が成立していれば(ステップS256においてYESの場合)、ロボットコントローラ250は、制御装置100からのコマンド158によって指示された挙動を実現するように、ロボット200の各軸を駆動するための指令値を順次生成する(ステップS258~S260)。より具体的には、ロボットコントローラ250は、予め生成されている目標軌道に従って、制御対象のロボット200を構成するそれぞれのモータ230に対する指令値を生成する(ステップS258)。そして、ロボットコントローラ250は、生成したそれぞれの指令値を出力する(ステップS260)。 If the output condition of the command value for the robot 200 is satisfied (YES in step S256), the robot controller 250 will realize the behavior instructed by the command 158 from the control device 100. Command values for driving the shaft are sequentially generated (steps S258 to S260). More specifically, the robot controller 250 generates a command value for each of the motors 230 constituting the robot 200 to be controlled according to a target trajectory generated in advance (step S258). Then, the robot controller 250 outputs each generated command value (step S260).
 そして、ステップS250以下の処理が繰り返される。
 <H.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
Then, the process of step S250 or less is repeated.
<H. Addendum>
The present embodiment as described above includes the following technical ideas.
 [構成1]
 ロボット制御システム(1)であって、
 第1の制御装置(100)と、
 前記第1の制御装置とネットワーク接続され、ロボット(200)を制御するための第2の制御装置(250)とを備え、
 前記第1の制御装置は、
  ロボットプログラム(1108)を実行することで、前記ロボット(200)の挙動を指示するコマンド(158)を生成する第1のプログラム実行部(152)と、
  前記コマンドを前記第2の制御装置へ送信する第1の通信部(108,160,162)とを備え、
 前記第2の制御装置は、
  前記第1の制御装置から送信される前記コマンドを受信する第2の通信部(252,280,282)と、
  前記第1の制御装置からの前記コマンドによって指示された挙動を実現するように、前記ロボットの各軸を駆動するための指令値を順次生成する指令値生成部(290)とを備える、ロボット制御システム。
[Structure 1]
Robot control system (1)
The first control device (100) and
A second control device (250) for controlling the robot (200), which is network-connected to the first control device, is provided.
The first control device is
A first program execution unit (152) that generates a command (158) for instructing the behavior of the robot (200) by executing the robot program (1108).
A first communication unit (108, 160, 162) for transmitting the command to the second control device is provided.
The second control device is
A second communication unit (252, 280, 282) that receives the command transmitted from the first control device, and
A robot control including a command value generation unit (290) that sequentially generates command values for driving each axis of the robot so as to realize the behavior instructed by the command from the first control device. system.
 [構成2]
 前記第2の制御装置は、前記第1の制御装置からの前記コマンドに従って、前記ロボットの目標軌道を生成する目標軌道生成部(288)をさらに備え、
 前記指令値生成部は、前記目標軌道に従って前記指令値を順次生成する、構成1に記載のロボット制御システム。
[Structure 2]
The second control device further includes a target trajectory generating unit (288) that generates a target trajectory of the robot according to the command from the first control device.
The robot control system according to configuration 1, wherein the command value generation unit sequentially generates the command values according to the target trajectory.
 [構成3]
 前記第2の制御装置は、前記目標軌道を外部出力する、構成2に記載のロボット制御システム。
[Structure 3]
The robot control system according to configuration 2, wherein the second control device outputs the target trajectory to the outside.
 [構成4]
 前記第1の制御装置は、IECプログラム(1104)を実行することで、前記第2の制御装置に与える出力値を周期的に生成する第2のプログラム実行部(150)をさらに備え、
 前記第1の通信部は、前記出力値および前記コマンドを前記第2の制御装置へ送信し、
 前記第2の制御装置は、前記第1の制御装置からの前記出力値に従って処理を実行する処理実行部(286)をさらに備える、構成1~3のいずれか1項に記載のロボット制御システム。
[Structure 4]
The first control device further includes a second program execution unit (150) that periodically generates an output value given to the second control device by executing the IEC program (1104).
The first communication unit transmits the output value and the command to the second control device.
The robot control system according to any one of configurations 1 to 3, wherein the second control device further includes a process execution unit (286) that executes a process according to the output value from the first control device.
 [構成5]
 前記第1のプログラム実行部は、前記ロボットプログラムを逐次実行し、
 前記第2のプログラム実行部は、前記第1のプログラム実行部による前記ロボットプログラムの実行とは独立して、前記IECプログラムをサイクリック実行する、構成4に記載のロボット制御システム。
[Structure 5]
The first program execution unit sequentially executes the robot program, and the first program execution unit executes the robot program sequentially.
The robot control system according to configuration 4, wherein the second program execution unit cyclically executes the IEC program independently of execution of the robot program by the first program execution unit.
 [構成6]
 前記第1の通信部は、前記出力値を含む通信フレーム(40)を周期的に送信し、
 前記コマンドは、複数の前記通信フレームを用いて前記第2の制御装置へ送信される、構成4または5に記載のロボット制御システム。
[Structure 6]
The first communication unit periodically transmits a communication frame (40) including the output value, and the first communication unit periodically transmits the communication frame (40) including the output value.
The robot control system according to configuration 4 or 5, wherein the command is transmitted to the second control device using the plurality of communication frames.
 [構成7]
 前記第1のプログラム実行部は、複数のプログラミング言語を解釈可能に構成されるとともに、プログラミング言語に依存することなく、予め定められたコマンド体系に従う前記コマンドを生成する、構成1~6のいずれか1項に記載のロボット制御システム。
[Structure 7]
The first program execution unit is configured to be able to interpret a plurality of programming languages, and generates the command according to a predetermined command system without depending on the programming language. The robot control system according to item 1.
 [構成8]
 前記第1の制御装置は、複数の前記第2の制御装置とネットワーク接続されており、
 前記第1の通信部は、前記複数の第2の制御装置へそれぞれコマンドを送信する、構成1~7のいずれか1項に記載のロボット制御システム。
[Structure 8]
The first control device is network-connected to a plurality of the second control devices.
The robot control system according to any one of configurations 1 to 7, wherein the first communication unit transmits a command to each of the plurality of second control devices.
 [構成9]
 前記第2の通信部は、制御対象のロボットに関する状態値を前記第1の制御装置へ送信する、構成1~8のいずれか1項に記載のロボット制御システム。
[Structure 9]
The robot control system according to any one of configurations 1 to 8, wherein the second communication unit transmits a state value related to the robot to be controlled to the first control device.
 [構成10]
 第1の制御装置(100)と、前記第1の制御装置とネットワーク接続され、ロボット(200)を制御するための第2の制御装置(250)とを備えるロボット制御システム(1)における制御方法であって、
 前記第1の制御装置が、ロボットプログラム(1108)を実行することで、前記第2の制御装置に与えるロボットの挙動を指示するコマンド(158)を生成するステップ(S152~S160)と、
 前記第1の制御装置が、前記コマンドを前記第2の制御装置へ送信するステップ(S160)と、
 前記第2の制御装置が、前記第1の制御装置から送信される前記コマンドを受信するステップ(S200)と、
 前記第2の制御装置が、前記第1の制御装置からの前記コマンドによって指示された挙動を実現するように、前記ロボットの各軸を駆動するための指令値を順次生成するステップ(S258~S260)とを備える、制御方法。
[Structure 10]
A control method in a robot control system (1) including a first control device (100) and a second control device (250) connected to the first control device via a network to control the robot (200). And
A step (S152 to S160) in which the first control device executes a robot program (1108) to generate a command (158) instructing the behavior of the robot given to the second control device.
The step (S160) in which the first control device transmits the command to the second control device, and
The step (S200) in which the second control device receives the command transmitted from the first control device, and
Steps (S258 to S260) in which the second control device sequentially generates command values for driving each axis of the robot so as to realize the behavior instructed by the command from the first control device. ) And a control method.
 <I.利点>
 本実施の形態に係るロボット制御システム1においては、制御装置100とロボットコントローラ250とが連係してロボット200の挙動を制御する構成を採用する。このような構成を採用することで、処理負荷を分散させることができる。その結果、制御装置100の処理能力が高くなくても、複数のロボット200の挙動を制御できる。また、ロボット200の挙動を制御するために要求される制御装置100のリソースを相対的に小さくできるので、制御装置100において、ロボット200の挙動に係る処理だけではなく、別の処理を実行させることができ、システムの拡張性を高めることができる。
<I. Advantages>
In the robot control system 1 according to the present embodiment, a configuration is adopted in which the control device 100 and the robot controller 250 cooperate to control the behavior of the robot 200. By adopting such a configuration, the processing load can be distributed. As a result, the behavior of the plurality of robots 200 can be controlled even if the processing capacity of the control device 100 is not high. Further, since the resource of the control device 100 required to control the behavior of the robot 200 can be made relatively small, the control device 100 can execute not only the process related to the behavior of the robot 200 but also another process. It is possible to increase the expandability of the system.
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed this time should be considered to be exemplary in all respects and not restrictive. The scope of the present invention is shown by the scope of claims, not the above description, and is intended to include all modifications within the meaning and scope of the claims.
 1 ロボット制御システム、12 上位ネットワーク、20 フィールドネットワーク、40 通信フレーム、42 データ領域、44 出力値領域、46 入力値領域、50,60 通信部、100 制御装置、102,262,362,402 プロセッサ、104,266,366,404 メインメモリ、106 上位ネットワークコントローラ、108,252,352 フィールドネットワークコントローラ、110,270,410 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118,418 プロセッサバス、120,420 USBコントローラ、122 ローカルバス、130 機能ユニット、150 IECプログラム実行エンジン、152 ロボットプログラム実行エンジン、154 ロボットプログラム解釈モジュール、156 コマンド生成モジュール、158 コマンド、160,280 通信制御モジュール、162,282 通信ドライバ、164 外部通信インターフェイス、200 ロボット、200A カスタムロボット、200B 汎用ロボット、210 アーム部、220 ドライブ回路、230 モータ、250 ロボットコントローラ、260,360 制御処理回路、268,368 インターフェイス回路、284 ロボット駆動エンジン、286 管理モジュール、288 目標軌道生成モジュール、290 指令値生成モジュール、292 信号出力ドライバ、300 操作ペンダント、370 ファームウェア、380 操作キー群、400 サポート装置、406 入力部、408 表示部、412 光学ドライブ、414 記憶媒体、422 通信コントローラ、500 表示装置、600 サーバ装置、1102 システムプログラム、1104 IECプログラム、1108 ロボットプログラム、1109 設定情報、1502 出力更新処理、1504 入力更新処理、2702 ロボットシステムプログラム、2704 設定情報、4104 開発プログラム、T1 制御周期。 1 robot control system, 12 upper network, 20 field network, 40 communication frame, 42 data area, 44 output value area, 46 input value area, 50, 60 communication unit, 100 control device, 102, 262, 362, 402 processor, 104,266,366,404 main memory, 106 upper network controller, 108,252,352 field network controller, 110,270,410 storage, 112 memory card interface, 114 memory card, 116 local bus controller, 118,418 processor bus , 120, 420 USB controller, 122 local bus, 130 functional unit, 150 IEC program execution engine, 152 robot program execution engine, 154 robot program interpretation module, 156 command generation module, 158 commands, 160, 280 communication control module, 162, 282 communication driver, 164 external communication interface, 200 robot, 200A custom robot, 200B general-purpose robot, 210 arm part, 220 drive circuit, 230 motor, 250 robot controller, 260, 360 control processing circuit, 268,368 interface circuit, 284 robot Drive engine, 286 management program, 288 target trajectory generation module, 290 command value generation module, 292 signal output driver, 300 operation pendant, 370 firmware, 380 operation key group, 400 support device, 406 input unit, 408 display unit, 412 optical unit. Drive, 414 storage medium, 422 communication controller, 500 display device, 600 server device, 1102 system program, 1104 IEC program, 1108 robot program, 1109 setting information, 1502 output update process, 1504 input update process, 2702 robot system program, 2704. Setting information, 4104 development program, T1 control cycle.

Claims (10)

  1.  ロボット制御システムであって、
     第1の制御装置と、
     前記第1の制御装置とネットワーク接続され、ロボットを制御するための第2の制御装置とを備え、
     前記第1の制御装置は、
      ロボットプログラムを実行することで、前記ロボットの挙動を指示するコマンドを生成する第1のプログラム実行部と、
      前記コマンドを前記第2の制御装置へ送信する第1の通信部とを備え、
     前記第2の制御装置は、
      前記第1の制御装置から送信される前記コマンドを受信する第2の通信部と、
      前記第1の制御装置からの前記コマンドによって指示された挙動を実現するように、前記ロボットの各軸を駆動するための指令値を順次生成する指令値生成部とを備える、ロボット制御システム。
    It ’s a robot control system.
    The first control device and
    A second control device for controlling the robot, which is network-connected to the first control device, is provided.
    The first control device is
    A first program execution unit that generates a command for instructing the behavior of the robot by executing a robot program, and a first program execution unit.
    A first communication unit that transmits the command to the second control device is provided.
    The second control device is
    A second communication unit that receives the command transmitted from the first control device, and
    A robot control system including a command value generation unit that sequentially generates command values for driving each axis of the robot so as to realize the behavior instructed by the command from the first control device.
  2.  前記第2の制御装置は、前記第1の制御装置からの前記コマンドに従って、前記ロボットの目標軌道を生成する目標軌道生成部をさらに備え、
     前記指令値生成部は、前記目標軌道に従って前記指令値を順次生成する、請求項1に記載のロボット制御システム。
    The second control device further includes a target trajectory generating unit that generates a target trajectory of the robot according to the command from the first control device.
    The robot control system according to claim 1, wherein the command value generation unit sequentially generates the command values according to the target trajectory.
  3.  前記第2の制御装置は、前記目標軌道を外部出力する、請求項2に記載のロボット制御システム。 The robot control system according to claim 2, wherein the second control device outputs the target trajectory to the outside.
  4.  前記第1の制御装置は、IECプログラムを実行することで、前記第2の制御装置に与える出力値を周期的に生成する第2のプログラム実行部をさらに備え、
     前記第1の通信部は、前記出力値および前記コマンドを前記第2の制御装置へ送信し、
     前記第2の制御装置は、前記第1の制御装置からの前記出力値に従って処理を実行する処理実行部をさらに備える、請求項1~3のいずれか1項に記載のロボット制御システム。
    The first control device further includes a second program execution unit that periodically generates an output value given to the second control device by executing an IEC program.
    The first communication unit transmits the output value and the command to the second control device.
    The robot control system according to any one of claims 1 to 3, wherein the second control device further includes a processing execution unit that executes processing according to the output value from the first control device.
  5.  前記第1のプログラム実行部は、前記ロボットプログラムを逐次実行し、
     前記第2のプログラム実行部は、前記第1のプログラム実行部による前記ロボットプログラムの実行とは独立して、前記IECプログラムをサイクリック実行する、請求項4に記載のロボット制御システム。
    The first program execution unit sequentially executes the robot program, and the first program execution unit executes the robot program sequentially.
    The robot control system according to claim 4, wherein the second program execution unit cyclically executes the IEC program independently of the execution of the robot program by the first program execution unit.
  6.  前記第1の通信部は、前記出力値を含む通信フレームを周期的に送信し、
     前記コマンドは、複数の前記通信フレームを用いて前記第2の制御装置へ送信される、請求項4または5に記載のロボット制御システム。
    The first communication unit periodically transmits a communication frame containing the output value, and the first communication unit periodically transmits the communication frame.
    The robot control system according to claim 4 or 5, wherein the command is transmitted to the second control device using the plurality of communication frames.
  7.  前記第1のプログラム実行部は、複数のプログラミング言語を解釈可能に構成されるとともに、プログラミング言語に依存することなく、予め定められたコマンド体系に従う前記コマンドを生成する、請求項1~6のいずれか1項に記載のロボット制御システム。 Any of claims 1 to 6, wherein the first program execution unit is configured to be able to interpret a plurality of programming languages and generates the command according to a predetermined command system without depending on the programming language. The robot control system according to item 1.
  8.  前記第1の制御装置は、複数の前記第2の制御装置とネットワーク接続されており、
     前記第1の通信部は、前記複数の第2の制御装置へそれぞれコマンドを送信する、請求項1~7のいずれか1項に記載のロボット制御システム。
    The first control device is network-connected to a plurality of the second control devices.
    The robot control system according to any one of claims 1 to 7, wherein the first communication unit transmits a command to each of the plurality of second control devices.
  9.  前記第2の通信部は、制御対象のロボットに関する状態値を前記第1の制御装置へ送信する、請求項1~8のいずれか1項に記載のロボット制御システム。 The robot control system according to any one of claims 1 to 8, wherein the second communication unit transmits a state value related to the robot to be controlled to the first control device.
  10.  第1の制御装置と、前記第1の制御装置とネットワーク接続され、ロボットを制御するための第2の制御装置とを備えるロボット制御システムにおける制御方法であって、
     前記第1の制御装置が、ロボットプログラムを実行することで、前記第2の制御装置に与えるロボットの挙動を指示するコマンドを生成するステップと、
     前記第1の制御装置が、前記コマンドを前記第2の制御装置へ送信するステップと、
     前記第2の制御装置が、前記第1の制御装置から送信される前記コマンドを受信するステップと、
     前記第2の制御装置が、前記第1の制御装置からの前記コマンドによって指示された挙動を実現するように、前記ロボットの各軸を駆動するための指令値を順次生成するステップとを備える、制御方法。
    A control method in a robot control system including a first control device and a second control device that is network-connected to the first control device and for controlling a robot.
    A step in which the first control device executes a robot program to generate a command instructing the behavior of the robot given to the second control device.
    A step in which the first control device transmits the command to the second control device, and
    The step in which the second control device receives the command transmitted from the first control device, and
    The second control device includes a step of sequentially generating command values for driving each axis of the robot so as to realize the behavior instructed by the command from the first control device. Control method.
PCT/JP2020/047240 2020-03-13 2020-12-17 Robot control system and control method WO2021181800A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020044124A JP2021142625A (en) 2020-03-13 2020-03-13 Robot control system and control method
JP2020-044124 2020-03-13

Publications (1)

Publication Number Publication Date
WO2021181800A1 true WO2021181800A1 (en) 2021-09-16

Family

ID=77671575

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/047240 WO2021181800A1 (en) 2020-03-13 2020-12-17 Robot control system and control method

Country Status (2)

Country Link
JP (1) JP2021142625A (en)
WO (1) WO2021181800A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194409A (en) * 1998-12-25 2000-07-14 Kawasaki Heavy Ind Ltd Program converting device for robot
JP2004038876A (en) * 2002-07-08 2004-02-05 Hitachi Ltd Data format conversion method and device for program and the like, and controller management system using the data format conversion device
JP2006167825A (en) * 2004-12-14 2006-06-29 Yaskawa Electric Corp Motor driving device and emergency stop method of motor driving device
JP2012130977A (en) * 2010-12-20 2012-07-12 Toshiba Corp Robot control apparatus
JP2016000442A (en) * 2014-06-12 2016-01-07 セイコーエプソン株式会社 Robot, robotic system, and control device
JP2019061466A (en) * 2017-09-26 2019-04-18 オムロン株式会社 Control device
JP2020025992A (en) * 2018-08-09 2020-02-20 株式会社東芝 Control device, control method, and program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194409A (en) * 1998-12-25 2000-07-14 Kawasaki Heavy Ind Ltd Program converting device for robot
JP2004038876A (en) * 2002-07-08 2004-02-05 Hitachi Ltd Data format conversion method and device for program and the like, and controller management system using the data format conversion device
JP2006167825A (en) * 2004-12-14 2006-06-29 Yaskawa Electric Corp Motor driving device and emergency stop method of motor driving device
JP2012130977A (en) * 2010-12-20 2012-07-12 Toshiba Corp Robot control apparatus
JP2016000442A (en) * 2014-06-12 2016-01-07 セイコーエプソン株式会社 Robot, robotic system, and control device
JP2019061466A (en) * 2017-09-26 2019-04-18 オムロン株式会社 Control device
JP2020025992A (en) * 2018-08-09 2020-02-20 株式会社東芝 Control device, control method, and program

Also Published As

Publication number Publication date
JP2021142625A (en) 2021-09-24

Similar Documents

Publication Publication Date Title
US10606246B2 (en) Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle
JP6900863B2 (en) Control unit, control method and control program
EP3441831B1 (en) Information processing device, information processing method, and information processing program
WO2021181801A1 (en) Robot control system and control method
WO2021106467A1 (en) Control system, control device, and control method
US10814486B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
US20190095246A1 (en) Support device and non-transitory storage medium
WO2021181799A1 (en) Robot control system and control method
JP7310465B2 (en) Synchronous control device, synchronous control system, synchronous control method, and simulation device
WO2021181800A1 (en) Robot control system and control method
WO2021181798A1 (en) Robot control system and control method
JP6881174B2 (en) Control device and control method
WO2012124145A1 (en) Computation unit, assistance unit, assistance program, recording medium storing assistance program, and operation method in assistance device
JP7375632B2 (en) Control system and support equipment
WO2021145124A1 (en) Control device
WO2022162958A1 (en) Control device, program execution method, and program
WO2022162960A1 (en) Program generation device, program generation program, and program generation method
WO2022049805A1 (en) Control device, control system, and program
JP2022114753A (en) Control system, robot controller, and control method
JP2021114019A (en) Data processing 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: 20924020

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

Country of ref document: EP

Kind code of ref document: A1