PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD

The program generation device addresses the lack of integrated solutions for robot application programs by enabling users to generate synchronized IEC and robot programs through virtual representation and user-specifiable operation details, facilitating easy and accurate control device programming.

JP7604918B2Active Publication Date: 2024-12-24OMRON CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021013385
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-01-29
Publication Date
2024-12-24
Estimated Expiration
2041-01-29

AI Technical Summary

Technical Problem

Existing technologies for robot applications focus on generating programs for operating robots but neglect the programs executed by control devices, such as PLCs, leading to a lack of integrated solutions for easy program generation.

Method used

A program generation device that includes a drawing unit to represent a target device in a virtual space, an acquisition unit to specify operation details, and a program generation unit to create IEC and robot programs based on user input, allowing for the generation of synchronized control programs without requiring specialized knowledge.

Benefits of technology

Enables easy and accurate generation of IEC and robot programs, facilitating synchronized operation of robots and mechanisms, even for users with limited technical expertise, by allowing specification and modification of operation details in a virtual environment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007604918000001
    Figure 0007604918000001
  • Figure 0007604918000002
    Figure 0007604918000002
  • Figure 0007604918000003
    Figure 0007604918000003
Patent Text Reader

Abstract

To provide solution means capable of easily generating a program which is necessary for an application including a robot.SOLUTION: A program generation device: a drawing unit that virtually represents a target device in a virtual space; an acquisition unit that acquires a designation of an operation content of the target device by a user; and a program generation unit that generates an IEC program and a robot program based on the designated operation content.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present technology relates to a program generation device, a program generation program, and a program generation method. [Background technology]

[0002] In the field of FA (Factory Automation), robots are used in various applications. Such applications require a program to be executed by a control device such as a PLC (Programmable Logic Controller) and a program to control the robot.

[0003] 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 for reducing the work required by an operator to create an operation program for a robot.

[0004] Furthermore, Japanese Patent Application Laid-Open No. 2018-118330 (Patent Document 2) discloses a computing device capable of automatically generating cooperative movements of multiple robots in a short period of time. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2019-018250 A [Patent Document 2] JP 2018-118330 A Summary of the Invention [Problem to be solved by the invention]

[0006] In an application including a robot, it is necessary to directly or indirectly link a program executed by a control device with a program for controlling the robot. In contrast, the technology disclosed in the above-mentioned prior art documents focuses on the generation of a program for operating a robot, and does not take into consideration the program executed by the control device.

[0007] The present technology aims to provide a solution that makes it possible to easily generate programs required in applications including robots. [Means for solving the problem]

[0008] A program generation device according to an embodiment of the present technology includes a drawing unit that virtually represents a target device in a virtual space, an acquisition unit that acquires a user's designation of operation content of the target device, and a program generation unit that generates an IEC program and a robot program based on the designated operation content.

[0009] With this configuration, a user can generate an IEC program and a robot program for operating the target device in a real environment simply by specifying the operation content of the target device in the virtual space, so that even a user with little knowledge about program generation can generate the program required for operation.

[0010] 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 action of the target device in the virtual space without being aware of the generation of the action definition, so that even a user with little specialized knowledge can use it. In addition, by generating an action definition that specifies the specified action content, the IEC program and the robot program can be generated more reliably.

[0011] The program generating device may further include a receiving unit that receives changes to the operation definition by a user. With this configuration, the user can check the operation definition that specifies the specified operation content and then make corrections, etc., as necessary.

[0012] The program generating unit may further generate information that specifies the execution order between the IEC program and the robot program. With this configuration, more accurate control can be achieved in cases where the robot and another mechanism need to be operated in synchronization with each other.

[0013] The information defining the execution order between the IEC program and the robot program may include an instruction to update values ​​referenced by the IEC program and the robot program. With this configuration, in an environment in which the IEC program and the robot program are executed in parallel, processing can proceed while maintaining interlock between the two programs.

[0014] The information defining the execution order between the IEC program and the robot program may include a table defining the timing of execution of the IEC program and the robot program. With this configuration, the execution order of the IEC program and the robot program can be explicitly defined.

[0015] The program generation device may further include a generation unit that generates information for virtually expressing the target device in a virtual space from design data of the target device. With this configuration, the target device can be easily reproduced in a virtual space from design data such as CAD data.

[0016] The program generating device may further include a simulator that reproduces the operation of the target device based on the IEC program and the robot program. With this configuration, the operation of the target device based on the generated IEC program and the robot program can be easily confirmed.

[0017] A program generation program according to another embodiment of the present technology causes a computer to execute the steps of virtually representing a target device in a virtual space, acquiring a user's designation of the operation content of the target device, and generating an IEC program and a robot program based on the designated operation content.

