WO2022162960A1 - Program generation device, program generation program, and program generation method - Google Patents

Program generation device, program generation program, and program generation method Download PDF

Info

Publication number
WO2022162960A1
WO2022162960A1 PCT/JP2021/009585 JP2021009585W WO2022162960A1 WO 2022162960 A1 WO2022162960 A1 WO 2022162960A1 JP 2021009585 W JP2021009585 W JP 2021009585W WO 2022162960 A1 WO2022162960 A1 WO 2022162960A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
robot
iec
user
target device
Prior art date
Application number
PCT/JP2021/009585
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 WO2022162960A1 publication Critical patent/WO2022162960A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine

Definitions

  • the present technology relates to a program generation device, a program generation program, and a program generation method.
  • robots are used for various applications.
  • Such applications require a program to be executed by a control device such as a PLC (Programmable Logic Controller) and a program for controlling the robot.
  • a control device such as a PLC (Programmable Logic Controller) and a program for controlling the robot.
  • Patent Document 1 discloses a programming device and the like for reducing operator work required to create an operation program for a robot.
  • Patent Document 2 discloses an arithmetic device and the like that can automatically generate cooperative motions of a plurality of robots in a short time.
  • the purpose of this technology is to provide a solution that can easily generate the necessary programs for applications that include robots.
  • a program generation device includes a drawing unit that virtually expresses a target device in a virtual space, an acquisition unit that acquires a specification of operation content of the target device by a user, and a specified operation. and a program generator for generating an IEC program and a robot program based on the contents.
  • the user can generate an IEC program and a robot program for operating the target device in the real environment only by designating the operation contents of the target device in the virtual space. Even a poor user can generate a program necessary for operation.
  • the acquisition unit may generate an action definition that specifies the specified action content.
  • the user only needs to specify the operation of the target device in the virtual space without being aware of the creation of the operation definition, so even users with little specialized knowledge can use it. Also, by generating an action definition that specifies the specified action content, the IEC program and the robot program can be generated more reliably.
  • the program generation device may further include a receiving unit that receives changes made by the user to the action definition.
  • the user can check the action definition that specifies the specified action content, and then make corrections or the like as necessary.
  • the program generation unit may further generate information that defines the execution order between the IEC program and the robot program. According to this configuration, it is possible to realize more accurate control when it is necessary to operate the robot and other mechanisms synchronously.
  • the information that defines the execution order between the IEC program and the robot program may include instructions for updating values referenced by the IEC program and the robot program. According to this configuration, in an environment where the IEC program and the robot program are executed in parallel, it is possible to advance the processing while mutually interlocking between the two programs.
  • the information that defines the execution order between the IEC program and the robot program may include a table that defines the timing of executing the IEC program and the robot program. According to this configuration, the execution order of the IEC program and the robot program can be defined explicitly.
  • the program generation device may further include a generation unit that generates information for virtually representing the target device in the virtual space from the design data of the target device. According to this configuration, the target device can be easily reproduced in the virtual space from design data such as CAD data.
  • the program generation device may further include a simulator that reproduces the motion of the target device based on the IEC program and the robot program. According to this configuration, it is possible to easily check the operation of the generated IEC program and robot program.
  • a program generation program provides a computer with a step of virtually representing a target device in a virtual space, a step of acquiring a user's specification of operation content of the target device, and a step of specifying A step of generating an IEC program and a robot program is executed based on the obtained operation contents.
  • a program generation method includes the steps of virtually representing a target device in a virtual space, acquiring a specification of operation content of the target device by a user, and performing the specified operation. and generating an IEC program and a robot program based on the content.
  • FIG. 1 is a schematic diagram showing main functions of a program generation device according to an embodiment
  • FIG. 1 is a schematic diagram outlining the system configuration of a control system according to an embodiment
  • FIG. FIG. 2 is a schematic diagram showing a hardware configuration example of a control device that configures the control system according to the present embodiment
  • FIG. 3 is a schematic diagram showing a hardware configuration example of a robot controller that configures the control system according to the present embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a motor driver that configures the control system according to the embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a support device that configures the control system according to the present embodiment
  • 4 is a schematic diagram showing a more detailed configuration of the development program installed in the support device according to the embodiment
  • FIG. FIG. 4 is a schematic diagram showing an example of a target device created in virtual space using the support device according to the present embodiment
  • FIG. 9 is a diagram for explaining a procedure example for setting the first operation of the target device shown in FIG. 8
  • FIG. 9 is a diagram for explaining a procedure example for setting a second operation of the target device shown in FIG. 8
  • FIG. FIG. 9 is a diagram for explaining a procedure example for setting a third operation of the target device shown in FIG. 8
  • FIG. 9 is a diagram for explaining a procedure example for setting a fourth operation of the target device shown in FIG. 8;
  • FIG. 9 is a diagram for explaining a procedure example for setting a fifth operation of the target device shown in FIG. 8;
  • FIG. 4 is a diagram showing an example of an action definition generated by a support device according to the embodiment;
  • FIG. 15 shows an example of an IEC program generated according to the action definition shown in FIG. 14;
  • 15 shows an example of a robot program generated according to the action definition shown in FIG. 14;
  • FIG. 15 shows an example of an execution order management program generated according to the action definition shown in FIG. 14;
  • FIG. FIG. 15 is a diagram showing an example of a user correcting or changing the action definition shown in FIG. 14;
  • 4 is a flow chart showing a processing procedure for program generation by the support device according to the present embodiment;
  • FIG. 1 is a schematic diagram showing main functions of the program generation device according to this embodiment.
  • FIG. 1 shows a support device 400 as an example of a program generation device according to this embodiment.
  • the support device 400 has a drawing function that virtually represents the target device in the virtual space.
  • the user specifies the operation details of the target device, and the support device 400 acquires the operation details specified by the user.
  • the support device 400 generates the IEC program 1104 and the robot program 1106 based on the designated operation contents.
  • program generation device may be implemented as an arbitrary information processing device instead of the support device 400, and some or all of the necessary functions may be implemented using a plurality of processor resources.
  • control system configuration Next, the configuration of the control system 1 including the program generation device according to this embodiment will be described.
  • FIG. 2 is a schematic diagram outlining the system configuration of the control system 1 according to the present embodiment.
  • control system 1 includes control device 100 , robot controller 250 and motor driver 350 network-connected to control device 100 via field network 10 .
  • Control device 100 exchanges data with devices connected to the field network 10 and executes processing as described later.
  • Control device 100 may typically be realized by a PLC.
  • the robot controller 250 is in charge of controlling the robot 200. More specifically, the robot controller 250 functions as an interface with the robot 200, outputs commands for driving the robot 200, and obtains state values of the robot 200 in accordance with commands from the control device 100. and output to the control device 100 .
  • the motor driver 350 is in charge of controlling the motor 300 that drives an arbitrary mechanism (not shown). More specifically, the motor driver 350 functions as an interface with the mechanism, and outputs commands for driving the axes that make up the mechanism to the corresponding motors 300 according to commands from the control device 100. A state value of the motor 300 is obtained and output to the control device 100 .
  • EtherCAT registered trademark
  • EtherNet/IP protocols for industrial networks
  • EtherCAT registered trademark
  • EtherNet/IP protocols for industrial networks
  • EtherCAT registered trademark
  • EtherNet/IP protocols for industrial networks
  • data can be exchanged between the control device 100 and devices connected to the field network 10 at regular intervals of several hundred microseconds to several milliseconds, for example.
  • the robot 200 and mechanisms included in the control system 1 can be controlled at high speed and with high accuracy.
  • the control device 100 may be connected to the display device 500 and the server device 600 via the host network 20 .
  • a protocol for industrial networks such as EtherNet/IP can be used.
  • the control device 100 may be connected to a support device 400 for installing a user program executed by the control device 100 and performing various settings.
  • Support device 400 is an example of a program generation device according to the present embodiment.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 that configures the control system 1 according to the present embodiment.
  • control device 100 includes processor 102, main memory 104, storage 110, memory card interface 112, host network controller 106, field network controller 108, local bus controller 116, USB and a USB controller 120 that provides a (Universal Serial Bus) interface. These components are connected via processor bus 118 .
  • the processor 102 corresponds to an arithmetic processing unit that executes control arithmetic, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads a program stored in the storage 110, develops it in the main memory 104, and executes it, thereby implementing control calculations for the controlled object.
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • the main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
  • the storage 110 is configured by, for example, a non-volatile storage device such as SSD (Solid State Drive) or HDD (Hard Disk Drive).
  • the storage 110 stores a system program 1102 for realizing basic functions, an IEC program 1104 and a robot program 1106 created according to the object to be controlled, and the like.
  • the IEC program 1104 includes instructions necessary for realizing processes other than the process of controlling the robot 200 in the control system 1 according to this embodiment.
  • IEC program 1104 may typically include sequence instructions and motion instructions.
  • the IEC program 1104 may be written in any language defined by IEC61131-3 defined by the International Electrotechnical Commission (IEC). However, the IEC program 1104 may include a program written in a maker's own language other than the language defined by IEC61131-3.
  • the IEC program 1104 is also called a "PLC program" because it is the basic program executed by the PLC.
  • the robot program 1106 includes instructions for controlling the robot 200.
  • the robot program 1106 may include instructions written in a predetermined programming language (for example, a programming language for robot control such as V+ language or a programming language for NC control such as G code).
  • the memory card interface 112 accepts a memory card 114, which is an example of a removable storage medium.
  • the memory card interface 112 is capable of reading/writing arbitrary data from/to the memory card 114 .
  • the host network controller 106 exchanges data with arbitrary information processing devices (such as the display device 500 and the server device 600 shown in FIG. 2) via the host network 20 .
  • the field network controller 108 exchanges data with each device via the field network 10.
  • the local bus controller 116 exchanges data with any functional unit 130 included in the control device 100 via the local bus 122 .
  • the functional unit 130 includes, for example, an analog I/O unit responsible for inputting and/or outputting analog signals, a digital I/O unit responsible for inputting and/or outputting digital signals, a counter unit receiving pulses from an encoder, etc. And so on.
  • the USB controller 120 exchanges data with any information processing device (such as the support device 400) via a USB connection.
  • FIG. 4 is a schematic diagram showing a hardware configuration example of the robot controller 250 that configures the control system 1 according to this embodiment.
  • robot controller 250 includes field network controller 252 and control processing circuit 260 .
  • the field network controller 252 mainly exchanges data with the control device 100 via the field network 10 .
  • control processing circuit 260 executes arithmetic processing required to drive the robot 200 .
  • control processing circuitry 260 includes processor 262 , main memory 264 , storage 270 and interface circuitry 268 .
  • a processor 262 executes control operations for driving the robot 200 .
  • the main memory 264 is composed of, for example, a volatile memory device such as DRAM or SRAM.
  • the storage 270 is configured by, for example, a non-volatile storage device such as SSD or HDD.
  • the storage 270 stores a system program 272 for realizing control for driving the robot 200 .
  • the system program 272 includes commands for executing control operations related to the operation of the robot 200 and commands related to interfacing with the robot 200 .
  • FIG. 5 is a schematic diagram showing a hardware configuration example of the motor driver 350 configuring the control system 1 according to the present embodiment.
  • motor driver 350 includes field network controller 352 , control processing circuit 360 and drive circuit 380 .
  • the field network controller 352 mainly exchanges data with the control device 100 via the field network 10 .
  • control processing circuit 360 executes arithmetic processing necessary for controlling the motor 300 .
  • control processing circuitry 360 includes processor 362 , main memory 364 , and storage 370 .
  • the processor 362 executes control calculations related to the motor 300 .
  • the main memory 364 is composed of, for example, a volatile memory device such as DRAM or SRAM.
  • the storage 370 is configured by, for example, a non-volatile storage device such as SSD or HDD.
  • a system program 372 for realizing drive control of the motor 300 is stored in the storage 370 .
  • the system program 372 includes instructions for executing control calculations related to the operation of the motor 300 and instructions related to interfacing with the motor 300 .
  • the drive circuit 380 includes a converter circuit, an inverter circuit, and the like, and according to the command value calculated by the control processing circuit 360, generates power of specified voltage, current, and phase, and supplies it to the motor 300.
  • the motor 300 is mechanically coupled to one of the shafts that make up the mechanism.
  • a motor having characteristics corresponding to the mechanism to be driven can be employed.
  • the motor 300 may be an induction motor, a synchronous motor, a permanent magnet motor, or a reluctance motor, and may be a linear motor as well as a rotary motor.
  • FIG. 6 is a schematic diagram showing a hardware configuration example of the support device 400 that configures the control system 1 according to this embodiment.
  • support device 400 includes processor 402 such as a CPU or MPU, main memory 404, storage 410, network controller 420, USB controller 424, input unit 426, and display unit 428. include. These components are connected via bus 408 .
  • the processor 402 reads various programs stored in the storage 410 , develops them in the main memory 404 , and executes them, thereby realizing necessary processing in the support device 400 .
  • the storage 410 is composed of, for example, an HDD or SSD.
  • the storage 410 typically stores an OS 412 and a development program 414 for realizing processing as described later. Note that the storage 410 may store necessary programs other than the programs shown in FIG.
  • the network controller 420 exchanges data with any information processing device via any network.
  • the USB controller 424 exchanges data with any information processing device via a USB connection.
  • the input unit 426 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user.
  • a display unit 428 includes a display, various indicators, and the like, and outputs processing results from the processor 402 and the like.
  • the support device 400 may have an optical drive 406 .
  • the optical drive 406 reads the program from a recording medium 407 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, and stores the program in a storage 410 or the like.
  • a recording medium 407 for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • DVD Digital Versatile Disc
  • Various programs executed by the support device 400 may be installed via the computer-readable recording medium 407, or may be installed by downloading from any server on the network.
  • Display device 500 configuring control system 1 according to the present embodiment may be realized using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 500 is well known, detailed description thereof will not be given here.
  • Server device 600 that configures control system 1 according to the present embodiment may be implemented using a general-purpose personal computer as an example. Since the basic hardware configuration example of the server device 600 is well known, detailed description thereof will not be given here.
  • FIG. 3 to 6 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • FIG. 7 is a schematic diagram showing a more detailed configuration of development program 414 installed in support device 400 according to the present embodiment.
  • the development program 414 includes, as main elements, a drawing engine 430, an operation acquisition engine 432, a simulator 434, a program generation management engine 436, an IEC program generation engine 438, and a robot program generation engine. 440 and .
  • the rendering engine 430 corresponds to a rendering unit that virtually represents the target device in the virtual space.
  • the rendering engine 430 refers to the device settings 470 and renders any device in the virtual space.
  • Device settings 470 contain information about the device of interest, and may be automatically generated from design data, such as computer-aided design (CAD) data, as described below.
  • CAD computer-aided design
  • the user may add, for example, information on any target device to the device settings 470 .
  • target devices arbitrary devices and mechanisms set in the virtual space are collectively referred to as "target devices”.
  • target device does not need to be configured as a complete device, and is a concept that may include a part of the mechanism or part of the device.
  • the operation acquisition engine 432 corresponds to an acquisition unit that acquires the specification of the operation content of the target device by the user. More specifically, the operation acquisition engine 432 generates the action definition 460 based on the acquired user's operation.
  • the action definition 460 is information specifying the action content specified by the user. As will be described later, the action definition 460 describes the details of the user's operation, and serves as a basis for generating the IEC program 1104 and robot program 1106 .
  • the simulator 434 emulates the operation of the set device or mechanism. That is, simulator 434 reproduces the motion of the target device based on IEC program 1104 and robot program 1106 . Behavior information from the simulator 434 (for example, positions and velocities of parts over time) is output to the drawing engine 430 . The rendering engine 430 reproduces the behavior of devices and mechanisms in virtual space based on the behavior information from the simulator 434 .
  • the program generation management engine 436 manages program generation processing by the IEC program generation engine 438 and the robot program generation engine 440, and generates an execution order management program 1108 as described later.
  • the IEC program generation engine 438 refers to the action definition 460 to generate the required IEC program 1104 .
  • the robot program generation engine 440 refers to the action definition 460 to generate the necessary robot program 1106 .
  • the program generation management engine 436, the IEC program generation engine 438, and the robot program generation engine 440 correspond to program generators that generate the IEC program 1104 and the robot program 1106 based on the operation contents specified by the user. .
  • the execution order management program 1108 is an example of information that defines the execution order between the IEC program 1104 and the robot program 1106. Instead of the execution order management program 1108, or together with the execution order management program 1108, a table defining the execution order may be prepared.
  • the simulator 434 can also emulate the control device 100, refer to the generated programs (IEC program 1104, robot program 1106, execution order management program 1108), and reproduce the operation of the device or mechanism by the program. can also be implemented using the generated programs (IEC program 1104, robot program 1106, execution order management program 1108), and reproduce the operation of the device or mechanism by the program. can also be implemented using the generated programs (IEC program 1104, robot program 1106, execution order management program 1108), and reproduce the operation of the device or mechanism by the program. can also
  • FIG. 8 is a schematic diagram showing an example of a target device created in virtual space using the support device 400 according to the present embodiment.
  • the user can virtually create any target device in virtual space 450 provided by support device 400 .
  • FIG. 8 shows an example of a target device including a robot, a robot slider for driving the robot, and two sliders.
  • the robot slider and each of the two sliders are driven by motor 300 and motor driver 350 (see FIG. 2).
  • the robot is also controlled by a robot controller 250 (see FIG. 2).
  • the IEC program 1104 (see FIG. 3) is used to control the robot slider and each of the two sliders, and the robot program 1106 (see FIG. 3) is used to control the robot.
  • the support device 400 according to the present embodiment generates the IEC program 1104 and the robot program 1106 by the user's operation described later.
  • a slider 1 moves a moving tray 1 formed with three stages of racks on which three pallets can be mounted along a predetermined direction.
  • the transfer tray 1 stores an empty pallet (a pallet on which no work is placed).
  • the robot picks up an empty pallet from the mobile tray 1 and places it in the work area. After the work, the robot returns the pallet on which the work is placed to the transfer tray 1.
  • the slider 2 moves the moving tray 2 that supplies the work along a predetermined direction. In the initial state, the work is placed on the transfer tray 2 and the robot picks up the work from the transfer tray 2 .
  • the robot slider moves the robot to slider 1, work area, and slider 2.
  • a robot places a work on an empty pallet in the work area. That is, the robot performs the following operations.
  • FIG. 9 is a diagram for explaining a procedure example for setting the first operation of the target device shown in FIG. Referring to FIG. 9, as the first action, the action of moving tray 1 to the vicinity of the robot in order for the robot to pick up a pallet from tray 1 is set.
  • the user specifies the movement start position and movement end position of the slider 1 by operating the mouse or the like.
  • the position of the movable tray 1 can be arbitrarily changed, and the user can confirm the movement and position on the support device 400 .
  • the user may specify the movement start position and the movement end position of the slider 1 by selecting and moving the tray 1 by operating the mouse in the virtual space 450, or inputting the corresponding parameters by operating the keyboard.
  • the movement start position and the movement end position of the slider 1 may be specified by changing them.
  • FIG. 10 is a diagram for explaining a procedure example for setting the second operation of the target device shown in FIG. Referring to FIG. 10, as the second operation, an operation of moving the robot to the vicinity of transfer tray 1 by the robot slider is set so that the robot can pick up a pallet from transfer tray 1 .
  • the user designates the movement start position and movement end position of the robot slider by operating the mouse or the like.
  • the position of the robot can be arbitrarily changed, and the user can confirm the movement and position on the support device 400 .
  • the user may specify the movement start position and the movement end position of the robot slider by selecting and moving the robot by mouse operation in the virtual space 450, or input or change the corresponding parameters by keyboard operation. By doing so, the movement start position and the movement end position of the robot slider may be specified.
  • FIG. 11 is a diagram for explaining a procedure example for setting the third operation of the target device shown in FIG. Referring to FIG. 11, as the third operation, the trajectory of the arm at the tip of the robot is set (teaching the robot) so that the robot can pick up a pallet from transfer tray 1 .
  • the user specifies the trajectory of the arm at the tip of the robot by operating the mouse.
  • the user may specify the trajectory of the arm at the tip of the robot by inputting or changing the corresponding parameters through keyboard operations.
  • a teaching pendant object may be displayed on the display unit 428 of the support device 400, and the trajectory of the arm at the tip of the robot may be specified by operating the displayed teaching pendant object. good.
  • FIG. 12 is a diagram for explaining a procedure example for setting the fourth operation of the target device shown in FIG. Referring to FIG. 12, as the fourth operation, an operation of moving the robot to the vicinity of the work area by the robot slider is set in order to place the pallet picked up by the robot from the transfer tray 1 in the work area.
  • the user designates the movement start position and movement end position of the robot slider by operating the mouse or the like.
  • the position of the robot can be arbitrarily changed, and the user can confirm the movement and position on the support device 400 .
  • the user may specify the movement start position and the movement end position of the robot slider by selecting and moving the robot by mouse operation in the virtual space 450, or input or change the corresponding parameters by keyboard operation. By doing so, the movement start position and the movement end position of the robot slider may be specified.
  • FIG. 13 is a diagram for explaining a procedure example for setting the fifth operation of the target device shown in FIG. Referring to FIG. 13, as the fifth operation, the trajectory of the arm at the tip of the robot is set so that the pallet picked up by the robot from the transfer tray 1 is placed on the work area.
  • the user specifies the trajectory of the arm at the tip of the robot by operating the mouse.
  • the user may specify the trajectory of the arm at the tip of the robot by inputting or changing the corresponding parameters through keyboard operations.
  • a teaching pendant object may be displayed on the display unit 428 of the support device 400, and the trajectory of the arm at the tip of the robot may be specified by operating the displayed teaching pendant object. good.
  • the operation of the target device is sequentially set. More specifically, as the sixth action, the action of moving the movable tray 2 to the vicinity of the robot in order for the robot to pick up the work from the movable tray 2 is set. As the seventh action, the action of moving the robot to the vicinity of the transfer tray 2 with the robot slider is set so that the robot can pick up the work from the transfer tray 2 . As the eighth operation, the trajectory of the arm at the tip of the robot is set so that the robot can pick up the workpiece from the transfer tray 2 . As the ninth operation, an operation of moving the robot to the vicinity of the work area with the robot slider is set in order for the robot to place the work picked from the moving tray 2 on the pallet in the work area.
  • the trajectory of the arm at the tip of the robot is set in order for the robot to place the work picked from the transfer tray 2 on the pallet in the work area. Furthermore, an operation for moving the pallet on which the work is placed to the transfer tray 1 is set.
  • the support device 400 generates an action definition 460 according to the user's operation procedure.
  • FIG. 14 is a diagram showing an example of the action definition 460 generated by the support device 400 according to this embodiment. For simplification of explanation, the following explanation focuses on the first to fifth operations.
  • an action definition 460 includes an order column 461 indicating the order of actions, an action target column 462 indicating an action target, a mechanism type column 463 indicating a mechanism type, and an action content column 464 indicating action details. including.
  • the order column 461 stores a number indicating the order set by the user. For each number stored in the sequence column 461 , an operation target is defined in the operation target column 462 , a mechanism type is defined in the mechanism type column 463 , and an operation content is defined in the operation content column 464 .
  • the mechanism type column 463 stores "slider” and/or "robot". Basically, the motion in which the “slider” is stored is implemented by the IEC program 1104, and the motion in which the “robot” is stored is implemented by the robot program 1106.
  • FIG. 14 the mechanism type column 463 stores "slider” and/or "robot". Basically, the motion in which the “slider” is stored is implemented by the IEC program 1104, and the motion in which the “robot” is stored is implemented by the robot program 1106.
  • Codes of the IEC program 1104 and the robot program 1106 are generated according to the corresponding operation target and operation content.
  • FIG. 15 shows an example of the IEC program 1104 generated according to the action definition 460 shown in FIG.
  • FIG. 16 shows an example of a robot program 1106 generated according to the action definition 460 shown in FIG.
  • the IEC program 1104 shown in FIG. 15 describes instructions corresponding to the first, second, and fourth operations in addition to the instructions for implementing the initialization process.
  • a motion command (MC_MoveAbsolute) is used to move the slider (position control), but a different motion command may be used when applying to a rotating mechanism instead of the slider. .
  • the robot program 1106 shown in FIG. 16 describes commands corresponding to the third and fifth operations.
  • the support device 400 automatically generates the IEC program 1104 and the robot program 1106 according to the action specified by the user in the virtual space 450.
  • an execution order management program may be generated between the IEC program 1104 and the robot program 1106 in order to realize the operation order and interlock of processing.
  • FIG. 17 shows an example of the execution order management program 1108 generated according to the action definition 460 shown in FIG.
  • execution order management program 1108 includes instructions for sequentially updating (incrementing) variable Index (flag) that can be commonly referred to by IEC program 1104 and robot program 1106 .
  • Processing can be synchronized between the IEC program 1104 and the robot program 1106 by sequentially updating the variable Index and using the variable Index as a condition for executing each operation.
  • the execution order management program 1108, which is an example of information defining the execution order between the IEC program 1104 and the robot program 1106, includes instructions for updating the values referred to by the IEC program 1104 and the robot program 1106.
  • a table describing the execution order of the IEC program 1104 and the robot program 1106 or arbitrary definitions may be generated. That is, another example of the information that defines the execution order between the IEC program 1104 and the robot program 1106 may be a table that defines timings for executing the IEC program 1104 and the robot program 1106 .
  • Support device 400 can automatically generate IEC program 1104 and robot program 1106 based on action definition 460 shown in FIG. You can also
  • the user can refer to the generated action definition 460 after specifying the mechanism included in the target device and the action and action procedure of the robot in the virtual space 450 to evaluate the validity of the action.
  • the user can change values such as the movement distance, target coordinates, and speed defined in the action definition 460 as necessary. It is also possible to perform a simulation in the virtual space 450 based on the changed action definition 460, and the validity of the action can be confirmed by the simulation.
  • FIG. 18 is a diagram showing an example of a user's modification or change to the action definition 460 shown in FIG. Referring to FIG. 18, for example, since the second operation does not conflict with the first operation, the two operations are changed to be executed in parallel.
  • the support device 400 may have a reception unit that receives changes made by the user to the action definition 460.
  • new IEC programs 1104 and robot programs 1106 are automatically generated simply by correcting or changing comprehensible numerical values described in the action definition 460 .
  • an apparatus designer who cannot program the IEC program 1104 and the robot program 1106 can easily specify the operation of the entire apparatus and confirm the specified operation.
  • FIG. 19 is a flow chart showing a processing procedure for program generation by the support device 400 according to the present embodiment. Each step shown in FIG. 19 is typically implemented by processor 402 of support device 400 executing development program 414 .
  • the support device 400 accepts the setting of the target device by the user (step S100).
  • the support device 400 then virtually represents the target device in the virtual space (step S102).
  • the support device 400 may read data from the outside in the form of device settings 470 (FIG. 7).
  • the support device 400 accepts the user's setting operation (step S104), and sequentially generates the action definition 460 (step S106). That is, the support device 400 acquires the specification of the operation content of the target device by the user. Then, the support device 400 determines whether or not the setting operation by the user has ended (step S108). If the setting operation by the user has not ended (NO in step S108), the processing from step S102 onward is repeated.
  • the support device 400 determines whether display of the action definition 460 has been requested by the user (step S110).
  • the support device 400 displays the generated action definition 460 (step S112), and accepts the user's correction or change operation (step S114). , the operation definition 460 is changed according to the received contents (step S116).
  • step S110 If display of the action definition 460 by the user is not requested (NO in step S110), the processing of steps S112 to S116 is skipped.
  • the support device 400 determines whether or not the user has requested program generation (step S118).
  • program generation by the user is requested (YES in step S118)
  • support device 400 generates IEC program 1104, robot program 1106, and execution order management program 1108 based on action definition 460 describing the specified action contents.
  • Generate step S120).
  • the processing related to program generation by the support device 400 ends.
  • the generated programs (IEC program 1104, robot program 1106, and execution order management program 1108) are transferred from the support device 400 to the control device 100 according to user operations.
  • device settings 470 may be implemented with a function to automatically generate them from design data such as CAD data.
  • design data such as CAD data.
  • shape of the target workpiece may also be automatically generated from the CAD data.
  • the directions and planes in which the mechanisms and robots move may be defined.
  • the trajectory of the robot may be set with reference to the XY plane of the XYZ stage.
  • the robot may be restricted to move only parallel to the XY plane, and the user may be assisted in inputting settings according to the motion restriction. By restricting such user settings, the user can more easily set the operation. Furthermore, synchronized and more accurate control can be achieved between the mechanism and the robot.
  • the support device 400 has a generation function of generating information (device settings 470) for virtually representing the target device in the virtual space from design data of the target device such as CAD data. good.
  • the target surface of the work as described above may be specified from the coordinate group of the object in the virtual space instead of the CAD data. For example, for the exposed surface of the work, a corresponding set of coordinates is calculated. Therefore, the exposed surface can be identified by interpolating the calculated coordinate group.
  • support device 400 is also capable of simulation according to the generated program. Since the results of such simulations are rendered (reproduced) in virtual space, the user can check the validity of the generated program in advance while referring to the reproduced mechanisms and robot movements.
  • [Configuration 1] a rendering unit (430) that virtually represents the target device in a virtual space (450); an acquisition unit (432) for acquiring a specification of the operation content of the target device by a user; A program generation device comprising a program generation unit (436, 438, 440) that generates an IEC program (1104) and a robot program (1106) based on the specified operation content.
  • a program generation device comprising a program generation unit (436, 438, 440) that generates an IEC program (1104) and a robot program (1106) based on the specified operation content.
  • the program generation device according to configuration 1 wherein the acquisition unit generates an action definition (460) specifying the specified action content.
  • [Configuration 3] The program generation device according to configuration 2, further comprising a reception unit that receives a user's change to the action definition.
  • the program generation device according to any one of configurations 1 to 3, wherein the program generation unit further generates information (1108) defining an execution order between the IEC program and the robot program.
  • the program generation unit further generates information (1108) defining an execution order between the IEC program and the robot program.
  • [Configuration 5] 5.
  • the program generation device according to configuration 4, wherein the information defining the execution order between the IEC program and the robot program includes an instruction for updating values referred to by the IEC program and the robot program.
  • the information defining an execution order between the IEC program and the robot program includes a table defining timings for executing the IEC program and the robot program.
  • the program generation device according to any one of configurations 1 to 6, further comprising a generation unit that generates information for virtually expressing the target device in the virtual space from design data of the target device.
  • the program generation device according to any one of configurations 1 to 7, further comprising a simulator (434) that reproduces the operation of the target device based on the IEC program and the robot program.
  • [Configuration 10] a step of virtually expressing the target device in the virtual space (S102); a step of acquiring a user's specification of operation content of the target device (S106); A program generation method comprising a step (S120) of generating an IEC program and a robot program based on the designated operation content.
  • the user can generate an IEC program and a robot program for operating the target device in the real environment simply by designating the operation contents of the target device in the virtual space. , even a user with little knowledge of program generation can generate a program necessary for operation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)

