Simulation system, simulation method, and simulation program

The simulation system allows for the simulation of assemblies with unprepared parts by registering parts, setting operations, and generating ladder programs and text code, enhancing program readability and reusability.

JP7746698B2Active Publication Date: 2025-10-01OMRON CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021097766
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-11
Publication Date
2025-10-01
Estimated Expiration
2041-06-11

AI Technical Summary

Technical Problem

Existing simulation technologies cannot execute simulations of assemblies that combine parts not prepared in advance.

Method used

A simulation system that includes a storage unit and a control unit to register and set operations for assemblies, generate ladder programs, and create text code using templates, allowing for the simulation of unregistered assemblies by accepting part registrations, setting operations, and generating programs based on operation information.

Benefits of technology

Enables the simulation of assemblies combining unprepared parts, improving readability and reusability of ladder programs, and facilitating efficient program development through automated generation and editing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007746698000001
    Figure 0007746698000001
  • Figure 0007746698000002
    Figure 0007746698000002
  • Figure 0007746698000003
    Figure 0007746698000003
Patent Text Reader

Abstract

To provide a technique that enables simulation of an assembly in which unprepared components are combined.SOLUTION: A simulation system includes a storage that stores data for use in a simulation, and a controller that executes the simulation. The controller receives an operation input for registration of a first component and a second component (S1620, S1630), receives an operation input for setting of an operation of an assembly including the first component and the second component (S1640), generates a program to operate the assembly on the basis of the first component, the second component, and information on operations of the assembly (S1650), and stores the first component, the second component, the information on the operations of the assembly, and the program in the storage as the data for use in the simulation.SELECTED DRAWING: Figure 16
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to simulations, and more particularly to customizing data used in simulations. [Background technology]

[0002] Computer simulations are used in a variety of technical fields, and by using such simulations, various advance studies can be carried out even when actual equipment does not exist.

[0003] Regarding simulation, for example, Japanese Patent Application Laid-Open No. 2021-045797 (Patent Document 1) discloses an apparatus including "a first behavior calculation unit that calculates the behavior of a first object placed in a virtual space corresponding to a first device to which an accessory device is attached, and a second behavior calculation unit that calculates the behavior of the second object in the virtual space corresponding to a second device, the second device including an accessory device. At each predetermined time step, the first behavior calculation unit calculates the behavior of the first object corresponding to the first device to which the accessory device is attached, and then the second behavior calculation unit calculates the behavior of the accessory device attached to the first device based on the calculated behavior of the first object" (see [Abstract]). [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Patent Publication No. 2021-045797 Summary of the Invention [Problem to be solved by the invention]

[0005] According to the technology disclosed in Patent Document 1, it is not possible to execute a simulation of an assembly that combines parts that are not prepared in advance. Therefore, there is a need for a technology that enables execution of a simulation of an assembly that combines parts that are not prepared in advance.

[0006] The present disclosure has been made in consideration of the above-described background, and an object of one aspect is to provide a technology that enables the execution of a simulation of an assembly that combines parts that are not prepared in advance. [Means for solving the problem]

[0007] According to one embodiment, there is provided a simulation system. The simulation system includes a storage unit that stores data for a simulation, and a control unit that executes the simulation. The control unit accepts a registration operation for a first part and a second part, accepts an operation that sets the operation of an assembly consisting of the first part and the second part, generates a program for operating the assembly based on operation information of the first part, the second part, and the assembly, and stores the operation information of the first part, the second part, the assembly, and the program in the storage unit as data for the simulation.

[0008] According to this disclosure, the simulation system can store any assembly of parts as data required for simulation.

[0009] In the above disclosure, accepting an operation to set the operation of the assembly includes accepting an operation to register a first part and a second part in the assembly, accepting an operation to set the operation of the second part, and accepting an operation to set a connection between the first part and the second part.

[0010] According to this disclosure, the simulation system can set the behavior of each part included in a registered assembly and the connections between the parts.

[0011] In the above disclosure, receiving an operation to set the behavior of the second part includes receiving an operation to select the type of behavior of the second part and receiving an operation to set the range of behavior of the second part.

[0012] According to this disclosure, the simulation system can select the type of motion of the moving part and set the range of motion.

[0013] In the above disclosure, the program includes a ladder program of an assembly, and generating the program includes dividing the assembly into modules according to their functions and generating the ladder program.

[0014] According to this disclosure, the simulation system can generate a ladder program by dividing the assembly into modules according to their functions, which improves the readability of the ladder program and allows the user to easily debug the ladder program.

[0015] In the above disclosure, generating a program includes changing sections for each function of an assembly to generate a ladder program.

[0016] According to this disclosure, the simulation system can change sections for each assembly function, thereby improving the reusability of ladder programs.

[0017] In the above disclosure, generating the program includes generating one or more variables to be included in the program based on the first part, the second part, and operation information of the assembly.

[0018] According to this disclosure, the simulation system may automatically generate variables to insert into a program based on the first part, the second part, and operation information of the assembly.

[0019] In the above disclosure, the program includes text code, and generating the program includes obtaining, from a storage unit, a template that defines instructions included in the text code, and inserting variables into the template to generate the text code.

[0020] According to this disclosure, the simulation system can generate highly readable text code according to a template, allowing the user to easily edit and debug the text code.

[0021] In the above disclosure, the control unit accepts an editing operation for the program.

[0022] According to this disclosure, the simulation system can accept editing operations for the generated program. That is, by editing the automatically generated program, a user can develop a desired program more efficiently than by coding it from scratch.

[0023] According to another embodiment, there is provided a computer-executed simulation method, which includes the steps of: accepting a registration operation for a first part and a second part; accepting an operation for setting an operation of an assembly including the first part and the second part; generating a program for operating the assembly based on operation information of the first part, the second part, and the assembly; and saving the operation information of the first part, the second part, the assembly, and the program as data for simulation.

[0024] According to this disclosure, the simulation method can store an assembly of any parts as data required for the simulation.

[0025] According to yet another embodiment, there is provided a simulation program for causing a computer to execute the above method.

[0026] According to this disclosure, the simulation program can store any assembly of parts as data required for the simulation. [Effects of the Invention]

[0027] According to an embodiment, it is possible to perform a simulation of an assembly that combines parts that are not prepared in advance.

[0028] The above and other objects, features, aspects and advantages of the present disclosure will become apparent from the following detailed description of the disclosure taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]