[0018] A program generation method according to yet another embodiment of the present technology includes the steps of virtually representing a target device in a virtual space, obtaining a user's designation of operation content of the target device, and generating an IEC program and a robot program based on the designated operation content. Effect of the Invention

[0019] According to the present technology, it is possible to easily generate programs required for applications including robots. [Brief description of the drawings]

[0020] [Figure 1] FIG. 2 is a schematic diagram showing main functions of the program generating device according to the present embodiment. [Diagram 2] 1 is a schematic diagram illustrating an outline of a system configuration of a control system according to an embodiment of the present invention. [Diagram 3] 2 is a schematic diagram illustrating an example of a hardware configuration of a control device that constitutes the control system according to the present embodiment. FIG. [Figure 4] FIG. 2 is a schematic diagram showing an example of a hardware configuration of a robot controller that constitutes the control system according to the present embodiment. [Diagram 5] FIG. 2 is a schematic diagram showing an example of a hardware configuration of a motor driver that constitutes the control system according to the present embodiment. [Figure 6] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a support device that constitutes the control system according to the present embodiment. [Figure 7] 2 is a schematic diagram showing a more detailed configuration of a development program installed in a support device according to the present embodiment; FIG. [Figure 8] It is a schematic diagram showing an example of a target device created in a virtual space using the support device according to the present embodiment. [Figure 9] It is a diagram for explaining an example of a procedure for setting the first operation of the target device shown in FIG. 8. [Figure 10] It is a diagram for explaining an example of a procedure for setting the second operation of the target device shown in FIG. 8. [Figure 11] It is a diagram for explaining an example of a procedure for setting the third operation of the target device shown in FIG. 8. [Figure 12] It is a diagram for explaining an example of a procedure for setting the fourth operation of the target device shown in FIG. 8. [Figure 13] It is a diagram for explaining an example of a procedure for setting the fifth operation of the target device shown in FIG. 8. [Figure 14] It is a diagram showing an example of an operation definition generated by the support device according to the present embodiment. [Figure 15] An example of an IEC program generated according to the operation definition shown in FIG. 14 is shown. [Figure 16] An example of a robot program generated according to the operation definition shown in FIG. 14 is shown. [Figure 17] An example of an execution order management program generated according to the operation definition shown in FIG. 14 is shown. [Figure 18] It is a diagram showing an example in which a user makes a modification or change to the operation definition shown in FIG. 14. [Figure 19] It is a flowchart showing a processing procedure related to program generation by the support device according to the present embodiment.

Embodiments for Carrying Out the Invention

[0021] Embodiments of the present technology will be described in detail with reference to the drawings. For the same or corresponding parts in the drawings, the same reference numerals are given and the description thereof will not be repeated.

[0022] <A. Application Examples> First, an example of the scenario to which this technology is applied will be described. FIG. 1 is a schematic diagram showing the main functions of the program generation device according to this embodiment. In FIG. 1, a support device 400 is shown as an example of the program generation device according to this embodiment. The support device 400 has a drawing function for virtually representing a target device in a virtual space. The user specifies the operation content of the target device, and the support device 400 acquires the operation content specified by the user. Then, the support device 400 generates an IEC program 1104 and a robot program 1106 based on the specified operation content.

[0023] By providing such a configuration, programs required in an application including a robot can be easily generated.

[0024] Note that the program generation device may be realized not as the support device 400 but as an arbitrary information processing device, or a part or all of the required functions may be realized using a plurality of processor resources.

[0025] <B. Control System Configuration> Next, the configuration of the control system 1 including the program generation device according to this embodiment will be described.

[0026] (b1: Overall Configuration) FIG. 2 is a schematic diagram outlining the system configuration of the control system 1 according to this embodiment. Referring to FIG. 2, the control system 1 includes a control device 100, a robot controller 250, and a motor driver 350 that are network-connected to the control device 100 via a field network 10.

[0027] The control device 100 exchanges data with devices connected to the field network 10 and executes processing as described later. The control device 100 may typically be realized by a PLC.

[0028] The robot controller 250 is responsible for controlling the robot 200. More specifically, the robot controller 250 functions as an interface with the robot 200, and outputs commands to drive the robot 200 in accordance with commands from the control device 100, and also acquires state values ​​of the robot 200 and outputs them to the control device 100.

[0029] The motor driver 350 is responsible for 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 a command to the corresponding motor 300 to drive an axis constituting the mechanism according to a command from the control device 100, and also acquires a state value of the motor 300 and outputs it to the control device 100.

[0030] For the field network 10, EtherCAT (registered trademark), EtherNet / IP, or the like, which are protocols for industrial networks, can be used. When EtherCAT is adopted as the protocol, data can be exchanged between the control device 100 and devices connected to the field network 10 at a fixed cycle of, for example, several hundred microseconds to several milliseconds. By exchanging data at such a fixed cycle, the robot 200 and mechanisms included in the control system 1 can be controlled at high speed and with high precision.