Abstract

Provided is a solution capable of easily generating a program necessary for an application including a robot. This program generation device comprises a drawing unit that virtually depicts a subject device in a virtual space, an acquisition unit that acquires specification of details of operation of the subject device by a user, and a program generation unit that generates an IEC program and a robot program on the basis of the specified details of operation.

Description

プログラム生成装置、プログラム生成プログラムおよびプログラム生成方法Program generation device, program generation program and program generation method
 本技術は、プログラム生成装置、プログラム生成プログラムおよびプログラム生成方法に関する。 The present technology relates to a program generation device, a program generation program, and a program generation method.
 FA(Factory Automation)分野においては、ロボットが様々なアプリケーションに用いられている。このようなアプリケーションにおいては、PLC(プログラマブルロジックコントローラ)などの制御装置で実行されるプログラムと、ロボットを制御するためのプログラムとが必要となる。 In the FA (Factory Automation) field, robots are used for various applications. Such applications require a program to be executed by a control device such as a PLC (Programmable Logic Controller) and a program for controlling the robot.
 このようなプログラムの作成を容易化するための技術が提案されている。例えば、特開2019-018250号公報(特許文献1)は、ロボットの動作プログラムの作成に要するオペレータの作業を減らすためのプログラミング装置などを開示する。 Techniques have been proposed to facilitate the creation of such programs. For example, Japanese Patent Application Laid-Open No. 2019-018250 (Patent Document 1) discloses a programming device and the like for reducing operator work required to create an operation program for a robot.
 また、特開2018-118330号公報(特許文献2)は、複数のロボットの協調動作を短時間で自動生成することができる演算装置などを開示する。 In addition, Japanese Patent Laying-Open No. 2018-118330 (Patent Document 2) discloses an arithmetic device and the like that can automatically generate cooperative motions of a plurality of robots in a short time.