[0029] [Figure 1] FIG. 1 illustrates an example of an assembly that can be simulated in a simulation system according to an embodiment. [Figure 2] FIG. 1 is a diagram showing an example of a unit configuration of a control system 2 including a machine to which a simulation technique according to an embodiment can be applied. [Figure 3] FIG. 1 is a diagram illustrating an example of the configuration of an apparatus that operates as a simulation system. [Figure 4] FIG. 2 is a diagram illustrating an example of components included in the device 100. [Figure 5] FIG. 10 is a diagram illustrating a first example of a flow of adding a part to a simulation system. [Figure 6] FIG. 10 is a diagram illustrating a second example of the flow of adding a part to the simulation system. [Figure 7] FIG. 10 is a diagram illustrating a third example of the flow of adding a part to the simulation system. [Figure 8] FIG. 10 is a diagram illustrating a fourth example of the flow of adding a part to the simulation system. [Figure 9] FIG. 10 is a diagram illustrating a first example of a procedure for generating a program by the simulation system. [Figure 10]It is a diagram showing a second example of the procedure for program generation by a simulation system. [Figure 11] It is a diagram showing a third example of the procedure for program generation by a simulation system. [Figure 12] It is a diagram showing a fourth example of the procedure for program generation by a simulation system. [Figure 13] It is a diagram showing a fifth example of the procedure for program generation by a simulation system. [Figure 14] It is a diagram showing a sixth example of the procedure for program generation by a simulation system. [Figure 15] It is a diagram showing a seventh example of the procedure for program generation by a simulation system. [Figure 16] It is a flowchart showing an example of the flow of internal processing of a simulation system.

Embodiments for Carrying Out the Invention

[0030] Hereinafter, embodiments of the technical idea according to the present disclosure will be described while referring to the drawings. In the following description, the same parts are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated. <A. Application Example> [[ID=3,0]]FIG. 1 is a diagram showing an example of an assembly that can be simulated in a simulation system according to the present embodiment. A simulation system according to the present embodiment (hereinafter referred to as "simulation system") can be used for verifying the operation of devices used in FA (Factory Automation) etc., and for verifying the operation of a program for operating the device.

[0031] Referring to FIG. 1, the types of devices to be simulated by the simulation system and the functions provided by the simulation system will be described.

[0032] (a. Equipment to be simulated) First, we will explain the parts and assemblies used in the simulation. Equipment used in factories, etc., is usually made up of a combination of multiple parts and is sometimes called an assembly. The simulation system simulates the operation of the assembly. Note that the assembly shown in FIG. 1 is an example, and examples of assemblies that the simulation system can handle are not limited to this. In a certain aspect, the simulation system can simulate the operation of any assembly made up of one or more arbitrary parts.

[0033] As an example, the simulation system uses part data created using 3D CAD (Three-Dimensional Computer-Aided Design) software. The simulation system also uses assembly data consisting of a combination of parts. In some aspects, an assembly may include either or both assemblies and parts as part of it. For example, assembly (A) may be composed of assembly (B), assembly (C), and part (D). In the following description, the terms "part" and "assembly" used in the simulation refer to part data and assembly data.

[0034] Screen 150A and screen 150B are examples of simulation screens for an assembly including a linear motion component. The assembly is composed of a first component 151 and a second component 152. The second component 152 moves linearly above the first component 151.

[0035] Screens 160A and 160B are examples of simulation screens of an assembly including a rotating part. The assembly is composed of a first part (not shown) positioned below a second part 162, and the second part 162. The second part 162 also rotates on the first part.

[0036] Screen 170A and screen 170B are examples of simulation screens for an assembly including a linear motion component. Screen 170A displays a first component 171 that constitutes the assembly. Screen 170B shows the operation of a second component 172 that is attached to an axis above first component 171. Second component 172 simultaneously moves up and down and rotates on first component 171.

[0037] As described above, the simulation system can perform motion simulation of any assembly that performs linear, rotational, or combined motion, etc. In some aspects, the simulation system can also perform simulation of complex assemblies that include three or more parts.

[0038] (b. Simulation system functions) Next, we will explain the main functions provided by the simulation system. The simulation system mainly has an assembly customization function, a ladder program generation function, and a text code generation function using templates.

[0039] First, we will explain the first function, the assembly customization function. The simulation system has a function to register a new assembly in the simulation system. The simulation system can perform simulations using assemblies registered in the simulation system. However, due to the wide variety of devices used in FA, etc., there are also assemblies that are not registered in the simulation system.

[0040] Therefore, the simulation system provides a function for the user to register any assembly in the simulation system. More specifically, the user can perform the following operations via a UI (User Interface) provided by the simulation system.

[0041] First, a user registers one or more parts created using 3D CAD or the like in a simulation system as part of an assembly. This registration operation may also include arranging each part in 3D space. Taking screen 150A as an example, the user may place second part 152 in 3D space so that it contacts first part 151. In other words, the user defines an assembly based on multiple parts.