[0031] The control device 100 may be connected to the display device 500 and the server device 600 via a higher-level network 20. For the higher-level network 20, a protocol for industrial networks such as EtherNet / IP can be used.

[0032] A support device 400 for installing user programs to be executed by the control device 100 and for performing various settings may be connected to the control device 100. The support device 400 is an example of a program generating device according to the present embodiment.

[0033] An example of the hardware configuration of the main devices constituting the control system 1 shown in FIG. 2 will be described below.

[0034] (b2: control device 100) Fig. 3 is a schematic diagram showing an example of a hardware configuration of a control device 100 constituting a control system 1 according to the present embodiment. Referring to Fig. 3, the control device 100 includes a processor 102, a main memory 104, a storage 110, a memory card interface 112, a host network controller 106, a field network controller 108, a local bus controller 116, and a USB controller 120 providing a USB (Universal Serial Bus) interface. These components are connected via a processor bus 118.

[0035] The processor 102 corresponds to an arithmetic processing unit that executes control calculations, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), etc. Specifically, the processor 102 reads out a program stored in the storage 110, expands it in the main memory 104, and executes it to realize control calculations for a control target.

[0036] The main memory 104 is configured with a volatile storage device such as a dynamic random access memory (DRAM) or a static random access memory (SRAM). The storage 110 is configured with a non-volatile storage device such as a solid state drive (SSD) or a hard disk drive (HDD).

[0037] The storage 110 stores a system program 1102 for implementing basic functions, an IEC program 1104 created according to the object to be controlled, a robot program 1106, and the like.

[0038] The IEC program 1104 includes instructions necessary for implementing processes other than the process of controlling the robot 200 in the control system 1 according to the present embodiment. The IEC program 1104 may typically include sequence instructions and motion instructions. The IEC program 1104 may be written in any language defined in IEC 61131-3 established by the International Electrotechnical Commission (IEC). However, the IEC program 1104 may include a program written in a manufacturer-specific language other than the language defined in IEC 61131-3. The IEC program 1104 is a basic program executed by the PLC, and is therefore also referred to as a "PLC program."

[0039] 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 the V+ language, or a programming language related to NC control such as G-code).

[0040] 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 and writing any data from and to the memory card 114.

[0041] The upper network controller 106 exchanges data with any information processing device (such as the display device 500 and the server device 600 shown in FIG. 2) via the upper network 20.

[0042] The field network controller 108 exchanges data with each device via the field network 10 .

[0043] 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 may be, for example, an analog I / O unit responsible for input and / or output of analog signals, a digital I / O unit responsible for input and / or output of digital signals, a counter unit that receives pulses from an encoder or the like, and the like.

[0044] The USB controller 120 exchanges data with any information processing device (such as the support device 400) via a USB connection.

[0045] (b3: Robot controller 250) 4 is a schematic diagram showing an example of a hardware configuration of a robot controller 250 constituting the control system 1 according to the present embodiment. Referring to FIG. 4, the robot controller 250 The robot controller 250 includes a field network controller 252 and a control processing circuit 260 .

[0046] The field network controller 252 mainly exchanges data with the control device 100 via the field network 10 .

[0047] The control processing circuit 260 executes calculation processing necessary to drive the robot 200. As an example, the control processing circuit 260 includes a processor 262, a main memory 264, a storage 270, and an interface circuit 268.

[0048] The processor 262 executes control calculations for driving the robot 200. The main memory 264 is composed of, for example, a volatile storage device such as a DRAM or an SRAM. The storage 270 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.

[0049] The storage 270 stores a system program 272 for implementing control for driving the robot 200. The system program 272 includes instructions for executing control calculations related to the operation of the robot 200, and instructions related to the interface with the robot 200.

[0050] The interface circuit 268 exchanges data with the robot 200 . (b4: Motor driver 350) 5 is a schematic diagram showing an example of a hardware configuration of a motor driver 350 constituting the control system 1 according to the present embodiment. Referring to FIG. 5, the motor driver 350 includes a field network controller 352, a control processing circuit 360, and a drive circuit 380.

[0051] The field network controller 352 mainly exchanges data with the control device 100 via the field network 10 .

[0052] The control processing circuit 360 executes calculation processing required for controlling the motor 300. As an example, the control processing circuit 360 includes a processor 362, a main memory 364, and a storage 370.

[0053] The processor 362 executes control calculations related to the motor 300. The main memory 364 is formed of, for example, a volatile storage device such as a DRAM or an SRAM. The storage 370 is formed of, for example, a non-volatile storage device such as an SSD or an HDD.