特開2019-018250号公報JP 2019-018250 A 特開2018-118330号公報JP 2018-118330 A
 ロボットを含むアプリケーションにおいては、制御装置で実行されるプログラムと、ロボットを制御するためのプログラムとを直接的または間接的に連携させる必要がある。これに対して、上述の先行技術文献に開示される技術は、ロボットを動作させるためのプログラムの生成に注目するものであり、制御装置で実行されるプログラムについては、何ら考慮されていない。  In an application that includes a robot, it is necessary to directly or indirectly link the program executed by the control device with the program for controlling the robot. On the other hand, the techniques disclosed in the prior art documents mentioned above focus on the generation of programs for operating robots, and do not take into account the programs executed by the control device.
 本技術は、ロボットを含むアプリケーションにおいて必要なプログラムを容易に生成できる解決手段を提供することを目的とする。 The purpose of this technology is to provide a solution that can easily generate the necessary programs for applications that include robots.
 本技術のある実施の形態に係るプログラム生成装置は、対象装置を仮想空間上で仮想的に表現する描画部と、ユーザによる対象装置の動作内容の指定を取得する取得部と、指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するプログラム生成部とを含む。 A program generation device according to an embodiment of the present technology includes a drawing unit that virtually expresses a target device in a virtual space, an acquisition unit that acquires a specification of operation content of the target device by a user, and a specified operation. and a program generator for generating an IEC program and a robot program based on the contents.
 この構成によれば、ユーザは、仮想空間上で対象装置の動作内容を指定するだけで、対象装置を実環境で動作させるためのIECプログラムおよびロボットプログラムを生成できるので、プログラムの生成に関する知識が乏しいユーザであっても、動作に必要なプログラムを生成できる。 According to this configuration, the user can generate an IEC program and a robot program for operating the target device in the real environment only by designating the operation contents of the target device in the virtual space. Even a poor user can generate a program necessary for operation.
 取得部は、指定された動作内容を特定する動作定義を生成するようにしてもよい。この構成によれば、ユーザは、動作定義などの生成を意識することなく、仮想空間上で対象装置の動作を指定さえすればよいので、専門的な知識が乏しいユーザであっても利用できる。また、指定された動作内容を特定する動作定義を生成することで、IECプログラムおよびロボットプログラムをより確実に生成できる。 The acquisition unit may generate an action definition that specifies the specified action content. According to this configuration, the user only needs to specify the operation of the target device in the virtual space without being aware of the creation of the operation definition, so even users with little specialized knowledge can use it. Also, by generating an action definition that specifies the specified action content, the IEC program and the robot program can be generated more reliably.
 プログラム生成装置は、動作定義に対するユーザによる変更を受け付ける受付部をさらに含むようにしてもよい。この構成によれば、ユーザは、指定された動作内容を特定する動作定義を確認した上で、必要に応じて修正などを行うことができる。 The program generation device may further include a receiving unit that receives changes made by the user to the action definition. According to this configuration, the user can check the action definition that specifies the specified action content, and then make corrections or the like as necessary.
 プログラム生成部は、IECプログラムとロボットプログラムとの間の実行順序を規定する情報をさらに生成するようにしてもよい。この構成によれば、ロボットと他の機構との間で同期して動作させる必要がある場合などにおいて、より正確な制御を実現できる。 The program generation unit may further generate information that defines the execution order between the IEC program and the robot program. According to this configuration, it is possible to realize more accurate control when it is necessary to operate the robot and other mechanisms synchronously.
 IECプログラムとロボットプログラムとの間の実行順序を規定する情報は、IECプログラムおよびロボットプログラムが参照する値を更新する命令を含むようにしてもよい。この構成によれば、IECプログラムおよびロボットプログラムが並列的に実行されるような環境において、両プログラム間で相互にインターロックを取りながら処理を進めることができる。 The information that defines the execution order between the IEC program and the robot program may include instructions for updating values referenced by the IEC program and the robot program. According to this configuration, in an environment where the IEC program and the robot program are executed in parallel, it is possible to advance the processing while mutually interlocking between the two programs.
 IECプログラムとロボットプログラムとの間の実行順序を規定する情報は、IECプログラムおよびロボットプログラムを実行するタイミングを規定するテーブルを含んでいてもよい。この構成によれば、IECプログラムおよびロボットプログラムの実行順序を明示的に規定できる。 The information that defines the execution order between the IEC program and the robot program may include a table that defines the timing of executing the IEC program and the robot program. According to this configuration, the execution order of the IEC program and the robot program can be defined explicitly.
 プログラム生成装置は、対象装置の設計データから仮想空間上で対象装置を仮想的に表現するための情報を生成する生成部をさらに含んでいてもよい。この構成によれば、CADデータなどの設計データから容易に対象装置を仮想空間に再現できる。 The program generation device may further include a generation unit that generates information for virtually representing the target device in the virtual space from the design data of the target device. According to this configuration, the target device can be easily reproduced in the virtual space from design data such as CAD data.
 プログラム生成装置は、IECプログラムおよびロボットプログラムに基づいて、対象装置の動作を再現するシミュレータをさらに含んでいてもよい。この構成によれば、生成されたIECプログラムおよびロボットプログラムによる動作を容易に確認できる。 The program generation device may further include a simulator that reproduces the motion of the target device based on the IEC program and the robot program. According to this configuration, it is possible to easily check the operation of the generated IEC program and robot program.
 本技術の別の実施の形態に係るプログラム生成プログラムは、コンピュータに、対象装置を仮想空間上で仮想的に表現するステップと、ユーザによる対象装置の動作内容の指定を取得するステップと、指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップとを実行させる。 A program generation program according to another embodiment of the present technology provides a computer with a step of virtually representing a target device in a virtual space, a step of acquiring a user's specification of operation content of the target device, and a step of specifying A step of generating an IEC program and a robot program is executed based on the obtained operation contents.
 本技術のさらに別の実施の形態に係るプログラム生成方法は、対象装置を仮想空間上で仮想的に表現するステップと、ユーザによる対象装置の動作内容の指定を取得するステップと、指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップとを含む。 A program generation method according to still another embodiment of the present technology includes the steps of virtually representing a target device in a virtual space, acquiring a specification of operation content of the target device by a user, and performing the specified operation. and generating an IEC program and a robot program based on the content.
 本技術によれば、ロボットを含むアプリケーションにおいて必要なプログラムを容易に生成できる。 With this technology, it is possible to easily generate the necessary programs for applications that include robots.