[0042] Next, the user sets the operation of each part. For example, the user may select the type of operation of a certain part from a list of operations. The user may also set the range of operation of a certain part. Taking screen 150A as an example, the user sets the operation of second part 152 to linear movement. The user also sets the range of operation of second part 152 to a certain range in the longitudinal direction of first part 151.

[0043] Next, the user sets connections between the components. A "connection" indicates how the components are connected to each other. Using screen 150A as an example, the user may connect second component 152 to first component 151 so that it can only be moved by sliding it. In some situations, the user may set multiple connections between components. In other situations, the connections may include offsets in the positional relationship. Note that a connection can also be considered a type of constraint.

[0044] By using the first function, a user can register any assembly that is not registered in the simulation system in the simulation system and further generate operation information for the assembly. The operation information for the assembly may actually include the operation and / or connection relationships (operation restrictions) of each part included in the assembly.

[0045] Next, we will explain the second function, the ladder program generation function. Simply registering a new assembly in the simulation system does not allow the system to execute a simulation of the new assembly. Therefore, the simulation system generates a ladder program for operating the newly registered assembly based on the operation information of the registered parts and assemblies.

[0046] More specifically, the simulation system may modularize a ladder program when generating it, depending on the function or operation of the new assembly. For example, the generated ladder program may include a module for starting up the assembly, a module for initializing the assembly, and a module for processing the assembly's operation. The module here may be, for example, a functional unit called a POU (Program Organization Unit).

[0047] As described above, by subdividing the ladder program into modules based on the function or operation of the assembly, the user can easily debug and reuse the ladder program of the registered new assembly.

[0048] Finally, we will explain the third function, which is the function of generating text code using templates. The simulation system can generate text code programs so that users can more easily define the behavior of assemblies.

[0049] The text code generated by the simulation system includes, for example, instructions on a function basis. In some aspects, the text code may also include class members, structures, etc. Each function may correspond to an instruction in a ladder program.

[0050] First, the simulation system defines variables to be used in the text code based on the registered parts, assembly operation information, etc. In one aspect, the variables in the text code may be associated with variables in the ladder program.

[0051] Next, the simulation system retrieves a prepared template from the storage 111 (see FIG. 3) and inserts variables into the template. In this way, the simulation system can always provide the user with the text code of the newly registered assembly in a format that conforms to the template. As a result, the readability of the text code is improved.

[0052] In one aspect, the template may include a ladder program template. In this case, the simulation system may select a template based on operation information of the assembly and insert variables into the selected template. In another aspect, the simulation system may generate text code in units corresponding to each module of the ladder program. In another aspect, the simulation system may generate functions in units corresponding to each module of the ladder program. By associating the ladder program with the text code in this manner, the user can easily debug both the ladder program and the text code.

[0053] As described above, the simulation system provides an assembly registration function and a program (ladder program and text code) generation function. The assembly and program may be stored in the storage 111 as data required for the simulation or as part of the data. In one aspect, the simulation system may automatically generate the program (ladder program and text code) based on operation information of the registered parts and assemblies. In another aspect, the simulation system may generate the program (ladder program and text code) based on a user operation such as pressing a button. <B. System Configuration> Next, referring to FIGS. 2 to 4, a configuration example of a system in which an assembly is used and the hardware configuration and functional configuration of an apparatus for realizing a simulation system will be described.

[0054] FIG. 2 is a diagram showing an example of the unit configuration of a control system 2 including a machine to which the simulation technology according to the present embodiment can be applied. Each assembly shown in FIG. 1 can be used as a device included in the control system 2 or as a part thereof. For example, an assembly verified for operation by a simulation system may be a device driven by servo motors 41 and 42, a robot hand 210 controlled by a robot controller 310, a tool attached to the tip of the robot hand 210, or any other device.

[0055] As an example, the control system 2 includes a PLC (Programmable Logic Controller) 200, servo motor drivers 531 and 532 and an IO remote terminal 5 connected to the PLC 200 via a field network 22, a robot controller 310, and IO devices provided in the field (a photoelectric sensor 6, a proximity switch (or proximity sensor) 87 including a stopper, etc., and encoders 236 and 238, etc.).

[0056] The PLC 200 includes arithmetic units 13 for executing main arithmetic processing, one or more IO units 14, and a special unit 17. These units are configured to be able to exchange data with each other via a system bus 81 and receive power supply from a power supply unit 12. An apparatus 100 for simulation may be connected to the arithmetic unit 13.

[0057] The apparatus 100 can operate as a simulation system and execute an assembly operation simulation. The apparatus 100 can also install a program for an assembly whose operation has been verified in the simulation into the arithmetic unit 13. The arithmetic unit 13 can control each device (assembly) included in the control system 2 based on the installed program. The apparatus 100 can be connected to the arithmetic unit 13 via a network 80.

[0058] The IO unit 14 collects detection values ​​61, 71, 237, and 239 from IO devices including a photoelectric sensor 6, a proximity switch 87 for a stopper, etc., and encoders 236, 238. The proximity switch 87 detects, for example, that the tray has approached a predetermined distance from the stopper in a non-contact manner. The detection value from each IO device is set (written) to, for example, a corresponding bit in a memory provided in the IO unit 14.

[0059] The arithmetic unit 13 executes the calculation of the control program using the values ​​collected by the IO unit 14, and sets (writes) the value of the calculation result to the corresponding bit of the IO unit 14. The peripheral equipment or IO device operates by referring to the value of each bit of the IO unit 14. In this way, the PLC 200 can control the robot, conveyor, or other controlled object while exchanging data with the IO device and peripheral equipment via the IO unit 14.

[0060] The special unit 17 has functions that are not supported by the IO unit 14, such as input / output of analog data, temperature control, and communication using a specific communication method.