[0054] The storage 370 stores a system program 372 for implementing drive control of the motor 300. The system program 372 includes instructions for executing control calculations related to the operation of the motor 300, and instructions related to the interface with the motor 300.

[0055] The drive circuit 380 includes a converter circuit, an inverter circuit, and the like, and generates electric power of a specified voltage, current, and phase according to the command value calculated by the control processing circuit 360 , and supplies it to the motor 300 .

[0056] The motor 300 is mechanically coupled to one of the shafts constituting the mechanism. A motor having characteristics according to the mechanism to be driven can be used as the motor 300. 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.

[0057] (b5: Support device 400) Fig. 6 is a schematic diagram showing an example of a hardware configuration of a support device 400 constituting the control system 1 according to the present embodiment. With reference to Fig. 6, the support device 400 includes a processor 402 such as a CPU or an MPU, a main memory 404, a storage 410, a network controller 420, a USB controller 424, an input unit 426, and a display unit 428. These components are connected via a bus 408.

[0058] The processor 402 reads out various programs stored in the storage 410, loads them into the main memory 404, and executes them to realize the processes required by the support device 400.

[0059] The storage 410 is configured with, for example, an HDD, an SSD, etc. Typically, the storage 410 stores an OS 412 and a development program 414 for implementing processing as described below. Note that the storage 410 may store necessary programs other than the programs shown in FIG.

[0060] The network controller 420 exchanges data with any information processing device via any network.

[0061] The USB controller 424 exchanges data with any information processing device via a USB connection.

[0062] The input unit 426 is configured with a mouse, keyboard, touch panel, etc., and receives instructions from a user. The display unit 428 is configured with a display, various indicators, etc., and outputs the processing results from the processor 402, etc.

[0063] The support device 400 may include an optical drive 406. The optical drive 406 reads a computer-readable program from a recording medium 407 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores the program, and stores the program in the storage 410 or the like.

[0064] The various programs executed by the support device 400 may be installed via a computer-readable recording medium 407, or may be installed by downloading from an arbitrary server on the network.

[0065] (b6:Display device 500) The display device 500 constituting the control system 1 according to the present embodiment may be realized, for example, by using a general-purpose personal computer. A basic hardware configuration example of the display device 500 is well known, and therefore will not be described in detail here.

[0066] (b7: server device 600) The server device 600 constituting the control system 1 according to the present embodiment may be realized by using a general-purpose personal computer, for example. A basic hardware configuration example of the server device 600 is well known, so a detailed description will not be given here.

[0067] (b8:Other forms) Figures 3 to 6 show configuration examples in which one or more processors provide necessary functions by executing a program. However, some or all of these provided functions may be implemented using dedicated hardware circuits (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array), etc.).

[0068] <C. Development Program> Figure 7 is a schematic diagram showing a more detailed configuration of the development program 414 installed in the support device 400 according to the present embodiment. Referring to Figure 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.

[0069] The drawing engine 430 corresponds to a drawing unit that virtually represents the target device in a virtual space. The drawing engine 430 refers to the device settings 470 and draws an arbitrary device in the virtual space. The device settings 470 include information about the target device and may be automatically generated from design data such as CAD (computer-aided design) data as described later. In addition, the user may add information about an arbitrary device targeted by the user to the device settings 470, etc.

[0070] In this specification, any device or mechanism set in the virtual space is collectively referred to as the "target device". However, the "target device" is a concept that does not necessarily need to be configured as a complete device and may also include some mechanisms or parts of the device.

[0071] The operation acquisition engine 432 corresponds to an acquisition unit that acquires the designation of the operation content of the target device by the user. More specifically, the operation acquisition engine 432 generates an operation definition 460 based on the acquired user operation. The operation definition 460 is information that specifies the operation content designated by the user. As described later, the operation definition 460 describes the content of the operation by the user, and serves as a reference for generating the IEC program 1104 and the robot program 1106.

[0072] The simulator 434 emulates the operation of a set device or mechanism. That is, the simulator 434 reproduces the operation of the target device based on the IEC program 1104 and the robot program 1106. Behavior information (e.g., the position and speed of each part over time) by the simulator 434 is output to the drawing engine 430. The drawing engine 430 reproduces the operation of the device or mechanism in a virtual space based on the behavior information from the simulator 434.

[0073] The program generation management engine 436 manages the program generation process performed by the IEC program generation engine 438 and the robot program generation engine 440, and also generates an execution sequence management program 1108 as described below.

[0074] The IEC program generation engine 438 references the operation definition 460 to generate the required IEC program 1104 .

[0075] The robot program generation engine 440 references the operation definition 460 to generate the required robot program 1106 .