本実施の形態に係るプログラム生成装置の主たる機能を示す模式図である。1 is a schematic diagram showing main functions of a program generation device according to an embodiment; FIG. 本実施の形態に係る制御システムのシステム構成を概略する模式図である。1 is a schematic diagram outlining the system configuration of a control system according to an embodiment; FIG. 本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a control device that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成するロボットコントローラのハードウェア構成例を示す模式図である。FIG. 3 is a schematic diagram showing a hardware configuration example of a robot controller that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成するモータドライバのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a motor driver that configures the control system according to the embodiment; 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a support device that configures the control system according to the present embodiment; 本実施の形態に係るサポート装置にインストールされた開発プログラムのより詳細な構成を示す模式図である。4 is a schematic diagram showing a more detailed configuration of the development program installed in the support device according to the embodiment; FIG. 本実施の形態に係るサポート装置を用いて仮想空間上で作成した対象装置の一例を示す模式図である。FIG. 4 is a schematic diagram showing an example of a target device created in virtual space using the support device according to the present embodiment; 図8に示す対象装置の第1番目の動作を設定するための手順例を説明するための図である。FIG. 9 is a diagram for explaining a procedure example for setting the first operation of the target device shown in FIG. 8; FIG. 図8に示す対象装置の第2番目の動作を設定するための手順例を説明するための図である。9 is a diagram for explaining a procedure example for setting a second operation of the target device shown in FIG. 8; FIG. 図8に示す対象装置の第3番目の動作を設定するための手順例を説明するための図である。FIG. 9 is a diagram for explaining a procedure example for setting a third operation of the target device shown in FIG. 8; 図8に示す対象装置の第4番目の動作を設定するための手順例を説明するための図である。FIG. 9 is a diagram for explaining a procedure example for setting a fourth operation of the target device shown in FIG. 8; 図8に示す対象装置の第5番目の動作を設定するための手順例を説明するための図である。FIG. 9 is a diagram for explaining a procedure example for setting a fifth operation of the target device shown in FIG. 8; 本実施の形態に係るサポート装置が生成した動作定義の一例を示す図である。FIG. 4 is a diagram showing an example of an action definition generated by a support device according to the embodiment; FIG. 図14に示される動作定義に従って生成されたIECプログラムの一例を示す。15 shows an example of an IEC program generated according to the action definition shown in FIG. 14; 図14に示される動作定義に従って生成されたロボットプログラムの一例を示す。15 shows an example of a robot program generated according to the action definition shown in FIG. 14; 図14に示される動作定義に従って生成された実行順序管理プログラムの一例を示す。FIG. 15 shows an example of an execution order management program generated according to the action definition shown in FIG. 14; FIG. 図14に示される動作定義に対してユーザが修正あるいは変更を行った一例を示す図である。FIG. 15 is a diagram showing an example of a user correcting or changing the action definition shown in FIG. 14; 本実施の形態に係るサポート装置によるプログラム生成に係る処理手順を示すフローチャートである。4 is a flow chart showing a processing procedure for program generation by the support device according to the present embodiment;
 本技術の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 An embodiment of this technology will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are given the same reference numerals, and the description thereof will not be repeated.
 <A.適用例>
 まず、本技術が適用される場面の一例について説明する。図1は、本実施の形態に係るプログラム生成装置の主たる機能を示す模式図である。図1には、本実施の形態に係るプログラム生成装置の一例として、サポート装置400を示す。サポート装置400は、対象装置を仮想空間上で仮想的に表現する描画機能を有している。ユーザは、対象装置の動作内容を指定するとともに、サポート装置400は、ユーザにより指定された動作内容を取得する。そして、サポート装置400は、指定された動作内容に基づいて、IECプログラム1104およびロボットプログラム1106を生成する。
<A. Application example>
First, an example of a scene to which the present technology is applied will be described. FIG. 1 is a schematic diagram showing main functions of the program generation device according to this embodiment. FIG. 1 shows a support device 400 as an example of a program generation device according to this embodiment. The support device 400 has a drawing function that virtually represents the target device in the virtual space. The user specifies the operation details of the target device, and the support device 400 acquires the operation details specified by the user. Then, the support device 400 generates the IEC program 1104 and the robot program 1106 based on the designated operation contents.
 このような構成を提供することで、ロボットを含むアプリケーションにおいて必要なプログラムを容易に生成できる。 By providing such a configuration, it is possible to easily generate the necessary programs for applications that include robots.
 なお、プログラム生成装置は、サポート装置400ではなく、任意の情報処理装置として実現してもよいし、必要な機能の一部または全部を複数のプロセッサリソースを用いて実現してもよい。 Note that the program generation device may be implemented as an arbitrary information processing device instead of the support device 400, and some or all of the necessary functions may be implemented using a plurality of processor resources.
 <B.制御システム構成>
 次に、本実施の形態に係るプログラム生成装置を含む制御システム1の構成について説明する。
<B. Control system configuration>
Next, the configuration of the control system 1 including the program generation device according to this embodiment will be described.
 (b1:全体構成)
 図2は、本実施の形態に係る制御システム1のシステム構成を概略する模式図である。図2を参照して、制御システム1は、制御装置100と、フィールドネットワーク10を介して制御装置100とネットワーク接続された、ロボットコントローラ250およびモータドライバ350とを含む。
(b1: overall configuration)
FIG. 2 is a schematic diagram outlining the system configuration of the control system 1 according to the present embodiment. Referring to FIG. 2 , control system 1 includes control device 100 , robot controller 250 and motor driver 350 network-connected to control device 100 via field network 10 .
 制御装置100は、フィールドネットワーク10に接続されたデバイスとの間でデータをやり取りして、後述するような処理を実行する。制御装置100は、典型的には、PLCにより実現されてもよい。 The control device 100 exchanges data with devices connected to the field network 10 and executes processing as described later. Control device 100 may typically be realized by a PLC.
 ロボットコントローラ250は、ロボット200の制御を担当する。より具体的には、ロボットコントローラ250は、ロボット200との間のインターフェイスとして機能し、制御装置100からの指令に従って、ロボット200を駆動するための指令を出力するとともに、ロボット200の状態値を取得して制御装置100へ出力する。 The robot controller 250 is in charge of controlling the robot 200. More specifically, the robot controller 250 functions as an interface with the robot 200, outputs commands for driving the robot 200, and obtains state values of the robot 200 in accordance with commands from the control device 100. and output to the control device 100 .
 モータドライバ350は、図示しない任意の機構を駆動するモータ300の制御を担当する。より具体的には、モータドライバ350は、機構との間のインターフェイスとして機能し、制御装置100からの指令に従って、機構を構成する軸を駆動するための指令を対応するモータ300へ出力するとともに、モータ300の状態値を取得して制御装置100へ出力する。 The motor driver 350 is in charge of controlling the motor 300 that drives an arbitrary mechanism (not shown). More specifically, the motor driver 350 functions as an interface with the mechanism, and outputs commands for driving the axes that make up the mechanism to the corresponding motors 300 according to commands from the control device 100. A state value of the motor 300 is obtained and output to the control device 100 .
 フィールドネットワーク10には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。プロトコルとしてEtherCATを採用した場合には、制御装置100とフィールドネットワーク10に接続されたデバイスとの間で、例えば、数百μ秒~数m秒の定周期でデータをやり取りできる。このような定周期でのデータのやり取りによって、制御システム1に含まれるロボット200および機構を高速高精度に制御できる。 For the field network 10, protocols for industrial networks such as EtherCAT (registered trademark) and EtherNet/IP can be used. When EtherCAT is adopted as a protocol, data can be exchanged between the control device 100 and devices connected to the field network 10 at regular intervals of several hundred microseconds to several milliseconds, for example. By exchanging data at such regular intervals, the robot 200 and mechanisms included in the control system 1 can be controlled at high speed and with high accuracy.
 制御装置100は、上位ネットワーク20を介して、表示装置500およびサーバ装置600に接続されてもよい。上位ネットワーク20には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。 The control device 100 may be connected to the display device 500 and the server device 600 via the host network 20 . For the upper network 20, a protocol for industrial networks such as EtherNet/IP can be used.
 制御装置100には、制御装置100で実行されるユーザプログラムのインストールや各種設定を行うためのサポート装置400が接続されてもよい。サポート装置400は、本実施の形態に係るプログラム生成装置の一例である。 The control device 100 may be connected to a support device 400 for installing a user program executed by the control device 100 and performing various settings. Support device 400 is an example of a program generation device according to the present embodiment.
 以下、図2に示す制御システム1を構成する主要装置のハードウェア構成例について説明する。 A hardware configuration example of the main devices that make up the control system 1 shown in FIG. 2 will be described below.
 (b2:制御装置100)
 図3は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
(b2: control device 100)
FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 that configures the control system 1 according to the present embodiment. Referring to FIG. 3, control device 100 includes processor 102, main memory 104, storage 110, memory card interface 112, host network controller 106, field network controller 108, local bus controller 116, USB and a USB controller 120 that provides a (Universal Serial Bus) interface. These components are connected via processor bus 118 .
 プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、制御対象に対する制御演算を実現する。 The processor 102 corresponds to an arithmetic processing unit that executes control arithmetic, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads a program stored in the storage 110, develops it in the main memory 104, and executes it, thereby implementing control calculations for the controlled object.
 メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。 The main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory). The storage 110 is configured by, for example, a non-volatile storage device such as SSD (Solid State Drive) or HDD (Hard Disk Drive).
 ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたIECプログラム1104およびロボットプログラム1106などが格納される。 The storage 110 stores a system program 1102 for realizing basic functions, an IEC program 1104 and a robot program 1106 created according to the object to be controlled, and the like.
 IECプログラム1104は、本実施の形態に係る制御システム1におけるロボット200を制御する処理以外の処理を実現するために必要な命令を含む。IECプログラム1104は、典型的には、シーケンス命令およびモーション命令を含み得る。IECプログラム1104は、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されてもよい。但し、IECプログラム1104は、IEC61131-3で規定される言語以外のメーカ独自言語で記述されるプログラムを含んでいてもよい。IECプログラム1104は、PLCが実行する基本的なプログラムであるので、「PLCプログラム」とも称される。 The IEC program 1104 includes instructions necessary for realizing processes other than the process of controlling the robot 200 in the control system 1 according to this embodiment. IEC program 1104 may typically include sequence instructions and motion instructions. The IEC program 1104 may be written in any language defined by IEC61131-3 defined by the International Electrotechnical Commission (IEC). However, the IEC program 1104 may include a program written in a maker's own language other than the language defined by IEC61131-3. The IEC program 1104 is also called a "PLC program" because it is the basic program executed by the PLC.
 ロボットプログラム1106は、ロボット200を制御するための命令を含む。ロボットプログラム1106は、所定のプログラミング言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述された命令を含んでいてもよい。 The robot program 1106 includes instructions for controlling the robot 200. The robot program 1106 may include instructions written in a predetermined programming language (for example, a programming language for robot control such as V+ language or a programming language for NC control such as G code).
 メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。 The memory card interface 112 accepts a memory card 114, which is an example of a removable storage medium. The memory card interface 112 is capable of reading/writing arbitrary data from/to the memory card 114 .
 上位ネットワークコントローラ106は、上位ネットワーク20を介して、任意の情報処理装置(図2に示される表示装置500およびサーバ装置600など)との間でデータをやり取りする。 The host network controller 106 exchanges data with arbitrary information processing devices (such as the display device 500 and the server device 600 shown in FIG. 2) via the host network 20 .
 フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、それぞれのデバイスとの間でデータをやり取りする。 The field network controller 108 exchanges data with each device via the field network 10.
 ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100に含まれる任意の機能ユニット130との間でデータをやり取りする。機能ユニット130は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニット、エンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。 The local bus controller 116 exchanges data with any functional unit 130 included in the control device 100 via the local bus 122 . The functional unit 130 includes, for example, an analog I/O unit responsible for inputting and/or outputting analog signals, a digital I/O unit responsible for inputting and/or outputting digital signals, a counter unit receiving pulses from an encoder, etc. And so on.
 USBコントローラ120は、USB接続を介して、任意の情報処理装置(サポート装置400など)との間でデータをやり取りする。 The USB controller 120 exchanges data with any information processing device (such as the support device 400) via a USB connection.
 (b3:ロボットコントローラ250)
 図4は、本実施の形態に係る制御システム1を構成するロボットコントローラ250のハードウェア構成例を示す模式図である。図4を参照して、ロボットコントローラ250は、フィールドネットワークコントローラ252と、制御処理回路260とを含む。
(b3: robot controller 250)
FIG. 4 is a schematic diagram showing a hardware configuration example of the robot controller 250 that configures the control system 1 according to this embodiment. Referring to FIG. 4, robot controller 250 includes field network controller 252 and control processing circuit 260 .
 フィールドネットワークコントローラ252は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。 The field network controller 252 mainly exchanges data with the control device 100 via the field network 10 .
 制御処理回路260は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ264と、ストレージ270と、インターフェイス回路268とを含む。 The control processing circuit 260 executes arithmetic processing required to drive the robot 200 . By way of example, control processing circuitry 260 includes processor 262 , main memory 264 , storage 270 and interface circuitry 268 .
 プロセッサ262は、ロボット200を駆動するための制御演算を実行する。メインメモリ264は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ270は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 A processor 262 executes control operations for driving the robot 200 . The main memory 264 is composed of, for example, a volatile memory device such as DRAM or SRAM. The storage 270 is configured by, for example, a non-volatile storage device such as SSD or HDD.
 ストレージ270には、ロボット200を駆動するための制御を実現するためのシステムプログラム272が格納される。システムプログラム272は、ロボット200の動作に係る制御演算を実行する命令、および、ロボット200との間のインターフェイスに係る命令を含む。 The storage 270 stores a system program 272 for realizing control for driving the robot 200 . The system program 272 includes commands for executing control operations related to the operation of the robot 200 and commands related to interfacing with the robot 200 .
 インターフェイス回路268は、ロボット200との間でデータをやり取りする。
 (b4:モータドライバ350)
 図5は、本実施の形態に係る制御システム1を構成するモータドライバ350のハードウェア構成例を示す模式図である。図5を参照して、モータドライバ350は、フィールドネットワークコントローラ352と、制御処理回路360と、ドライブ回路380とを含む。