[0061] To the field network 22, for example, a robot controller 310, servo motor drivers 531 and 532, an IO remote terminal 5, and the like may be connected.

[0062] The IO remote terminal 5 basically performs processing related to general input / output processing, similar to the IO unit 14. More specifically, the IO remote terminal 5 includes a communication coupler 52 for performing processing related to data transmission in the field network 22, and one or more IO units 53. These units are configured to be able to exchange data with each other via an IO remote terminal bus 51.

[0063] The servo motor drivers 531, 532 are connected to the arithmetic unit 13 via the field network 22, and drive the servo motors 41, 42 in accordance with command values ​​from the arithmetic unit 13. Specifically, the servo motor drivers 531, 532 receive command values ​​such as a position command value, a speed command value, and a torque command value at regular intervals such as a control period from the PLC 200. The arithmetic unit 13 generates these command values ​​based on detection values ​​237, 239 from the encoders 236, 238.

[0064] The calculation unit 13 can refer to the detection values ​​from the IO device described above and execute a predetermined control program to cause the robot hand 210 to perform operations such as picking and placing a workpiece and holding the workpiece.

[0065] Specifically, the arithmetic unit 13 generates a control command 211 for the robot arm and a control command 222 for the robot hand 210, and outputs these control signals to the robot hand 210 via the robot controller 310. When generating the control command 211, the arithmetic unit 13 may refer to the state values ​​of the robot hand 210 in addition to the detection values ​​61 and 71 from the IO devices described above. The robot arm may include any number of servo motors, such as servo motors 1301 to 1304.

[0066] 3 is a diagram showing an example of the configuration of an apparatus that operates as a simulation system. The simulation described with reference to FIG.

[0067] The device 100 includes, as its main components, a processor 102 that executes an operating system (OS) and various programs as described below, a main memory 104 that provides a working area for storing data necessary for the processor 102 to execute the programs, an operation unit 106 (operation reception unit) that receives user operations such as a keyboard and a mouse, an output unit 108 that outputs processing results such as a display 109, various indicators, and a printer, a network interface 110 that is connected to various networks including the network 80, an optical drive 112, a local communication interface 116 that communicates with external devices, and storage 111. These components are connected to each other via an internal bus 118 or the like so as to enable data communication.

[0068] The device 100 has an optical drive 112 and may read various programs from a computer-readable recording medium 114, including an optical recording medium (e.g., a DVD (Digital Versatile Disc)) that non-transiently stores computer-readable programs, and install the various programs in storage 111, etc.

[0069] The various programs executed by the device 100 may be installed on the device 100 via a computer-readable recording medium 114, or may be installed on the device 100 via a network interface 110 from a server device or the like (not shown) on the network.

[0070] The storage 111 is configured, for example, with a hard disk drive (HDD) or a flash solid state drive (SSD), and stores programs executed by the processor 102. More specifically, the storage 111 stores an operating system (OS) 120 and an integrated development environment 130. The integrated development environment 130 can be realized as an application that runs on the OS 120.

[0071] The integrated development environment 130 provides the first, second, and third functions described with reference to Fig. 1. That is, the integrated development environment 130 accepts registration operations for new parts and assemblies to be used in simulation. The integrated development environment 130 also accepts settings for operation information of the registered assemblies. Furthermore, the integrated development environment 130 generates programs for the registered assemblies.

[0072] In one aspect, the assembly customization function described with reference to FIG. 1, the ladder program generation function, and the text code generation function using templates may be implemented as add-ins to the integrated development environment 130.

[0073] In another aspect, the integrated development environment 130 may be executed as software by a plurality of devices 100, a system having at least a portion of the hardware configuration of the devices 100, a virtual machine in a cloud environment having at least a portion of the hardware configuration of the devices 100, or the like.

[0074] Furthermore, the device 100 may implement some or all of the functions of the integrated development environment 130 using an application specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).

[0075] Fig. 4 is a diagram illustrating an example of components included in device 100. Each component illustrated in Fig. 4 can be realized by executing integrated development environment 130 as software on the hardware illustrated in Fig. 3. Each component illustrated in Fig. 4 can provide the first function, the second function, and the third function described with reference to Fig. 1 by cooperating with one another.

[0076] Device 100 includes, as its main components, a moving part selection screen 401, a moving part addition unit 410, a moving part connection setting unit 411, a moving part connection operation setting unit 412, an operation script execution unit 413, and an operation script creation unit 414. Furthermore, moving part selection screen 401 includes a 3D shape reading unit 402, a 3D shape analysis unit 403, a CAD component display unit 404, a motion component setting unit 405, and a 3D shape display unit 406. Furthermore, device 100 can execute write and read processes on template set 420 and variable data set 430.

[0077] The movable part selection screen 401 is a screen for registering new parts in the simulation system. The movable part selection screen 401 may also include screens for defining assemblies, setting the operation of parts or assemblies, and displaying and editing programs.

[0078] The three-dimensional shape reading unit 402 reads a new part. As an example, the user may select a CAD file 440 (e.g., a new part) from within the storage 111 or from an external device by operating the movable part selection screen 401. The three-dimensional shape reading unit 402 may read the selected new part. The CAD file 440 may include one or more parts.

[0079] The three-dimensional shape analysis unit 403 analyzes the CAD file 440 read by the three-dimensional shape reading unit 402. As an example, the three-dimensional shape analysis unit 403 may analyze various information such as the shapes of one or more parts included in the CAD file 440, the connection relationships between the parts, or the dimensions and materials of each part.

