Simulation system, method of simulation system, and computer-readable data storage medium

By recording and displaying the object location and variable values ​​at each execution time in the simulation system, the problem of low program verification efficiency in existing simulation technologies is solved, and efficient program debugging and verification are achieved.

CN115542827BActive Publication Date: 2026-04-07OMRON CORP
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-05-26
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

Existing simulation technology is inefficient in the process of program verification, requiring repeated reproduction, which leads to excessive time consumption.

Method used

A simulation system is provided that records object location information and variable values ​​at each execution time, supports logging, display, differential extraction, synchronization, and chart display, and enables efficient debugging and verification of the program.

Benefits of technology

It can confirm the location of objects and the value of variables at each execution time, supporting efficient debugging and verification of the program, saving log storage capacity, and improving verification efficiency through real-world environment synchronization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115542827B_ABST
    Figure CN115542827B_ABST
Patent Text Reader

Abstract

A simulation system, a method for simulating a simulation system, and a computer-readable data storage medium provide a simulation technique for more efficient program verification. The simulation system includes: a simulation unit that performs a simulation of the actions of one or more devices; a data input unit that acquires one or more execution times in the simulation, position information (252) of one or more objects in the simulation, and values ​​(254) of one or more variables referenced by a program (253) for causing one or more devices to operate; a data recording unit that associates and saves the position information (252) of one or more objects with the values ​​(254) of one or more variables as a log (250) for each of the one or more execution times; and a display unit that displays the position information (252) of one or more objects and the values ​​(254) of one or more variables for each of the one or more execution times contained in the first log (250).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to simulation systems, and more specifically to the debugging functionality of programs. Background Technology

[0002] Computer simulations are applied in various technical fields. By using such simulations, various preliminary studies can be conducted even in the absence of actual physical installations.

[0003] Regarding simulation, for example, Japanese Patent Application Publication No. 2021-045797 discloses the following apparatus: "It comprises: a first behavior calculation unit that calculates the behavior of a first object configured in a virtual space corresponding to a first device on which an accessory device is installed; and a second behavior calculation unit that calculates the behavior of a second object in a virtual space corresponding to a second device, the second device including the accessory device. At each predetermined time step, the first behavior calculation unit calculates the behavior of the first object corresponding to the first device on which the accessory device is installed, and then the second behavior calculation unit calculates the behavior of the accessory device installed on the first device based on the calculated behavior of the first object" (see [Abstract]).

[0004] According to the technology disclosed in Japanese Patent Application Publication No. 2021-045797, in order to verify the program used to make the equipment operate, it is necessary to repeatedly reproduce the simulation, and the verification of the program takes a lot of time. Therefore, there is a need for simulation technology for more efficient program verification. Summary of the Invention

[0005] This disclosure was made in view of the background described above, and one aspect of its purpose is to provide a simulation technique for more efficient verification of procedures.

[0006] According to one embodiment, a simulation system is provided. The simulation system includes: a simulation unit that performs simulation of the operation of one or more devices; a data input unit that acquires one or more execution times in the simulation, position information of one or more objects in the simulation, and values ​​of one or more variables referenced by a program for causing the one or more devices to operate; a data recording unit that associates the position information of one or more objects with the values ​​of one or more variables at each of the one or more execution times and saves them as a first log; and a display unit that displays the position information of one or more objects and the values ​​of one or more variables at each of the one or more execution times included in the first log.

[0007] According to this disclosure, the simulation system can display the position information of one or more objects and the values ​​of one or more variables at each execution time of the simulation. Thus, the user can confirm both the position of the objects and the values ​​of the variables referenced by the program at each execution time of the simulation. Therefore, for example, if the position or action of an object in execution time A is undesirable, the user can immediately confirm the value of the variables in execution time A (making it easy to identify program problems), resulting in efficient program debugging.

[0008] In the above disclosure, the simulation unit is configured to stop and reproduce the simulation at each execution time based on the first log. The display unit is configured to display the simulation screen for each execution time and the first log for each execution time.

[0009] According to this disclosure, the simulation system can stop and reproduce the simulation at each execution time.

[0010] In the above disclosure, the simulation unit is configured to stop and reverse-reproduce the simulation based on the first log at each execution time. The display unit is configured to display the simulation screen for each execution time and the first log for each execution time.

[0011] According to this disclosure, the simulation system can stop and reverse the simulation at each execution time. For example, by slightly rewinding to the scene of the simulation where the problem occurred, the user can trace the program's actions in more detail.

[0012] In the above disclosure, the simulation system also includes a data difference extraction unit, which is used to extract the difference between the data in the first log and the data recorded in the previous log. The data recording unit stores the difference.

[0013] According to this disclosure, the simulation system can save log storage capacity by saving only the differences.

[0014] In the aforementioned disclosure, the data input unit also has the following functions: acquiring one or more timestamps in the actual environment, the location information of one or more objects in the actual environment, and the values ​​of one or more variables referenced by the program used to operate one or more devices in the actual environment. The data recording unit also has the following functions: for each of the one or more timestamps in the actual environment, associating the location information of one or more objects in the actual environment with the values ​​of one or more variables referenced by the program used to operate one or more devices in the actual environment, and saving them as a second log.

[0015] According to this disclosure, the simulation system can obtain not only logs within the simulation, but also logs from the actual environment.

[0016] In the above disclosure, the simulation system also includes a synchronization unit for mapping the execution time of the first log to the execution time of the second log. The display unit is configured to display the first log and the second log at the same execution time.

[0017] According to this disclosure, the simulation system can synchronize the execution time of the first log in the simulation with the execution time of the second log in the actual environment, and can display the first log and the second log comparatively.

[0018] In the above disclosure, the display unit is configured to display a graph that shows the values ​​of one or more variables for each execution time contained in the first log.

[0019] According to this disclosure, the simulation system can visually display the changes in the values ​​of one or more variables through charts.

[0020] In the above disclosure, the display unit is configured to reproduce the operation of the display program based on the values ​​of one or more variables for each execution time contained in the first log.

[0021] According to this disclosure, the simulation system can provide the user with the status of the program at each execution time based on the values ​​of one or more variables.

[0022] In the above disclosure, the display unit is configured to display the simulation screen for each execution time in the simulation, and the flowchart of the program for each execution time in the simulation. The display unit emphasizes the execution part of the flowchart for each execution time in the simulation.

[0023] According to this disclosure, the simulation system can simultaneously display the simulation screen and the execution part of the flowchart to the user.

[0024] In the aforementioned disclosure, the simulation unit also includes the following function: accepting input from one or more variables contained in the program to select the variable whose value is to be tracked at each execution time.

[0025] According to this disclosure, the simulation system enables users to select the variables they want to track.

[0026] In the above disclosure, the simulation department also includes the following functions: accepting the setting input of the simulation playback start time and playback end time.

[0027] According to this disclosure, the simulation system is capable of accepting input settings for the start and end times of the simulation.

[0028] In the aforementioned disclosure, the data recording unit records the counts of loops and steps executed during program execution as the execution time in the simulation.

[0029] According to this disclosure, the simulation system can record the counts of loops and steps when a program is executed as the execution time in the simulation.