Interface circuit 268 exchanges data with robot 200 .
(b4: motor driver 350)
FIG. 5 is a schematic diagram showing a hardware configuration example of the motor driver 350 configuring the control system 1 according to the present embodiment. Referring to FIG. 5, motor driver 350 includes field network controller 352 , control processing circuit 360 and drive circuit 380 .
 フィールドネットワークコントローラ352は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。 The field network controller 352 mainly exchanges data with the control device 100 via the field network 10 .
 制御処理回路360は、モータ300の制御に必要な演算処理を実行する。一例として、制御処理回路360は、プロセッサ362と、メインメモリ364と、ストレージ370とを含む。 The control processing circuit 360 executes arithmetic processing necessary for controlling the motor 300 . As an example, control processing circuitry 360 includes processor 362 , main memory 364 , and storage 370 .
 プロセッサ362は、モータ300に係る制御演算を実行する。メインメモリ364は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ370は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 The processor 362 executes control calculations related to the motor 300 . The main memory 364 is composed of, for example, a volatile memory device such as DRAM or SRAM. The storage 370 is configured by, for example, a non-volatile storage device such as SSD or HDD.
 ストレージ370には、モータ300の駆動制御を実現するためのシステムプログラム372が格納される。システムプログラム372は、モータ300の動作に係る制御演算を実行する命令、および、モータ300との間のインターフェイスに係る命令を含む。 A system program 372 for realizing drive control of the motor 300 is stored in the storage 370 . The system program 372 includes instructions for executing control calculations related to the operation of the motor 300 and instructions related to interfacing with the motor 300 .
 ドライブ回路380は、コンバータ回路およびインバータ回路などを含み、制御処理回路360により算出された指令値に従って、指定された電圧・電流・位相の電力を生成して、モータ300へ供給する。 The drive circuit 380 includes a converter circuit, an inverter circuit, and the like, and according to the command value calculated by the control processing circuit 360, generates power of specified voltage, current, and phase, and supplies it to the motor 300.
 モータ300は、機構を構成するいずれかの軸と機械的に結合されている。モータ300としては、駆動対象の機構に応じた特性のモータを採用できる。例えば、モータ300としては、誘導型モータ、同期型モータ、永久磁石型モータ、リラクタンスモータのいずれを採用してもよいし、回転型だけではなく、リニアモータを採用してもよい。 The motor 300 is mechanically coupled to one of the shafts that make up the mechanism. As the motor 300, a motor having characteristics corresponding to the mechanism to be driven can be employed. For example, the motor 300 may be an induction motor, a synchronous motor, a permanent magnet motor, or a reluctance motor, and may be a linear motor as well as a rotary motor.
 (b5:サポート装置400)
 図6は、本実施の形態に係る制御システム1を構成するサポート装置400のハードウェア構成例を示す模式図である。図6を参照して、サポート装置400は、CPUやMPUなどのプロセッサ402と、メインメモリ404と、ストレージ410と、ネットワークコントローラ420と、USBコントローラ424と、入力部426と、表示部428とを含む。これらのコンポーネントは、バス408を介して接続される。
(b5: support device 400)
FIG. 6 is a schematic diagram showing a hardware configuration example of the support device 400 that configures the control system 1 according to this embodiment. 6, support device 400 includes processor 402 such as a CPU or MPU, main memory 404, storage 410, network controller 420, USB controller 424, input unit 426, and display unit 428. include. These components are connected via bus 408 .
 プロセッサ402は、ストレージ410に格納された各種プログラムを読み出して、メインメモリ404に展開して実行することで、サポート装置400で必要な処理を実現する。 The processor 402 reads various programs stored in the storage 410 , develops them in the main memory 404 , and executes them, thereby realizing necessary processing in the support device 400 .
 ストレージ410は、例えば、HDDやSSDなどで構成される。ストレージ410には、典型的には、OS412と、後述するような処理を実現するための開発プログラム414とが格納される。なお、ストレージ410には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。 The storage 410 is composed of, for example, an HDD or SSD. The storage 410 typically stores an OS 412 and a development program 414 for realizing processing as described later. Note that the storage 410 may store necessary programs other than the programs shown in FIG.
 ネットワークコントローラ420は、任意のネットワークを介して、任意の情報処理装置との間でデータをやり取りする。 The network controller 420 exchanges data with any information processing device via any network.
 USBコントローラ424は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。 The USB controller 424 exchanges data with any information processing device via a USB connection.
 入力部426は、マウス、キーボード、タッチパネルなどで構成され、ユーザからの指示を受け付ける。表示部428は、ディスプレイ、各種インジケータなどで構成され、プロセッサ402からの処理結果などを出力する。 The input unit 426 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user. A display unit 428 includes a display, various indicators, and the like, and outputs processing results from the processor 402 and the like.
 サポート装置400は、光学ドライブ406を有していてもよい。光学ドライブ406は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体407(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)からプログラムを読み取って、ストレージ410などに格納する。 The support device 400 may have an optical drive 406 . The optical drive 406 reads the program from a recording medium 407 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, and stores the program in a storage 410 or the like.
 サポート装置400で実行される各種プログラムは、コンピュータ読取可能な記録媒体407を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。 Various programs executed by the support device 400 may be installed via the computer-readable recording medium 407, or may be installed by downloading from any server on the network.
 (b6:表示装置500)
 本実施の形態に係る制御システム1を構成する表示装置500は、一例として、汎用パソコンを用いて実現されてもよい。表示装置500の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b6: display device 500)
Display device 500 configuring control system 1 according to the present embodiment may be realized using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 500 is well known, detailed description thereof will not be given here.
 (b7:サーバ装置600)
 本実施の形態に係る制御システム1を構成するサーバ装置600は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置600の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b7: server device 600)
Server device 600 that configures control system 1 according to the present embodiment may be implemented using a general-purpose personal computer as an example. Since the basic hardware configuration example of the server device 600 is well known, detailed description thereof will not be given here.
 (b8:その他の形態)
 図3~図6には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
(b8: other forms)
3 to 6 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
 <C.開発プログラム>
 図7は、本実施の形態に係るサポート装置400にインストールされた開発プログラム414のより詳細な構成を示す模式図である。図7を参照して、開発プログラム414は、主要なエレメントとして、描画エンジン430と、操作取得エンジン432と、シミュレータ434と、プログラム生成管理エンジン436と、IECプログラム生成エンジン438と、ロボットプログラム生成エンジン440とを含む。
<C. Development program>
FIG. 7 is a schematic diagram showing a more detailed configuration of development program 414 installed in support device 400 according to the present embodiment. Referring to FIG. 7, the development program 414 includes, as main elements, a drawing engine 430, an operation acquisition engine 432, a simulator 434, a program generation management engine 436, an IEC program generation engine 438, and a robot program generation engine. 440 and .
 描画エンジン430は、対象装置を仮想空間上で仮想的に表現する描画部に相当する。描画エンジン430は、装置設定470を参照して、仮想空間上に任意の装置を描画する。装置設定470は、対象の装置に関する情報を含み、後述するように、CAD(computer-aided design)データなどの設計データから自動的に生成されてもよい。加えて、ユーザが対象とする任意の装置の情報を装置設定470に追加等するようにしてもよい。 The rendering engine 430 corresponds to a rendering unit that virtually represents the target device in the virtual space. The rendering engine 430 refers to the device settings 470 and renders any device in the virtual space. Device settings 470 contain information about the device of interest, and may be automatically generated from design data, such as computer-aided design (CAD) data, as described below. In addition, the user may add, for example, information on any target device to the device settings 470 .
 なお、本明細書においては、仮想空間上に設定される任意の装置や機構を「対象装置」と総称する。但し、「対象装置」は、完全な装置として構成されている必要はなく、装置の一部の機構や部位なども含み得る概念である。 In this specification, arbitrary devices and mechanisms set in the virtual space are collectively referred to as "target devices". However, the "target device" does not need to be configured as a complete device, and is a concept that may include a part of the mechanism or part of the device.
 操作取得エンジン432は、ユーザによる対象装置の動作内容の指定を取得する取得部に相当する。より具体的には、操作取得エンジン432は、取得したユーザの操作に基づいて、動作定義460を生成する。動作定義460は、ユーザにより指定された動作内容を特定する情報である。動作定義460は、後述するように、ユーザによる操作の内容を記述したものであり、IECプログラム1104およびロボットプログラム1106を生成するための基準となる。 The operation acquisition engine 432 corresponds to an acquisition unit that acquires the specification of the operation content of the target device by the user. More specifically, the operation acquisition engine 432 generates the action definition 460 based on the acquired user's operation. The action definition 460 is information specifying the action content specified by the user. As will be described later, the action definition 460 describes the details of the user's operation, and serves as a basis for generating the IEC program 1104 and robot program 1106 .
 シミュレータ434は、設定された装置や機構の動作をエミュレートする。すなわち、シミュレータ434は、IECプログラム1104およびロボットプログラム1106に基づいて、対象装置の動作を再現する。シミュレータ434による挙動情報(例えば、時間毎の各部位の位置や速度など)は、描画エンジン430に出力される。描画エンジン430は、シミュレータ434からの挙動情報に基づいて、仮想空間上で装置や機構の動作を再現する。 The simulator 434 emulates the operation of the set device or mechanism. That is, simulator 434 reproduces the motion of the target device based on IEC program 1104 and robot program 1106 . Behavior information from the simulator 434 (for example, positions and velocities of parts over time) is output to the drawing engine 430 . The rendering engine 430 reproduces the behavior of devices and mechanisms in virtual space based on the behavior information from the simulator 434 .
 プログラム生成管理エンジン436は、IECプログラム生成エンジン438およびロボットプログラム生成エンジン440によるプログラムの生成処理を管理するとともに、後述するような実行順序管理プログラム1108を生成する。 The program generation management engine 436 manages program generation processing by the IEC program generation engine 438 and the robot program generation engine 440, and generates an execution order management program 1108 as described later.
 IECプログラム生成エンジン438は、動作定義460を参照して、必要なIECプログラム1104を生成する。 The IEC program generation engine 438 refers to the action definition 460 to generate the required IEC program 1104 .
 ロボットプログラム生成エンジン440は、動作定義460を参照して、必要なロボットプログラム1106を生成する。 The robot program generation engine 440 refers to the action definition 460 to generate the necessary robot program 1106 .
 このように、プログラム生成管理エンジン436、IECプログラム生成エンジン438およびロボットプログラム生成エンジン440は、ユーザにより指定された動作内容に基づいて、IECプログラム1104およびロボットプログラム1106を生成するプログラム生成部に相当する。 In this way, the program generation management engine 436, the IEC program generation engine 438, and the robot program generation engine 440 correspond to program generators that generate the IEC program 1104 and the robot program 1106 based on the operation contents specified by the user. .
 実行順序管理プログラム1108は、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の一例である。実行順序管理プログラム1108に代えて、あるいは、実行順序管理プログラム1108とともに、実行順序を規定するテーブルを用意してもよい。 The execution order management program 1108 is an example of information that defines the execution order between the IEC program 1104 and the robot program 1106. Instead of the execution order management program 1108, or together with the execution order management program 1108, a table defining the execution order may be prepared.
 シミュレータ434は、制御装置100をエミュレートすることもでき、生成されたプログラム(IECプログラム1104、ロボットプログラム1106、実行順序管理プログラム1108)を参照して、プログラムによる装置や機構の動作を再現することもできる。 The simulator 434 can also emulate the control device 100, refer to the generated programs (IEC program 1104, robot program 1106, execution order management program 1108), and reproduce the operation of the device or mechanism by the program. can also
 <D.生成手順例>
 次に、本実施の形態に係るサポート装置400を用いたプログラムの生成手順の一例について説明する。