[0080] The CAD component display unit 404 displays various pieces of information analyzed by the three-dimensional shape analysis unit 403 on the movable part selection screen 401. As an example, the CAD component display unit 404 may display information such as the analyzed shape of the part, the connection set for the part, and the dimensions and material of the part on the movable part selection screen 401.

[0081] The motion component setting unit 405 provides a function for setting the motion of the loaded part. As an example, by using the function of the motion component setting unit 405, the user can set the operation (motion) of the second part 152 as shown in FIG.

[0082] The three-dimensional shape display unit 406 displays the parts loaded into the simulation system in a three-dimensional space.

[0083] The movable part adding unit 410 provides the simulation system with a function for adding movable parts. The function of the movable part adding unit 410 may be executed based on an operation via the movable part selection screen 401. As an example, the movable part adding unit 410 may add a part included in a CAD file 440 selected from the storage 111 or the like to an assembly based on a user operation. In one aspect, the CAD file 440 added by the movable part adding unit 410 may be passed to the 3D shape reading unit 402.

[0084] The movable part connection setting unit 411 sets a connection between parts included in an assembly. The function of the movable part connection setting unit 411 can be executed based on an operation via the movable part selection screen 401. As an example, the movable part connection setting unit 411 sets a connection between a first part and a second part based on an operation by a user.

[0085] The movable part connection operation setting unit 412 sets the operation of a part included in an assembly. The function of the movable part connection operation setting unit 412 can be executed based on an operation via the movable part selection screen 401. As an example, the movable part connection operation setting unit 412 sets the operation of a second part relative to a first part based on an operation by a user. The operation setting can include setting the type of operation and the range of operation.

[0086] The operation script execution unit 413 executes a script (program) of an assembly whose operation is defined within the movable part selection screen 401. The function of the operation script execution unit 413 can be executed based on an operation via the movable part selection screen 401.

[0087] The operation script creation unit 414 generates a script of an assembly whose operation is defined within the movable part selection screen 401. The function of the operation script creation unit 414 can be executed based on an operation via the movable part selection screen 401. The script generated by the operation script creation unit 414 may include a ladder program and text code. Further, the operation script creation unit 414 generates variable data from settings of the operation of the assembly and stores the variable data in the variable data set 430. Furthermore, the operation script creation unit 414 selects a specific template included in the template set 420 based on settings of the operation of the assembly. Then, the operation script creation unit 414 inserts variable data into the selected template to generate a program. In one aspect, the template may be a template of text code. In another aspect, the template may include a template of a ladder program in addition to the template of text code.

[0088] The template set 420 and the variable data set 430 can be expressed in a relational database or any other format. The template set 420 and the variable data set 430 are stored in the storage 111 or the like. <C. Addition of Parts> Next, referring to FIGS. 5 to 8, a procedure for adding an assembly including a plurality of parts to the simulation system will be described. The screens shown in FIGS. 5 to 8 are displayed on the display 109.

[0089] 5 is a diagram showing a first example of the flow of adding a part to the simulation system. Screen 500 is one display form of movable part selection screen 401. Screen 500 includes setting screen 501 and 3D screen 502. Setting screen 501 displays the settings of the part (CAD data) displayed on 3D screen 502. Setting screen 501 also accepts an operation to edit the part settings. 3D screen 502 displays CAD data of the part registered in 3D space. 3D screen 502 also accepts an operation to move the CAD data of the part.

[0090] The screen 500 further includes an add movable part button 511. The user can add a new part to the simulation system by pressing the add movable part button 511. More specifically, when the user presses the add movable part button 511, a file selection dialog (not shown) is displayed on the display 109. The user can select a new part via the file selection dialog and register the new part in the simulation system. In the example shown in FIG. 5 , the added part 550 is displayed on the 3D screen 502. Furthermore, setting items 512 for the part 550 are displayed on the setting screen 501. The user can move (place) the part 550 and edit the setting items 512 via the screen 500.

[0091] 6 is a diagram showing a second example of the flow of adding a part to the simulation system. In the example shown in Fig. 6, the user further adds a part 551 to the simulation system by pressing an add movable part button 511. A setting screen 501 displays setting items 512 for the part selected on a 3D screen 502.

[0092] FIG. 7 is a diagram showing a third example of the flow of adding components to the simulation system. In the example shown in FIG. 7, the user selects the type of operation of component 551, which is a movable component, via screen 500, and sets the operation direction and operation range of component 551. More specifically, the user selects the type of operation of component 551 from operation setting 710. Based on the selection of the type of operation of component 551, the display of setting screen 501 switches to a display including operation setting item 711. Next, the user can set the operation direction of component 551 by operating icon 750 displayed on 3D screen 502. Icon 750 is an icon indicating the type of operation direction. In a certain aspect, the user may drag icon 750 or use the direction keys of the keyboard or the like to set the operation direction of component 551. Also, the user may select the type of operation of component 551 and adjust the operation direction and range of component 551 by using operation setting item 711.

[0093] FIG. 8 is a diagram showing a fourth example of the flow of adding components to the simulation system. In the example shown in FIG. 8, the user selects the type of connection between component 550, which is a fixed component, and component 551, which is a movable component, via screen 500. More specifically, the user selects component 550, which is the parent component for movable component 551, from component selection list 810. Next, the user presses connection method button 811 for the coupling part. When connection method button 811 for the coupling part is pressed, operation setting dialog 800 for the coupling part is displayed on display 109. The user can select the connection method between component 550 and component 551 on operation setting dialog 800 for the coupling part.

[0094] As described above, the user can register a new assembly in the simulation system by performing the operations described with reference to FIGS. 5 to 8. Furthermore, the user can also set the arrangement, operation, and connection method of each component included in the assembly. <D. Program Generation> Next, a procedure for the simulation system to generate a program for a newly registered assembly will be described with reference to Figures 9 to 15. The program generated by the simulation system includes a ladder program and text code.