[0030] According to another embodiment, a method executed by a simulation system is provided. The method further includes the following steps: simulating the actions of one or more devices; obtaining one or more execution times in the simulation, position information of one or more objects within the simulation, and values ​​of one or more variables referenced by a program used to cause the one or more devices to act; associating the position information of one or more objects with the values ​​of one or more variables for each of the one or more execution times, and saving this as a first log; and displaying the position information of one or more objects and the values ​​of one or more variables for each of the one or more execution times contained in the first log.

[0031] According to this disclosure, the method can display the location information of more than one object and the value of more than one variable at each execution time in more than one execution time. Thus, the user can confirm both the location of the object and the value of the variable referenced by the program at each execution time of the simulation.

[0032] According to another embodiment, a program is provided for causing one or more processors to execute the above method.

[0033] According to this disclosure, the program can display the location information of more than one object and the value of more than one variable at each execution time within a more than one execution time. Thus, the user can confirm both the location of the object and the value of the variable referenced by the program at each execution time of the simulation.

[0034] The above and other objects, features, aspects and advantages of the present invention will become clear from the following detailed description, which is understood in conjunction with the accompanying drawings and is relevant to the present invention. Attached Figure Description

[0035] Figure 1 This is a diagram illustrating an example of a device that can be simulated using a simulation system with a certain implementation.

[0036] Figure 2 This is a diagram illustrating an example of a simulation performed by simulation system 500.

[0037] Figure 3 This is a diagram illustrating an example of the unit structure of a control system 2 that includes a device capable of applying simulation technology in a certain implementation.

[0038] Figure 4 This is a diagram illustrating an example of the hardware structure of device 100.

[0039] Figure 5 This is a diagram showing an example of the functional structure of the simulation system 500.

[0040] Figure 6 This is a diagram showing the first example of a simulation scenario.

[0041] Figure 7 This is a diagram showing the second example of a simulation scenario.

[0042] Figure 8 This is a diagram showing the third example of a simulation scenario.

[0043] Figure 9 This is a diagram showing the first example of the data stored in the repository 570.

[0044] Figure 10 This is a diagram showing the second example of the data stored in the repository 570.

[0045] Figure 11 This is a diagram showing the first example of the debug screen in the simulation system 500.

[0046] Figure 12 This is a diagram showing the second example of the debug screen in the simulation system 500.

[0047] Figure 13 This is a diagram showing the third example of the debug screen in the simulation system 500.

[0048] Figure 14 This is a diagram showing the fourth example of the debug screen in the simulation system 500.

[0049] Figure 15 This is a flowchart showing an example of the recording process of the simulation by the simulation system 500.

[0050] Figure 16 This is a flowchart showing an example of the debug process executed by the simulation system 500.

[0051] Figure 17 This is a flowchart showing an example of the comparison process of the simulation result of the program by the simulation system 500 and the execution result of the program in the actual environment. Detailed Implementation Manner

[0052] Hereinafter, embodiments of the technical idea of the present disclosure will be described with reference to the accompanying drawings. In the following description, the same reference numerals are assigned to the same components. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated.

[0053] <A. Application Example>

[0054] First, refer to Figure 1 and Figure 2An example of a scenario in which the present invention is applied will be described.

[0055] (a. The device used as the simulation object)

[0056] Figure 1 This diagram illustrates an example of a device capable of simulating operation using the simulation system of this embodiment. As an example, the simulation system 500 of this embodiment (see...) Figure 5 It can simulate the actions of any equipment used in factory FA (Factory Automation). Simulation System 500 can simulate the actions of robotic arms, belt conveyors, rotary knives, sensors, and other arbitrary equipment and combinations thereof.

[0057] Figure 1 The device 150 shown is a composite device consisting of a conveyor 151 and a rotary cutter 154. The device 150 has the function of cutting a sheet 158 ​​flowing on the conveyor 151 into a predetermined length. The device 150 has a conveyor 151, a motor 152, a motor control device 153, a rotary cutter 154, a motor 155, a motor control device 156, and a sensor 157 as its constituent components.

[0058] Conveyor 151 transports sheet material 158. Motor 152 is connected to a main shaft for rotating the conveyor and drives conveyor 151. Motor control device 153 controls the speed or torque of motor 152, etc.

[0059] A rotary cutter 154 is mounted on a rotating roller. As the roller rotates, the cutter cuts the sheet 158 ​​flowing on the conveyor 151. A motor 155 is connected to the roller of the rotary cutter 154 and drives the rotary cutter 154. A motor control device 156 controls the speed or torque of the motor 155, etc.

[0060] Sensor 157 detects the cutting position 159 on the sheet 158. Rotary blade 154 cuts at the cutting position 159 detected by sensor 157.

[0061] Motor control devices 153 and 156, as well as sensor 157, are compatible with PLC (Programmable Logic Controller) 200 (see reference). Figure 3 Connections such as ) are made. In this case, PLC 200 can read signals from sensor 157 and control the rotary blade 154 based on those signals. PLC 200 controls device 150 based on the installed program.

[0062] The simulation system 500 reproduces the actions of the PLC 200 with its program installed and the actions of the device 150 controlled by the PLC 200 within the simulation. Users can debug the PLC program by verifying the actions of the device 150 within the simulation. In some respects, the simulation system 500 can simulate IEC programs. IEC programs are programs based on the IEC 61131-3 standard and include ladder diagram programs, ST (Structured Text) programs, etc.

[0063] (b. Functions of the simulation system)

[0064] Figure 2 This diagram illustrates an example of simulation system 500 performing a simulation. (Refer to...) Figure 2 The functions of simulation system 500 will be explained below. Simulation system 500 has simulation recording capabilities and debugging capabilities for programs that use the recorded simulation results. In the following descriptions, the functions of simulation system 500 will be explained using device 150 as an example.

[0065] (b-1. Simulation recording function)

[0066] First, the recording function of the simulation will be explained. As mentioned above, the simulation system 500 reproduces the actions of the PLC 200 with the installed program and the actions of the equipment 150 controlled by the PLC 200 through simulation in 3D (Three-Dimensional) space.

[0067] At this time, the simulation system 500 records the simulation log 250. The simulation log 250 contains the position information 252 of objects in 3D space at each execution time (or execution timing) of the program, and the variable values ​​254 of the program at each execution time. The objects in 3D space can include, for example, devices in 3D space, components that make up the devices, workpieces, any other objects, and combinations thereof.

[0068] In one respect, execution time (or execution timing) can be defined by the number of steps in the program's commands and the number of times the program is executed repeatedly (loop). A step, for example, represents one command unit of the program or one line of commands in the editor (one command in a ladder diagram program or one line of ST in the editor, etc.). When one command or one line of commands in the program is executed (e.g., when one command in a ladder diagram program or one line of ST in the editor is executed), it is considered that one step has been advanced. Furthermore, the interval between steps can be determined by the command cycle of the PLC 200. As an example, suppose the program contains 10 steps of commands. In this case, at the point when 10 steps of commands are executed, the program is executed once (loop), and at the point when 100 steps of commands are executed, the program is executed 10 times (loop). In other respects, execution time (or execution timing) can also be defined by any predetermined time interval (1 second, 100 milliseconds, etc.).

[0069] exist Figure 2 In the example shown, the simulation system 500 records the position information 252 of objects in 3D space at execution time (3420 loops, 118 steps) as a simulation log 250 in association with the variable values ​​254 of the program.