[0076] In this way, the program generation management engine 436, the IEC program generation engine 438, and the robot program generation engine 440 correspond to a program generation unit that generates the IEC program 1104 and the robot program 1106 based on the operation content specified by the user.

[0077] 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, or together with, the execution order management program 1108, a table that defines the execution order may be prepared.

[0078] The simulator 434 can also emulate the control device 100 and, with reference to the generated programs (IEC program 1104, robot program 1106, execution order management program 1108), can reproduce the operations of the devices and mechanisms by the programs.

[0079] <D. Example of generation procedure> Next, an example of the generation procedure of a program using the support device 400 according to the present embodiment will be described.

[0080] FIG. 8 is a schematic diagram showing an example of a target device created in a virtual space using the support device 400 according to the present embodiment. Referring to FIG. 8, the user can virtually create an arbitrary target device on the virtual space 450 provided by the 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, each of the robot slider and the two sliders is driven by a motor 300 and a motor driver 350 (see FIG. 2). Further, the robot is controlled by a robot controller 250 (see FIG. 2).

[0081] For the control of each of the robot slider and the two sliders, the IEC program 1104 (see FIG. 3) is used, and for the control of the robot, the robot program 1106 (see FIG. 3) is used. The support device 400 according to the present embodiment generates the IEC program 1104 and the robot program 1106 when the user performs an operation as described later.

[0082] First, the operation of the control device shown in Fig. 8 will be described. The slider 1 moves the movable tray 1, which has three shelves formed so that three pallets can be loaded onto it, in a predetermined direction. In the initial state, an empty pallet (a pallet on which no workpieces are placed) is stored in the movable tray 1. The robot picks up the empty pallet from the movable tray 1 and places it in the work area. After the work is completed, the robot returns the pallet with the workpieces placed on it to the movable tray 1.

[0083] The slider 2 moves the movable tray 2 for supplying the workpieces along a predetermined direction. In the initial state, the movable tray 2 has a workpiece placed thereon, and the robot picks up the workpiece from the movable tray 2.

[0084] The robot slider moves the robot from slider 1 to the work area and then to slider 2. In the work area, the robot places a workpiece on an empty pallet. That is, the robot performs the following operations.

[0085] (1) Pick up an empty pallet on the shelf of moving tray 1 of slider 1 with the arm at the tip and place it in the work area. (2) The workpiece placed on the moving tray 2 of the slider 2 is picked up by the suction mechanism at the tip and placed on the pallet in the work area. (3) Pick up a pallet in the work area and place it on the shelf of mobile tray 1 of slider 1. An example of an operation procedure for implementing the above-mentioned processing will be described below.

[0086] Fig. 9 is a diagram for explaining an example of a procedure for setting a first operation of the target device shown in Fig. 8. With reference to Fig. 9, an operation for moving the movable tray 1 to the vicinity of the robot in order for the robot to pick up a pallet from the movable tray 1 is set as the first operation.

[0087] More specifically, the user specifies the movement start position and movement end position of the slider 1 by operating the mouse, etc. In the virtual space 450, the position of the moving tray 1 can be changed arbitrarily, and the user can check the movement and position on the support device 400.

[0088] The user may specify the start and end positions of the slider 1 by selecting and moving the moving tray 1 with a mouse in the virtual space 450, or may specify the start and end positions of the slider 1 by inputting or changing corresponding parameters with a keyboard.

[0089] Fig. 10 is a diagram for explaining an example of a procedure for setting the second operation of the target device shown in Fig. 8. With reference to Fig. 10, as the second operation, an operation is set in which the robot slider moves the robot to the vicinity of the movable tray 1 so that the robot picks up a pallet from the movable tray 1.

[0090] More specifically, the user specifies the movement start position and movement end position of the robot slider by operating the mouse, etc. In the virtual space 450, the position of the robot can be changed arbitrarily, and the user can check the movement and position on the support device 400.

[0091] The user may specify the start and end positions of the robot slider by selecting and moving the robot with a mouse in the virtual space 450, or may specify the start and end positions of the robot slider by inputting or changing corresponding parameters with a keyboard.

[0092] Fig. 11 is a diagram for explaining an example of a procedure for setting the third operation of the target device shown in Fig. 8. Referring to Fig. 11, as the third operation, a trajectory of the arm at the tip of the robot is set (the robot is taught) so that the robot picks up a pallet from the movable tray 1.

[0093] More specifically, the user specifies the trajectory of the arm at the end of the robot by operating a mouse or the like. Alternatively, the user may specify the trajectory of the arm at the end of the robot by inputting or changing corresponding parameters by operating a keyboard. Furthermore, or alternatively, the user may specify the trajectory of the arm at the end of the robot by displaying a teaching pendant object on the display unit 428 of the support device 400 and operating the displayed teaching pendant object.