<D. Example of generation procedure>
Next, an example of a program generation procedure using the support device 400 according to the present embodiment will be described.
 図8は、本実施の形態に係るサポート装置400を用いて仮想空間上で作成した対象装置の一例を示す模式図である。図8を参照して、ユーザは、サポート装置400が提供する仮想空間450上で任意の対象装置を仮想的に作成できる。図8には、ロボットと、ロボットを駆動するためのロボットスライダと、2つのスライダとを含む対象装置の例を示す。現実には、ロボットスライダおよび2つのスライダの各々は、モータ300およびモータドライバ350(図2参照)により駆動される。また、ロボットは、ロボットコントローラ250(図2参照)により制御される。 FIG. 8 is a schematic diagram showing an example of a target device created in virtual space using the support device 400 according to the present embodiment. Referring to FIG. 8, the user can virtually create any target device in virtual space 450 provided by support device 400 . FIG. 8 shows an example of a target device including a robot, a robot slider for driving the robot, and two sliders. In reality, the robot slider and each of the two sliders are driven by motor 300 and motor driver 350 (see FIG. 2). The robot is also controlled by a robot controller 250 (see FIG. 2).
 ロボットスライダおよび2つのスライダの各々の制御には、IECプログラム1104(図3参照)が用いられ、ロボットの制御には、ロボットプログラム1106(図3参照)が用いられる。本実施の形態に係るサポート装置400は、ユーザが後述するような操作を行うことで、IECプログラム1104およびロボットプログラム1106を生成する。 The IEC program 1104 (see FIG. 3) is used to control the robot slider and each of the two sliders, and the robot program 1106 (see FIG. 3) is used to control the robot. The support device 400 according to the present embodiment generates the IEC program 1104 and the robot program 1106 by the user's operation described later.
 先に、図8に示される制御装置に動作について説明する。スライダ1は、3枚のパレットを搭載できる3段の棚が形成された移動トレイ1を所定方向に沿って移動させる。初期状態において、移動トレイ1には、空のパレット(ワークが置載されていないパレット)が格納されている。ロボットは、移動トレイ1から空のパレットをピックし、作業エリアにプレイスする。作業後には、ワークが置載されたパレットをロボットが移動トレイ1に戻す。 First, the operation of the control device shown in FIG. 8 will be described. A slider 1 moves a moving tray 1 formed with three stages of racks on which three pallets can be mounted along a predetermined direction. In the initial state, the transfer tray 1 stores an empty pallet (a pallet on which no work is placed). The robot picks up an empty pallet from the mobile tray 1 and places it in the work area. After the work, the robot returns the pallet on which the work is placed to the transfer tray 1.例文帳に追加
 スライダ2は、ワークを供給する移動トレイ2を所定方向に沿って移動させる。初期状態において、移動トレイ2には、ワークが置載されており、ロボットが移動トレイ2からワークをピックする。 The slider 2 moves the moving tray 2 that supplies the work along a predetermined direction. In the initial state, the work is placed on the transfer tray 2 and the robot picks up the work from the transfer tray 2 .
 ロボットスライダは、スライダ1、作業エリア、スライダ2にロボットを移動させる。ロボットは、作業エリアにおいて、空のパレットにワークを置載する。すなわち、ロボットは、以下の動作を行う。 The robot slider moves the robot to slider 1, work area, and slider 2. A robot places a work on an empty pallet in the work area. That is, the robot performs the following operations.
 (1)スライダ1の移動トレイ1の棚にある空のパレットを先端のアームでピックして、作業エリアにプレイスする
 (2)スライダ2の移動トレイ2に配置されたワークを先端の吸着機構でピックして、作業エリアにあるパレット上にプレイスする
 (3)作業エリアにあるパレットをピックして、スライダ1の移動トレイ1の棚にプレイスする
 以下、上述したような処理を実現するための操作手順の一例について説明する。
(1) An empty pallet on the shelf of the moving tray 1 of the slider 1 is picked up by the arm at the tip and placed in the work area. Pick and place on a pallet in the work area (3) Pick a pallet in the work area and place it on the shelf of the moving tray 1 of the slider 1 Below, operations for realizing the above processing are described. An example of the procedure will be described.
 図9は、図8に示す対象装置の第1番目の動作を設定するための手順例を説明するための図である。図9を参照して、第1番目の動作として、ロボットが移動トレイ1からパレットをピックするために、移動トレイ1をロボットの近傍に移動する動作を設定する。 FIG. 9 is a diagram for explaining a procedure example for setting the first operation of the target device shown in FIG. Referring to FIG. 9, as the first action, the action of moving tray 1 to the vicinity of the robot in order for the robot to pick up a pallet from tray 1 is set.
 より具体的には、ユーザは、スライダ1の移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間450においては、移動トレイ1の位置を任意に変更でき、ユーザは、サポート装置400上で動きおよび位置を確認できる。 More specifically, the user specifies the movement start position and movement end position of the slider 1 by operating the mouse or the like. In the virtual space 450 , the position of the movable tray 1 can be arbitrarily changed, and the user can confirm the movement and position on the support device 400 .
 ユーザは、仮想空間450上で、マウス操作により移動トレイ1を選択して移動させることで、スライダ1の移動開始位置および移動終了位置を指定してもよいし、キーボード操作で対応するパラメータを入力あるいは変更することで、スライダ1の移動開始位置および移動終了位置を指定してもよい。 The user may specify the movement start position and the movement end position of the slider 1 by selecting and moving the tray 1 by operating the mouse in the virtual space 450, or inputting the corresponding parameters by operating the keyboard. Alternatively, the movement start position and the movement end position of the slider 1 may be specified by changing them.
 図10は、図8に示す対象装置の第2番目の動作を設定するための手順例を説明するための図である。図10を参照して、第2番目の動作として、ロボットが移動トレイ1からパレットをピックするために、ロボットスライダでロボットを移動トレイ1の近傍に移動する動作を設定する。 FIG. 10 is a diagram for explaining a procedure example for setting the second operation of the target device shown in FIG. Referring to FIG. 10, as the second operation, an operation of moving the robot to the vicinity of transfer tray 1 by the robot slider is set so that the robot can pick up a pallet from transfer tray 1 .
 より具体的には、ユーザは、ロボットスライダの移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間450においては、ロボットの位置を任意に変更でき、ユーザは、サポート装置400上で動きおよび位置を確認できる。 More specifically, the user designates the movement start position and movement end position of the robot slider by operating the mouse or the like. In the virtual space 450 , the position of the robot can be arbitrarily changed, and the user can confirm the movement and position on the support device 400 .
 ユーザは、仮想空間450上で、マウス操作によりロボットを選択して移動させることで、ロボットスライダの移動開始位置および移動終了位置を指定してもよいし、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボットスライダの移動開始位置および移動終了位置を指定してもよい。 The user may specify the movement start position and the movement end position of the robot slider by selecting and moving the robot by mouse operation in the virtual space 450, or input or change the corresponding parameters by keyboard operation. By doing so, the movement start position and the movement end position of the robot slider may be specified.
 図11は、図8に示す対象装置の第3番目の動作を設定するための手順例を説明するための図である。図11を参照して、第3番目の動作として、ロボットが移動トレイ1からパレットをピックするために、ロボット先端のアームの軌跡を設定(ロボットをティーチング)する。 FIG. 11 is a diagram for explaining a procedure example for setting the third operation of the target device shown in FIG. Referring to FIG. 11, as the third operation, the trajectory of the arm at the tip of the robot is set (teaching the robot) so that the robot can pick up a pallet from transfer tray 1 .
 より具体的には、ユーザは、ロボット先端のアームの軌跡をマウス操作などで指定する。あるいは、ユーザは、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボット先端のアームの軌跡を指定してもよい。さらにあるいは、サポート装置400の表示部428上にティーチングペンダントのオブジェクトを表示して、ユーザが表示されたティーチングペンダントのオブジェクトに対して操作を行うことで、ロボット先端のアームの軌跡を指定してもよい。 More specifically, the user specifies the trajectory of the arm at the tip of the robot by operating the mouse. Alternatively, the user may specify the trajectory of the arm at the tip of the robot by inputting or changing the corresponding parameters through keyboard operations. Alternatively, a teaching pendant object may be displayed on the display unit 428 of the support device 400, and the trajectory of the arm at the tip of the robot may be specified by operating the displayed teaching pendant object. good.
 図12は、図8に示す対象装置の第4番目の動作を設定するための手順例を説明するための図である。図12を参照して、第4番目の動作として、ロボットが移動トレイ1からピックしたパレットを作業エリアにプレイスするために、ロボットスライダでロボットを作業エリアの近傍に移動する動作を設定する。 FIG. 12 is a diagram for explaining a procedure example for setting the fourth operation of the target device shown in FIG. Referring to FIG. 12, as the fourth operation, an operation of moving the robot to the vicinity of the work area by the robot slider is set in order to place the pallet picked up by the robot from the transfer tray 1 in the work area.
 より具体的には、ユーザは、ロボットスライダの移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間450においては、ロボットの位置を任意に変更でき、ユーザは、サポート装置400上で動きおよび位置を確認できる。 More specifically, the user designates the movement start position and movement end position of the robot slider by operating the mouse or the like. In the virtual space 450 , the position of the robot can be arbitrarily changed, and the user can confirm the movement and position on the support device 400 .
 ユーザは、仮想空間450上で、マウス操作によりロボットを選択して移動させることで、ロボットスライダの移動開始位置および移動終了位置を指定してもよいし、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボットスライダの移動開始位置および移動終了位置を指定してもよい。 The user may specify the movement start position and the movement end position of the robot slider by selecting and moving the robot by mouse operation in the virtual space 450, or input or change the corresponding parameters by keyboard operation. By doing so, the movement start position and the movement end position of the robot slider may be specified.
 図13は、図8に示す対象装置の第5番目の動作を設定するための手順例を説明するための図である。図13を参照して、第5番目の動作として、ロボットが移動トレイ1からピックしたパレットを作業エリアにプレイスするために、ロボット先端のアームの軌跡を設定する。 FIG. 13 is a diagram for explaining a procedure example for setting the fifth operation of the target device shown in FIG. Referring to FIG. 13, as the fifth operation, the trajectory of the arm at the tip of the robot is set so that the pallet picked up by the robot from the transfer tray 1 is placed on the work area.
 より具体的には、ユーザは、ロボット先端のアームの軌跡をマウス操作などで指定する。あるいは、ユーザは、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボット先端のアームの軌跡を指定してもよい。さらにあるいは、サポート装置400の表示部428上にティーチングペンダントのオブジェクトを表示して、ユーザが表示されたティーチングペンダントのオブジェクトに対して操作を行うことで、ロボット先端のアームの軌跡を指定してもよい。 More specifically, the user specifies the trajectory of the arm at the tip of the robot by operating the mouse. Alternatively, the user may specify the trajectory of the arm at the tip of the robot by inputting or changing the corresponding parameters through keyboard operations. Alternatively, a teaching pendant object may be displayed on the display unit 428 of the support device 400, and the trajectory of the arm at the tip of the robot may be specified by operating the displayed teaching pendant object. good.
 以下同様の手順で、対象装置の動作が順次設定される。より具体的には、第6番目の動作として、ロボットが移動トレイ2からワークをピックするために、移動トレイ2をロボットの近傍に移動する動作を設定する。第7番目の動作として、ロボットが移動トレイ2からワークをピックするために、ロボットスライダでロボットを移動トレイ2の近傍に移動する動作を設定する。第8番目の動作として、ロボットが移動トレイ2からワークをピックするために、ロボット先端のアームの軌跡を設定する。第9番目の動作として、ロボットが移動トレイ2からピックしたワークを作業エリアにあるパレットにプレイスするために、ロボットスライダでロボットを作業エリアの近傍に移動する動作を設定する。第10番目の動作として、ロボットが移動トレイ2からピックしたワークを作業エリアにあるパレットにプレイスするために、ロボット先端のアームの軌跡を設定する。さらに、ワークがプレイスされたパレットを移動トレイ1に移動するための動作が設定される。 Following the same procedure, the operation of the target device is sequentially set. More specifically, as the sixth action, the action of moving the movable tray 2 to the vicinity of the robot in order for the robot to pick up the work from the movable tray 2 is set. As the seventh action, the action of moving the robot to the vicinity of the transfer tray 2 with the robot slider is set so that the robot can pick up the work from the transfer tray 2 . As the eighth operation, the trajectory of the arm at the tip of the robot is set so that the robot can pick up the workpiece from the transfer tray 2 . As the ninth operation, an operation of moving the robot to the vicinity of the work area with the robot slider is set in order for the robot to place the work picked from the moving tray 2 on the pallet in the work area. As the tenth operation, the trajectory of the arm at the tip of the robot is set in order for the robot to place the work picked from the transfer tray 2 on the pallet in the work area. Furthermore, an operation for moving the pallet on which the work is placed to the transfer tray 1 is set.
 以上のような手順で、ユーザは、対象装置での動作を要素ごとに規定する。サポート装置400は、ユーザによる操作手順に応じて、動作定義460を生成する。 With the above procedure, the user defines the operation of the target device for each element. The support device 400 generates an action definition 460 according to the user's operation procedure.
 図14は、本実施の形態に係るサポート装置400が生成した動作定義460の一例を示す図である。なお、説明の簡素化のため、以下においては、第1番目から第5番目までの動作に注目して説明する。 FIG. 14 is a diagram showing an example of the action definition 460 generated by the support device 400 according to this embodiment. For simplification of explanation, the following explanation focuses on the first to fifth operations.
 図14を参照して、動作定義460は、動作の順序を示す順序欄461と、動作対象を示す動作対象欄462と、機構種別を示す機構種別欄463と、動作内容を示す動作内容欄464とを含む。 14, an action definition 460 includes an order column 461 indicating the order of actions, an action target column 462 indicating an action target, a mechanism type column 463 indicating a mechanism type, and an action content column 464 indicating action details. including.
 順序欄461には、ユーザにより設定された順序を示す番号が格納される。順序欄461に格納された番号ごとに、動作対象欄462に動作対象が定義され、機構種別欄463に機構種別が定義され、動作内容欄464に動作内容が定義される。 The order column 461 stores a number indicating the order set by the user. For each number stored in the sequence column 461 , an operation target is defined in the operation target column 462 , a mechanism type is defined in the mechanism type column 463 , and an operation content is defined in the operation content column 464 .
 図14に示す例では、機構種別欄463には、「スライダ」および/または「ロボット」が格納される。基本的には、「スライダ」が格納された動作については、IECプログラム1104により実現され、「ロボット」が格納された動作については、ロボットプログラム1106により実現される。 In the example shown in FIG. 14, the mechanism type column 463 stores "slider" and/or "robot". Basically, the motion in which the “slider” is stored is implemented by the IEC program 1104, and the motion in which the “robot” is stored is implemented by the robot program 1106. FIG.
 対応する動作対象および動作内容に応じて、IECプログラム1104およびロボットプログラム1106のコードが生成される。 Codes of the IEC program 1104 and the robot program 1106 are generated according to the corresponding operation target and operation content.
 図15は、図14に示される動作定義460に従って生成されたIECプログラム1104の一例を示す。図16は、図14に示される動作定義460に従って生成されたロボットプログラム1106の一例を示す。 FIG. 15 shows an example of the IEC program 1104 generated according to the action definition 460 shown in FIG. FIG. 16 shows an example of a robot program 1106 generated according to the action definition 460 shown in FIG.
 図15に示されるIECプログラム1104は、初期化処理を実現するための命令に加えて、第1番目、第2番目および第4番目の動作に対応する命令が記述される。図15に示す例では、スライダの移動(位置制御)は、モーション命令(MC_MoveAbsolute)が用いられているが、スライダではなく回転機構などに適用する場合には、異なるモーション命令が用いられてもよい。 The IEC program 1104 shown in FIG. 15 describes instructions corresponding to the first, second, and fourth operations in addition to the instructions for implementing the initialization process. In the example shown in FIG. 15, a motion command (MC_MoveAbsolute) is used to move the slider (position control), but a different motion command may be used when applying to a rotating mechanism instead of the slider. .
 図16に示されるロボットプログラム1106は、第3番目および第5番目の動作に対応する命令が記述される。 The robot program 1106 shown in FIG. 16 describes commands corresponding to the third and fifth operations.
 このように、サポート装置400は、ユーザが仮想空間450上で指定した動作に応じて、IECプログラム1104およびロボットプログラム1106を自動的に生成する。なお、IECプログラム1104とロボットプログラム1106との間で、処理の動作順序およびインターロックを実現するために、実行順序管理プログラムが生成されてもよい。 In this way, the support device 400 automatically generates the IEC program 1104 and the robot program 1106 according to the action specified by the user in the virtual space 450. Note that an execution order management program may be generated between the IEC program 1104 and the robot program 1106 in order to realize the operation order and interlock of processing.
 図17は、図14に示される動作定義460に従って生成された実行順序管理プログラム1108の一例を示す。図17を参照して、実行順序管理プログラム1108は、IECプログラム1104およびロボットプログラム1106が共通に参照することのできる変数Index(フラグ)を順次更新(インクリメント)するための命令を含む。変数Indexを順次更新するとともに、変数Indexを各動作の実行条件とすることで、IECプログラム1104とロボットプログラム1106との間で処理を同期させることもできる。 FIG. 17 shows an example of the execution order management program 1108 generated according to the action definition 460 shown in FIG. Referring to FIG. 17, execution order management program 1108 includes instructions for sequentially updating (incrementing) variable Index (flag) that can be commonly referred to by IEC program 1104 and robot program 1106 . Processing can be synchronized between the IEC program 1104 and the robot program 1106 by sequentially updating the variable Index and using the variable Index as a condition for executing each operation.
 このように、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の一例である実行順序管理プログラム1108は、IECプログラム1104およびロボットプログラム1106が参照する値を更新する命令を含む。 In this way, the execution order management program 1108, which is an example of information defining the execution order between the IEC program 1104 and the robot program 1106, includes instructions for updating the values referred to by the IEC program 1104 and the robot program 1106.
 なお、実行順序管理プログラム1108を生成する代わりに、IECプログラム1104およびロボットプログラム1106の実行順序を記述するテーブルや任意の定義を生成するようにしてもよい。すなわち、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の別の一例として、IECプログラム1104およびロボットプログラム1106を実行するタイミングを規定するテーブルであってもよい。 Instead of generating the execution order management program 1108, a table describing the execution order of the IEC program 1104 and the robot program 1106 or arbitrary definitions may be generated. That is, another example of the information that defines the execution order between the IEC program 1104 and the robot program 1106 may be a table that defines timings for executing the IEC program 1104 and the robot program 1106 .
 <E.動作定義の修正/変更>
 サポート装置400は、図14に示される動作定義460に基づいて、IECプログラム1104およびロボットプログラム1106を自動的に生成可能であるが、ユーザは、一種の中間データである動作定義460を修正あるいは変更することもできる。