[0070] The positional information 252 of objects in 3D space includes the positional information of one or more objects existing in 3D space. Figure 2 In the example shown, the position information 252 of the object in 3D space includes the angle of the main shaft 240 (the shaft of the conveyor connected to the motor 152), the angle of the spindle 245 (the roller of the rotating blade 154), the cutting position 248 (the position of the blade), and the positions of other objects.

[0071] The program's variable value 254 contains the values ​​of one or more variables referenced from program 253 installed on PLC 200. Figure 2 In one example shown, the program's variable value 254 includes the values ​​of GEAROMPOS1_STARTSYNC, GEAROMPOS1_INSYNC, MC_Axis000.Act.Pos, MC_Axis001.Act.Pos, and other variable values.

[0072] (b-2. Debugging Functions)

[0073] Next, the debugging function will be explained. The simulation system 500 can reproduce the simulation based on the simulation log 250 and display the simulation scene of each step on the screen 251.

[0074] The screen 251 includes a display 260 of the 3D space, a display 265 of the program, position information 252 of the objects in the 3D space at each execution time, and variable values 254 of the program at each execution time.

[0075] In addition, the simulation system 500 has a function of pausing, reproducing, or reverse-reproducing the simulation at each step based on an operation input from the user.

[0076] For example, assume that the simulation scenario is the first execution time. In this case, on the screen 251, a display 260 of the 3D space at the first execution time, a display 265 of the program, position information 252 of the objects in the 3D space, and variable values 254 of the program are displayed.

[0077] Based on an operation input from the user, the simulation scenario advances (or retreats) one step from the first execution time and changes to the second execution time. In this case, on the screen 251, a display 260 of the 3D space at the second execution time, a display 265 of the program, position information 252 of the objects in the 3D space, and variable values 254 of the program are displayed. In some aspects, the display 265 of the program may include the execution state of the program with the variable values 254 of the program substituted.

[0078] By referring to the screen 251, the user can simultaneously confirm the display 260 of the 3D space, the display 265 of the program, the position information 252 of the objects in the 3D space, and the variable values 254 of the program. Thus, the user can easily debug the program while confirming the operation of the device 150.

[0079] <B. System Structure>

[0080] Next, referring to Figures 3-5 , the overall image of the system that is the simulation object of the simulation system 500, the hardware structure of the device on which the simulation system 500 operates, and the functional structure of the simulation system 500 will be described.

[0081] Figure 3 is a diagram showing an example of the unit structure of a control system 2 of a device that can apply the simulation technology of the present embodiment. Figure 1 The device 150 shown can be implemented as a part of the control system 2, for example.

[0082] As an example, the control system 2 includes: a PLC 200; servo motor drivers 531, 532 and an IO remote terminal 5 connected to the PLC 200 via a field network 22; a robot controller 310; and IO devices (sensors 6 and encoders 236, 238, etc.) provided on-site.

[0083] The PLC 200 includes an arithmetic unit 13 that performs the main arithmetic operations, one or more I / O units 14, and a special unit 17. These units are configured to exchange data with each other via a system bus 81 and receive power from a power supply unit 12. The arithmetic unit 13 can be connected to a simulation device 100.

[0084] Device 100 can function as a simulation system 500. Furthermore, device 100 can install a program that has undergone simulation verification onto the computing unit 13. The computing unit 13 can control the various devices included in the control system 2 based on the installed program. Device 100 can be connected to the computing unit 13 via network 80.

[0085] The IO unit 14 collects detection values ​​61, 237, and 239 from IO devices including sensor 6, encoders 236 and 238, etc. For example, sensor 6 can be used for detection... Figure 1 The sensor 157 shows the cutting position 159 of the sheet 158. Additionally, encoders 236 and 238 can also be mounted on the motor 152 for driving the conveyor 151 or the motor 155 for driving the rotary cutter 154. Detection values ​​from each I / O device are, for example, set (written) to the corresponding bits in the memory of the I / O unit 14.

[0086] The arithmetic unit 13 uses the values ​​collected by the IO unit 14 to perform the calculations of the control program and sets (writes) the result to the corresponding bit in the IO unit 14. Peripheral devices or IO devices refer to the values ​​of each bit in the IO unit 14 to perform their actions. In this way, the PLC 200 can control the robot or conveyor, etc., which are the controlled objects, while exchanging data with IO devices and peripheral devices through the IO unit 14.

[0087] Special unit 17 has functions that are not supported in IO unit 14, such as analog data input / output, temperature control, and communication based on a specific communication method.

[0088] The field network 22 can also connect to, for example, robot controller 310, servo motor drivers 531 and 532, and IO remote terminal 5.

[0089] The I / O remote terminal 5 performs essentially the same input / output processing as the I / O unit 14. More specifically, the I / O remote terminal 5 includes a communication coupler 52 for processing related to data transmission in the field network 22, and one or more I / O units 53. These units are configured to exchange data with each other via the I / O remote terminal bus 51.

[0090] Servo motor drivers 531 and 532 are connected to the arithmetic unit 13 via field network 22 and drive servo motors 41 and 42 according to instruction values ​​from the arithmetic unit 13. Specifically, servo motor drivers 531 and 532 receive instruction values ​​such as position instruction values, speed instruction values, and torque instruction values ​​from PLC 200 at constant cycles, such as control cycles. The arithmetic unit 13 can generate these instruction values ​​based on detection values ​​237 and 239 from encoders 236 and 238. In one aspect, servo motors 41 and 42 can also be used as motors 155 to drive the rotary cutter 154.

[0091] The arithmetic unit 13 refers to the detection value from the aforementioned IO device and executes a prescribed control program, thereby enabling the robot arm 210 to perform operations such as picking up and placing workpieces and pressing workpieces.

[0092] Specifically, the arithmetic unit 13 generates control commands 211 for the robot arm and control commands 222 for the robot hand 210, and outputs these control signals to the robot hand 210 via the robot controller 310. Furthermore, when generating control command 211, the arithmetic unit 13 can refer to the state value of the robot hand 210 in addition to the detection value 61 from the I / O device mentioned above. The robot arm may also include any number of servo motors, such as servo motors 1301 to 1304.

[0093] The simulation system 500 can simulate the entire control system 2 as a whole, or it can simulate only a part of the structure contained in the control system 2.

[0094] Figure 4 This is a diagram illustrating an example of the hardware structure of device 100. Device 100 can operate as a simulation system 500. In one aspect, the simulation system 500 can be implemented by multiple devices 100, a system having at least a portion of the hardware structure of device 100, a virtual machine in a cloud environment having at least a portion of the hardware structure of device 100, etc.

[0095] The device 100 includes a processor 102 that executes an operating system (OS) and programs running on the OS; a main memory 104 that provides a working area for storing data required by the processor 102 to execute programs; an operation unit 106 (operation receiving unit) that accepts user operations, such as a keyboard or mouse; a display 109; an output unit 108 that outputs processing results, such as various indicators and printers; a network interface 110 that connects to various networks including network 80; an optical driver 112; a local communication interface 116 for communicating with external devices; and a memory 111 as its main components. These components are connected in a manner that enables data communication via an internal bus 118, etc.

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

[0097] Various programs executed by device 100 can be installed on device 100 via computer-readable recording medium 114, or via network interface 110 from server devices (not shown) on the network.

[0098] Storage 111, such as an HDD (Hard Disk Drive) or SSD (Flash Solid State Drive), stores programs executed by processor 102. More specifically, storage 111 stores OS 120 and integrated development environment 130. Integrated development environment 130 can be implemented as an application running on OS 120.