[0094] Fig. 12 is a diagram for explaining an example of a procedure for setting the fourth operation of the target device shown in Fig. 8. With reference to Fig. 12, as the fourth operation, an operation is set in which the robot slider moves the robot to the vicinity of the work area in order for the robot to place the pallet picked up from the movable tray 1 in the work area.

[0095] More specifically, the user specifies the movement start position and movement end position of the robot slider by operating the mouse, etc. In the virtual space 450, the position of the robot can be changed arbitrarily, and the user can check the movement and position on the support device 400.

[0096] The user may specify the start and end positions of the robot slider by selecting and moving the robot with a mouse in the virtual space 450, or may specify the start and end positions of the robot slider by inputting or changing corresponding parameters with a keyboard.

[0097] Fig. 13 is a diagram for explaining an example of a procedure for setting the fifth operation of the target device shown in Fig. 8. Referring to Fig. 13, as the fifth operation, a trajectory of the arm at the tip of the robot is set so that the robot places the pallet picked up from the movable tray 1 in the work area.

[0098] More specifically, the user specifies the trajectory of the arm at the end of the robot by operating a mouse or the like. Alternatively, the user may specify the trajectory of the arm at the end of the robot by inputting or changing corresponding parameters by operating a keyboard. Furthermore, or alternatively, the user may specify the trajectory of the arm at the end of the robot by displaying a teaching pendant object on the display unit 428 of the support device 400 and operating the displayed teaching pendant object.

[0099] The operations of the target device are set in sequence in the same manner. More specifically, as the sixth operation, an operation of moving the movable tray 2 to the vicinity of the robot is set so that the robot picks up a workpiece from the movable tray 2. As the seventh operation, an operation of moving the robot to the vicinity of the movable tray 2 by the robot slider is set so that the robot picks up a workpiece from the movable tray 2. As the eighth operation, an operation of moving the arm at the tip of the robot is set so that the robot picks up a workpiece from the movable tray 2. As the ninth operation, an operation of moving the robot to the vicinity of the work area by the robot slider is set so that the robot places the workpiece picked up from the movable tray 2 on a pallet in the work area. As the tenth operation, an operation of moving the arm at the tip of the robot is set so that the robot places the workpiece picked up from the movable tray 2 on a pallet in the work area. Furthermore, an operation for moving the pallet on which the workpiece is placed to the movable tray 1 is set.

[0100] Through the above-mentioned procedure, the user specifies the operation of the target device for each element. The support device 400 generates the operation definition 460 according to the operation procedure by the user.

[0101] 14 is a diagram showing an example of an operation definition 460 generated by the support device 400 according to the present embodiment. For the sake of simplicity, the following description will focus on the first to fifth operations.

[0102] 14, operation definition 460 includes a sequence column 461 indicating the sequence of operations, an operation target column 462 indicating the operation target, a mechanism type column 463 indicating the mechanism type, and an operation content column 464 indicating the operation content.

[0103] A number indicating the order set by the user is stored in the order column 461. For each number stored in the order 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.

[0104] 14, "slider" and / or "robot" are stored in the mechanism type column 463. Basically, an operation for which "slider" is stored is realized by the IEC program 1104, and an operation for which "robot" is stored is realized by the robot program 1106.

[0105] Code for an IEC program 1104 and a robot program 1106 is generated according to the corresponding operation target and operation content.

[0106] Fig. 15 shows an example of an IEC program 1104 generated according to the operation definition 460 shown in Fig. 14. Fig. 16 shows an example of a robot program 1106 generated according to the operation definition 460 shown in Fig. 14.

[0107] In the IEC program 1104 shown in Fig. 15, in addition to the command for implementing the initialization process, commands corresponding to the first, second and fourth operations are written. In the example shown in Fig. 15, a motion command (MC_MoveAbsolute) is used for the movement (position control) of the slider, but when applied to a rotation mechanism instead of a slider, a different motion command may be used.

[0108] In the robot program 1106 shown in FIG. 16, instructions corresponding to the third and fifth operations are written.

[0109] In this way, the support device 400 automatically generates the IEC program 1104 and the robot program 1106 according to the operation specified by the user on the virtual space 450. Note that an execution order management program may be generated to realize the operation order and interlock of processing between the IEC program 1104 and the robot program 1106.

[0110] FIG. 17 shows an example of the execution order management program 1108 generated according to the operation definition 460 shown in FIG. 14. Referring to FIG. 17, the execution order management program 1108 includes instructions for sequentially updating (incrementing) a variable Index (flag) that can be commonly referred to by the IEC program 1104 and the robot program 1106. By sequentially updating the variable Index and using the variable Index as the execution condition for each operation, it is also possible to synchronize the processing between the IEC program 1104 and the robot program 1106.

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

