Simulation equipment and control system for generating auxiliary files
The simulation device addresses the challenge of generating robot programs in robot languages by producing auxiliary files for PLC programs, allowing users to control robotic devices using familiar PLC programming languages, thereby enhancing operational efficiency.
Patent Information
- Application Number
- JP2023555995
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-10-28
- Publication Date
- 2025-05-09
- Estimated Expiration
- 2041-10-28
AI Technical Summary
Conventional simulation devices generate robot programs in robot languages, making it difficult for users familiar with PLC programs to operate robotic devices efficiently.
A simulation device that simulates robot operations, acquires action information, and generates auxiliary files for creating PLC programs, allowing for the generation of PLC programs that can be read and executed by programmable logic controllers.
Enables the creation of PLC programs that can control robotic devices without the need for users to learn robot languages, improving operational efficiency and accessibility.
Smart Images

Figure 0007674506000001 
Figure 0007674506000002 
Figure 0007674506000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a simulation device and a control system for generating auxiliary files. [Background technology]
[0002] In machines such as machine tools and robotic devices, switches, sensors, and the like are arranged to control actuators, such as motors, included in the machines. Programmable logic controllers (PLCs) are known as devices for setting the sequence of operations for a plurality of actuators (for example, Japanese Patent Publication No. 6914452). PLCs can control the sequence of operations such as driving actuators, transmitting signals, and receiving signals from sensors. Programmable logic controllers are driven based on PLC programs, such as ladder diagrams written in a ladder language.
[0003] On the other hand, a robot device equipped with a robot and a work tool is controlled by a robot program written in a robot language. In recent years, a function for controlling a robot device with a PLC program has become known. For example, in the PLCopen (registered trademark) standard aimed at improving the efficiency of PLC development, it is known that the position and posture of a robot are controlled by a PLC program. With this function, even an operator who is unfamiliar with robot languages can operate a robot by using the functions of the PLC program. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Patent No. 6914452 Summary of the Invention [Problem to be solved by the invention]
[0005] However, when generating a robot program for driving a robot device, it may be difficult to determine an optimal motion path in the task of driving an actual robot. It is known that a simulation device that simulates the motion of a robot is used to generate a motion path of a robot. The simulation device can generate a robot program based on the motion path of the robot generated by simulation. However, the simulation device of the conventional technology outputs a robot program written in a robot language. For this reason, even an operator who is familiar with PLC programs needs to learn a robot program written in a robot language. [Means for solving the problem]
[0006] A first aspect of the present disclosure is a simulation device including a simulation execution unit that executes a simulation of a robot's operation based on the robot's operation conditions. The simulation device includes an operation information acquisition unit that acquires operation information of the robot based on a result of the simulation by the simulation execution unit. Based on the operation information of the robot, the simulation device: Able to control robots The programmable logic controller includes an auxiliary file generator that generates a plurality of auxiliary files for generating a program written in a language that can be read and executed by the programmable logic controller.
[0007] A second aspect of the present disclosure is a control system including the above-mentioned simulation device and a programmable logic controller. The programmable logic controller includes a program generator that generates a program written in a language that drives the programmable logic controller based on a plurality of auxiliary files. Effect of the Invention
[0008] According to an aspect of the present disclosure, it is possible to provide a simulation device that generates a plurality of auxiliary files for generating a PLC program, and a control system including the simulation device. [Brief description of the drawings]
[0009] [Figure 1] 1 is a schematic diagram of a robot device according to an embodiment. [Diagram 2] FIG. 2 is a block diagram of a control system according to an embodiment. [Diagram 3] FIG. 1 is a block diagram of a simulation device according to an embodiment. [Figure 4] 1 is an image displayed on a display unit of a simulation device. [Diagram 5] This is a program file generated by the simulation device. [Figure 6] This is a variable file generated by the simulation device. [Figure 7] 1 is a first FB file generated by a simulation device. [Figure 8] 2 is a second FB file generated by the simulation device. [Figure 9] 4 is a third FB file generated by the simulation device. [Figure 10] FIG. 2 is a block diagram of a PLC according to an embodiment. [Figure 11] This is a PLC program generated by the PLC. [Figure 12] FIG. 2 is a block diagram of a robot control device according to the embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] A simulation device and a control system including the simulation device according to an embodiment will be described with reference to Fig. 1 to Fig. 12. The simulation device according to the embodiment generates a plurality of auxiliary files for generating a PLC program that operates a programmable logic controller (hereinafter, referred to as "PLC"). The control system generates the PLC program using the plurality of auxiliary files.
[0011] 1 is a schematic diagram of a robot device for performing a simulation using a simulation device according to the present embodiment. The robot device 5 according to the present embodiment performs a task of transporting a workpiece 91. The robot device 5 includes a hand 2 as a work tool, and a robot 1 that moves the hand 2. The robot device 5 includes a robot control device 40 that controls the robot 1 and the hand 2.
[0012] The robot 1 of this embodiment is a multi-joint robot including a plurality of joints. The robot 1 of this embodiment includes a base 14 and a swivel base 13 that rotates relative to the base 14. The robot 1 includes an upper arm 11 and a lower arm 12. The lower arm 12 is rotatably supported by the swivel base 13. The upper arm 11 is rotatably supported by the lower arm 12. The robot 1 includes a wrist 15 that is rotatably supported by the upper arm 11. A hand 2 is fixed to a flange 16 of the wrist 15. Furthermore, the upper arm 11 and the flange 16 rotate around a predetermined drive shaft.
[0013] The robot of this embodiment has six drive shafts, but is not limited to this form. A robot that changes its position and posture by any mechanism can be used. The working tool of this embodiment is a hand with two claws, but is not limited to this form. The working tool can be any device that suits the work performed by the robot device.
[0014] A robot coordinate system 81 is set in the robot device 5 of this embodiment. The robot coordinate system 81 is also called a world coordinate system. The robot coordinate system 81 is a coordinate system in which the position of the origin is fixed, and further, the orientation of the coordinate axes is fixed. Even if the robot 1 is driven, the position of the origin and the orientation of the robot coordinate system 81 do not change.
[0015] Additionally, a tool coordinate system 82 having an origin set at an arbitrary position on the work tool is set in the robot device 5. In this embodiment, the origin of the tool coordinate system 82 is set at the tip point of the tool. The position and posture of the tool coordinate system changes together with the work tool. The position of the robot 1 corresponds to the position of the origin of the tool coordinate system 82 in the robot coordinate system 81. Additionally, the posture of the robot 1 corresponds to the orientation of the tool coordinate system 82 with respect to the robot coordinate system 81.
[0016] 2 is a schematic diagram of a control system for controlling the robot of this embodiment. The control system 9 of this embodiment includes a simulation device 20 that simulates the operation of the robot device 5, a PLC 30, and a robot controller 40 for the robot device 5.
[0017] In this embodiment, the robot will be described by taking as an example an operation and program in which the tool tip point (a point corresponding to the robot position) passes through three teaching points. For other robot operations, a PLC program can be created and the robot controlled in the same manner as in this embodiment.
[0018] The simulation device 20 performs a simulation of the operation of the robot device 5. Fig. 2 shows an image 65 displayed on a display unit of the simulation device 20. The image 65 shows a movement path 66 of the robot 1 generated by the simulation device 20. The simulation device 20 generates the movement path 66 of the robot 1 based on movement conditions such as the positions of a plurality of teaching points 83a, 83b, 83c.
[0019] The simulation device 20 of this embodiment generates an auxiliary file group 70 based on the results of a simulation including the movement path 66 of the robot 1. The auxiliary file group 70 includes a plurality of auxiliary files for generating a PLC program 76. The plurality of auxiliary files include a program file 71 in which functions indicating the movement of the robot 1 are described, and a variable file 72 in which definitions of variables used in the PLC program 76 are described. The plurality of auxiliary files also include function block files 73 to 75 in which contents of the robot movement (definitions of movement commands) corresponding to functions indicating the robot movement described in the program file 71 are described. In this embodiment, the function block files are referred to as FB files.
[0020] The PLC 30 acquires the auxiliary file group 70. Based on the auxiliary files, the PLC 30 generates a PLC program 76 as a program written in a language that drives the PLC. The PLC program is written in a language that the PLC can read and execute. The PLC program 76 of this embodiment is written in ST (Structured Text) language, which is one of the languages that the PLC 30 can read.
[0021] The PLC 30 of this embodiment can control the driving of the robot device 5 for each function FRC corresponding to one command statement written in the PLC program 76. The PLC 30 executes the PLC program 76 together with the FB files 73 to 75, and transmits a control signal related to the command statement included in the PLC program 76 to the robot control device 40. Based on the control signal from the PLC 30, the robot control device 40 generates a command statement written in a robot language for driving the robot device 5. The robot control device 40 can drive the robot device based on the command statement in the robot language.
[0022] 3 shows a block diagram of a simulation device in this embodiment. The simulation device 20 in this embodiment is an offline simulation device configured to simulate the operation of the robot device 5. The simulation device 20 in this embodiment arranges a three-dimensional model of the robot 1, a three-dimensional model of the hand 2, and a three-dimensional model of the workpiece 91 in the same virtual space, and simulates the operation of the robot device 5.
[0023] The simulation device 20 includes a processing device (computer) including a CPU (Central Processing Unit) as a processor. The processing device of this embodiment is configured as a personal computer. The processing device includes a RAM (Random Access Memory) and a ROM (Read Only Memory) connected to the CPU via a bus.
[0024] The simulation device 20 includes a storage unit 23 that stores any information related to the simulation of the robot device 5. The storage unit 23 can be configured with a non-transitory storage medium capable of storing information. For example, the storage unit 23 can be configured with a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium. A program for implementing the simulation of the robot device is stored in the storage unit 23.
[0025] Three-dimensional shape data 61 of the robot 1, the hand 2, and the workpiece 91 is input to the simulation device 20. The three-dimensional shape data 61 includes data of the robot, the work tool, the peripheral devices, and the workpiece for simulating the robot device 5. As the three-dimensional shape data 61, for example, data output from a CAD (Computer Aided Design) device can be used. The three-dimensional shape data 61 is stored in the storage unit 23.
[0026] The simulation device 20 includes an input unit 21 for inputting information related to the simulation of the robot device 5. The input unit 21 is composed of operation members such as a keyboard, a mouse, and a dial. The simulation device 20 includes a display unit 22 for displaying information related to the simulation of the robot device 5. The display unit 22 displays an image of a model of the robot device 5 and an image of a model of the workpiece 91. The display unit 22 is composed of a display panel such as a liquid crystal display panel. Note that when the simulation device is equipped with a touch panel type display panel, the display panel functions as both the input unit and the display unit.
[0027] The simulation device 20 includes a processing unit 24 that performs calculation processing for simulating the robot device 5. The processing unit 24 includes a model generation unit 25 that generates a model of a component based on the three-dimensional shape data 61. For example, the model generation unit 25 generates a robot device model that is a model of the robot device and a workpiece model that is a model of a workpiece.
[0028] The processing unit 24 includes a simulation execution unit 26 that executes a simulation of the operation of the robot device 5. The simulation execution unit 26 has a function of moving the robot device model on the screen in response to an operation of the input unit 21 by an operator. Alternatively, the simulation execution unit 26 executes a simulation of the operation of the robot based on predetermined operating conditions of the robot.
[0029] For example, the simulation execution unit 26 performs a simulation of the operation of the robot device 5 based on teaching points generated in advance. The worker operates the input unit 21 to set the position of the teaching points, the robot's posture at the teaching points, the linear or curved motion, and the driving speed of the robot. The worker can also set whether the tool tip point passes through the teaching points or whether the tool tip point is driven smoothly so as to pass near the teaching points. The simulation execution unit 26 performs a simulation to drive the robot model so that the tool tip point of the robot model moves according to a movement method specified by the worker.
[0030] The processing unit 24 includes a motion information acquiring unit 28 that acquires motion information of the robot 1 based on a simulation of the motion of the robot device 5. The motion information acquiring unit 28 can acquire, as the motion information of the robot 1, motion conditions such as a motion path when the robot is driven and a motion speed of the robot.
[0031] The processing unit 24 includes an auxiliary file generating unit 29 that generates an auxiliary file group 70 based on the operation information of the robot 1 acquired by the operation information acquiring unit 28. The auxiliary file group 70 includes a plurality of auxiliary files for generating a PLC program that drives the PLC. Each auxiliary file is written in a language and rules that can be read by the PLC. In this embodiment, the auxiliary file generating unit 29 generates a program file 71, a variable file 72, and FB files 73 to 75.
[0032] The processing unit 24 includes a display control unit 27 that controls the image to be displayed on the display unit 22. The display control unit 27 changes the position and posture of the robot model in response to an operation of the input unit 21 by an operator. In addition, the display control unit 27 can display on the display unit 22 the movement path of the robot when the robot device is driven.
[0033] The processing unit 24 corresponds to a processor that operates based on a simulation program (software). The simulation program is created in advance and stored in the storage unit 23. The processor functions as the processing unit 24 by carrying out control defined in the simulation program. The model generation unit 25, the simulation execution unit 26, the display control unit 27, the operation information acquisition unit 28, and the auxiliary file generation unit 29 correspond to a processor that operates based on the simulation program. The processor functions as each unit by carrying out control defined in the program.
[0034] Fig. 4 shows an example of an image displayed on the display unit of the simulation device. An image 65 shows a state when a simulation of the robot device 5 is performed. With reference to Figs. 3 and 4, the model generation unit 25 generates a robot device model 5M. The model generation unit 25 generates a robot model 1M and a hand model 2M based on the three-dimensional shape data 61. The model generation unit 25 generates a work model 91M based on the three-dimensional shape data 61. The model generation unit 25 may display models of peripheral devices arranged around the robot based on the three-dimensional shape data 61.
[0035] The display control unit 27 displays an image of the robot model 1M, an image of the hand model 2M, and an image of the work model 91M. In this embodiment, the display control unit 27 displays a three-dimensional image, but a two-dimensional image may be displayed. The model generation unit 25 can set a robot coordinate system 81 set in the actual robot device 5 in a virtual space in which the robot device model 5M and the work model 91M are arranged. As with the actual robot device 5, the position and posture of the robot can be specified in the simulation using the robot coordinate system 81.
[0036] The simulation execution unit 26 changes the position and posture of the robot model 1M in the image 65 in response to the operation of the input unit 21. The worker designates, for example, teaching points 83a, 83b, and 83c. Here, the simulation execution unit 26 performs a simulation of the robot 1 so that the tool tip point passes through the teaching points 83a, 83b, and 83c based on the input of the operating conditions by the worker. The simulation execution unit 26 can calculate a movement path 66, which is a trajectory of the tool tip point, based on the result of the simulation. The display control unit 27 can display the movement path 66 by superimposing it on the images of the robot device model 5M and the workpiece model 91M.
[0037] The operator moves the robot device model 5M on the screen to check the operating state of the robot device. If the result of the simulation is not favorable, the operator can modify the operating conditions of the robot, such as the position of the teaching point and the posture of the robot at the teaching point. When it is confirmed that the robot device model 5M operates in a desired state, the operator can confirm the operation of the robot device. The operation information acquisition unit 28 can acquire the operating information of the robot, including the operating path of the robot. The operation information acquisition unit 28 can acquire the position of the teaching point when the robot operates, the posture of the robot at the teaching point, the operating path, etc., in the coordinate values of the robot coordinate system 81. The operation information acquisition unit 28 can acquire the operating conditions of the robot, such as the operating speed of the robot.
[0038] The auxiliary file generating unit 29 of the processing unit 24 generates the auxiliary file group 70 based on the operation information of the robot device 5 acquired by the operation information acquiring unit 28. Next, the program file 71, the variable file 72, and the FB files 73 to 75 included in the auxiliary file group 70 will be described. Each of the program file 71, the variable file 72, and the FB files 73 to 75 in this embodiment is configured in the format of an xml file. These auxiliary files can be generated in the format of an xml file (xml format) defined by, for example, the PLCopen standard.
[0039] For example, the template for the xml file written at the beginning and end of the auxiliary file can be a template defined in the PLCopen standard, etc. This template includes a declaration that the language is for operating a robot with a PLC.
[0040] 5 shows an example of a program file generated by the auxiliary file generating unit. The file name of the program file in this embodiment is "Main.xml". In the program file 71, command statements for the operation of the robot device 5 are written as functions. Here, the first teaching point 83a is indicated by the symbol P[1], the second teaching point 83b is indicated by the symbol P[2], and the third teaching point 83c is indicated by the symbol P[3].
[0041] The main processes in the PLC program are described in the program file 71. The program file 71 is composed of a number of areas 71a to 71e. The area 71a at the beginning of the program file 71 describes standard text (templates) for xml files. The area 71e at the end of the program file 71 describes standard text for xml files. The descriptions in the areas 71a and 71e other than the templates are adopted for the PLC program.
[0042] Areas 71b to 71d contain functions that become command statements in the PLC program. Functions beginning with FRC are contained according to the operation of each robot. Area 71b contains the operation in which the robot device starts and the tool tip point is driven to the first teaching point 83a. The first line of area 71b contains the function FRC_MoveLinearAbsolute01. The name of this function corresponds to the file name of the function block it references.
[0043] In the operation of function FRC_MoveLinearAbsolute01, the tool tip point, which is the position of the robot, moves to position P[1] indicated by the variable pos. The tool tip point moves linearly at a speed of 1200 mm / sec, indicated by the variable velocity. Here, it is positioned so that it passes through position P[1]. The variable Execute indicates the start time of this function. Here, it indicates the start of driving the robot. After that, variables that indicate the execution status, such as the variables busy, Active, and Done, are defined.
[0044] Area 71c describes a function for driving the robot, similar to area 71b. Area 71c describes an operation for driving the tool tip from the first teaching point 83a to the second teaching point 83b. The first line of area 71c describes the function FRC_MoveAxesAbsolute01. This function indicates that the tool tip moves (by a curved movement) by driving each axis at 80% of the maximum speed to position P[2]. The description of the variable Execute indicates that this function is executed after the operation of function FRC_MoveLinearAbsolute01 in area 71b is completed.
[0045] Area 71d also describes functions for driving the robot, similar to area 71c. Function FRC_MoveAxesAbsolute02 indicates that the tool tip will move to position P[3] after the robot operation by function FRC_MoveAxesAbsolute01 in area 71c ends. It indicates that the tool tip will move by driving each axis at a speed of 100% of the maximum speed of the robot.
[0046] 6 shows an example of a variable file generated by the auxiliary file generator. The variable file 72 defines global variables and structures used in the PLC program. The file name of the variable file 72 here is "Global.xml." The variable file 72 is made up of multiple areas 72a to 72d. The areas 72a and 72d contain standard text (templates) for the xml file.
[0047] In the area indicated by the variable VAR in the area 72b, global variables are defined. Here, the position and posture of the robot at the position P[1] indicating the first teaching point are determined by the coordinate values of each coordinate axis of the robot coordinate system 81. In addition, following the position P[1], the positions and postures of the robot at the position P[2] of the second teaching point 83b and the position P[3] of the third teaching point 83c are determined. In the area specified by the variable STRUCT in the area 72c, the definition of the structure is described. Here, it is determined that the variables of the structure are real type values and are configured as an array from 0 to 8. It is preferable that such variables VAR and STRUCT use variables that are predetermined by standards or the like. In addition, the variables defined in the variable file are not limited to the above form, and any variable for driving the robot can be adopted.
[0048] FIG. 7 shows the first FB file generated by the auxiliary file generator. The first FB file 73 is referenced by a function written to move the position of the robot to the first teaching point. The first FB file 73 is referenced when the function FRC_MoveLinearAbsolute01 written in the area 71b of the program file 71 shown in FIG. 5 is executed. The file name of the first FB file 73 is set to "FRC_MoveLinearAbsolute01.xml" in correspondence with the name of the function written in the program file 71. The FB file defines the robot's movements and the processing of the function blocks in the functions used in the PLC program.
[0049] The first FB file 73 has a number of areas 73a to 73e. Area 73a, which is the beginning of the file, and area 73e, which is the end of the file, contain standard text for the xml file.
[0050] Area 73b describes the processing using structure variables. The variable plcrobot.input.CMD_ID on the first line of area 73b indicates the robot's operation method. When this variable is 1, it is specified that the robot drives linearly and the operation is positioning. When this variable is 2, it is specified that the robot drives by each axis operation and the operation is positioning. Note that a different variable may be used to indicate whether the robot's operation is a positioning operation that passes through a teaching point, or a smooth operation that only needs to pass near the teaching point.
[0051] The variable plcrobot.input.VAL1 refers to the motion speed (1200 mm / sec) specified by the function FRC_MoveLinearAbsolute01 in the area 71b of the program file 71. The variable plcrobot.input.POS refers to the position P[1] defined by the above function in the program file 71 and specifies the target position.
[0052] An area 73c shows input variables to the function block. The definitions of the input variables are set in the area from the variable VAR_INPUT to the variable END_VAR. In this example, the variable Execute, which indicates the start of control, is of Boolean type and has an initial value set to 0. The speed variable Velocity is of unsigned double-precision integer type and has an initial value set to 0. The variable POS_T is used as the position variable Pos.
[0053] In area 73d, the output variables of the function block are defined. The definitions of the output variables are set in the area from the variable VAR_OUTPUT to the variable END_VAR. The variable Busy indicates that the function is in operation, and is a Boolean variable. The variable Active indicates that the function is being controlled. The variable Done indicates that the function has finished. The variable CommandAborted indicates that the function was interrupted midway. The variable Error indicates that an abnormality has occurred. And the variable ErrorID indicates a code corresponding to the nature of the abnormality. The initial value of each variable is set to 0.
[0054] FIG. 8 shows the second FB file generated by the auxiliary file generating unit. The second FB file 74 is referenced when the function FRC_MoveAxesAbsolute01 described in the area 71c of the program file 71 shown in FIG. 5 is executed. The second FB file 74 has a structure similar to that of the first FB file 73. The areas 74a and 74e contain standard text for the xml file. The area 74b defines variables of the structure. The area 74c defines input variables, and the area 74d defines output variables.
[0055] FIG. 9 shows the third FB file generated by the auxiliary file generating unit. The third FB file 75 is referenced when the function FRC_MoveAxesAbsolute02 described in the area 71d of the program file 71 shown in FIG. 5 is executed. The third FB file 75 has a structure similar to that of the first FB file 73. The areas 75a and 75e contain standard text for the xml file. The area 75b defines variables of the structure. The area 75c defines input variables, and the area 75d defines output variables.
[0056] In this way, the FB file indicates the functionality corresponding to the functions described in the program file. The FB file indicates commands for carrying out specific control. The FB file does not have to be an auxiliary file generated in a format that allows the worker to visually recognize the contents. In other words, the FB file may be generated in a format that the worker cannot read.
[0057] 3, the auxiliary file generating unit 29 can generate each auxiliary file based on the execution result of the simulation. The auxiliary file generating unit 29 generates the auxiliary file in a format that can be read by the PLC. In this embodiment, each auxiliary file is written in the ST language.
[0058] The language for generating the PLC program is not limited to the ST language. The auxiliary file generating unit can use any language that can be read by the PLC. For example, a PLC program using the LD (Ladder Diagram) language can be generated as the programming language. In addition to the LD language, the IL (Instruction List) language, the SFC (Sequential Function Chart) language, or the FBD (Function Block Diagram) language can be adopted as the programming language. Alternatively, the auxiliary file can be generated by combining a plurality of these languages.
[0059] Each function and variable included in the auxiliary file may be determined in advance. For example, the functions and variables of the auxiliary file may be functions and variables determined in the PLCopen standard or the like. The auxiliary file generating unit 29 may input the values of the variables into a template of the auxiliary file created in advance. For example, in the variable file 72 shown in FIG. 6, a template of the variables in the area 72b may be generated in advance. Then, the auxiliary file generating unit 29 may generate the variable file by inputting the values of the variables based on the results of the simulation.
[0060] FIG. 10 shows a block diagram of a PLC in this embodiment. The PLC 30 is configured with an arithmetic processing device (computer) including a CPU as a processor. Like the simulation device 20, the PLC 30 has an input unit 31, a display unit 32, and a storage unit 33. The input unit 31 is configured with operation members such as a keyboard, a mouse, and a dial. The display unit 32 is configured with a display panel such as a liquid crystal display panel. The storage unit 33 can be configured with a non-transitory storage medium capable of storing information.
[0061] The PLC 30 includes a processing unit 34. The processing unit 34 includes a PLC program generation unit 35 that generates a PLC program 76 based on an auxiliary file. The processing unit 34 includes a control signal sending unit 36 that sends a control signal 39 related to the operation of the robot device 5 to the robot control device 40 based on the PLC program 76. The processing unit 34, the PLC program generation unit 35, and the control signal sending unit 36 correspond to a processor that operates according to a program (software) that operates the PLC.
[0062] FIG. 11 shows a PLC program in this embodiment. The PLC program generation unit 35 reads the auxiliary file group 70 to generate a PLC program 76. The PLC program 76 has, for example, an area 76a and an area 76b. The area 76a describes variables described in the variable file 72 (see FIG. 6). The area 76b following the area 76a describes functions described in the program file 71 (see FIG. 5). In this way, the PLC program generation unit 35 can generate the PLC program 76 by combining the program file 71 and the variable file 72. The PLC program 76 is created in any format that can be read and executed by the PLC 30. The PLC program 76 in this embodiment is not created in xml format, but is formed in ST language.
[0063] The PLC 30 is driven based on the PLC program 76 and the FB files 73 to 75 generated by the PLC program generation unit 35. The control signal sending unit 36 sends a control signal for driving the robot device 5 to the robot control device 40 for each function FRC as a command statement written in the PLC program 76.
[0064] Fig. 12 shows a block diagram of the robot device 5 in this embodiment. With reference to Fig. 1 and Fig. 12, the robot 1 is equipped with a robot driving device 17 including a driving motor that changes the position and posture of the robot 1. The robot device 5 is equipped with a hand driving device 18 that drives the hand 2. The hand driving device 18 includes a cylinder that drives the claws of the hand 2, an air pump, and the like.
[0065] The robot control device 40 includes an arithmetic processing device (computer) having a CPU as a processor. The robot control device 40 includes a motion control unit 43 that generates motion commands for the robot 1 and the hand 2. The motion control unit 43 sends a motion command for driving the robot 1 to the robot driving unit 45. The robot driving unit 45 includes an electric circuit for driving the robot driving device 17. The motion control unit 43 also sends a motion command for driving the hand 2 to the hand driving unit 44. The hand driving unit 44 includes an electric circuit for driving the hand driving device 18. The robot control device 40 includes a robot program generation unit 46 that generates command statements of a robot program based on a control signal from the PLC 30. The robot program generation unit 46 generates command statements of a robot program 77 in a robot language based on a PLC program 76 and control signals 39 related to the FB files 73 to 75.
[0066] The operation control unit 43 and the robot program generation unit 46 correspond to a processor that operates according to a program that controls the robot device. The processor functions as the operation control unit 43 and the robot program generation unit 46 by carrying out the control defined in the program.
[0067] The robot control device 40 includes a storage unit 42 that stores information related to the control of the robot 1 and the hand 2. The storage unit 42 can be configured with a non-transitory storage medium capable of storing information. For example, the storage unit 42 can be configured with a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium.
[0068] 2 and 12, the operation control unit 43 of this embodiment generates operation commands for the robot 1 and the hand 2 based on command statements written in a robot program 77 for operating the robot. The robot program is written in a robot language. In this example, a robot program for a robot that is driven to pass through three teaching points, position P[1], position P[2], and position P[3], is shown.
[0069] In the command on the first line, the symbol L indicates that the robot's position moves linearly. The symbol P[1] indicates the position of the teaching point and the robot's posture at the teaching point. It also indicates that the moving speed of the robot's position (tool tip point) is 1200 mm / sec. The symbol FINE indicates that the robot is driven to pass through the teaching point.
[0070] In the command statements on the second and third lines, the symbol J indicates a command to move the robot position in a curved line by driving the multiple drive axes of the robot 1. It also indicates that each drive axis is to be driven at 80% or 100% of its maximum speed.
[0071] 10, 11 and 12, the control signal sending unit 36 of the PLC 30 in this embodiment transmits a control signal 39 to the robot control device 40 every time the robot 1 performs one operation. The control signal sending unit 36 sends out the control signal 39 related to the operation of the robot device every time it executes a function FRC written in an area 76b of the PLC program 76. The robot program generation unit 46 generates a command statement in a robot language every time it receives a control signal 39 for performing an operation of the robot 1.
[0072] For example, the PLC 30 executes the PLC program 76 to drive the robot device 5. The data of the variable plcrobot.input. defined in the FB file is used as a parameter related to the operation of the robot. When a value is input to the variable plcrobot.input., the control signal sending unit 36 transmits the data of the variable plcrobot.input. to the robot program generating unit 46 of the robot control device 40. The robot program generating unit 46 generates a command statement written in the robot language based on the data of the variable plcrobot.input.
[0073] 7, in an operation in which the position of the robot moves to the first teaching point 83a, the robot program generation unit 46 obtains a control signal in which the variable plcrobot.input.CMD_ID is 1. The robot program generation unit 46 determines that the robot's operation is a linear operation and a positioning operation. The robot program generation unit 46 also obtains the operation speed from the control signal related to the variable plcrobot.input.VAL1, and obtains the target position from the control signal related to the variable plcrobot.input.POS. The robot program generation unit 46 generates the command statement in the first line of the robot program 77 shown in FIG. 2 based on the data of these variables. The operation control unit 43 of the robot control device 40 then reads the generated command statement to control the robot 1.
[0074] In the control system 9 of this embodiment, the simulation device 20 can output a group of auxiliary files 70 for generating a PLC program 76. The functions and variables used in the PLC program 76, which are included in the auxiliary files, include control commands for operating the robot 1. The simulation device 20 can output auxiliary files written in a language used in the PLC program 76.
[0075] Therefore, an operator using the PLC 30 can import the auxiliary file group 70 output from the simulation device 20 into the PLC 30 without converting it into the format of the PLC program 76. Then, the PLC program 76 can be generated in the PLC 30 to drive the robot device 5. Furthermore, in the PLC 30, auxiliary files such as the program file 71 and the FB files 73 to 75, or the PLC program 76 generated by the PLC program generation unit 35 can be modified. The operator can modify the program that drives the robot device 5 by using a language used in the PLC 30. In this way, the operator does not need to create the robot program 77 written in a robot language, and can operate the robot device 5 with the PLC program 76 even if he or she is not familiar with the robot language.
[0076] In this embodiment, the robot controller 40 generates the command statements of the robot program 77 based on the control signal 39 from the PLC 30, but is not limited to this form. The operation control unit 43 of the robot controller 40 may generate an operation command that directly operates the robot 1 based on the control signal 39 from the PLC 30. In other words, the robot controller 40 may generate an operation command without generating the command statements of the robot program 77.
[0077] In the present embodiment, the control signal 39 is sent to the robot control device 40 every time the PLC 30 executes a command for one operation of the robot, but this is not limited to the present embodiment. The robot program generation unit 46 of the robot control device 40 may generate a robot program 77 including a plurality of command statements after acquiring the FB files 73-75 generated by the simulation device 20 and the PLC program 76 generated by the PLC 30. The robot control device 40 stores the acquired PLC program 76 in the storage unit 42. The robot control device 40 also stores the FB files 73-75 generated by the simulation device 20 in a predetermined storage area.
[0078] Next, the robot program generation unit 46 may generate a robot program 77 based on the PLC program 76 and the FB files 73 to 75. The robot program generation unit 46 converts command statements written in the ST language of the PLC program 76 into command statements in the robot language of the robot program 77. The robot program generation unit 46 can generate the robot program 77 including a plurality of command statements. The robot program 77 is stored in the storage unit 42. The operation control unit 43 can control the robot 1 and the hand 2 based on the robot program 77 generated by the robot program generation unit 46.
[0079] In each of the above-described controls, the order of steps can be changed as appropriate within the scope that does not change the functions and actions.
[0080] In the present embodiment, the PLC program generating unit that generates the PLC program is disposed in the PLC, but is not limited to this. The PLC program generating unit may be disposed in the simulation device. In other words, the simulation device may generate the PLC program based on the auxiliary files.
[0081] The above-mentioned embodiments can be combined as appropriate. In each of the above-mentioned drawings, the same or equivalent parts are given the same reference numerals. Note that the above-mentioned embodiments are examples and do not limit the invention. In addition, the embodiments include modifications of the embodiments shown in the claims. [Explanation of symbols]
[0082] 1. Robot 5. Robotic Device 9. Control System 20 Simulation Device 24 Processing section 26 Simulation Execution Department 28 Operation information acquisition section 29 Auxiliary File Generator 30 PLC 35 PLC program generation section 70 Auxiliary files 71 Program Files 72 Variables File 73,74,75 FB files 76 PLC Programs
Claims
1. a simulation execution unit that executes a simulation of the operation of the robot based on the operating conditions of the robot; an operation information acquisition unit that acquires operation information of the robot based on a result of the simulation performed by the simulation execution unit; A simulation device comprising: an auxiliary file generation unit that generates a plurality of auxiliary files for generating a program written in a language that can be read and executed by a programmable logic controller capable of controlling the robot, based on operation information of the robot.
2. The simulation device according to claim 1, wherein the plurality of auxiliary files include a program file in which functions indicating the operation of the robot are described, a variable file in which definitions of variables are described, and a function block file in which contents of the operation of the robot corresponding to the functions of the program file are described.
3. a personal computer including a processor; 2. The simulation device according to claim 1, wherein a processor is driven based on a program for implementing a simulation to function as said simulation execution section, said operation information acquisition section, and said auxiliary file generation section.
4. A simulation device according to claim 1 ; The programmable logic controller, A control system, wherein the programmable logic controller includes a program generator that generates a program for driving the programmable logic controller based on a plurality of auxiliary files.
Citation Information
Patent Citations
System and method for assisting development of control program
JP2003108220A
Simulation device
JP2004148428A
Numerical control device and machine learning device
JP6914452B1
System and simulator for the disengageable simulation of installations or machines within programmable logic controllers
US20180203973A1
Simulation device, method for controlling simulation device, and program for simulation device
WO2019235313A1