[0099] Integrated Development Environment 130 provides a reference Figure 1 The simulation system 500 is described. In other words, the processor 102 executes the integrated development environment 130 deployed in the main memory 104, thereby enabling the simulation system 500 to function.

[0100] In some respects, refer to Figure 1 The simulation recording and debugging functions described can also be implemented as a plugin for the Integrated Development Environment 130.

[0101] In some respects, device 100 may also use ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array) to implement part or all of the functionality of integrated development environment 130.

[0102] Figure 5 This is a diagram illustrating an example of the functional structure of simulation system 500. Figure 5 Each of the functional structures shown can be implemented as a program component. In this case, each functional structure can operate as software on the hardware of device 100.

[0103] The simulation system 500 includes a 3D shape display unit 510, a PLC simulation unit 520, an IEC program editing unit 530, a variable memory chart display unit 540, a data management unit 550, a real machine / simulation data comparison unit 560, and a storage unit 570 as its functional structure.

[0104] The 3D shape display unit 510 depicts a simulation in 3D space on a display screen. As a structure for this purpose, the 3D shape display unit 510 includes a 3D shape reading unit 511, a 3D shape drawing unit 512, and a 3D memory display unit 513.

[0105] The 3D shape reading unit 511 reads the CAD file 580 used in the simulation and converts the CAD file 580 into a form that can be drawn by the 3D shape drawing unit 512. In one aspect, the 3D shape reading unit 511 can read the CAD file 580 from the storage 111. In another aspect, the 3D shape reading unit 511 can also read the CAD file 580 imported from an external source via the network interface 110, the optical driver 112, or the local communication interface 116.

[0106] The 3D shape drawing unit 512 displays the objects in 3D space (data obtained from the 3D shape reading unit 511) and the movements of the objects on the display 109. The objects in 3D space may include not only the various devices included in the control system 2, but also workpieces, etc. For example, the 3D shape drawing unit 512 displays the 3D space display 260 on the display 109.

[0107] The 3D memory display unit 513 displays the position information 252 of objects in 3D space at each execution time on the display 109. Additionally, it reads the simulation log 250 from the storage repository 570 and reproduces previously recorded simulations. In one aspect, the 3D memory display unit 513 can utilize the drawing function of the 3D shape drawing unit 512 when reproducing previously recorded simulations. In another aspect, the 3D memory display unit 513 can draw... Figure 2 , Figures 11-14 The entire screen shown.

[0108] The PLC simulation unit 520 executes the program installed on the PLC 200 in a simulation. As such, the PLC simulation unit 520 includes a step execution unit 521. In one aspect, the PLC simulation unit 520 may also have a display function for reproducing the simulation. In this case, the PLC simulation unit 520 may also depict... Figure 2 , Figures 11-14 The entire screen shown.

[0109] The step execution unit 521 executes the program step by step. The step execution unit 521 can also reproduce or reverse reproduce the simulation log 250 recorded in the repository 570 step by step. Furthermore, the step execution unit 521 displays the variable values ​​254 of the program at each execution time on the display 109. The 3D shape display unit 510 can update the display of objects in 3D space based on the execution position (step position) and execution count (loop number) of the program obtained from the step execution unit 521.

[0110] The IEC program editing unit 530 handles program editing operations via the operation unit 106. In another aspect, the step execution unit 521 can also immediately reflect program changes made by the IEC program editing unit 530 to perform simulation.

[0111] The variable memory chart display unit 540 is able to display charts such as 1310 (see reference) representing changes in variable values ​​based on the variable memory 572 recorded in the storage 570. Figure 13 (Displayed on monitor 109.)

[0112] The data management unit 550 manages the simulation log 250. As part of this structure, the data management unit 550 includes a data input unit 551, a data reading unit 552, a data difference extraction unit 553, and a data difference recording unit 554. In one aspect, the data management unit 550 can obtain simulation recording settings via the operation unit 106. The simulation recording settings include specifying the object to be recorded, specifying the variables of the object to be recorded, and specifying the duration of the simulation execution. The data management unit 550 can record the simulation log 250 based on the obtained settings. In one aspect, the duration of the simulation execution can be set by the start and end times of the simulation. In another aspect, the duration of the simulation execution can also be set by the number of program steps and loops at the start and the number of program steps and loops at the end.

[0113] The data input unit 551 obtains the position information 252 of the object in 3D space for each execution time from the 3D shape display unit 510. Additionally, the data reading unit 552 obtains the variable values ​​254 of the program for each execution time from the PLC simulation unit 520.

[0114] During debugging (when reproducing the recorded simulation), the data reading unit 552 transmits data from the 3D simulation memory 571 to the 3D shape display unit 510. Similarly, during debugging, the data reading unit 552 transmits data from the variable memory 572 to the PLC simulation unit 520.

[0115] The data difference extraction unit 553 extracts the difference between the data (position information 252 of objects in 3D space and variable values ​​254 of the program) acquired by the data input unit 551 at each execution time. More specifically, the data difference extraction unit 553 compares the position information 252 of objects in 3D space in the first execution time with the position information 252 of objects in 3D space in the second execution time, and extracts the position difference of the objects. Similarly, the data difference extraction unit 553 compares the variable values ​​254 of the program in the first execution time with the variable values ​​254 of the program in the second execution time, and extracts the difference of the variable values.

[0116] The data difference recording unit 554 stores the position difference of the object as part of the simulation log 250 in the 3D simulation memory 571. Additionally, the data difference recording unit 554 stores the difference of variable values ​​as part of the simulation log 250 in the variable memory 572.

[0117] The simulation log 250 becomes enormous when the position information 252 of all objects in 3D space and the variable values ​​254 of the program are saved in the repository 570 at each step. Therefore, the data difference extraction unit 553 and the data difference recording unit 554 save the storage capacity of the repository 570 by saving only the difference relative to the previous record in the repository 570.

[0118] The real-machine / simulation data comparison unit 560 compares the execution results of the program in the simulation with the execution results of the program in the actual environment. As a structure for this purpose, the real-machine / simulation data comparison unit 560 includes a synchronization unit 561, a data comparison unit 562, and a display unit 563.

[0119] In one aspect, the PLC simulation unit 520 can associate timestamps in the actual environment, the location information of objects at each execution time, and the variable values ​​of the program based on camera images and signals obtained from sensors, and output them to the data management unit 550. The real-machine / simulation data comparison unit 560 can compare the execution results of the program in the simulation with the execution results of the program in the actual environment by reproducing the simulation log 250 stored in the storage repository 570 and the log of the actual environment (not shown).

[0120] The synchronization unit 561 synchronizes the simulation loop with the loop in the actual environment. More specifically, it maps the execution time (loop and steps) of the simulation to the execution time (timestamp, or steps and loops of the program in the actual environment).

[0121] The data comparison unit 562 compares the execution results of the program in the simulation and the execution results of the program in the actual environment at the same execution time.

[0122] The display unit 563 can display the execution results of the program in simulation and the execution results of the program in the actual environment at the same execution time. In one aspect, the display unit 563 can display the difference between the execution results of the program in simulation and the execution results of the program in the actual environment on the display 109. In another aspect, the display unit 563 can also emphasize and display the difference between the execution results of the program in simulation and the execution results of the program in the actual environment. Thus, the user can easily modify the program according to the actual environment.