[0095] 9 is a diagram showing a first example of a procedure for program generation by the simulation system. First, the user selects a mechanism (assembly) registered in the simulation system from a menu screen 900 of the simulation system, and then selects an item for program generation for that mechanism. When the item for program generation is selected, a program generation dialog 910 is displayed on the display 109.

[0096] The user selects a desired function from a function selection item 911 on a program generation dialog 910. The function selection item 911 includes, as items, assembly functions (startup, initialization, operation, etc.). Based on the selection of one function from the function selection item 911, the simulation system generates a ladder program for the selected function and displays the ladder program on a screen 920. The screen 920 is an editing screen for the ladder program. In the example shown in FIG. 9, the function "MC_Power" is selected. In a certain aspect, the simulation system may appropriately change the items included in the function selection item 911 based on the assembly information and the template set 420.

[0097] The simulation system generates instructions and variables required for the ladder program from the registered assembly information. In one aspect, the simulation system may generate variables related to the assembly based on receiving the operations shown in Figures 5 to 8 and register the variables in the variable data set 430.

[0098] The simulation system may insert variables (e.g., axis variables) read from the variable data set 430 into the command that is pre-associated with the function selected from the function selection item 911. The simulation system may also generate comments for one module for each function.

[0099] Fig. 10 is a diagram showing a second example of a procedure for generating a program by the simulation system. In the example shown in Fig. 10, the user generates a ladder program for the function "MC_Home" in the same procedure as that shown in Fig. 9.

[0100] Because the POU name and section name selected in the program generation dialog 910 are the same, the ladder program for the function "MC_Home" is displayed on the same screen 1020 as the ladder program for the function "MC_Power." At this time, the simulation system places the circuit for the function "MC_Home" and the circuit for the function "MC_Power" as different modules (they share a common bus). This clearly separates the modules for each function, allowing the user to easily debug each function. Note that screen 1020 is screen 920 to which the ladder program for the function "MC_Home" has been added.

[0101] Fig. 11 is a diagram showing a third example of a procedure for generating a program by the simulation system. In the example shown in Fig. 11, the user generates a ladder program for the function "MC_Move" in a procedure similar to the procedures shown in Figs. 9 and 10.

[0102] However, the function "MC_Move" includes a process for moving a part (or an assembly). Therefore, the process for generating a ladder program for the function "MC_Move" differs from the processes shown in FIGS. 9 and 10 in that it includes a process for accepting input of part operation settings from the user via a screen 1120 for setting the operation of the movable part. Based on the selection of a function including the operation of the part from the function selection item 911, the simulation system displays screen 1120. Screen 1120 is a screen for accepting input of the operation settings of the part.

[0103] The user may input the current position (or initial position) and target position of the part via screen 1120. In a certain aspect, if the user has already completed inputting the operation settings of the part via screen 500, the simulation system may display screen 1220 (see FIG. 12 ) instead of displaying screen 1120 based on the selection of a function including the operation of the part from function selection item 911. The simulation system displays screen 1220 based on the user pressing the OK button on screen 1120.

[0104] 12 is a diagram showing a fourth example of the procedure for generating a program by the simulation system. In the example shown in FIG. 12, a generated ladder program for the function "MC_Move" is displayed on a screen 1220. Because the POU name and section name selected in the program generation dialog 910 are the same, the ladder program for the function "MC_Move" is generated on the same screen 1220 as the ladder programs for the functions "MC_Power" and "MC_Home." Note that the screen 1220 is the screen 1020 to which the ladder program for the function "MC_Move" has been added.

[0105] As an example, the ladder program for the function "MC_Move" may include setting of axis variables, setting of target values, setting of default values ​​for items other than those set by the user, and the like.

[0106] FIG. 13 is a diagram showing a fifth example of the procedure for generating a program by the simulation system. Referring to FIG. 13, the processing when a section is changed in the program generation dialog 910 will be described. A ladder program can be divided into units called sections. For example, suppose that the user changes the section name from "Section 0" to "Section 1" in the program generation dialog 910 instead of the operation shown in FIG. 11. Also, suppose that the user selects the function "MC_Move" from the function selection item 911. Furthermore, suppose that the user inputs the current position (or initial position) and target position of the part via the screen 1320 for setting the operation of the movable part. In this case, the simulation system displays screen 1420 (see FIG. 14).

[0107] FIG. 14 is a diagram showing a sixth example of a program generation procedure by the simulation system. Screen 1420 displays only the ladder program for function "MC_Move" included in "Section 1." The ladder programs for functions "MC_Power" and "MC_Home" are included in "Section 0." When the user selects "Section 0" on the left side of screen 1420, the ladder programs for functions "MC_Power" and "MC_Home" are displayed on screen 1420. In this way, the simulation system also has a function for separating ladder programs by section. This function allows the user to divide sections into units that are easy to debug, for example.

[0108] Fig. 15 is a diagram showing a seventh example of the procedure for generating a program by the simulation system. The process of generating a text code will be described with reference to Fig. 15. The simulation system can generate the text code at the same time as generating the ladder program.

[0109] Screen 1500 is a display screen for text code. Screen 1500 includes a variable list 1510, a parameter list 1520, source code (text code) 1530, and a template list 1540. In one aspect, screen 1500 may be configured to allow transition from a ladder program editing screen (screens 920 to 1420, etc.) or menu screen 900.

[0110] The user can edit the generated source code 1530 via the screen 1500. The simulation system generates the source code 1530 by inserting the variables in the variable list 1510 (variables selected from the variable data set 430) into a template selected from the template set 420. The parameters included in the parameter list 1520 are substituted for each variable included in the variable list 1510. Note that the parameters included in the parameter list 1520 can be generated from assembly information (such as the placement, operation, and connection of parts).