<E. Correction/change of action definition>
Support device 400 can automatically generate IEC program 1104 and robot program 1106 based on action definition 460 shown in FIG. You can also
 例えば、ユーザは、仮想空間450上において、対象装置に含まれる機構およびロボットの動作および動作手順を指定した後、生成された動作定義460を参照して、動作の妥当性などを評価することができる。ユーザは、必要に応じて、動作定義460に規定される移動距離、目標座標、速度などの値を変更することができる。なお、変更された動作定義460に基づいて、仮想空間450上のシミュレーションを行うことも可能であり、シミュレーションにより動作の妥当性を確認できる。 For example, the user can refer to the generated action definition 460 after specifying the mechanism included in the target device and the action and action procedure of the robot in the virtual space 450 to evaluate the validity of the action. can. The user can change values such as the movement distance, target coordinates, and speed defined in the action definition 460 as necessary. It is also possible to perform a simulation in the virtual space 450 based on the changed action definition 460, and the validity of the action can be confirmed by the simulation.
 図18は、図14に示される動作定義460に対してユーザが修正あるいは変更を行った一例を示す図である。図18を参照して、例えば、第2番目の動作については、第1番目の動作と競合することはないので、2つの動作を並列的に実行するように変更されている。 FIG. 18 is a diagram showing an example of a user's modification or change to the action definition 460 shown in FIG. Referring to FIG. 18, for example, since the second operation does not conflict with the first operation, the two operations are changed to be executed in parallel.
 また、元の第4番目の動作については、仮想空間450上のシミュレーションにより、移動距離の修正が必要であると判断されて、移動距離の値が変更されている。同様に、元の第5番目の動作については、より滑らかな軌跡となるように、通過するポイントが追加されるという経路の見直しが行われている。 Also, with respect to the original fourth motion, it was determined by the simulation in the virtual space 450 that it was necessary to correct the movement distance, and the value of the movement distance was changed. Similarly, for the original 5th motion, the path has been revised by adding passing points for a smoother trajectory.
 このように、サポート装置400は、動作定義460に対するユーザによる変更を受け付ける受付部を有していてもよい。 In this way, the support device 400 may have a reception unit that receives changes made by the user to the action definition 460.
 本実施の形態に係るサポート装置400によれば、動作定義460に記述された理解できる数値を修正あるいは変更するだけで、新たなIECプログラム1104およびロボットプログラム1106が自動的に生成される。これによって、IECプログラム1104およびロボットプログラム1106をプログラミングすることができない装置設計者などであっても、装置全体の動作の指定および指定した動作の確認などを容易に行うことができる。 According to the support device 400 according to the present embodiment, new IEC programs 1104 and robot programs 1106 are automatically generated simply by correcting or changing comprehensible numerical values described in the action definition 460 . As a result, even an apparatus designer who cannot program the IEC program 1104 and the robot program 1106 can easily specify the operation of the entire apparatus and confirm the specified operation.
 <F.処理手順>
 次に、本実施の形態に係るサポート装置400によるプログラム生成に係る処理手順の一例について説明する。
<F. Processing procedure>
Next, an example of a processing procedure relating to program generation by the support device 400 according to this embodiment will be described.
 図19は、本実施の形態に係るサポート装置400によるプログラム生成に係る処理手順を示すフローチャートである。図19に示す各ステップは、典型的には、サポート装置400のプロセッサ402が開発プログラム414を実行することで実現される。 FIG. 19 is a flow chart showing a processing procedure for program generation by the support device 400 according to the present embodiment. Each step shown in FIG. 19 is typically implemented by processor 402 of support device 400 executing development program 414 .
 図19を参照して、サポート装置400は、ユーザによる対象装置の設定を受け付ける(ステップS100)。そして、サポート装置400は、対象装置を仮想空間上で仮想的に表現する(ステップS102)。なお、サポート装置400は、装置設定470(図7)の形で外部からデータを読み込んでもよい。 With reference to FIG. 19, the support device 400 accepts the setting of the target device by the user (step S100). The support device 400 then virtually represents the target device in the virtual space (step S102). Note that the support device 400 may read data from the outside in the form of device settings 470 (FIG. 7).
 続いて、サポート装置400は、ユーザによる設定操作を受け付けて(ステップS104)、動作定義460を順次生成する(ステップS106)。すなわち、サポート装置400は、ユーザによる対象装置の動作内容の指定を取得する。そして、サポート装置400は、ユーザによる設定操作が終了したか否かを判断する(ステップS108)。ユーザによる設定操作が終了していなければ(ステップS108においてNO)、ステップS102以下の処理が繰り返される。 Subsequently, the support device 400 accepts the user's setting operation (step S104), and sequentially generates the action definition 460 (step S106). That is, the support device 400 acquires the specification of the operation content of the target device by the user. Then, the support device 400 determines whether or not the setting operation by the user has ended (step S108). If the setting operation by the user has not ended (NO in step S108), the processing from step S102 onward is repeated.
 ユーザによる設定操作が終了していれば(ステップS108においてYES)、サポート装置400は、ユーザによる動作定義460の表示が要求されたか否かを判断する(ステップS110)。 If the setting operation by the user has been completed (YES in step S108), the support device 400 determines whether display of the action definition 460 has been requested by the user (step S110).
 ユーザによる動作定義460の表示が要求されると(ステップS110においてYES)、サポート装置400は、生成した動作定義460を表示し(ステップS112)、ユーザによる修正または変更の操作を受け付け(ステップS114)、受け付けた内容に従って、動作定義460を変更する(ステップS116)。 When the user requests to display the action definition 460 (YES in step S110), the support device 400 displays the generated action definition 460 (step S112), and accepts the user's correction or change operation (step S114). , the operation definition 460 is changed according to the received contents (step S116).
 ユーザによる動作定義460の表示が要求されていなければ(ステップS110においてNO)、ステップS112~S116の処理はスキップされる。 If display of the action definition 460 by the user is not requested (NO in step S110), the processing of steps S112 to S116 is skipped.
 次に、サポート装置400は、ユーザによるプログラム生成が要求されたか否かを判断する(ステップS118)。ユーザによるプログラム生成が要求されると(ステップS118においてYES)、サポート装置400は、指定された動作内容を記述した動作定義460に基づいて、IECプログラム1104、ロボットプログラム1106および実行順序管理プログラム1108を生成する(ステップS120)。 Next, the support device 400 determines whether or not the user has requested program generation (step S118). When program generation by the user is requested (YES in step S118), support device 400 generates IEC program 1104, robot program 1106, and execution order management program 1108 based on action definition 460 describing the specified action contents. Generate (step S120).
 以上により、サポート装置400によるプログラム生成に係る処理は終了する。なお、生成されたプログラム(IECプログラム1104、ロボットプログラム1106および実行順序管理プログラム1108)は、ユーザ操作に応じて、サポート装置400から制御装置100へ転送される。 Thus, the processing related to program generation by the support device 400 ends. Note that the generated programs (IEC program 1104, robot program 1106, and execution order management program 1108) are transferred from the support device 400 to the control device 100 according to user operations.
 <G.付加機能>
 上述したように、装置設定470については、CADデータなどの設計データから自動的に生成するような機能を実装してもよい。この場合、対象となるワークの形状などについても、CADデータから自動的に生成するようにしてもよい。
<G. Additional functions>
As described above, device settings 470 may be implemented with a function to automatically generate them from design data such as CAD data. In this case, the shape of the target workpiece may also be automatically generated from the CAD data.
 このようなCADデータを利用できる場合には、機構およびロボットが移動する方向や面を規定するようにしてもよい。例えば、XYZステージなどの機構およびロボットを含む製造装置においては、XYZステージのXY面を基準として、ロボットの軌跡を設定できるようにしてもよい。より具体的には、ロボットはXY面に平行にのみ動作するように制限し、その動作制限に応じて、ユーザによる設定の入力を支援するようにしてもよい。このようなユーザ設定に対して制限を行うことで、ユーザはより容易に動作の設定を行うことができる。さらに、機構とロボットとの間で同期したより正確な制御を実現できる。 If such CAD data can be used, the directions and planes in which the mechanisms and robots move may be defined. For example, in a manufacturing apparatus including a mechanism such as an XYZ stage and a robot, the trajectory of the robot may be set with reference to the XY plane of the XYZ stage. More specifically, the robot may be restricted to move only parallel to the XY plane, and the user may be assisted in inputting settings according to the motion restriction. By restricting such user settings, the user can more easily set the operation. Furthermore, synchronized and more accurate control can be achieved between the mechanism and the robot.
 このように、サポート装置400は、CADデータなどの対象装置の設計データから仮想空間上で対象装置を仮想的に表現するための情報(装置設定470)を生成する生成機能を有していてもよい。 In this way, the support device 400 has a generation function of generating information (device settings 470) for virtually representing the target device in the virtual space from design data of the target device such as CAD data. good.
 また、ワークの対象となる面(例えば、ある傾きをもった一面を塗装するなど)に沿って、ロボットを移動させるようなプログラムの生成を容易に行うことができる。なお、ロボットをある傾きをもった面に沿って移動させる場合には、公知の座標変換を行うロジックを適用することが好ましい。 In addition, it is possible to easily generate a program that moves the robot along the target surface of the workpiece (for example, painting a surface with a certain inclination). It should be noted that, when the robot is moved along a surface with a certain inclination, it is preferable to apply a known coordinate conversion logic.
 また、上述したようなワークの対象となる面は、CADデータではなく、仮想空間におけるオブジェクトの座標群から特定してもよい。例えば、ワークの露出面については、対応する座標群が算出される。そのため、算出される座標群を補間することで、露出面を特定できる。 Also, the target surface of the work as described above may be specified from the coordinate group of the object in the virtual space instead of the CAD data. For example, for the exposed surface of the work, a corresponding set of coordinates is calculated. Therefore, the exposed surface can be identified by interpolating the calculated coordinate group.
 上述したように、本実施の形態に係るサポート装置400は、生成されたプログラムに従うシミュレーションも可能となっている。このようなシミュレーションの結果は、仮想空間上にレンダリング(再現)されるため、ユーザは、再現された機構やロボットの動作を参照しながら、生成されたプログラムの妥当性を事前に確認できる。 As described above, support device 400 according to the present embodiment is also capable of simulation according to the generated program. Since the results of such simulations are rendered (reproduced) in virtual space, the user can check the validity of the generated program in advance while referring to the reproduced mechanisms and robot movements.
 <H.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 対象装置を仮想空間(450)上で仮想的に表現する描画部(430)と、
 ユーザによる前記対象装置の動作内容の指定を取得する取得部(432)と、
 前記指定された動作内容に基づいて、IECプログラム(1104)およびロボットプログラム(1106)を生成するプログラム生成部(436,438,440)とを備える、プログラム生成装置。