[0123] The repository 570 records the simulation log 250. The repository 570 includes a 3D simulation memory 571 and a variable memory 572. In one aspect, the repository 570 can be a repository of a version management system.

[0124] The 3D simulation memory 571 saves the position information 252 of the objects in the 3D space associated with the execution time for each step.

[0125] The variable memory 572 saves the variable values 254 of the program associated with the execution time for each step.

[0126] In addition, the repository 570 can also record the execution log of the program in the actual environment. In this case, the repository 570 saves the position information of the objects in the actual environment associated with the execution time in the actual environment for each step. Similarly, the repository 570 saves the variable values of the program in the actual environment associated with the execution time in the actual environment for each step.

[0127] <C. Recording Process of Simulation Log>

[0128] Next, referring to Figures 6-10 , the process of the simulation system 500 recording the simulation log 250 will be described. In the example shown in Figures 6-10 , the simulation system 500 records the simulation log 250 of the device 150.

[0129] Figure 6 is a diagram showing the first example of the simulation situation. In the example shown in Figure 6 , the simulation system 500 executes the program 611 within the simulation. The movement and position of each object are reproduced in the 3D space 601.

[0130] The 3D space 601 includes each object in the 3D space at the execution time (1920 cycles, 118 steps). In other words, the execution time (1920 cycles, 118 steps) represents the time point when the PLC 200 executes the program 611 for the 1920th time and the 118th step of the PLC 200 executing the program 611.

[0131] When the PLC 200 executes one step of the program 611 within the simulation, the simulation system 500 saves the position information of the objects in the 3D space 601 and the values ​​of the program variables at each execution time as a simulation log 250 in the storage repository 570. More specifically, the simulation system 500 saves the difference information between the previous record and the previous record in the storage repository 570.

[0132] exist Figure 6 In the example shown, the simulation system 500 stores the position information 602 of the objects in 3D space and the variable values ​​612 of the program as simulation log 250 in the repository 570.

[0133] Figure 7 This is the second example of a simulation scenario. Figure 7 The example shown illustrates how to change the execution state of program 611 from... Figure 6 The state shown is the state after advancing one step. 3D space 601 contains all objects in 3D space at the execution time (1920 loops, 119 steps).

[0134] Since the PLC 200 executes one step of program 611 in the simulation, the simulation system 500 needs to save the position information 702 of the object in 3D space and the variable value 712 of the program as simulation log 250 in the storage repository 570 at the execution time (1920 loop, 119 steps).

[0135] At this point, the position information 602 of the object in 3D space and the value 612 of the program variable at execution time (loop 1920, step 118) differ from the position information 702 of the object in 3D space and the value 712 of the program variable at execution time (loop 1920, step 119) only in "GEAROMPOS1_INSYNC". In this case, the simulation system 500 saves the value of "GEAROMPOS1_INSYNC" as the difference in the simulation log 250 in the storage repository 570. In this way, the simulation system 500 can save storage capacity of the storage repository 570 by saving the difference from the previously recorded simulation log 250 in the storage repository 570.

[0136] Figure 8 This is the third example of a simulation scenario. Figure 8 The example shown illustrates how to change the execution state of program 611 from... Figure 6 The state shown is the state after advancing 1500 loops. 3D space 601 contains all objects in 3D space at execution time (3420 loops, 118 steps).

[0137] When the PLC 200 executes one step of the program 611 within the simulation, the simulation system 500 continuously saves the simulation log 250 in the storage repository 570. At this time, the simulation system 500 only saves the difference between the simulation log 250 and the previously recorded simulation log in the storage repository 570.

[0138] exist Figure 8 At the time indicated, repository 570 will be... Figure 6 The position information 802 of the object in 3D space and the variable value 812 of the program at the execution time (3420 cycles, 118 steps) 1500 cycles after the time point shown are stored in the repository 570 as simulation log 250.

[0139] Figure 9 This is a diagram representing the first example of data stored in repository 570. Figure 9 In the example shown, repository 570 stores simulation log 250. Simulation log 250 contains values ​​901 of IEC variables, values ​​902 of robot variables, counts 903 of steps and loops in the IEC program, and position information 252 of objects in 3D space.

[0140] The values ​​of IEC variable 901 and robot variable 902 are included in the program's variable values ​​254. IEC variable 901 contains the values ​​of one or more variables referenced by the program executed by PLC 200. Robot variable 902 contains variables used for controlling the robot arm 210, etc.

[0141] The step and loop count 903 of the IEC program contains the number of times the program has been executed (loop) and the previously executed steps. The step and loop count 903 of the IEC program serves as the execution time (or execution timing) of the simulation and is associated with the position information 252 of objects in 3D space and the variable values ​​254 of the program.

[0142] The values ​​of IEC variables 901, robot variables 902, the steps and loop counts of the IEC program 903, and the object position information 252 are stored in the repository 570 as differential information of the simulation log 250 for each step.

[0143] In one aspect, if there is no difference between the previously saved simulation log 250 and the current simulation log 250 in the repository 570, the simulation system 500 may choose not to save the current simulation log 250 in the repository 570. Alternatively, in another aspect, if there is no difference between the previously saved simulation log 250 and the current simulation log 250 in the repository 570, the simulation system 500 may choose not to save the values ​​of the IEC variables 901, the robot variables 902, and the position information 252 of objects in 3D space in the repository 570, but instead save the steps and loop counts 903 of the IEC program in the repository 570.

[0144] Figure 10 This is the second example of a graph representing the data stored in repository 570. Figure 10 In the example shown, repository 570 stores the program's simulation log 250 and the program's log 1050 in the actual environment.

[0145] The actual environment log 1050 contains the values ​​of the actual environment's IEC variables 1011, the values ​​of the actual environment's robot variables 1012, the counts of the steps and loops of the actual environment's IEC program 1013, and the position information of the actual environment's objects 1014.

[0146] The value of the IEC variable 1011 in the actual environment includes the value of one or more variables referenced by the program executed by the PLC 200 when the program is executed in the actual environment.

[0147] The values ​​of robot variables in the actual environment 1012 include variables used for controlling the robot hand 210, etc., when executing the program in the actual environment.

[0148] The step and loop count 1013 of the IEC program in the actual environment represents the execution time when the program is executed in the actual environment. In one aspect, the step and loop count 1013 of the IEC program in the actual environment may also include a timestamp calculated based on the execution cycle of the PLC 200 program. In another aspect, the simulation system 500 may also determine the time point when certain sensors detect the movement of a workpiece or equipment as the first step of the program in the actual environment. By mapping the first step of the program in the actual environment to the first step of the program in the simulation, the simulation system 500 can synchronize the execution timing of the program in the simulation with the execution timing of the program in the actual environment.

[0149] The position information 1014 of an object in the actual environment represents the position of the object when a program is executed in the actual environment. In some aspects, the position information 1014 of an object in the actual environment can be detected using a camera (or 3D camera) and sensors, etc. The simulation log 250 and the actual environment log 1050 are referred to by the real machine / simulation data comparison unit 560. The real machine / simulation data comparison unit 560 can refer to the simulation log 250 and the actual environment log 1050 to compare the execution result of the program in the simulation with the execution result of the program in the actual environment.

[0150] In some aspects, the simulation system 500 can create multiple branches by the version management system, and save the simulation log 250 and the actual environment log 1050 in each branch.