[0111] In one aspect, a user may add a desired template from a template list 1540 on the right side of the screen to source code 1530. The template added to source code 1530 may have variables and parameters automatically set.

[0112] As described above, the simulation system can provide the user with a highly readable program by automatically generating text code (source code 1530) based on a template. As a result, the user can easily modify and debug the text code along with the ladder program.

[0113] In one aspect, each function of the text code generated from the newly registered assembly may be associated with each function of the circuit in the ladder program generated from the newly registered assembly. In this case, the simulation system may determine names of functions, variables, circuits, etc. so that the relationship between the functions and the circuit functions can be understood. <E.フローチャート> 16 is a flowchart showing an example of the flow of internal processing of the simulation system. In one aspect, processor 102 may load a program for performing the processing of FIG. 16 from storage 111 into main memory 104 and execute the program. In another aspect, some or all of the processing may be realized as a combination of circuit elements configured to perform the processing.

[0114] In step S1610, the processor 102 adds EtherCAT (registered trademark) servo motors, IOs, and axes to the simulation system based on a user's operation. These servo motors, IOs, and axes can be used as, for example, power sources, input / output ports, rotary axes, etc., of parts newly added to the simulation system.

[0115] In step S1620, processor 102 adds the custom mechanical mechanism (part) to the simulation system based on a user operation. In one aspect, the custom mechanical mechanism is CAD data.

[0116] In step S1630, the processor 102 adds a moving part to the simulation system based on a user operation. In one aspect, the moving part is CAD data.

[0117] In step S1640, the processor 102 sets the operation of the moving part based on the user's operation. The processor 102 may further set a connection between the custom mechanical mechanism (first part) and the moving part (second part) based on the user's operation.

[0118] In step S1650, the processor 102 checks the operation of an assembly including a custom mechanical mechanism and movable parts based on the user's operation, and further automatically generates various settings (which may include the movable range, connection relationship, etc.) and programs (ladder programs and text codes). In a certain aspect, the processor 102 may accept editing operations for various settings of the assembly, ladder programs, and text codes. In a certain aspect, the processor 102 may generate text codes by referring to the template set 420 and the variable data set 430. In another aspect, the processor 102 may generate ladder programs by referring to the template set 420 and the variable data set 430. Further, the processor 102 stores the information of the assembly and the programs (ladder programs and text codes) in the storage 111.

[0119] In step S1660, the processor 102 checks the operation of the assembly using the 3D Visualizer based on the user's operation. The user can appropriately debug the ladder program and text codes based on the display of the 3D Visualizer. Also, the user can check whether there is interference between the parts included in the assembly based on the display of the 3D Visualizer.

[0120] As described above, the simulation system according to this embodiment has a function of registering a new assembly including arbitrary parts in the simulation system. Also, the simulation system has a function of automatically generating ladder programs and text codes based on the settings of the assembly. With these functions, the user can easily perform the simulation of a newly designed device and the creation and debugging of the programs for operating the device.

[0121] W<F. Appendix> [Configuration 1] A simulation system, a storage unit (111) for storing data for simulation; a control unit (102) that executes the simulation; The control unit (102) Accepting a registration operation for the first part and the second part; accepting an operation to set an operation of an assembly including the first part and the second part; generating a program for operating the assembly based on the first part, the second part, and operation information of the assembly; a simulation system that stores the first part, the second part, operation information of the assembly, and the program in the storage unit (111) as data for the simulation; [Configuration 2] Accepting operations to set the behavior of the above assemblies receiving an operation to register the first part and the second part in the assembly; receiving an operation for setting an operation of the second component; and receiving an operation to set a connection between the first part and the second part. [Configuration 3] Receiving an operation to set the operation of the second component receiving an operation to select a type of operation of the second component; and receiving an operation to set a range of motion of the second part. [Configuration 4] The program includes a ladder program for the assembly, 4. The simulation system according to any one of configurations 1 to 3, wherein generating the program includes dividing the assembly into modules for each function and generating the ladder program. [Configuration 5] 5. The simulation system of claim 4, wherein generating the program includes modifying sections for each function of the assembly to generate the ladder program. [Configuration 6] The simulation system according to any one of configurations 1 to 5, wherein generating the program includes generating one or more variables to be included in the program based on operation information of the first part, the second part, and the assembly. [Configuration 7] The program includes text code, To generate the above program, Obtaining a template that defines an instruction included in the text code from the storage unit (111); and inserting the variables into the template to generate the text code. [Configuration 8] 8. The simulation system according to any one of configurations 1 to 7, wherein the control unit (102) accepts an editing operation for the program. [Configuration 9] 1. A computer-implemented simulation method comprising: receiving a registration operation for a first part and a second part; receiving an operation to set an operation of an assembly including the first part and the second part; generating a program for operating the assembly based on the first part, the second part, and operation information of the assembly; A simulation method comprising the step of saving the first part, the second part, operation information of the assembly, and the program as data for simulation. [Configuration 10] 10. A program for causing a computer to execute the method described in claim 9.

[0122] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present disclosure is defined by the claims, not by the above description, and is intended to include all modifications within the meaning and scope equivalent to the claims. Furthermore, the disclosures described in the embodiments and each modification are intended to be implemented, as far as possible, either alone or in combination. [Explanation of symbols]