[0112] Note that instead of generating the execution order management program 1108, a table or any definition describing the execution order of the IEC program 1104 and the robot program 1106 may be generated. That is, as another example of information defining the execution order between the IEC program 1104 and the robot program 1106, a table defining the timing for executing the IEC program 1104 and the robot program 1106 may be used.

[0113] <E. Modification / Change of Operation Definition> The support device 400 can automatically generate the IEC program 1104 and the robot program 1106 based on the operation definition 460 shown in FIG. 14, but the user can also modify or change the operation definition 460, which is a kind of intermediate data.

[0114] For example, the user can specify the motion and motion procedure of the mechanism and robot included in the target device in the virtual space 450, and then evaluate the validity of the motion by referring to the generated motion definition 460. The user can change values ​​of the movement distance, target coordinates, speed, etc., defined in the motion definition 460 as necessary. It is also possible to perform a simulation in the virtual space 450 based on the changed motion definition 460, and the validity of the motion can be confirmed by the simulation.

[0115] Fig. 18 is a diagram showing an example in which a user has made corrections or changes to the action definition 460 shown in Fig. 14. With reference to Fig. 18, for example, the second action does not conflict with the first action, so it has been changed so that the two actions are executed in parallel.

[0116] Furthermore, for the original fourth motion, the value of the movement distance is changed because it is determined that the movement distance needs to be corrected through a simulation in the virtual space 450. Similarly, for the original fifth motion, the path is reviewed by adding passing points to make the trajectory smoother.

[0117] In this manner, the support device 400 may have a reception unit that receives changes to the operation definition 460 made by the user.

[0118] According to the support device 400 according to the present embodiment, new IEC programs 1104 and robot programs 1106 are automatically generated simply by modifying or changing the understandable numerical values described in the operation definition 460. As a result, even a device designer who cannot program the IEC program 1104 and the robot program 1106 can easily specify the operation of the entire device and confirm the specified operation.

[0119] <F. Processing procedure> Next, an example of the processing procedure related to program generation by the support device 400 according to the present embodiment will be described.

[0120] FIG. 19 is a flowchart showing the processing procedure related to program generation by the support device 400 according to the present embodiment. Each step shown in FIG. 19 is typically realized by the processor 402 of the support device 400 executing the development program 414.

[0121] Referring to FIG. 19, the support device 400 receives the setting of the target device by the user (step S100). Then, the support device 400 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 the device setting 470 (FIG. 7).

[0122] Subsequently, the support device 400 receives the setting operation by the user (step S104) and sequentially generates the operation 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 and below is repeated.

[0123] If the user's setting operation has been completed (YES in step S108), the support device 400 determines whether the display of the operation definition 460 by the user has been requested (step S110).

[0124] When the display of the operation definition 460 by the user is requested (YES in step S110), the support device 400 displays the generated operation definition 460 (step S112), accepts the operation of correction or change by the user (step S114), and changes the operation definition 460 according to the accepted content (step S116).

[0125] If the display of the operation definition 460 by the user is not requested (NO in step S110), the processes in steps S112 to S116 are skipped.

[0126] Next, the support device 400 determines whether the program generation by the user has been requested (step S118). When the program generation by the user is requested (YES in step S118), the support device 400 generates the IEC program 1104, the robot program 1106, and the execution order management program 1108 based on the operation definition 460 describing the specified operation content (step S120).

[0127] Thus, the process related to the 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 the user operation.

[0128] <G. Additional Function> As described above, for the device setting 470, a function of automatically generating from design data such as CAD data may be implemented. In this case, the shape of the target workpiece etc. may also be automatically generated from the CAD data.

[0129] When such CAD data can be used, the directions and planes in which the mechanism and the robot 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 operate only parallel to the XY plane, and according to this operation restriction, input of settings by the user may be assisted. By restricting such user settings, the user can more easily perform operation settings. Furthermore, more accurate synchronized control between the mechanism and the robot can be achieved.

[0130] As described above, the support device 400 may have a generation function for generating information (device setting 470) for virtually representing the target device on the virtual space from design data of the target device such as CAD data.

[0131] In addition, it is possible to easily generate a program for moving the robot along the surface to be worked on (for example, painting a surface with a certain inclination). When moving the robot along a surface with a certain inclination, it is preferable to apply a logic for performing known coordinate transformation.

[0132] Also, the surface to be worked on 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, the corresponding coordinate group is calculated. Therefore, the exposed surface can be specified by interpolating the calculated coordinate group.

[0133] As described above, the support device 400 according to the present embodiment is also capable of performing a simulation according to the generated program. Since the result of such a simulation is rendered (reproduced) on the virtual space, the user can confirm the validity of the generated program in advance while referring to the reproduced operation of the mechanism and the robot.