[0151] <D. Program Debugging Process>

[0152] Next, refer to Figures 11-14 , and the debugging process of the program using the simulation system 500 will be described. In the example shown in Figures 11-14 , the simulation system 500 reproduces the simulation log 250 of the past-recorded device 150 step by step.

[0153] Figure 11 FIG. is a diagram showing a first example of a debugging screen in the simulation system 500. The screen 1100 includes a simulation scene reproduced based on the simulation log 250 of the past-recorded device 150. The screen 1100 is displayed on the display 109. The screen 1100 may include an operation UI 1101 for performing any operations such as reproducing, reverse reproducing, pausing the simulation scene, and stopping the simulation step by step. In this case, the user can update the simulation scene for each step by operating the operation UI 1101.

[0154] In the screen 1100, a sheet 158 that is not cut at the cutting position 1120 appears. In this case, the user can check the cause of the failure in the program by reversing the simulation scene to a slightly earlier position (for example, before and after the cutting of the sheet 158 at the previous cutting position 1130 of the cutting position 1120) via the operation UI 1101 and then reproducing it.

[0155] For example, screen 1100A shows the scene before the sheet 158 ​​at cutting position 1130 is cut. Screen 1100B shows the scene during the cutting of the sheet 158 ​​at cutting position 1130. Screen 1100C shows the scene after the sheet 158 ​​at cutting position 1130 is cut. When observing screens 1100A to 1100C, it can be seen that after the sheet 158 ​​at cutting position 1130 is cut, the blade 1110 has not reached the cutting position 1120 of the sheet 158. In other words, it can be seen that the rotational speed of the shaft 245 is slower than the forward speed of the sheet 158. In one aspect, the simulation system 500 can simultaneously display a continuous simulation scene, such as screens 1100A to 1100C, on the display 109.

[0156] In this way, by reproducing or reversing the simulated scene step by step, users can easily grasp the equipment configuration, operation problems, etc., and correct the program based on the problems they have grasped.

[0157] Figure 12 This is the second example of a debugging screen in simulation system 500. Screen 1200 includes a simulation scene 1201 (display in 3D space) reproduced based on the simulation log 250 of the previously recorded device 150, a program 1202, object position information 1203, and program variable values ​​1204. In one aspect, simulation system 500 (or PLC simulation unit 520) can accept selection inputs for variables to be tracked. Based on accepting the selection inputs for variables to be tracked, simulation system 500 (or PLC simulation unit 520) can include only the values ​​of the tracked object variables in the program variable values ​​1204.

[0158] Users can operate the UI 1101 to reproduce or reverse the simulation screen, thereby updating the simulation scene 1201 step by step. Whenever the simulation scene 1201 is updated step by step, the program 1202, the position information of the objects 1203, and the variable values ​​of the program 1204 are also updated.

[0159] For example, if a user discovers a problem in simulation scenario 1201, they can operate the operation UI 1101 to confirm the simulation scenario 1201 in the steps before and after the problematic scenario. Furthermore, by simultaneously confirming the program 1202, the object's position information 1203, and the program's variable values ​​1204 in the steps before and after the problematic scenario, the user can easily grasp the problem point of the program.

[0160] Figure 13It is a diagram showing the third example of a debugging screen in the simulation system 500. The screen 1300 includes a variable chart 1310 generated based on the variable values 254 of a program recorded in the past, and a program 1320 that reproduces the state based on the variable values 254 of a program recorded in the past.

[0161] The simulation system 500 can update the values of each variable displayed in the program 1320 for each step. In one aspect, the simulation system 500 can update the variable chart 1310 and the program 1320 based on receiving an input of a step reproduction or reverse reproduction operation from the user. For example, the simulation system 500 can also reproduce the action of the program at each execution time by substituting variables into the program. Additionally, in another aspect, the simulation system 500 can also highlight the variables whose values have changed on the program 1320.

[0162] By simultaneously confirming the timing of changes in the values of each variable and the state change (action of the program) of the program, the user can easily grasp the problem points of the program.

[0163] Figure 14 It is a diagram showing the fourth example of a debugging screen in the simulation system 500. The screen 1400 includes a program 1410, a flowchart 1420 of the program, and a variable chart 1430 generated based on the variable values 254 of a program recorded in the past.

[0164] The simulation system 500 can also update the values of each variable displayed in the program 1410 based on receiving an input of a step reproduction or reverse reproduction operation from the user. Additionally, the simulation system 500 can also highlight the currently executed process in the flowchart 1420 based on receiving an input of a step reproduction or reverse reproduction operation from the user. And the simulation system 500 can also update the variable chart 1430 based on receiving an input of a step reproduction or reverse reproduction operation from the user.

[0165] By simultaneously confirming the timing of changes in the values of each variable, the state change (action of the program) of the program, and the process executed on the flowchart, the user can easily grasp the problem points of the program.

[0166] In one aspect, Figures 11-14 The elements included in each of the shown screens can be arbitrarily combined and displayed on the display 109. For example, the simulation system 500 can also display the simulation scenario 1201, the program 1320 that reproduces the state based on the variable values 254 of a program recorded in the past, the flowchart 1420, and the variable chart 1430 on the display 109.

[0167] <E. Flowchart>

[0168] Next, refer to Figures 15-17The processing steps for recording, processing, and debugging simulation results by the simulation system 500 are described. In one aspect, the processor 102 can read data from the storage 111 to the main memory 104 for processing... Figures 15-17 The processing program (such as the Integrated Development Environment 130 or any other program) is executed. Alternatively, part or all of the processing can be implemented as a combination of circuit elements configured to perform the processing.

[0169] Figure 15 This is a flowchart illustrating an example of how simulation system 500 processes simulation records.

[0170] In step S1510, the simulation system 500 starts the simulation, for example, based on receiving a simulation start operation from the user.

[0171] In step S1520, the simulation system 500 begins recording data to the 3D simulation memory 571 and the variable memory 572.

[0172] In step S1530, the simulation system 500 repeatedly executes the processing after step S1540 until the simulation is completed.

[0173] In step S1540, the simulation system 500 obtains the position information 252 of the object in 3D space and the variable values ​​254 of the program according to each step of the simulation (or program).

[0174] In step S1550, the simulation system 500 transmits the acquired data (simulation log 250: position information 252 of objects in 3D space and variable values ​​254 of the program) to the data management unit 550. The data management unit 550 then submits the acquired data to the storage repository 570.

[0175] In step S1560, the simulation system 500 advances the simulation (or program) steps.

[0176] In step S1570, the simulation system 500 determines whether the simulation recording has been completed. In one aspect, the simulation system 500 may determine that the simulation recording has been completed based on the completion of a specified number of cycles. In another aspect, the simulation system 500 may determine that the simulation recording has been completed based on a specified flag rising (or falling). Additionally, in yet another aspect, the simulation system 500 may determine that the simulation recording has been completed based on the user accepting an input indicating that the simulation has stopped. If the simulation system 500 determines that the simulation recording has been completed ("Yes" in step S1570), the process ends. Otherwise ("No" in step S1570), the simulation system 500 transfers control to step S1530. In one aspect, the simulation system 500 may perform the processing of step S1570 in step S1530.

[0177] Furthermore, when recording the execution results of a program in a real-world environment, the simulation system 500 can perform recording processing using the same steps as described above, in addition to using images from a camera and signals from sensors.