[0123] 2 Control system, 5 IO remote terminal, 6 Photoelectric sensor, 12 Power supply unit, 13 Calculation unit, 14, 53 IO unit, 17 Special unit, 22 Field network, 41, 42, 1301, 1302, 1303, 1304 Servo motor, 51 IO remote terminal bus, 52 Communication coupler, 61, 71, 237, 239 Detected value, 80 Network, 81 System bus, 87 Proximity switch, 100 Device, 102 Processor, 104 Main memory, 106 Operation unit, 108 Output unit, 109 Display, 110 Network interface, 111 Storage, 112 Optical drive, 114 Recording medium, 116 Local communication interface, 118 Internal bus, 120 OS, 130 Integrated development environment, 150A, 150B, 160A, 160B, 170A, 170B, 500, 920, 1020, 1120, 1220, 1320, 1420, 1500 screen, 151171 first part, 152, 162, 172 second part, 200 PLC, 210 robot hand, 211, 222 control command, 236, 238 encoder, 310 robot controller, 401 moving part selection screen, 402 3D shape reading unit, 403 3D shape analysis unit, 404 CAD component display unit, 405 motion component setting unit, 406 3D shape display unit, 410 moving part addition unit, 411 moving part connection setting unit, 412 moving part connection operation setting unit, 413 operation script execution unit, 414 Operation script creation section, 420 template set, 430 variable data set, 440 CAD file, 501 setting screen, 502 3D screen, 511 adding moving part button, 512 setting items, 531, 532 servo motor driver, 550, 551 parts, 710 operation settings, 711 operation setting items, 750 icon, 800 operation setting dialog, 810 part selection list, 811 connection method button, 900 menu screen, 910 program generation dialog, 911 function selection items, 1510 variable list, 1520 parameter list, 1530 source code, 1540 template list.

Claims

1. 1. A simulation system comprising: a storage unit for storing data for the simulation; a control unit that executes the simulation, The control unit Accepting a registration operation for the first part and the second part; receiving an operation to set an operation of an assembly including the first part and the second part, the assembly being an FA (Factory Automation) device; generating a program for a control system for FA to operate the assembly based on operation information of the first part, the second part, and the assembly; a simulation system that stores the first part, the second part, operation information of the assembly, and the program in the storage unit as data for the simulation;

2. A simulation system, a storage unit for storing data for the simulation; a control unit that executes the simulation, The control unit Accepting a registration operation for the first part and the second part; accepting an operation to set an operation of an assembly including the first part and the second part; generating a program for operating the assembly based on the first part, the second part, and operation information of the assembly; storing the first part, the second part, operation information of the assembly, and the program in the storage unit as data for the simulation; the program includes a ladder program for the assembly; A simulation system, wherein generating the program includes dividing the assembly into modules according to their functions and generating the ladder program.

3. A simulation system, a storage unit for storing data for the simulation; a control unit that executes the simulation, the control unit is configured to add an assembly to the simulation system; To add the assembly, the control unit: receiving, in the simulation system, a registration operation for a first part and a second part of the assembly; receiving an operation input for setting the second part as a movable part; receiving an operation input for specifying a connection relationship between the movable part and the first part; receiving an operation input for setting an operation of the movable part based on the connection relationship; generating a program for operating the assembly, which is executed by a control system, based on the operation settings of the movable parts; A simulation system configured to store the program in the storage unit as data for the simulation.

4. Receiving an operation to set an operation of the assembly receiving an operation to register the first part and the second part in the assembly; receiving an operation for setting an operation of the second component; The simulation system according to claim 1 , further comprising: receiving an operation for setting a connection between the first part and the second part.

5. Receiving an operation to set an operation of the second component receiving an operation to select a type of operation of the second part; The simulation system according to claim 3 , further comprising: receiving an operation for setting a range of motion of the second part.

6. The simulation system according to claim 2 , wherein generating the program includes generating the ladder program by changing sections for each function of the assembly.

7. 7. The simulation system according to claim 1, wherein generating the program includes generating one or more variables to be included in the program based on operation information of the first part, the second part, and the assembly.

8. the program includes text code; generating the program obtaining a template that defines an instruction included in the text code from the storage unit; and inserting the variables into the template to generate the text code.

9. 9. The simulation system according to claim 1, wherein the control unit accepts an operation to edit the program.

10. 1. A computer-implemented simulation method comprising: receiving a registration operation for a first part and a second part; receiving an operation to set an operation of an assembly including the first part and the second part, the assembly being an FA device; generating a program for a control system for FA to operate the assembly based on operation information of the first part, the second part, and the assembly; A simulation method comprising the step of saving the first part, the second part, operation information of the assembly, and the program as data for simulation.

11. A computer-implemented simulation method, comprising: receiving a registration operation for a first part and a second part; receiving an operation for setting an operation of an assembly including the first part and the second part; generating a program for operating the assembly based on the first part, the second part, and operation information of the assembly; storing the first part, the second part, operation information of the assembly, and the program as data for simulation; the program includes a ladder program for the assembly; A simulation method in which the step of generating the program includes a step of dividing the assembly into modules according to their functions and generating the ladder program.

12. A computer-implemented simulation method, comprising: receiving, in the simulation system, a registration operation for a first part and a second part of the assembly; receiving an operation input for setting the second part as a movable part; receiving an operation input for specifying a connection relationship between the movable part and the first part; receiving an operation input for setting an operation of the movable part based on the connection relationship; generating a program for operating the assembly, which is executed by a control system, based on the operation settings of the movable parts; and saving the program as data for simulation.

13. A simulation program for causing a computer to execute the method according to any one of claims 10 to 12.

Citation Information

Patent Citations

  • Designing / manufacturing process supporting device for mechanical equipment

    JP1997311883A

  • Programming apparatus and programming method

    JP2011238041A

  • Kinetics calculation method and program, and recording medium

    JP2015148994A

  • Design support device and design support method

    JP2018041132A

  • Simulation device, simulation program, and simulation method

    JP2021045797A