[0134] <H. Supplementary Note> The present embodiment as described above includes the following technical idea. [Configuration 1] A rendering unit (430) that virtually represents a target device in a virtual space (450); An acquisition unit (432) that acquires a user's designation of the operation content of the target device; and a program generating unit (436, 438, 440) that generates an IEC program (1104) and a robot program (1106) based on the specified operation content. [Configuration 2] 2. The program generating device according to configuration 1, wherein the acquisition unit generates an operation definition (460) that specifies the specified operation content. [Configuration 3] 3. The program generating device according to configuration 2, further comprising a receiving unit that receives changes to the operation definition made by a user. [Configuration 4] 4. The program generating device according to any one of configurations 1 to 3, wherein the program generating unit further generates information (1108) that specifies an execution order between the IEC program and the robot program. [Configuration 5] A program generation device as described in configuration 4, wherein the information specifying the execution order between the IEC program and the robot program includes instructions for updating values ​​referenced by the IEC program and the robot program. [Configuration 6] The program generation device according to configuration 4 or 5, wherein the information specifying the execution order between the IEC program and the robot program includes a table specifying the timing for executing the IEC program and the robot program. [Configuration 7] 7. The program generating device according to any one of configurations 1 to 6, further comprising a generating unit that generates information for virtually expressing the target device in the virtual space from design data of the target device. [Configuration 8] The program generation device according to any one of Configurations 1 to 7 further includes a simulator (434) that reproduces the operation of the target device based on the IEC program and the robot program. [Configuration 9] Causing a computer (400) to virtually represent the target device in a virtual space (step S102); acquire a specification of the operation content of the target device by the user (step S106); and generate an IEC program and a robot program based on the specified operation content (step S120). A program generation program. [Configuration 10] virtually representing the target device in a virtual space (step S102); acquiring a specification of the operation content of the target device by the user (step S106); and generating an IEC program and a robot program based on the specified operation content (step S120). A program generation method.

[0135] <I. Advantages> According to the control system 1 according to the present embodiment, a user can generate an IEC program and a robot program for operating the target device in a real environment only by specifying the operation content of the target device in a virtual space. Therefore, even a user who lacks knowledge about program generation can generate a program necessary for the operation.

[0136] It should be considered that all aspects of the embodiments disclosed this time are illustrative and not restrictive. The scope of the present invention is shown not by the above description but by the claims, and it is intended that all modifications within the meaning and scope equivalent to the claims are included.

Description of Reference Numerals

[0137] 1 control system, 10 field network, 20 upper network, 100 control device, 102, 262, 362, 402 processor, 104, 264, 364, 404 main memory, 106 upper 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 section, 428 display section, 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 operation 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

1. a rendering unit that virtually represents a target device in a virtual space; an acquisition unit that acquires a user's designation of the operation content of the target device; a program generating unit that generates an IEC program, a robot program, and information that specifies an execution order between the IEC program and the robot program based on the specified operation content, A program generation device, wherein information specifying the execution order between the IEC program and the robot program includes instructions that are independent of the IEC program and the robot program and that update values ​​referenced by the IEC program and the robot program.

2. The program generating device according to claim 1 , wherein the acquisition unit generates an operation definition that specifies the specified operation content.

3. The program generating device according to claim 2 , further comprising a reception unit that receives changes to the operation definition made by a user.

4. A program generation device according to any one of claims 1 to 3, wherein the information specifying the execution order between the IEC program and the robot program includes a table specifying the timing of executing the IEC program and the robot program.

5. 5. The program generation device according to claim 1, 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.

6. The program generating device according to any one of claims 1 to 5, further comprising a simulator that reproduces an operation of the target device based on the IEC program and the robot program.

7. On the computer, A step of virtually representing a target device in a virtual space; obtaining a user's designation of an operation content of the target device; generating an IEC program, a robot program, and information defining an execution sequence between the IEC program and the robot program based on the specified operation content; A program generation program, in which information specifying the execution order between the IEC program and the robot program includes instructions that are independent of the IEC program and the robot program and that update values ​​referenced by the IEC program and the robot program.

8. A step of virtually representing a target device in a virtual space; obtaining a user's designation of an operation content of the target device; generating an IEC program, a robot program, and information defining an execution sequence between the IEC program and the robot program based on the specified operation content; A program generation method, in which information specifying the execution order between the IEC program and the robot program includes instructions that are independent of the IEC program and the robot program and that update values ​​referenced by the IEC program and the robot program.

Citation Information

Patent Citations

  • Plate handling system

    JP2000158301A

  • CAD device for robot teaching, and robot teaching method

    JP2008033419A

  • Operational equipment, operating method, operation program and robot system

    JP2018118330A

  • Programming device for generating operation program, and program generating method

    JP2019018250A