[0178] Figure 16 This is a flowchart illustrating an example of debugging processes performed by the simulation system 500.

[0179] In step S1610, the simulation system 500 reproduces the problem area within the simulation, for example, based on the received operation from the user.

[0180] In step S1620, the simulation system 500 accepts the selection of the variable to be tracked. Alternatively, the PLC simulation unit 520 or the data management unit 550 may also have the function of accepting the selection of the variable to be tracked.

[0181] In step S1630, the simulation system 500 accepts the specification of the graphing start and end times. In one aspect, the graphing start and end times can be specified by the number of steps and loops in the program at the start, and the number of steps and loops in the program at the end. Furthermore, the processing in steps S1620 and S1630 can also be performed before step S1610.

[0182] In step S1640, the simulation system 500 displays a graph of the variable tracking results (equivalent to graph 1310 representing changes in variable values) on the display 109. The simulation system 500 can display a graph of the specified period on the display 109 based on the specified start and end times of the graphing as received in step S1630.

[0183] In step S1650, the simulation system 500 displays the program at the time the problem occurs on the display 109. For example, based on the simulation scene of the problem area displayed on the display 109 in step S1610, the simulation system 500 can display on the display 109 the program (the program with the state of the input variables) corresponding to the execution time (steps and loops) of the simulation scene of the problem area.

[0184] In step S1660, the simulation system 500 determines whether the program modification has been accepted. If the simulation system 500 determines that the program modification has been accepted ("Yes" in step S1660), it transfers control to step S1670. Otherwise ("No" in step S1660), the simulation system 500 transfers control to step S1680.

[0185] In step S1670, the simulation system 500 reflects the corrections in the program.

[0186] In step S1680, the simulation system 500 accepts the reselection of the variable to be tracked. For example, if the user does not find the correction part of the displayed program in step S1650, by reselecting the variable to be tracked, the correction part of the program can be found from other viewpoints.

[0187] Figure 17 This is a flowchart illustrating an example of how the simulation system 500 compares the simulation results of a program with the program's execution results in a real-world environment.

[0188] In step S1710, the simulation system 500 accepts the specification of comparison start conditions. The comparison start conditions include conditions for mapping the execution time in the simulation to the execution time in the actual environment. In one aspect, as an example, the simulation system 500 may also map the timing of the output signals of specific sensors in the actual environment that detect the movement of a workpiece or device to the execution time (0 cycles, 1 steps) in the simulation.

[0189] In step S1720, the simulation system 500 compares the simulation log 250 with the actual environment log 1050 for the same execution time (timeouts with the same number of program loops and steps). In some respects, the simulation system 500 may compare the values ​​of variables contained in the logs, or it may compare the location information of objects, or both.

[0190] In step S1730, the simulation system 500 determines whether there is a difference between the simulation log 250 and the actual environment log 1050. When the simulation system 500 determines that there is a difference between the simulation log 250 and the log 1050 of the actual environment (yes in step S1730), it transfers control to step S1740. Otherwise (no in step S1730), the simulation system 500 transfers control to step S1720.

[0191] In step S1740, the simulation system 500 displays the names and values of the variables with differences and the simulation information. The simulation information here includes the simulation scenario in the step where the difference is confirmed. In one aspect, the simulation information may also include the position information 252 of the object in the 3D space.

[0192] In step S1750, the simulation system 500 determines whether an end request for the comparison process has been accepted. For example, the simulation system 500 can accept an end request for the comparison process via the operation unit 106 or the network interface 110. When the simulation system 500 determines that an end request for the comparison process has been accepted (yes in step S1750), it ends the process. Otherwise (no in step S1750), the simulation system 500 transfers control to step S1720.

[0193] As described above, the simulation system 500 of the present embodiment has a function of associating and recording the position information 252 of the object in the 3D space and the variable values 254 of the program at each execution time during simulation execution. In addition, the simulation system 500 has a function of reproducing and reverse-reproducing the simulation step by step using the recorded position information 252 of the object in the 3D space and the variable values 254 of the program. And the simulation system 500 has a function of displaying the position information 252 of the object in the 3D space and the variable values 254 of the program in each step. With these functions, the user can reproduce the simulation step by step and easily determine the simulation scenario where there are problem points in the operation of the device. Furthermore, by referring to the variable values 254 of the program in the simulation scenario where there are such problem points, the user can easily debug the program.

[0194] In addition, the simulation system 500 has a function of comparing the simulation log 250 with the log 1050 of the actual environment. With this function, the user can easily grasp the problem points of the program or the problem points of the device configuration in the actual environment, etc.

[0195] <F. Supplementary Note>

[0196] As described above, the present embodiment includes the following disclosures.

[0197] [Structure 1]

[0198] A simulation system (500) comprising:

[0199] The simulation unit (520) performs simulations of the actions of one or more devices;

[0200] The data input unit (551) acquires one or more execution times in the above simulation, position information (252) of one or more objects in the above simulation, and the values ​​(254) of one or more variables referenced by the program for making the one or more devices operate.

[0201] The data recording unit (554), in each of the above-mentioned execution times, associates the location information (252) of each of the above-mentioned objects with the value of each of the above-mentioned variables, and saves it as a first log (250); and

[0202] The display unit displays the location information (252) of each of the above-mentioned objects and the values ​​of the above-mentioned variables for each of the above-mentioned execution times included in the first log (250).

[0203] [Structure 2]

[0204] In the simulation system (500) described in Structure 1,

[0205] The simulation unit (520) described above is configured to stop and reproduce the simulation at each execution time based on the first log (250) described above.

[0206] The aforementioned display unit is configured to display the simulation screen for each execution time and the first log (250) for each execution time.

[0207] [Structure 3]

[0208] In the simulation system (500) described in structure 1 or 2,

[0209] The simulation unit (520) described above is configured to be able to stop and reverse the simulation at each execution time based on the first log (250) described above.

[0210] The aforementioned display unit is configured to display the simulation screen for each execution time and the first log (250) for each execution time.

[0211] [Structure 4]

[0212] In the simulation system (500) described in any of structures 1 to 3,

[0213] The simulation system (500) also has a data difference extraction unit (553), which is used to extract the difference between the first log (250) and the data recorded previously.

[0214] The aforementioned data recording unit (554) stores the aforementioned difference.

[0215] [Structure 5]

[0216] In the simulation system (500) described in any of structures 1 to 4,

[0217] The aforementioned data input unit (551) also has the following functions: obtaining one or more timestamps in the actual environment, location information (252) of one or more objects in the actual environment, and values ​​(254) of one or more variables referenced by the program for causing the one or more devices in the actual environment to operate.

[0218] The data recording unit (554) also has the following function: according to each of the timestamps in the above-mentioned actual environment, it associates the location information (252) of each of the above-mentioned objects in the actual environment with the value (254) of each of the variables referenced by the program used to make the above-mentioned devices in the actual environment operate, and saves them as a second log.

[0219] [Structure 6]

[0220] In the simulation system (500) described in structure 5,

[0221] The simulation system (500) also has a synchronization unit (561) for mapping the execution time of the first log (250) to the execution time of the second log.

[0222] The display unit is configured to display the first log (250) and the second log at the same execution time.

[0223] [Structure 7]

[0224] In the simulation system (500) described in any of structures 1 to 6,

[0225] The aforementioned display unit is configured to display a graph showing the values ​​of one or more variables for each execution time included in the first log (250).