[構成2]
 前記取得部は、前記指定された動作内容を特定する動作定義(460)を生成する、構成1に記載のプログラム生成装置。
[構成3]
 前記動作定義に対するユーザによる変更を受け付ける受付部をさらに備える、構成2に記載のプログラム生成装置。
[構成4]
 前記プログラム生成部は、前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報(1108)をさらに生成する、構成1~3のいずれか1項に記載のプログラム生成装置。
[構成5]
 前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムが参照する値を更新する命令を含む、構成4に記載のプログラム生成装置。
[構成6]
 前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムを実行するタイミングを規定するテーブルを含む、構成4または5に記載のプログラム生成装置。
[構成7]
 前記対象装置の設計データから前記仮想空間上で前記対象装置を仮想的に表現するための情報を生成する生成部をさらに備える、構成1~6のいずれか1項に記載のプログラム生成装置。
[構成8]
 前記IECプログラムおよび前記ロボットプログラムに基づいて、前記対象装置の動作を再現するシミュレータ(434)をさらに備える、構成1~7のいずれか1項に記載のプログラム生成装置。
[構成9]
 コンピュータ(400)に、
 対象装置を仮想空間上で仮想的に表現するステップ(S102)と、
 ユーザによる前記対象装置の動作内容の指定を取得するステップ(S106)と、
 前記指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップ(S120)とを実行させる、プログラム生成プログラム。
[構成10]
 対象装置を仮想空間上で仮想的に表現するステップ(S102)と、
 ユーザによる前記対象装置の動作内容の指定を取得するステップ(S106)と、
 前記指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップ(S120)とを備える、プログラム生成方法。
<H. Note>
The present embodiment as described above includes the following technical ideas.
[Configuration 1]
a rendering unit (430) that virtually represents the target device in a virtual space (450);
an acquisition unit (432) for acquiring a specification of the operation content of the target device by a user;
A program generation device comprising a program generation unit (436, 438, 440) that generates an IEC program (1104) and a robot program (1106) based on the specified operation content.
[Configuration 2]
The program generation device according to configuration 1, wherein the acquisition unit generates an action definition (460) specifying the specified action content.
[Configuration 3]
The program generation device according to configuration 2, further comprising a reception unit that receives a user's change to the action definition.
[Configuration 4]
4. The program generation device according to any one of configurations 1 to 3, wherein the program generation unit further generates information (1108) defining an execution order between the IEC program and the robot program.
[Configuration 5]
5. The program generation device according to configuration 4, wherein the information defining the execution order between the IEC program and the robot program includes an instruction for updating values referred to by the IEC program and the robot program.
[Configuration 6]
6. The program generation device according to configuration 4 or 5, wherein the information defining an execution order between the IEC program and the robot program includes a table defining timings for executing the IEC program and the robot program.
[Configuration 7]
7. The program generation device according to any one of configurations 1 to 6, further comprising a generation unit that generates information for virtually expressing the target device in the virtual space from design data of the target device.
[Configuration 8]
8. The program generation device according to any one of configurations 1 to 7, further comprising a simulator (434) that reproduces the operation of the target device based on the IEC program and the robot program.
[Configuration 9]
to the computer (400);
a step of virtually expressing the target device in the virtual space (S102);
a step of acquiring a user's specification of operation content of the target device (S106);
A program generation program for executing a step (S120) of generating an IEC program and a robot program based on the specified operation content.
[Configuration 10]
a step of virtually expressing the target device in the virtual space (S102);
a step of acquiring a user's specification of operation content of the target device (S106);
A program generation method comprising a step (S120) of generating an IEC program and a robot program based on the designated operation content.
 <I.利点>
 本実施の形態に係る制御システム1によれば、ユーザは、仮想空間上で対象装置の動作内容を指定するだけで、対象装置を実環境で動作させるためのIECプログラムおよびロボットプログラムを生成できるので、プログラムの生成に関する知識が乏しいユーザであっても、動作に必要なプログラムを生成できる。
<I. Advantage>
According to the control system 1 according to the present embodiment, the user can generate an IEC program and a robot program for operating the target device in the real environment simply by designating the operation contents of the target device in the virtual space. , even a user with little knowledge of program generation can generate a program necessary for operation.
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed this time should be considered illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all modifications within the scope and meaning equivalent to the scope of the claims.
 1 制御システム、10 フィールドネットワーク、20 上位ネットワーク、100 制御装置、102,262,362,402 プロセッサ、104,264,364,404 メインメモリ、106 上位ネットワークコントローラ、108,252,352 フィールドネットワークコントローラ、110,270,370,410 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118 プロセッサバス、120,424 USBコントローラ、122 ローカルバス、130 機能ユニット、200 ロボット、250 ロボットコントローラ、260,360 制御処理回路、268 インターフェイス回路、272,372,1102 システムプログラム、300 モータ、350 モータドライバ、380 ドライブ回路、400 サポート装置、406 光学ドライブ、407 記録媒体、408 バス、412 OS、414 開発プログラム、420 ネットワークコントローラ、426 入力部、428 表示部、430 描画エンジン、432 操作取得エンジン、434 シミュレータ、436 プログラム生成管理エンジン、438 生成エンジン、440 ロボットプログラム生成エンジン、450 仮想空間、460 動作定義、461 順序欄、462 動作対象欄、463 機構種別欄、464 動作内容欄、470 装置設定、500 表示装置、600 サーバ装置、1104 IECプログラム、1106 ロボットプログラム、1108 実行順序管理プログラム。 1 control system, 10 field network, 20 host network, 100 control device, 102, 262, 362, 402 processor, 104, 264, 364, 404 main memory, 106 host network controller, 108, 252, 352 field network controller, 110 , 270, 370, 410 storage, 112 memory card interface, 114 memory card, 116 local bus controller, 118 processor bus, 120, 424 USB controller, 122 local bus, 130 functional unit, 200 robot, 250 robot controller, 260, 360 Control processing circuit, 268 interface circuit, 272, 372, 1102 system program, 300 motor, 350 motor driver, 380 drive circuit, 400 support device, 406 optical drive, 407 recording medium, 408 bus, 412 OS, 414 development program, 420 Network controller, 426 input unit, 428 display unit, 430 drawing engine, 432 operation acquisition engine, 434 simulator, 436 program generation management engine, 438 generation engine, 440 robot program generation engine, 450 virtual space, 460 motion definition, 461 sequence column , 462 Operation target column, 463 Mechanism type column, 464 Operation content column, 470 Device setting, 500 Display device, 600 Server device, 1104 IEC program, 1106 Robot program, 1108 Execution order management program.

Claims (10)

  1.  対象装置を仮想空間上で仮想的に表現する描画部と、
     ユーザによる前記対象装置の動作内容の指定を取得する取得部と、
     前記指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するプログラム生成部とを備える、プログラム生成装置。
    a rendering unit that virtually represents a target device in a virtual space;
    an acquisition unit that acquires a specification of operation content of the target device by a user;
    A program generation device, comprising: a program generation unit that generates an IEC program and a robot program based on the designated operation content.
  2.  前記取得部は、前記指定された動作内容を特定する動作定義を生成する、請求項1に記載のプログラム生成装置。 The program generation device according to claim 1, wherein said acquisition unit generates an action definition specifying said specified action content.
  3.  前記動作定義に対するユーザによる変更を受け付ける受付部をさらに備える、請求項2に記載のプログラム生成装置。 3. The program generation device according to claim 2, further comprising a receiving unit that receives changes made by the user to the action definition.
  4.  前記プログラム生成部は、前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報をさらに生成する、請求項1~3のいずれか1項に記載のプログラム生成装置。 The program generation device according to any one of claims 1 to 3, wherein said program generation unit further generates information defining an execution order between said IEC program and said robot program.
  5.  前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムが参照する値を更新する命令を含む、請求項4に記載のプログラム生成装置。 The program generation device according to claim 4, wherein the information defining the execution order between the IEC program and the robot program includes an instruction for updating values referred to by the IEC program and the robot program.
  6.  前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムを実行するタイミングを規定するテーブルを含む、請求項4または5に記載のプログラム生成装置。 6. The program generation device according to claim 4 or 5, wherein the information defining the execution order between the IEC program and the robot program includes a table defining timings for executing the IEC program and the robot program.
  7.  前記対象装置の設計データから前記仮想空間上で前記対象装置を仮想的に表現するための情報を生成する生成部をさらに備える、請求項1~6のいずれか1項に記載のプログラム生成装置。 The program generation device according to any one of claims 1 to 6, further comprising a generation unit that generates information for virtually representing the target device in the virtual space from design data of the target device.
  8.  前記IECプログラムおよび前記ロボットプログラムに基づいて、前記対象装置の動作を再現するシミュレータをさらに備える、請求項1~7のいずれか1項に記載のプログラム生成装置。 The program generation device according to any one of claims 1 to 7, further comprising a simulator that reproduces the operation of the target device based on the IEC program and the robot program.
  9.  コンピュータに、
     対象装置を仮想空間上で仮想的に表現するステップと、
     ユーザによる前記対象装置の動作内容の指定を取得するステップと、
     前記指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップとを実行させる、プログラム生成プログラム。
    to the computer,
    a step of virtually representing a target device in a virtual space;
    obtaining a user's designation of the operation content of the target device;
    A program generation program for executing a step of generating an IEC program and a robot program based on the specified operation content.
  10.  対象装置を仮想空間上で仮想的に表現するステップと、
     ユーザによる前記対象装置の動作内容の指定を取得するステップと、
     前記指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップとを備える、プログラム生成方法。
    a step of virtually representing a target device in a virtual space;
    obtaining a user's designation of the operation content of the target device;
    and generating an IEC program and a robot program based on the specified operation content.
PCT/JP2021/009585 2021-01-29 2021-03-10 Program generation device, program generation program, and program generation method WO2022162960A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-013385 2021-01-29
JP2021013385A JP2022116952A (en) 2021-01-29 2021-01-29 Program generation device, program generation program, and program generation method

Publications (1)

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

Family

ID=82653225

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/009585 WO2022162960A1 (en) 2021-01-29 2021-03-10 Program generation device, program generation program, and program generation method

Country Status (2)

Country Link
JP (1) JP2022116952A (en)
WO (1) WO2022162960A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000158301A (en) * 1998-11-30 2000-06-13 Murata Mach Ltd Plate handling system
JP2008033419A (en) * 2006-07-26 2008-02-14 Honda Motor Co Ltd Cad device for robot teaching, and robot teaching method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000158301A (en) * 1998-11-30 2000-06-13 Murata Mach Ltd Plate handling system
JP2008033419A (en) * 2006-07-26 2008-02-14 Honda Motor Co Ltd Cad device for robot teaching, and robot teaching method

Also Published As

Publication number Publication date
JP2022116952A (en) 2022-08-10

Similar Documents

Publication Publication Date Title
Malik et al. Virtual reality in manufacturing: immersive and collaborative artificial-reality in design of human-robot workspace
JP6350037B2 (en) Robot simulator and robot simulator file generation method
JP2019036014A (en) Information processing apparatus, information processing method and program
US10814486B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
US10761513B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
WO2010017835A1 (en) A system and a method for off-line programming of an industrial robot
WO2011114778A1 (en) Display device, display method, program, virtual mechanism library, and computer-readable recording medium
JP6900863B2 (en) Control unit, control method and control program
JP2020107315A (en) Synchronization control device, synchronization control system, synchronization control method, and simulation device
CN113836702A (en) Robot teaching programming method and robot teaching programming device
WO2021181801A1 (en) Robot control system and control method
JP6972873B2 (en) Information processing equipment, information processing methods, and information processing programs
WO2022162960A1 (en) Program generation device, program generation program, and program generation method
JP2019191737A (en) Information processing system, information processing method, and information processing program
Stone et al. 1Augmented Reality Interface For Industrial Robot Controllers
JP2827239B2 (en) Operation state display device, operation instruction control device, and control device
JP2009048396A (en) Simulator of motor motion
WO2021181800A1 (en) Robot control system and control method
JP7501064B2 (en) Simulation device, simulation method, and simulation program
Rosário et al. Proposal of methodology for the modeling and control of manipulators
US20230341835A1 (en) Control device, control system, and program
WO2022249713A1 (en) Control system, system program, and debugging method
JP2022189270A (en) Simulation system, simulation method, and simulation program
da Rosa et al. Design and Implementation of a Platform for Controlling the Mentor Robotic Arm
WO2020137522A1 (en) Synchronization control device, synchronization control system, synchronization control method, and simulation device

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

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

Country of ref document: EP

Kind code of ref document: A1