[0226] [Structure 8]

[0227] In the simulation system (500) described in any of structures 1 to 7,

[0228] The display unit is configured to reproduce and display the operation of the program based on the values ​​of one or more variables for each execution time contained in the first log (250).

[0229] [Structure 9]

[0230] In the simulation system (500) described in any of structures 1 to 8,

[0231] The display unit is configured to display the simulation screen at each execution time of the simulation, and the flowchart of the program at each execution time of the simulation.

[0232] The above display section emphasizes the execution part of the above flowchart according to each execution time in the above simulation.

[0233] [Structure 10]

[0234] In the simulation system (500) described in any of structures 1 to 9,

[0235] The simulation unit (520) also includes the following function: accepting input of a variable whose value is to be tracked at each execution time from one or more variables included in the program.

[0236] [Structure 11]

[0237] In the simulation system (500) described in any of structures 1 to 10,

[0238] The simulation unit (520) also includes the following function: accepting the setting input of the start time and end time of the simulation.

[0239] [Structure 12]

[0240] In the simulation system (500) described in any of structures 1 to 11,

[0241] The data recording unit records the counts of loops and steps when the above program is executed as the execution time in the above simulation.

[0242] [Structure 13]

[0243] A method, executed by a simulation system (500), wherein the method comprises the following steps:

[0244] Simulation of actions performed by more than one device;

[0245] Obtain the execution time of one or more objects in the above simulation, the position information of one or more objects in the above simulation (252), and the value of one or more variables referenced by the program used to make the one or more devices move (254).

[0246] For each of the above-mentioned execution times, associate the location information (252) of each of the above-mentioned objects with the value of each of the above-mentioned variables, and save it as the first log (250); and

[0247] Displays the location information (252) of each of the above-mentioned objects and the values ​​of the above-mentioned variables for each of the above-mentioned execution times contained in the first log (250).

[0248] [Structure 14]

[0249] A program, wherein the program is used to cause one or more processors to execute the method described in structure 13.

[0250] Embodiments of the present invention have been described, but should be considered illustrative rather than limiting in all respects. The scope of the invention is defined by the claims and is intended to include all modifications equivalent to or within the scope of the claims.

Claims

1. A simulation system, wherein, This simulation system has the following features: The simulation department performs simulations of the actions of one or more devices; The data input unit acquires the execution time of one or more objects in the simulation, the position information of one or more objects in the simulation in 3D space, and the values ​​of one or more variables referenced by the program used to make the one or more devices move. The data recording unit, according to each of the more than one execution times, associates the position information of each of the more than one objects in the 3D space with the value of each of the more than one variables, and saves it as a first log; and The display unit shows the position information of each of the more than one execution time included in the first log, the position information of each of the more than one objects in the 3D space, and the values ​​of each of the more than one variables. The display unit is configured as follows: Based on the values ​​of the variables for each of the more than one execution time periods contained in the first log, the actions of the program are reproduced. Simultaneously with the reproduction of the program's actions, the simulation record is reproduced based on the position information of each of the more than one object in the 3D space contained in the first log.

2. The simulation system according to claim 1, wherein, The simulation unit is configured to stop and reproduce the simulation at each execution time based on the first log. The display unit is configured to display the simulation screen for each execution time and the first log for each execution time.

3. The simulation system according to claim 1 or 2, wherein, The simulation unit is configured to stop and reverse-reproduce the simulation based on the first log, stopping at each execution time. The display unit is configured to display the simulation screen for each execution time and the first log for each execution time.

4. The simulation system according to claim 1 or 2, wherein, The simulation system also includes a data difference extraction unit, which is used to extract the difference between the first log and the previously recorded data. The data recording unit stores the difference.

5. The simulation system according to claim 1 or 2, wherein, The data input unit also has the following functions: obtaining one or more timestamps in the actual environment, the location information of one or more objects in the actual environment, and the values ​​of one or more variables referenced by the program used to make the one or more devices in the actual environment operate. The data recording unit also has the following function: according to each of the timestamps in the actual environment, it associates the location information of each of the more than one objects in the actual environment with the value of each of the more than one variables referenced by the program used to make the more than one device in the actual environment operate, and saves them as a second log.

6. The simulation system according to claim 5, wherein, The simulation system also includes a synchronization unit for mapping the execution time of the first log to the execution time of the second log. The display unit is configured to display the first log and the second log at the same execution time.

7. The simulation system according to claim 1 or 2, wherein, The display unit is configured to display a graph showing the values ​​of one or more variables for each execution time included in the first log.

8. The simulation system according to claim 1 or 2, wherein, The display unit is configured to reproduce and display the actions of the program based on the values ​​of one or more variables for each execution time contained in the first log.

9. The simulation system according to claim 1 or 2, wherein, The display unit is configured to display the simulation screen at each execution time of the simulation, and the flowchart of the program at each execution time of the simulation. The display unit highlights the execution part of the flowchart at each execution time in the simulation.

10. The simulation system according to claim 1 or 2, wherein, The simulation unit also includes the following function: accepting input from the program to select the variable whose value is to be tracked at each execution time from the more than one variable contained in the program.

11. The simulation system according to claim 1 or 2, wherein, The simulation unit also includes the following functions: accepting the input settings for the start and end times of the simulation.

12. The simulation system according to claim 1 or 2, wherein, The data recording unit records the counts of loops and steps executed during the program as the execution time in the simulation.

13. A method executed by a simulation system, wherein, The method includes the following steps: Simulation of actions performed by more than one device; Obtain the execution time of one or more objects in the simulation, the position information of one or more objects in the simulation in 3D space, and the values ​​of one or more variables referenced by the program used to make the one or more devices move; For each of the above execution times, associate the position information of each of the above objects in the 3D space with the value of each of the above variables, and save it as the first log; and Displays the position information of each of the more than one execution time events included in the first log, the position information of each of the more than one objects in the 3D space, and the values ​​of each of the more than one variables. The display steps include the following steps: Based on the values ​​of the variables for each of the more than one execution times contained in the first log, the program's actions are reproduced; and Simultaneously with the reproduction of the program's actions, the simulation record is reproduced based on the position information of each of the more than one object in the 3D space contained in the first log.

14. A computer-readable data storage medium storing a program executed by a simulation system, wherein, The program causes the simulation system to perform the following steps: Simulation of actions performed by more than one device; Obtain the execution time of one or more objects in the simulation, the position information of one or more objects in the simulation in 3D space, and the values ​​of one or more variables referenced by the software used to make the one or more devices move; For each of the above execution times, associate the position information of each of the above objects in the 3D space with the value of each of the above variables, and save it as the first log; and Displays the position information of each of the more than one execution time events included in the first log, the position information of each of the more than one objects in the 3D space, and the values ​​of each of the more than one variables. The display steps include the following steps: Based on the values ​​of the variables for each of the more than one execution times contained in the first log, the program's actions are reproduced; and Simultaneously with the reproduction of the program's actions, the simulation record is reproduced based on the position information of each of the more than one object in the 3D space contained in the first log.

Citation Information

Patent Citations

  • Simulation device, simulation program, and simulation method

    JP2021045797A

  • Information processing device, simulation method, and program

    US20150112460A1

  • Visual debugging, simulation, and validation of hybrid control system configuration with rewind, play back, and play forward capability

    US20190325093A1