Simulation programs and systems

The simulation program and system allow for easy adjustment of connection relationships and realistic simulation of machine operations, addressing limitations in existing 3D CAD technologies by enabling accurate machine operation simulations and debugging capabilities.

JP7790089B2Active Publication Date: 2025-12-23OMRON CORP
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2021175328
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-10-27
Publication Date
2025-12-23
Estimated Expiration
2041-10-27

AI Technical Summary

Technical Problem

Existing 3D CAD simulation technologies do not allow for easy adjustment of connection relationships between parts to accurately simulate the operation of an entire machine, limiting the effectiveness of manufacturing line simulations.

Method used

A simulation program and system that enable users to adjust connection settings, select connection types, set movement directions, and simulate assembly operations using a control device emulator and physics engine, allowing for realistic simulations of machine operations.

Benefits of technology

Enables easy adjustment of connection relationships between parts, facilitating accurate simulation of machine operations and identifying potential issues through debugging functions, thereby enhancing the realism and effectiveness of manufacturing line simulations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007790089000001
    Figure 0007790089000001
  • Figure 0007790089000002
    Figure 0007790089000002
  • Figure 0007790089000003
    Figure 0007790089000003
Patent Text Reader

Abstract

To provide a technology for easily adjusting a connection relation between components in simulation.SOLUTION: A program of a simulation causes a computer to perform: acquiring a plurality of pieces of component data which constitute an assembly; generating a connection setting between the plurality of pieces of component data; accepting operation input from a user; adjusting the connection setting, on the basis of the operation input from the user; emulating a controller which controls the assembly on the basis of a user program; and operating the assembly in a 3D (Dimensional) space. Operating the assembly includes linking the respective pieces of component data together and operating them, on the basis of the adjusted connection setting.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to machine simulation, and more particularly to techniques for assembly coupling settings for use in simulation. [Background technology]

[0002] Conventionally, 3D CAD (Three Dimensional Computer Aided Design) software for designing machines has been known. In 3D CAD software, a machine can be represented as an assembly consisting of multiple parts. The relative positions and connection relationships (also called constraint relationships, connection relationships, etc.) of each of the multiple parts included in the assembly are defined. In addition, the 3D CAD software can generate CAD data as data including one or more machine parts, one or more assemblies, or both.

[0003] Furthermore, in recent years, simulations of manufacturing lines in factory automation (FA) have also been conducted using CAD data of machines designed with 3D CAD software. Some simulation software has the ability to link with control device emulators that virtually represent devices such as programmable logic controllers (PLCs). In such simulations using CAD data, there is a demand for technology that can easily extract the connection relationships between the parts included in an assembly and set their operation.

[0004] Regarding technology for extracting connection relationships from CAD data, for example, Japanese Patent Application Laid-Open No. 2001-202393 (Patent Document 1) discloses a component connection relationship extraction method and device that "selects a representative point from a target component, and detects connection relationships between the component and other components by finding the intersections with lines projected in the directions of each coordinate axis. Furthermore, rather than searching all components at once, connection relationships are efficiently extracted by grouping or the like" (see [Abstract]).

[0005] Furthermore, a technique for extracting the connection relationship of other CAD data is disclosed in, for example, Japanese Patent Laid-Open Publication No. 2006-190183 (Patent Document 2). [Prior art documents] [Patent documents]

[0006] [Patent Document 1] Japanese Patent Application Laid-Open No. 2001-202393 [Patent Document 2] Japanese Patent Application Laid-Open No. 2006-190183 Summary of the Invention [Problem to be solved by the invention]

[0007] The techniques disclosed in Patent Documents 1 and 2 are primarily intended to extract the connection relationships between parts or check for interference between parts. Therefore, these techniques do not allow for adjustment of the connection relationships between parts in order to realize the operation of the entire machine in a simulation. Therefore, there is a need for a technique that allows for easy adjustment of the connection relationships between parts in order to realize the operation of the entire machine in a simulation.

[0008] The present disclosure has been made in consideration of the above-described background, and an object of one aspect is to provide a technology for easily adjusting the connection relationships between parts in order to realize the operation of the entire machine in a simulation. [Means for solving the problem]

[0009] According to one embodiment, a simulation program is provided. The program causes a computer to acquire data on a plurality of parts constituting an assembly, generate a connection setting between each of the plurality of part data, receive operation input from a user, adjust the connection setting based on the operation input from the user, emulate a control device that controls the assembly based on the user program, and operate the assembly in a 3D (dimensional) space. Operating the assembly includes operating each of the plurality of part data in conjunction with each other based on the adjusted connection setting.

[0010] According to this disclosure, the program generates connection settings between each of a plurality of component data and can accept input from a user to change the connection settings, thereby enabling the user to appropriately set connection relationships that are difficult to determine from the shape of the component data alone.

[0011] In the above disclosure, adjusting the connection settings includes selecting the type of connection between each of the plurality of part data, adjusting the connection points, and setting the movement direction of the first part included in the plurality of part data.

[0012] According to this disclosure, the program may provide a user with a means for changing the type of connection relationship, the adjustment of connection points, and the setting of the movement direction of a first part included in the plurality of part data.

[0013] In the above disclosure, the program further causes the computer to snap a cursor to each portion of the plurality of component data in the 3D space on a screen that accepts an operation input from a user.

[0014] According to this disclosure, the program may provide a snapping mode in 3D space that allows the user to easily align the cursor with a specific feature of a part (such as an edge or the center of a hole).

[0015] In the above disclosure, the program further causes the computer to receive input of an amount of movement of the assembly. Operating the assembly includes operating each of the plurality of part data in 3D space based on the input amount of movement of the assembly on the assembly test run screen.

[0016] According to this disclosure, the program may provide a function for receiving input of a movement amount of a movable part and a function for simulating the operation of an assembly based on the input of the movement amount of the movable part. While checking the simulation screen, a user may adjust the movement amount of the movable part within a range that does not damage the assembly.

[0017] In the above disclosure, the program further causes the computer to receive settings for each of a plurality of interfaces of the control device, the settings for each of the plurality of interfaces including settings for a device, machine, or sensor to which each of the plurality of interfaces is connected, and emulating the control device includes emulating input / output signals of each of the plurality of interfaces based on the settings for each of the plurality of interfaces.

[0018] According to this disclosure, the program can accept interface settings for the control device to link the emulator for the control device with a physics engine that executes the simulation, allowing a user to use the user program to simulate the operation of an assembly.

[0019] In the above disclosure, the program further causes the computer to receive operational settings of a motor driver controlled by the control device, and emulating the control device includes outputting a command corresponding to the operational settings from the control device to the motor driver.

[0020] According to this disclosure, the program can receive operation settings for the motor driver in advance, so that the control device can operate the assembly via the motor driver and the motor during the simulation.

[0021] In the above disclosure, the program further causes the computer to receive input of virtual sensor settings. The virtual sensor settings include installation information for the virtual sensor in 3D space and connection information between the virtual sensor and an interface of the control device. Emulating the control device includes emulating an input signal of the virtual sensor in the control device based on the virtual sensor settings.

[0022] According to this disclosure, the program enables simulation using virtual sensors, allowing users to recreate environments in 3D space that are closer to reality.

[0023] In the above disclosure, the program further causes the computer to display the execution results of the user program by emulation and the execution results of the simulation. Displaying the execution results of the user program by emulation and the execution results of the simulation includes displaying the execution results of each step of the user program and the execution results of the simulation corresponding to each step of the user program.

[0024] According to this disclosure, the program can present the execution results of the user program and the execution results of the simulation to the user. By checking the values ​​of variables in the user program and the behavior of the assembly, the user can easily identify problems in the user program or the assembly.

[0025] In the above disclosure, the program further causes the computer to receive input to set a breakpoint in the user program, and, based on the user program stopping at the breakpoint, display the execution results of the simulation corresponding to the breakpoint.

[0026] According to this disclosure, the program can pause the playback of the simulation at breakpoints, allowing the user to see the behavior of the assembly at or just before the execution of the code where the problem is suspected.

[0027] According to another embodiment, there is provided a simulation system for assembly operation. The simulation system includes a part acquisition unit that acquires data on a plurality of parts that constitute an assembly, an automatic connection unit that generates connection settings between each of the plurality of part data, an operation input unit that accepts operation input from a user, a connection adjustment unit that adjusts the connection settings based on the operation input from the user, an emulator for a control device that controls the assembly based on a user program, and a physics engine that operates the assembly in a 3D (dimensional) space. The physics engine operates each of the plurality of part data in conjunction with each other based on the connection settings adjusted by the connection adjustment unit.

[0028] According to this disclosure, the simulation system generates connection settings between each of a plurality of component data and can accept input from a user to change the connection settings, thereby enabling the user to appropriately set connection relationships that are difficult to determine from the shape of the component data alone.

[0029] In the above disclosure, adjusting the connection settings includes selecting the type of connection between each of the plurality of part data, adjusting the connection points, and setting the movement direction of the first part included in the plurality of part data.

[0030] According to this disclosure, the simulation system may provide a user with means for changing the type of connection relationship, the adjustment of connection points, and the setting of the movement direction of a first part included in a plurality of part data.

[0031] In the above disclosure, the operation input unit is configured to be able to snap a cursor to each part of the plurality of component data in a 3D space.

[0032] According to this disclosure, the simulation system may provide a snapping mode in 3D space that allows a user to easily align a cursor with a specific portion of a part (such as an edge or the center of a hole).

[0033] In the above disclosure, the operation input unit receives an input of a movement amount of the assembly, and the physics engine operates each of the plurality of part data in a 3D space based on the input of the movement amount of the assembly on a screen for test running the assembly.

[0034] According to this disclosure, the simulation system may provide a function for receiving input of the amount of movement of a movable part and a function for simulating the operation of an assembly based on the input of the amount of movement of the movable part. A user may adjust the amount of movement of the movable part while checking the simulation screen, within a range that does not damage the assembly.

[0035] In the above disclosure, the operation input unit accepts settings for each of a plurality of interfaces of the control device, the settings for each of the plurality of interfaces including settings for a device, machine, or sensor to which each of the plurality of interfaces is connected, and the emulator emulates input / output signals of each of the plurality of interfaces based on the settings for each of the plurality of interfaces.

[0036] According to this disclosure, the simulation system can accept interface settings for the control device to link the emulator for the control device with a physics engine that executes the simulation, allowing a user to use a user program to simulate the operation of an assembly.

[0037] In the above disclosure, the operation input unit further receives operation settings for a motor driver controlled by the control device, and the emulator outputs a command corresponding to the operation settings from the control device to the motor driver.

[0038] According to this disclosure, the simulation system can receive operation settings for the motor driver in advance, so that during the simulation, the control device can operate the assembly via the motor driver and the motor.

[0039] In the above disclosure, the operation input unit accepts input of virtual sensor settings. The virtual sensor settings include installation information for the virtual sensor in 3D space and connection information between the virtual sensor and an interface of the control device. The emulator emulates an input signal of the virtual sensor in the control device based on the virtual sensor settings.

[0040] According to this disclosure, the simulation system enables simulation using virtual sensors, allowing users to recreate an environment in 3D space that is closer to reality.

[0041] In the above disclosure, the simulation system further includes a display unit for displaying the execution results of the user program by the emulator and the execution results of the simulation by the physics engine, and the display unit displays the execution results of each step of the user program and the execution results of the simulation corresponding to each step of the user program.

[0042] According to this disclosure, the simulation system can present the execution results of the user program and the execution results of the simulation to the user. By checking the values ​​of variables in the user program and the behavior of the assembly, the user can easily identify problems in the user program or the assembly.

[0043] In the above disclosure, the operation input unit accepts an input for setting a breakpoint in a user program, and the display unit displays a result of execution of a simulation corresponding to the breakpoint when the user program has stopped at the breakpoint.

[0044] According to this disclosure, the simulation system can pause the playback of the simulation at a breakpoint, allowing the user to see the behavior of the assembly at or just before the execution of the code where the problem is suspected. [Effects of the Invention]

[0045] According to an embodiment, it is possible to easily adjust the connection relationships between parts in order to realize the operation of the entire machine in the simulation.

[0046] 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]

[0047] [Figure 1] FIG. 1 is a diagram showing an example of CAD data of a machine whose operation can be simulated by a program, system, or method according to an embodiment. [Figure 2] 1 is a schematic diagram illustrating an example of functionality of a system 100 according to an embodiment. [Figure 3] FIG. 1 is a diagram illustrating an example of a device 300 that constitutes the system 100. [Figure 4] FIG. 10 is a diagram illustrating an example of a combination setting screen. [Figure 5] 10A and 10B are diagrams illustrating examples of snapping modes on a combination setting screen. [Figure 6] FIG. 10 is a diagram showing a first setting example on the combination setting screen. [Figure 7] FIG. 10 is a diagram showing a second setting example on the combination setting screen. [Figure 8] FIG. 10 is a diagram showing a third setting example on the combination setting screen. [Figure 9] FIG. 10 is a diagram showing a fourth setting example on the combination setting screen. [Figure 10] FIG. 10 is a diagram showing an example of an operation direction setting screen. [Figure 11] FIG. 10 is a diagram showing a first setting example on the movement direction setting screen. [Figure 12] FIG. 10 is a diagram showing a second setting example on the movement direction setting screen. [Figure 13] FIG. 10 is a diagram showing a third setting example on the movement direction setting screen. [Figure 14] FIG. 10 is a diagram illustrating an example of a test run screen for an assembly. [Figure 15] FIG. 10 is a diagram showing an example of use of the assembly test run screen. [Figure 16] FIG. 2 is a diagram showing an example of a coupling setting set in the system 100. [Figure 17] FIG. 10 is a diagram illustrating an example of a simulation execution screen. [Figure 18] FIG. 10 is a diagram illustrating an example of a setting screen for a motor driver. [Figure 19] FIG. 10 is a diagram showing a first example of a debug screen for a user program. [Figure 20] FIG. 10 is a diagram showing a second example of a debug screen for a user program. [Figure 21] FIG. 10 is a diagram illustrating an example of a setting screen for a virtual sensor. [Figure 22] 10 is a flowchart showing an example of a series of processing steps from generating various settings to executing a simulation in the system 100. [Figure 23]It is a flowchart showing an example of the procedure of simulation using a virtual sensor in system 100.

Embodiments for Carrying Out the Invention

[0048] Hereinafter, embodiments of the technical idea according to the present disclosure will be described with reference 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.

[0049] <A. Application Example> The technology according to the present disclosure relates to a program, a system, and a method for, for example, acquiring CAD data of a machine designed using 3D CAD software and simulating the operation of the acquired machine by causing a control device emulator that virtually represents a PLC or the like to cooperate with a physical engine.

[0050] In one aspect, the technology of the present disclosure may be realized, for example, as a distributable program (for example, integrated development environment 130) having the functions described with reference to FIG. 2 and subsequent figures. In this case, the program providing the technology of the present disclosure can be executed, for example, on any hardware such as device 300.

[0051] In another aspect, the technology of the present disclosure may be realized, for example, as a system having the functions described with reference to FIG. 2 and subsequent figures. In this specification, the term "system" includes a configuration consisting of one or more devices that provide a function of simulating the operation of a machine. In the following description, mainly, an example of system 100 (see FIG. 2) configured by device 300 (see FIG. 3) that provides integrated development environment 130 is shown, but it is not limited thereto, and a plurality of devices may be associated to provide a function of simulating the operation of a machine.

[0052] Furthermore, system 100 may be realized in a cloud environment, or as a service, instance, or virtual machine on the cloud environment. In this case, the hardware of a data center that realizes the cloud environment may be realized by multiple devices 300, or may be realized by any combination of the hardware included in the devices 300.

[0053] A user may use the functions of system 100 via a browser function of a user terminal or an application installed on the user terminal, or may directly use a device that operates as system 100. Furthermore, system 100 may include one or more control devices such as PLCs. In this case, the function of simulating the operation of the machine may be located in the control device.

[0054] In the following explanation, a system 100 that realizes the technology of the present disclosure will be used as an example, but the operation of the system 100 may also be interpreted as an operation that is realized by a program (integrated development environment 130) that realizes the technology of the present disclosure working in cooperation with hardware.

[0055] FIG. 1 shows an example of CAD data of a machine whose operation can be simulated by the program, system or method according to the present embodiment.

[0056] (a. Connection relationship in CAD data) CAD data 1 and CAD data 2 are examples of CAD data of a machine whose operation can be simulated by the system 100. First, the connection relationships that can be included in CAD data will be described using CAD data 1 and CAD data 2 as examples.

[0057] The CAD data 1 includes an assembly 10. The assembly 10 includes, as main parts, a part 11, a part 12, a part 13, and a part 14. The part 11 is fixed to the part 14. The part 12 moves linearly relative to the part 11. The part 13 is rotatably connected to the part 12 at its end by a bolt, and the end of the part 13 moves in accordance with the linear motion of the part 12. In other words, the assembly 10 can move the part 13 by utilizing the linear motion of the part 12. For example, the part 13 is part of a link, and can transmit power obtained from the part 12 to other parts in a different form.

[0058] The CAD data 2 includes an assembly 20. The assembly 20 mainly includes parts 21, 22, 23, 24, and 25. Part 21 is fixed to part 25. Part 22 moves linearly relative to part 21. Part 23 is rotatably connected to part 22 at one end by a bolt. Part 23 is rotatably connected to part 24 at another end by a bolt. Part 24 is connected to part 25 via a rail and can move parallel to part 25. The assembly 20 uses the linear motion of part 22 to move an end of part 23 toward part 24. As a result, part 24 is pushed by the other end of part 23, causing it to slide relative to part 25.

[0059] When CAD data includes multiple parts (assemblies) as described above, it may also include the connection relationships between the parts. A "connection relationship" may include the relative position of a part with respect to other parts and the type of connection. The relative position (or absolute coordinates) may be defined by the coordinates of each part in 3D space or the positional relationship of a specific portion of each part. The type of connection may be defined by the movement or fixing method of a part with respect to another part. For example, part 11 is fixed to the surface of part 14. That is, the connection type between part 11 and part 14 is "fixed." In another example, part 12 can move linearly with respect to part 11. That is, the connection type between part 11 and part 14 is "slider joint." In yet another example, part 13 can rotate with respect to part 12 around a bolt (bolt hole). That is, the connection type between part 13 and part 12 is "hinge joint."

[0060] 3D CAD software records the design history of an assembly or part. Therefore, the CAD data may also retain the connection relationships between parts. However, when the CAD data is exported from the 3D CAD software and imported into other software (e.g., the integrated development environment 130), the history may be lost. Therefore, it is desirable to generate the connection relationships between parts from the shapes of each part included in the assembly, without depending on the format of a specific 3D CAD software.

[0061] However, it is not always possible to determine the exact connection points and types of connections from the shapes of each part included in an assembly. Therefore, system 100 provides several functions, including a function for adjusting the connection relationships between parts, to enable the operation simulation of any assembly. Next, each function provided by system 100 will be described.

[0062] (b. Functions provided by the program or system disclosed herein) The system 100 provides, as its main functions, a connection setting function, a part movement direction setting function, an assembly test run function, a control device setting function, a simulation function, and a debugging function. Note that the "connection setting" may include any information related to the connection relationship between parts. For example, the connection setting may include at least a portion of the connection point (the point, position, or coordinate where two parts having a connection relationship are connected), the type of connection, the movement direction (the movement direction of the moving part), and the movement amount (the limit movement amount or movement range of the moving part).

[0063] The connection setting function may include a function for adjusting connection points between parts and a function for selecting the type of connection between parts. The "function for adjusting connection points between parts" is a function for adjusting the connection points (coordinates) of two parts having a connection relationship. The connection points may include multiple coordinates (to represent a rotation axis, a sliding direction, etc.). For example, the function for adjusting connection points between parts may include selecting the bolt holes of parts 22 and 23 as the rotation axis of a hinge joint, adjusting the fixed plane (e.g., offset value) between parts 11 and 14, etc. Furthermore, the function for adjusting connection points between parts may include adjusting the position of each part by moving each part. The "function for selecting the type of connection between parts" is a function for selecting the type of connection (fixed, hinge joint, ball joint, slider joint, etc.) between two parts having a connection relationship. In some aspects, the connection setting function may include a function for setting the movement direction of the first part, but may not include a function for setting the movable range (limit movement amount) of the first part. In another aspect, the coupling setting function may include a function of setting a movement direction of the first part, and a function of setting a movable range (limit movement amount) of the first part.

[0064] System 100 can automatically generate connection settings between parts based on the shapes and positional relationships of each part contained in imported CAD data (or intermediate data such as a STEP file). However, there are cases where accurate connection settings cannot be generated based on part shapes alone. For example, parts 11 and 12 appear to overlap when viewed from system 100, which does not manage history, and it may be impossible to determine whether part 11 is fixed to part 12 or whether part 11 can move linearly relative to part 12. Furthermore, if part 12 is an assembly made up of multiple parts, it may be impossible to determine which combination of parts can move linearly relative to part 11.

[0065] Therefore, a user can adjust connection points and select connection types by using a connection setting function via a UI (User Interface) provided by the system 100. For example, if connection settings can be easily generated from the shapes of parts, the system 100 automatically generates the connection settings; if not, the user can input the connection settings, and accurate connection settings can be generated with few steps for any assembly imported into the system 100. Details of the connection setting function and its UI will be described later with reference to FIGS. 4 to 9.

[0066] The part motion direction setting function may include a function for setting the motion direction of a first part (movable part). For example, a user may set the motion direction (slide direction) of part 11 (movable part) via a UI provided by system 100. Some assemblies perform complex combined motions including linear motion and rotation. A user may set motions for assemblies including such complex motions via a UI provided by system 100. The part motion direction setting function and its UI will be described in detail below with reference to FIGS. 10 to 13.

[0067] The assembly test run function verifies the operation of an assembly based on settings for the connection points between parts, the types of connections between parts, and the movement directions of the parts. Operating an assembly includes interlocking and operating each of multiple part data based on the adjusted connection settings. For example, a user can verify the operation of a part of a mechanism in an FA production line, such as assembly 10 or assembly 20, via a UI (e.g., a simulation screen and an operation UI) provided by system 100.

[0068] The user can also use the assembly test run function to check the limit of the movement of each part. As an example, assume that the user slides part 22 via the UI provided by system 100. In this case, system 100 also slides part 24 using the physics engine function. If the slidable distance of part 24 is shorter than the slidable distance of part 22, and part 22 slides beyond the limit of the movement of part 24, excessive load will be placed on each part included in assembly 20. In this case, the UI of system 100 outputs a depiction of the connection between parts being released or broken on the simulation screen. The user can check the limit of the movement by checking the assembly displayed on the simulation screen. Details of the assembly test run function and its UI will be described later with reference to Figures 14 to 16.

[0069] The control device setting function is a function for configuring the control devices and drivers that control each machine in an FA production line. Typically, in an FA production line, a control device such as a PLC sends commands to a motor driver. The motor driver then outputs a drive signal to the motor based on the received command. When the motor is driven, the assembly attached to the motor also moves. To simulate the above series of operations by linking the physics engine with the control device emulator, the user can configure the IO settings of the control device and motor driver, and the operation settings for each motor driver, via the UI provided by system 100. By using the control device setting function to configure the IO settings of the control device, the user can link the control device emulator with the physics engine. The control device setting function and its UI will be described in detail below with reference to Figures 17 and 18.

[0070] The simulation function is a function that executes a simulation by linking the control device emulator and the physics engine. More specifically, the user installs the user program they developed into the control device emulator. The control device emulator outputs signals from the IO based on the user program. The simulator simulates the operation of the motor based on the signals from the control device emulator and drives the assembly. This allows the user to confirm whether the production line operates correctly using the user program they developed.

[0071] The debug function is a function for debugging a user program installed in the control device. The system 100 can execute a simulation in conjunction with the steps of the user program. In one aspect, the system 100 may provide a step execution function for the user program.

[0072] System 100 can display the values of each variable of the user program corresponding to each step and the simulation screen on the UI. The user can debug the user program by comparing the simulation screen (the movement of the assembly) and the values of the variables for each step. The variables included in the user program may be, for example, IEC (International Electrotechnical Commission) variables.

[0073] Also, in a certain situation, the debug function may have a breakpoint setting function. When a breakpoint is set in the user program, when the user program is executed up to the breakpoint, the execution screen of the simulation also pauses at the scene corresponding to the breakpoint. The user can grasp what happened before and after the breakpoint by step-executing the user program starting from the breakpoint.

[0074] As described above, System 100 enables the operation verification of the assembly by providing a coupling setting function, a component operation direction setting function, and an assembly test drive function. Also, System 100 can operate the assembly using the user program by providing a control device setting function, a simulation function, and a debug function.

[0075] <B. Configuration of the System> Next, referring to FIGS. 2 and 3, an example of the function and hardware configuration of System 100 according to the present embodiment will be described.

[0076] FIG. 2 is a schematic diagram showing an example of the functions of system 100 according to the present embodiment. In one aspect, each function shown in FIG. 2 may be realized as a program module. Furthermore, in another aspect, each function shown in FIG. 2 may be realized as part of the functions of integrated development environment 130. In these cases, each function shown in FIG. 2 may be realized by device 300 executing a program (e.g., integrated development environment 130 or another program). Furthermore, in another aspect, some of the functions shown in FIG. 2 may be realized by at least one field programmable gate array (FPGA), application specific integrated circuit (ASIC), or a combination thereof.

[0077] The system 100 includes an operation input unit 151, a part acquisition unit 152, an automatic connection unit 153, a connection adjustment unit 154, an operation setting unit 155, a control device setting unit 156, a trial operation unit 157, a physics engine 158, a control device emulator 159, a motor driver emulator 160, and a display unit 161.

[0078] The operation input unit 151 accepts various operation inputs from the user via a UI provided by the system 100. As an example, the operation input unit 151 may include an operation to import CAD data, an operation to adjust connection points between components, an operation to select the type of connection between components, an operation to set the movement direction of a component, an operation to set the movement amount of a component, an operation to execute a test run of an assembly, an operation to set a control device, an operation to execute a simulation in which the physics engine 158 and the control device emulator 159 are linked, and an operation to debug.

[0079] The part acquisition unit 152 imports CAD data into the system 100 based on a user's operation to import CAD data or intermediate data. In one aspect, the part acquisition unit 152 may import a CAD file of any 3D CAD software, or may import an intermediate file such as IGES, STEP, or Parasolid.

[0080] The automatic coupling unit 153 automatically generates coupling settings between components based on the shape and position of each component included in the CAD data imported into the system 100.

[0081] The connection adjustment unit 154 changes the connection settings between components generated by the automatic connection unit 153 based on a user operation. More specifically, the automatic connection unit 153 can adjust the connection points between components and select the type of connection between the components. In some aspects, the user may define all of the connection settings between components using the function of the connection adjustment unit 154 without using the function of the automatic connection unit 153.

[0082] The operation setting unit 155 sets the movement direction of a part based on a user's operation. For example, when there is a first part and a second part that have a coupling relationship and the first part is a movable part, the operation setting unit 155 may set the movement direction of the first part. In one aspect, the operation setting unit 155 may set the movement amount of a part based on a user's operation. For example, the operation setting unit 155 may set a limit or movement range of the movement amount of the first part.

[0083] The control device setting unit 156 can set the control device and the motor driver based on user operations. For example, the control device settings and the motor driver settings can include IO settings. The IO settings can also include information about devices connected to ports. The motor driver settings can include operation settings for how to drive the motor. The motor driver receives commands corresponding to the operation settings from the control device and outputs a signal based on the operation settings to the motor.

[0084] The test run unit 157 provides a simulation function for the operation of a single assembly, a simulation function that links a physics engine 158 and a control device emulator 159, and a debugging function.

[0085] The physics engine 158 draws objects in a 3D space. The physics engine 158 also calculates the movement of each object and the force acting on each object. The physics engine 158 is called by the trial operation unit 157.

[0086] The control device emulator 159 emulates the operation of a control device such as a PLC. The control device emulator 159 can also interpret and execute a user program in the same way as a real control device. The trial operation unit 157 exchanges data between the physics engine 158 and the control device emulator 159. For example, the trial operation unit 157 can exchange output signals from the control device, output signals from sensors, and the like.

[0087] Motor driver emulator 160 emulates the operation of a motor driver such as a servo motor, a stepper motor, etc. In one aspect, motor driver emulator 160 may be part of physics engine 158 or controller emulator 159.

[0088] The display unit 161 outputs various UIs, a simulation execution screen, a user program execution screen, and the like provided by the system 100. In a certain aspect, the UI provided by the system 100 may include all or part of various operation items, a simulation execution screen, and a user program execution screen.

[0089] 3 is a diagram illustrating an example of a device 300 constituting the system 100. The device 300 is an information processing device such as a computer, and can operate as the system 100. In one aspect, the system 100 may be realized by one or more devices 300, a system including at least a part of the hardware configuration of the device 300, a virtual machine on a cloud environment including at least a part of the hardware configuration of the device 300, or the like.

[0090] The device 300 includes, as its main components, a processor 102 that executes an operating system (OS) and programs that run on the OS, 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 connects to various networks, 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.

[0091] The device 300 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.

[0092] Various programs executed by the device 300 may be installed in the device 300 via a computer-readable recording medium 114. In another aspect, the programs may be installed in the device 300 via the network interface 110 from a server device or the like (not shown) on the network.

[0093] The storage 111 is configured, for example, with a hard disk drive (HDD) or a flash solid state drive (SSD), and stores programs to be executed by the processor 102. More specifically, the storage 111 stores an 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.

[0094] The integrated development environment 130 provides the functions of the system 100 according to this embodiment. That is, the functions of the system 100 can be realized by the processor 102 executing the integrated development environment 130 deployed in the main memory 104.

[0095] <C. Bonding setting> Next, referring to FIGS. 4 to 9, the bonding setting function provided by the system 100 and its UI will be described. The user can adjust the bonding points between components and select the type of bonding via the bonding setting screen described with reference to FIGS. 4 to 9. Furthermore, the user can also set the movement amount (movement range) of the first component (movable component) via the bonding setting screen. Also, the user may adjust the positions of each component included in the assembly via the bonding setting screen.

[0096] FIG. 4 is a diagram showing an example of the bonding setting screen. The bonding setting screen 400 includes a bonding setting input panel 401 and a 3D display screen 402. The 3D display screen 402 displays a tool 420 for setting the bonding points of the first component 410 and the second component 411. The user can adjust the coordinates of the bonding points by operating the tool 420 (such as rotation, translation, etc.) with a mouse or the like.

[0097] [[ID=I4]]The bonding setting input panel 401 relates to the bonding settings of the first component 410 and the second component 411. The bonding setting input panel 401 includes, as setting items, a bonding target 1_430, a bonding target 2_440, a bonding point 450, a connection method 460 of the bonded part, and a movement distance 470.

[0098] The bonding target 1_430 is a selection item for the first component 410 to be bonded. For example, the user may select the first component 410 from the list by selecting the pull-down of the bonding target 1_430, or may select the CAD data of the first component 410 from the directory in the storage 111.

[0099] The merge target 2_440 is a selection item for the second component 411 to be merged. For example, the user may select the merge target 2_440 pull-down menu and select the second component 411 from the list, or may select the CAD data of the second component 411 from a directory in the storage 111.

[0100] The connection point 450 is a setting item for the coordinates of the connection location between the first part 410 and the second part 411. In some aspects, the connection point 450 may include only one coordinate, or may include two or more coordinates. For example, the connection point 450 may include the central axis of a screw hole, the position where the surface of the first part 410 and the surface of the second part 411 contact each other, the sliding direction of a sliding part, etc. The user may select the connection point 450 by operating the tool 420 on the 3D display screen 402 with a mouse, a touch panel, or the like. Alternatively, the user may directly input coordinates into the connection point 450.

[0101] The coupling part connection method 460 is a setting item for the type of connection between the first part 410 and the second part 411. For example, the coupling part connection method 460 may include any connection method such as a slider joint, a hinge joint, a ball joint, a rotary joint, or a fixed joint.

[0102] Movement distance 470 is a setting item for the range of the movement distance of first part 410 (movable part). The user can change movement distance 470 as appropriate based on the results of a test run of the assembly, which will be described later with reference to FIGS. 14 to 16.

[0103] FIG. 5 is a diagram showing an example of the snapping mode on the connection setting screen. The connection setting screen 500 is a screen that appears when the snapping mode 510 is enabled on the connection setting screen 400. In the snapping mode 510, the cursor snaps to a specific portion of a component. Examples of specific portions include the edge of a rectangle, the periphery of a circle, and the center of a circle. By enabling the snapping mode 510, the user can easily select a portion that is likely to become a connection point, such as the center of a screw hole. In the example shown in FIG. 5, the cursor is snapped to a point 520 on the periphery of the screw hole of the first component 410.

[0104] 6 is a diagram showing a first setting example on the connection setting screen. The connection setting screen 600 displays the connection settings between the first part 410 and the second part 411 described above. On the connection setting screen 600, a slider joint is selected as the connection method 460 for the joint. Furthermore, the input item for the movement distance 470 is the maximum and minimum values ​​of the slide distance.

[0105] 7 is a diagram showing a second setting example on the connection setting screen. The connection setting screen 700 displays the connection settings between a first part 710 and a second part 711. On the connection setting screen 700, a hinge joint is selected as the connection method 460 of the joint. Also, the input items for the travel distance 470 are the maximum and minimum values ​​of the openable angle.

[0106] 8 is a diagram showing a third setting example on the connection setting screen. The connection setting screen 800 displays the connection settings between a first part 810 and a second part 811. Unlike the first part 710 and the second part 711, the first part 810 and the second part 811 have a pole joint as the joint. On the connection setting screen 800, a pole joint is selected as the connection method 460 for the joint. Furthermore, the input items for the travel distance 470 are the maximum openable angle on the Y axis and the maximum openable angle on the Z axis.

[0107] FIG. 9 is a diagram showing a fourth setting example in the coupling setting screen. The coupling setting screen 900 displays the connection setting between the first component 910 and the second component 911. The first component 910 and the second component 911 are different from the first component 710 and the second component 711 in that the joint part is a rotary joint. In the coupling setting screen 900, a rotary joint is selected as the connection method 460 of the coupling part. Also, in the case of a rotary joint, since there is no limit to the moving distance, the input item for the moving distance 470 is not displayed.

[0108] <D. Operation Direction Setting> Next, referring to FIGS. 10 to 13, the operation direction setting function provided by the system 100 and its UI will be described. The user can set the operation direction of the first component via the operation direction setting screen described with reference to FIGS. 10 to 13.

[0109] FIG. 10 is a diagram showing an example of the operation direction setting screen. The operation direction setting screen 1000 includes an operation direction setting input panel 1001 and a 3D display screen 1002. The 3D display screen 1002 displays the first component 1010 and the second component 1011 having a coupling relationship, and tools 1003 and 1004 for setting the operation direction of the first component 1010. The user can set the operation direction of the first component 1010 by dragging or selecting the tool 1003 with a mouse or the like, or by rotating the tool 1004.

[0110] The operation direction setting input panel 1001 relates to the setting of the operation direction of the first component 1010. The operation direction setting input panel 1001 includes, as setting items, a component name 1020, an operation type 1030, an operation direction adjustment 1040, and an operation confirmation input 1050.

[0111] The component name 1020 is an item for selecting a movable component. In the example of FIG. 10, the first component 1010 is selected.

[0112] The action type 1030 is an item for selecting the type of action of the first part 1010. The action type may include any action such as linear motion, rotation, and a combined linear motion and rotation action. In one aspect, the action type 1030 item may be automatically selected based on the setting of the connection method 460 of the coupling part on the coupling setting screen.

[0113] Movement direction adjustment 1040 is an item for adjusting the direction of movement of first part 1010, and may include multiple coordinates for expressing the movement (such as the start and end points of the linear movement direction, and two points representing the rotation axis). The user may directly input a numerical value into movement direction adjustment 1040. The user may also adjust the numerical value of movement direction adjustment 1040 by dragging or selecting tool 1003 with a mouse or the like, or by rotating tool 1004.

[0114] The operation check input 1050 is an item for checking the operation of the first part 1010. The user can check the operation of the first part 1010 on the 3D display screen 1002 by, for example, entering coordinates in the operation check input 1050 or moving a slider displayed in the operation check input 1050. The display content of the operation check input 1050 can be changed depending on the operation selected in the operation type 1030.

[0115] FIG. 11 is a diagram showing a first setting example on the movement direction setting screen. The movement direction setting screen 1100 displays the movement direction setting of the first part 1010 described above. On the movement direction setting screen 1100, linear movement is selected as the movement type 1030. Furthermore, the direction of linear movement of the first part 1010 (adjustable using tools 1003 and 1004) is set as the movement direction adjustment 1040. A slider indicating the linear movement distance of the first part 1010 and input fields for the upper and lower limits of the slider are displayed as the movement confirmation input 1050. The user can check the movement of the first part 1010 by moving the gripper of the slider. Furthermore, the user can change the movement range of the first part 1010 by changing the upper and lower limit values ​​of the slider.

[0116] FIG. 12 is a diagram showing a second setting example in the operation direction setting screen. In the 3D display screen 1002, a first component 1210 and a second component 1211 having a coupling relationship, and tools 1203 and 1204 for setting the operation direction of the first component 1210 are displayed. The operation direction setting screen 1200 displays the operation direction setting of the first component 1210. In the operation direction setting screen 1200, rotation is selected as the operation type 1030. Also, as the operation direction adjustment 1040, the rotation axis of the first component 1210 (adjustable by the tools 1203 and 1204) is set. As the operation confirmation input 1050, a slider representing the rotation angle of the first component 1210 is displayed. The user can confirm the operation of the first component 1210 by moving the gripper of the slider.

[0117] FIG. 13 is a diagram showing a third setting example in the operation direction setting screen. In the 3D display screen 1002, a first component 1310 and a second component 1311 having a coupling relationship, and tools 1303 and 1304 for setting the operation direction of the first component 1310 are displayed (the mechanism between the first and second components is omitted). The operation direction setting screen 1300 displays the operation direction setting of the first component 1310. In the operation direction setting screen 1300, linear motion / rotation is selected as the operation type 1030. "Linear motion / rotation" represents a composite motion including linear motion and rotation. Also, as the operation direction adjustment 1040, a linear motion direction setting 1040A of the first component 1310 and a rotation axis setting 1040B of the first component 1310 are set. Both the linear motion direction and the rotation axis of the first component 1310 are adjustable by the tools 1303 and 1304. As the operation confirmation input 1050, a linear motion operation confirmation input 1050A and a rotation motion operation confirmation input 1050B are displayed. The user can confirm the operation of the first component 1310 by operating the linear motion operation confirmation input 1050A and the rotation motion operation confirmation input 1050B.

[0118] <E. Commissioning of the assembly> Next, a test run function of an assembly provided by the system 100 and its UI will be described with reference to Figs. 14 to 16. A user can operate an assembly via the test run screen described with reference to Figs. 14 and 15.

[0119] FIG. 14 is a diagram showing an example of a test run screen for an assembly. The test run screen 1400 includes a test run input panel 1401 and a 3D display screen 1402. The 3D display screen 1402 displays an assembly including the first part 1010 and the second part 1011 described with reference to FIG. 10 . The test run input panel 1401 includes a test run setting panel 1420. The test run setting panel 1420 includes, as input items, a switch 1421 for enabling or disabling the test run function, a movement amount 1422, and a rotation amount 1423. The test run setting panel 1420 may also display a current moving part movement distance 1424 and a current moving part rotation amount 1425. A user can input, via the test run setting panel 1420, whether to enable or disable the test run function, the linear movement distance of the moving part, the rotation amount, and the like. Furthermore, the movable part on the 3D display screen 1402 (the first part 1010 in the example of FIG. 14) operates based on the input values ​​in the test run setting panel 1420.

[0120] FIG. 15 is a diagram showing an example of how to use the assembly test run screen. By updating the value of the movement amount 1422, the user can gradually move the first part 1010, which is an operating part. As the value of the movement amount 1422 changes, the position of the first part 1010, which is a movable part, on the 3D display screen 1402 also changes. In the example of FIG. 15, when the first part 1010 moves beyond a certain amount, the connection between the first part 1010 and another part 1510 is broken. This display indicates that moving the first part 1010 beyond a certain amount will damage the assembly. In this way, by operating the movable parts on the test run screen, the user can check the operation of the entire assembly and also check how much movement of the movable parts will cause damage to the assembly.

[0121] FIG. 16 is a diagram showing an example of the coupling setting configured in the system 100. The user can input the coupling setting of the assembly into the system 100 via screens shown in FIGS. 4 to 15 and the like. The coupling setting includes "coordinates of the coupling point" which is common regardless of the type of coupling. Further, the coupling setting includes information for each type of coupling. For example, for a hinge joint, "releasable angle (maximum / minimum)" is included in the coupling setting, for a pole joint, "releasable angle (maximum for Y-axis, maximum for Z-axis)" is included, and for a slider joint, "slide distance (maximum / minimum)" is included in the coupling setting.

[0122] <F. Settings of the control device and simulation function> Next, referring to FIGS. 17 and 18, the setting function of the control device provided by the system 100, the simulation function (simulation function in which the physics engine 158 and the control device emulator are coordinated), and their UIs will be described.

[0123] FIG. 17 is a diagram showing an example of the execution screen of the simulation. The execution screens 1700A, 1700B, and 1700C of the simulation show the transition of the execution screen of the simulation.

[0124] In the example of FIG. 17, the coupling setting of the assembly and the setting of the control device have already been completed, and the system 100 is executing a simulation in which the physics engine 158 and the control device emulator are coordinated. The user can perform connection settings and the like for each IO of the control device in advance via the UI provided by the system 100. The control device emulator 159 can emulate the input / output signals of each IO based on the setting of the control device.

[0125] The simulation execution screen includes a control device panel 1701 and a 3D display screen 1702. The control device panel 1701 includes information about control devices connected to the assembly to be simulated via a motor or the like. The user can select a control device to be linked with the physics engine 158 via the control device panel 1701. The control device selected here is, for example, an object file or the like of the control device whose operation is simulated by the control device emulator 159.

[0126] Furthermore, the control device panel 1701 includes at least an IO signal panel 1710. The IO signal panel 1710 shows the signal status of each IO provided in the control device that cooperates with the physics engine 158. Each block shown in FIG. 17 corresponds to each IO. For example, when a first IO is used as an output port, the user can switch on / off the output signal of the first IO block by selecting the first IO block. Also, for example, when a second IO is used as an input port, the display (indicating on / off) of the second IO block is updated based on a change in the signal input to the second IO.

[0127] Next, an example of cooperation between the physics engine 158 and the control device emulator 159 will be described using the transition of execution screens 1700A, 1700B, and 1700C as an example. In the example of Fig. 17, the target of the simulation is an assembly including the first part 1010 and the second part 1011 described with reference to Fig. 10.

[0128] Execution screens 1700A, 1700B, and 1700C show the sequence of events from when the control device operates the assembly (more specifically, the first part 1010) via the motor until the control device receives a signal from a sensor indicating that the first part 1010 has reached a predetermined end position.

[0129] In the execution screen 1700A, the user clicks on the IO "1" block on the IO signal panel 1710, turning on the IO "1" signal of the IO control device. If IO "1" is an input port, the control device emulator 159 can detect that the IO "1" signal of the control device has turned on. Also, assume that the user program includes a process for outputting a command to a motor driver based on the IO "1" signal being turned on. In this case, the control device emulator 159 outputs a command to a motor driver connected to a motor that operates an assembly based on the IO "1" signal of the control device being turned on.

[0130] In the execution screen 1700B, the motor driver that received the command outputs a drive signal to the motor. Based on the drive signal being output to the motor, the physics engine 158 simulates the operation of the motor and the operation of the assembly operated by the motor. In other words, the physics engine 158 simulates the linear motion of the first part 1010.

[0131] In one aspect, the operation of the motor driver and the motor may be emulated by a controller emulator 159. In this case, the physics engine 158 obtains information about the amount of motor movement from the controller emulator 159 and simulates the movement of the assembly operated by the motor.

[0132] In another aspect, the operation of the motor driver and the motor may be simulated by the physics engine 158. In this case, the physics engine 158 receives commands for the motor driver from the control device emulator 159 and simulates the operation of the motor and the operation of the assembly operated by the motor.

[0133] Furthermore, in another aspect, the motor driver operation may be emulated by the control device emulator 159, and the motor operation may be simulated by the physics engine 158. In this case, the physics engine 158 obtains the drive signal output from the motor driver from the control device emulator 159, and simulates the operation of the motor and the operation of the assembly operated by the motor.

[0134] On the execution screen 1700C, the signal of IO "2" on the IO signal panel 1710 is turned on. For example, assume that IO "2" is set as an input port by a user program, and that IO "2" is connected to a virtual sensor (see virtual sensors 2111 and 2112 in FIG. 21). In this case, when the first part 1010 reaches the end position, the virtual sensor outputs a signal to IO "2". Details of the virtual sensor will be described later with reference to FIG. 21.

[0135] As described above, the system 100 operates the physics engine 158 and the control device emulator 159 in cooperation with each other based on the settings of the control device, the binding settings of the assembly, and the settings of the virtual sensor, thereby allowing the user to confirm whether the user program and the assembly are operating as intended.

[0136] 18 is a diagram showing an example of a setting screen for a motor driver. The system 100 has a function for setting not only the IO settings of the control device but also the motor driver. The control device emulator 159 can emulate the output of commands based on the motor driver settings from the control device to the motor driver.

[0137] The motor driver setting screen 1800 includes, as items, a target controller 1810 and one or more operation settings 1820 (in the example of FIG. 18, a first operation setting 1830 and a second operation setting 1831).

[0138] The target controller 1810 is a setting item for the control device that transmits commands to the motor driver. The target controller 1810 is set with the name of the control device, an identifier of the control device, or the like.

[0139] The operation settings 1820 are settings for the operation of the motor driver when a command is received from the control device. More specifically, they are settings for the speed, position, angle, etc. of a servo motor or the like driven by the motor driver. The operation settings 1820 include, as items, a start variable 1840, an end variable 1850, an operation number variable 1860, and an operation pattern 1870.

[0140] The start variable 1840 is a variable that serves as a trigger for causing the motor driver to start operation. For example, when the value of the start variable 1840 in the user program becomes "True," the control device sends a command to the motor driver.

[0141] The end variable 1850 is a variable that indicates that the assembly connected to the motor has reached a target position. The control device may rewrite the end variable 1850 in response to an output signal from a sensor that indicates that the assembly has reached a predetermined position. For example, the control device may send a stop command to the motor driver when the value of the end variable 1850 becomes "True" in the user program.

[0142] The operation number variable 1860 is a variable that identifies an operation setting. The operation setting 1820 may include multiple operation settings, such as a first operation setting 1830 and a second operation setting 1831. The user program can select an operation setting to use as appropriate by specifying an operation number in the operation number variable 1860.

[0143] The motion pattern 1870 defines the motion of the motor driven by the motor driver or the assembly operated by the motor. The motion pattern 1870 can register a combination of one or more motions. Each motion can include elements such as speed (rotational speed), position, and angle.

[0144] In a certain situation, the system 100 may incorporate code based on the settings of the motor driver setting screen 1800 into the user program when building the user program.

[0145] <G. Debug function> Next, referring to FIGS. 19 and 20, the debug function provided by the system 100 will be described.

[0146] FIG. 19 is a diagram showing a first example of a debug screen of a user program. The user can debug the user program while checking the operation of the assembly by referring to the debug screen 1900.

[0147] The debug screen 1900 includes an explorer 1901, a code editor 1902 for the user program, a watch window 1903, and a 3D display screen 1904. In a certain situation, the debug screen 1900 may include any other display items.

[0148] The explorer 1901 is a display for selecting various settings such as the settings of the control device, the network, and the additional equipment.

[0149] The code editor 1902 for the user program displays the user program. Also, the code editor 1902 for the user program can display the current values of each variable included in the user program. In a certain situation, the screen of the code of the user program and the screen of the current values of each variable may be separated.

[0150] The watch window 1903 displays information on the variables specified by the user. For example, the user can track the change in the value of a particularly important variable by using the watch window 1903.

[0151] The 3D display screen 1904 displays the operation of the assembly. The operation of the assembly on the 3D display screen 1904 is linked to the operation of the user program. In other words, the user program code editor 1902 shows the current execution status of the user program (the value of each variable in the currently executed step), and the 3D display screen 1904 shows the state of the assembly operated by the current user program, or the state of the assembly corresponding to each step of the user program. By checking both the user program and the state of the assembly, the user can check the operation of the production line in an environment that is close to reality.

[0152] 20 is a diagram showing a second example of a debug screen for a user program. A debug screen 2000 shows the debug screen 1900 in a state where the breakpoint function is used.

[0153] A user can set a breakpoint 2010 at a specific line (also called a step) in the code editor 1902 of a user program. When the user program is executed with the breakpoint 2010 set, the user program pauses at the breakpoint. The system 100 also pauses assembly operation at a state corresponding to the breakpoint in the user program. Furthermore, a watch window 1903 displays the value of a variable to be watched at the breakpoint.

[0154] For example, a user can easily discover a problem in a program or assembly by setting a breakpoint 2010 at the step where a problem is suspected to be occurring in the user program or at the step immediately preceding it, and checking the values ​​of each variable at the breakpoint and the operating state of the assembly.

[0155] In a certain situation, the system 100 may be provided with a function to execute the operation simulation of user programs and assemblies step by step. Also, the system 100 may be provided with a reverse playback function for the execution of the operation simulation of user programs and assemblies, or a reverse playback function in terms of steps.

[0156] <H. Virtual Sensor> Next, referring to FIG. 21, the virtual sensor setting function provided by the system 100 and its UI will be described. In an actual FA manufacturing line, various sensors are often arranged. Therefore, in order to perform the simulation of the assembly in a more realistic environment, it is desirable that a virtual sensor that outputs a signal to the control device emulator 159 can also be installed in the 3D space. Thus, the system 100 provides a function to install virtual sensors in the 3D space as described below.

[0157] FIG. 21 is a diagram showing an example of a virtual sensor setting screen. The user can install a virtual sensor in the 3D space via the virtual sensor setting screen 2100 and can describe the processing related to the virtual sensor in the user program. The control device emulator 159 can emulate the input signal of the virtual sensor based on the setting of the virtual sensor.

[0158] The virtual sensor setting screen 2100 includes a code editor 2102 for the user program and a 3D display screen 2104. The user can arrange any number of virtual sensors on the 3D display screen 2104. In the example of FIG. 21, virtual sensors 2111 and 2112 are arranged on the 3D display screen 2104. Also, the virtual sensor can represent the area where the sensor reacts by a line, a block, or the like. For example, when the assembly contacts the line of the virtual sensor 2111, the value of the variable "IsOpen" becomes "True". Also, when the assembly contacts the line of the virtual sensor 2112, the value of the variable "IsClose" becomes "True". Furthermore, the system 100 also accepts the input of the connection relationship between the virtual sensor and the IO of the control device.

[0159] Furthermore, the user may write code in the code editor 2102 of the user program relating to a virtual sensor placed on the 3D display screen 2104. For example, the user may write code that performs a certain process based on the value of a variable "IsOpen" becoming "True." The user may also write code that performs a different process based on the value of a variable "IsClose" becoming "True."

[0160] A user can verify the operation of a user program and assembly in a more realistic environment by installing a virtual sensor in 3D space via the virtual sensor setting screen 2100 and describing processing related to the virtual sensor in a user program.

[0161] <I.フローチャート> Next, a processing procedure of system 100 will be described with reference to Figures 22 and 23. In one aspect, processor 102 may load a program (such as integrated development environment 130) for performing the processing of Figures 22 and 23 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. In another aspect, the order in which each step is performed may be arbitrarily changed. For example, the order of processing based on a user's operation input may vary depending on the order in which the user performs each operation.

[0162] FIG. 22 is a flowchart showing an example of a series of processing steps from generating various settings to executing a simulation in the system 100.

[0163] In step S2210, system 100 imports CAD data of a moving part. More specifically, if system 100 is provided as an apparatus, system 100 may import CAD data stored in storage 111 into integrated development environment 130 based on a user operation. If system 100 is provided as a cloud service, system 100 may import CAD data acquired via a browser on a user terminal or the like into integrated development environment 130. In one aspect, system 100 may import CAD data including an assembly consisting of multiple parts. In another aspect, system 100 may import CAD data for each part individually.

[0164] In step S2220, system 100 sets the movement direction of the movable parts. More specifically, system 100 can receive input for setting the movement direction of the movable parts from the user via the movement direction setting screen described with reference to Figures 10 to 13. System 100 sets the movement direction of the movable parts based on the received input for setting the movement direction.

[0165] In step S2230, the system 100 automatically sets the coupling between the parts. For example, the system 100 may automatically set the coupling between the parts based on the movement direction setting of each moving part and the shape of each part.

[0166] In step S2240, the system 100 performs fine adjustment of the connection settings between the components. More specifically, the system 100 may receive input of the connection settings of the movable components from the user via the connection setting screen described with reference to FIGS. 4 to 9. The system 100 performs fine adjustment of the connection settings between the components based on the received connection setting input. The fine adjustment of the connection settings between the components may include, for example, adjustment of connection points, selection of the type of connection, etc.

[0167] In step S2250, system 100 sets the movement amount of the movable part. More specifically, system 100 may accept input of the operating range or movement amount of the movable part from the user via the connection setting screen described with reference to FIGS. 4 to 9. System 100 sets the movement amount of the movable part based on the accepted input of the operating range or movement amount setting. In one aspect, the processing of step S2250 may include processing of accepting an operation for checking the operation of the assembly unit from the user via the screen described with reference to FIGS. 14 and 15.

[0168] In step S2260, system 100 configures the control device. More specifically, system 100 may configure the control device by accepting an operation input from the user via a configuration screen of the control device. In one aspect, the processing of step S2260 may include processing for accepting an operation for configuring the motor driver from the user via the screen described with reference to FIG.

[0169] In step S2270, system 100 passes the coupling settings to physics engine 158. In one aspect, the processing in step S2270 may include passing the controller settings and motor driver settings to controller emulator 159.

[0170] In step S2280, the system 100 performs a trial run. More specifically, the system 100 may execute a simulation by coordinating the physics engine 158 and the control device emulator 159. The user may check the operation of the control device (changes in the signals of each IO) and the operation of the assembly via the screen or the like described with reference to FIG. 17 .

[0171] In step S2290, system 100 determines whether or not there is an input for resetting the binding settings or the settings of the control device. If system 100 determines that there is an input for resetting the binding settings or the settings of the control device (YES in step S2290), system 100 transfers control to step S2240. If not (NO in step S2290), system 100 ends the process. Note that the process of step S2290 is an example, and system 100 may transfer control to any of the processes of steps S2210 to S2270 in response to an operation such as a setting change received from the user.

[0172] Fig. 23 is a flowchart showing an example of a procedure for a simulation using a virtual sensor in system 100. The process shown in Fig. 23 represents the procedure for a simulation when using the setting of the virtual sensor described with reference to Fig. 21. Note that the assembly shown in Fig. 21 is a clamping mechanism, which first opens a clamp and then closes the clamp to clamp a workpiece.

[0173] The following processing will be explained mainly with reference to the control device, which executes the following processing based on the installed user program. The operation of the control device is actually emulated by a control device emulator 159. The operation of the assembly operated by the control device is simulated by a physics engine 158.

[0174] In step S2310, the control device starts operation. More specifically, based on the IO "1" signal being turned on, the control device operates the assembly via the motor driver. At this point, the clamp (assembly) is in an open state.

[0175] In step S2320, the control device detects that the assembly has come into contact with the virtual sensor (variable) "IsOpen."

[0176] In step S2330, the control device sets the value of the variable "clampIndex" to "1" based on the value of the variable "IsOpen" becoming "True." For example, the variable "clampIndex=1" indicates that the clamp has opened to a predetermined position.

[0177] In step S2340, the control device moves the clamp in the closing direction. More specifically, the control device sends a command to the motor driver to change the rotation direction of the motor.

[0178] In step S2350, the control device detects that the assembly has come into contact with the virtual sensor (variable) "IsClose."

[0179] In step S2360, the control device sets the value of the variable "clampIndex" to "0" based on the value of the variable "IsClose" becoming "True." For example, the variable "clampIndex=0" indicates that the clamp has closed to a predetermined position (the position where the workpiece is clamped).

[0180] In step S2370, the control device moves the clamp in the opening direction (initial state). More specifically, the control device sends a command to the motor driver to change the rotation direction of the motor.

[0181] As described above, the system 100 according to the present embodiment allows the physics engine 158 and the control device emulator 159 to work together, thereby making it possible to verify both the behavior of the user program and the behavior of the assembly.

[0182] Furthermore, the system 100 provides a function for adjusting the assembly connection settings, thereby enabling detailed settings such as connection points, movement directions, and movement types that are difficult to determine from the shape of the parts alone.

[0183] In addition, the system 100 provides a setting function of the control device, a function of simultaneously displaying the program execution status and the simulation screen, and a debugging function (step execution, breakpoint function, etc.), enabling debugging while checking the operation of the assembly and the values of variables in the program.

[0184] Furthermore, the system 100 provides a function of installing virtual sensors in the simulation, enabling the execution of a simulation closer to the real environment.

[0185] Note that the technology of the present disclosure can be realized by any means such as a cloud service providing the functions of the system 100, distributable software operating stand-alone, and a personal computer installed with software providing the functions of the system 100.

[0186] <J. Appendix> As described above, the present embodiment includes the following disclosures. [Configuration 1] A simulation program, causes a computer (300) to acquire a plurality of component data constituting an assembly, generate coupling settings between each of the plurality of component data, receive an operation input from a user, adjust the coupling settings based on the operation input from the user, emulate a control device that controls the assembly based on a user program, and cause the assembly to operate in a 3D (Dimensional) space, where causing the assembly to operate includes causing each of the plurality of component data to operate in联动 based on the adjusted coupling settings. [Configuration 2] The program described in configuration 1, wherein the adjustment of the connection settings includes selecting a type of connection between each of the plurality of part data, adjusting connection points, and setting the movement direction of a first part included in the plurality of part data. [Configuration 3] The program according to configuration 1 or 2, further causing the computer (300) to snap a cursor to each portion of the plurality of component data in the 3D space on a screen that accepts operation input from the user. [Configuration 4] The computer (300) is further caused to receive an input of a movement amount of a movable part included in the assembly; The program of configuration 3, wherein operating the assembly includes operating each of the plurality of part data in the 3D space based on input of the movement amount of a movable part included in the assembly on a test run screen of the assembly. [Configuration 5] The computer (300) is further caused to receive settings for each of a plurality of interfaces included in the control device; the configuration of each of the plurality of interfaces includes a configuration of a device, machine, or sensor to which each of the plurality of interfaces is connected; 5. The program according to any one of configurations 1 to 4, wherein emulating the control device includes emulating input / output signals of each of the plurality of interfaces based on settings of each of the plurality of interfaces. [Configuration 6] The computer (300) is further caused to receive operation settings of a motor driver controlled by the control device; 6. The program according to any one of configurations 1 to 5, wherein emulating the control device includes outputting a command corresponding to the operation setting from the control device to the motor driver. [Configuration 7] The computer (300) is further caused to receive input of settings for the virtual sensor; The setting of the virtual sensor includes installation information of the virtual sensor in the 3D space and connection information between the virtual sensor and an interface of the control device, 7. The program according to any one of configurations 1 to 6, wherein emulating the control device includes emulating an input signal of the virtual sensor in the control device based on a setting of the virtual sensor. [Configuration 8] further causing the computer (300) to display the results of the execution of the user program by emulation and the results of the execution of the simulation; A program described in any one of configurations 1 to 7, wherein displaying the execution results of the user program by the emulation and the execution results of the simulation includes displaying the execution results of each step of the user program and the execution results of the simulation corresponding to each step of the user program. [Configuration 9] The computer (300) accepting an input to set a breakpoint in the user program; 9. The program according to configuration 8, further causing the program to execute the following: based on the fact that the user program has stopped at the breakpoint, displaying a result of the execution of the simulation corresponding to the breakpoint. [Configuration 10] A system (100) for simulating the operation of an assembly, comprising: a part acquisition unit (152) that acquires data on a plurality of parts that constitute the assembly; an automatic combining unit (153) that generates a combination setting between each of the plurality of part data; an operation input unit (151) that accepts operation input from a user; a coupling adjustment unit (154) for adjusting the coupling settings based on an operation input from a user; a control device emulator (159) for controlling the assembly based on a user program; a physics engine (158) that operates the assembly in a 3D (dimensional) space; The physics engine (158) operates each of the plurality of component data in conjunction with each other based on the connection settings adjusted by the connection adjustment unit (154). [Configuration 11] The simulation system (100) of configuration 10, wherein adjusting the connection settings includes selecting a type of connection between each of the plurality of part data, adjusting connection points, and setting a movement direction of a first part included in the plurality of part data. [Configuration 12] 12. The simulation system (100) according to configuration 10 or 11, wherein the operation input unit (151) is configured to be able to snap a cursor to each part of the plurality of part data in the 3D space. [Configuration 13] The operation input unit (151) receives an input of the movement amount of the assembly, The simulation system (100) according to configuration 12, wherein the physics engine (158) moves each of the plurality of part data in the 3D space based on the movement amount of the assembly input on the test run screen of the assembly. [Configuration 14] The operation input unit (151) receives settings for each of a plurality of interfaces that the control device has, the configuration of each of the plurality of interfaces includes a configuration of a device, machine, or sensor to which each of the plurality of interfaces is connected; 14. The simulation system (100) according to any one of configurations 10 to 13, wherein the emulator (159) emulates input / output signals of each of the plurality of interfaces based on settings of each of the plurality of interfaces. [Configuration 15] The operation input unit (151) further receives operation settings for a motor driver controlled by the control device, 15. The simulation system (100) according to any one of configurations 10 to 14, wherein the emulator (159) outputs a command corresponding to the operation setting from the control device to the motor driver. [Configuration 16] The operation input unit (151) receives input of settings for the virtual sensor, The setting of the virtual sensor includes installation information of the virtual sensor in the 3D space and connection information between the virtual sensor and an interface of the control device, 16. The simulation system (100) according to any one of configurations 9 to 15, wherein the emulator (159) emulates an input signal of the virtual sensor in the control device based on a setting of the virtual sensor. [Configuration 17] a display unit for displaying the execution result of the user program by the emulator (159) and the execution result of the simulation by the physics engine (158); 17. The simulation system (100) according to any one of configurations 10 to 16, wherein the display unit displays an execution result of each step of the user program and an execution result of a simulation corresponding to each step of the user program. [Configuration 18] the operation input unit (151) accepts an input for setting a breakpoint in the user program; 18. The simulation system (100) according to configuration 17, wherein the display unit displays the execution result of the simulation corresponding to the breakpoint based on the fact that the user program has stopped at the breakpoint.

[0187] 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]

[0188] 10,20 Assembly, 11,12,13,14,21,22,23,24,25,1510 Parts, 100 System, 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, 130 Integrated development environment, 151 Operation input unit, 152 Part acquisition unit, 153 Automatic coupling unit, 154 Coupling adjustment unit, 155 Operation setting unit, 156 Control device setting unit, 157 Trial operation unit, 158 Physics engine, 159 Control device emulator, 160 Motor driver emulator, 161 Display unit, 300 Device, 400,500,600,700,800,900 Coupling setting screen, 401 Join setting input panel, 402, 1002, 1402, 1702, 1904, 2104 Display screen, 410, 710, 810, 910, 1010, 1210, 1310 First part, 411, 711, 811, 911, 1011, 1211, 1311 Second part, 420, 1003, 1004, 1203, 1204, 1303, 1304 Tool, 430 Join target 1, 440 Join target 2, 450 Join point, 460 Join connection method, 470 Movement distance, 510 Snapping mode, 1000, 1100, 1200, 1300 Operation direction setting screen, 1001 Operation direction setting input panel, 1020 Part name, 1030 Operation type, 1040 Operation direction adjustment, 1040A Linear direction setting, 1040B Rotation axis setting, 1050, 1050A, 1050B Operation confirmation input, 1400 Trial run screen, 1401 Trial run input panel, 1420 Setting panel, 1421 Switching between enabling and disabling the trial run function, 1422 Movement amount, 1423 Rotation amount, 1424 Current movement amount of moving parts, 1425 Current rotation amount of moving parts, 1700A, 1700B, 1700C Execution screen, 1701 Control device panel, 1710 Signal panel, 1800, 2100 Setting screen, 1810 Target controller, 1820 Operation setting, 1830 First operation setting, 1831 Second operation setting, 1840 Start variable, 1850 End variable, 1860 Operation number variable, 1870 Movement pattern, 1900,2000 Debug screen, 1901 Explorer, 1902, 2102 Code editor, 1903 Watch window, 2010 Breakpoints, 2111, 2112 Virtual sensors.

Claims

1. A simulation program, On the computer, acquiring data of a plurality of parts that constitute an assembly; generating a connection setting between each of the plurality of part data based on the shape and position of each part; Accepting an operation input from a user; adjusting the coupling settings based on operational input from a user; emulating a controller that controls the assembly based on a user program; and manipulating the assembly in 3D (Dimensional) space; operating the assembly includes operating each of the plurality of part data in conjunction with each other based on the adjusted connection setting; further causing the computer to receive an input of a movement amount of a movable part included in the assembly; The program wherein operating the assembly includes operating each of the plurality of part data in the 3D space based on input of the movement amount of a movable part included in the assembly on a test run screen of the assembly.

2. A simulation program, On the computer, acquiring data of a plurality of parts that constitute an assembly; generating a connection setting between each of the plurality of part data based on the shape and position of each part; Accepting an operation input from a user; adjusting the coupling settings based on operational input from a user; emulating a controller that controls the assembly based on a user program; and manipulating the assembly in 3D space; operating the assembly includes operating each of the plurality of part data in conjunction with each other based on the adjusted connection setting; further causing the computer to receive settings for each of a plurality of interfaces included in the control device; the configuration of each of the plurality of interfaces includes a configuration of a device, machine, or sensor to which each of the plurality of interfaces is connected; The program, wherein emulating the control device includes emulating input / output signals of each of the plurality of interfaces based on settings of each of the plurality of interfaces, and outputting a signal state of each of the plurality of interfaces and an indication of the simulation.

3. A simulation program, On the computer, acquiring data of a plurality of parts that constitute an assembly; generating a connection setting between each of the plurality of part data based on the shape and position of each part; Accepting an operation input from a user; adjusting the coupling settings based on operational input from a user; emulating a controller that controls the assembly based on a user program; and manipulating the assembly in 3D space; operating the assembly includes operating each of the plurality of part data in conjunction with each other based on the adjusted connection setting; further causing the computer to receive operation settings of a motor driver controlled by the control device; The program, wherein emulating the control device includes outputting an instruction corresponding to the operation setting from the control device to the motor driver.

4. A simulation program, On the computer, acquiring data of a plurality of parts that constitute an assembly; generating a connection setting between each of the plurality of part data based on the shape and position of each part; Accepting an operation input from a user; adjusting the coupling settings based on operational input from a user; emulating a controller that controls the assembly based on a user program; and manipulating the assembly in 3D space; operating the assembly includes operating each of the plurality of part data in conjunction with each other based on the adjusted connection setting; further causing the computer to receive input of a setting for a virtual sensor; The setting of the virtual sensor includes installation information of the virtual sensor in the 3D space and connection information between the virtual sensor and an interface of the control device, The program, wherein emulating the control device includes emulating an input signal of the virtual sensor in the control device based on a setting of the virtual sensor.

5. A simulation program, On the computer, acquiring data of a plurality of parts that constitute an assembly; generating a connection setting between each of the plurality of part data based on the shape and position of each part; Accepting an operation input from a user; adjusting the coupling settings based on operational input from a user; emulating a controller that controls the assembly based on a user program; and manipulating the assembly in 3D space; operating the assembly includes operating each of the plurality of part data in conjunction with each other based on the adjusted connection setting; further causing the computer to display a result of the execution of the user program by emulation and a result of the execution of a simulation; A program in which displaying the execution results of the user program by the emulation and the execution results of the simulation includes displaying the execution results of each step of the user program and the execution results of the simulation corresponding to each step of the user program.

6. The program according to any one of claims 1 to 5, wherein the adjustment of the connection settings includes selecting a type of connection between each of the plurality of part data, adjusting connection points, and setting a movement direction of a first part included in the plurality of part data.

7. The program according to any one of claims 1 to 6, further causing the computer to snap a cursor to each portion of the plurality of component data in the 3D space on a screen that accepts operation input from the user.

8. The computer, accepting an input to set a breakpoint in the user program; 6. The program according to claim 5, further causing the program to execute: based on the fact that the user program has stopped at the breakpoint, displaying a result of execution of a simulation corresponding to the breakpoint.

9. 1. A system for simulating the operation of an assembly, comprising: a part acquisition unit that acquires data of a plurality of parts that constitute the assembly; an automatic connection unit that generates connection settings between each of the plurality of part data based on the shape and position of each part; an operation input unit that accepts operation input from a user; a coupling adjustment unit for adjusting the coupling setting based on an operation input from a user; a control device emulator that controls the assembly based on a user program; a physics engine that operates the assembly in a 3D (dimensional) space, the operation input unit accepts an input of a movement amount of the assembly; The physics engine moving each of the plurality of part data in the 3D space based on an input of a movement amount of the assembly on the assembly test run screen; a simulation system that operates each of the plurality of component data in conjunction with each other based on the connection settings adjusted by the connection adjustment unit; 10. A system for simulating the operation of an assembly, comprising: a part acquisition unit that acquires data of a plurality of parts that constitute the assembly; an automatic connection unit that generates connection settings between each of the plurality of part data based on the shape and position of each part; an operation input unit that accepts operation input from a user; a coupling adjustment unit for adjusting the coupling setting based on an operation input from a user; a control device emulator that controls the assembly based on a user program; a physics engine that moves the assembly in 3D space; the physics engine operates each of the plurality of part data in conjunction with each other based on the combination setting adjusted by the combination adjustment unit; the operation input unit accepts settings for each of a plurality of interfaces included in the control device; the configuration of each of the plurality of interfaces includes a configuration of a device, machine, or sensor to which each of the plurality of interfaces is connected; The emulator emulates input / output signals of each of the plurality of interfaces based on the settings of each of the plurality of interfaces, and outputs the signal states of each of the plurality of interfaces and a display of the simulation.

11. A system for simulating the operation of an assembly, comprising: a part acquisition unit that acquires data of a plurality of parts that constitute the assembly; an automatic connection unit that generates connection settings between each of the plurality of part data based on the shape and position of each part; an operation input unit that accepts operation input from a user; a coupling adjustment unit for adjusting the coupling setting based on an operation input from a user; a control device emulator that controls the assembly based on a user program; a physics engine that moves the assembly in 3D space; the physics engine operates each of the plurality of part data in conjunction with each other based on the combination setting adjusted by the combination adjustment unit; the operation input unit further receives operation settings for a motor driver controlled by the control device; The emulator outputs a command corresponding to the operation setting from the control device to the motor driver.

12. A system for simulating the operation of an assembly, comprising: a part acquisition unit that acquires data of a plurality of parts that constitute the assembly; an automatic connection unit that generates connection settings between each of the plurality of part data based on the shape and position of each part; an operation input unit that accepts operation input from a user; a coupling adjustment unit for adjusting the coupling setting based on an operation input from a user; a control device emulator that controls the assembly based on a user program; a physics engine that moves the assembly in 3D space; the physics engine operates each of the plurality of part data in conjunction with each other based on the combination setting adjusted by the combination adjustment unit; the operation input unit accepts input of settings for a virtual sensor; The setting of the virtual sensor includes installation information of the virtual sensor in the 3D space and connection information between the virtual sensor and an interface of the control device, The emulator emulates an input signal of the virtual sensor in the control device based on the setting of the virtual sensor.

13. A system for simulating the operation of an assembly, comprising: a part acquisition unit that acquires data of a plurality of parts that constitute the assembly; an automatic connection unit that generates connection settings between each of the plurality of part data based on the shape and position of each part; an operation input unit that accepts operation input from a user; a coupling adjustment unit for adjusting the coupling setting based on an operation input from a user; a control device emulator that controls the assembly based on a user program; a physics engine that moves the assembly in 3D space; the physics engine operates each of the plurality of part data in conjunction with each other based on the combination setting adjusted by the combination adjustment unit; a display unit for displaying the execution result of the user program by the emulator and the execution result of the simulation by the physics engine, The display unit displays the execution results of each step of the user program and the execution results of a simulation corresponding to each step of the user program.

14. The simulation system according to any one of claims 9 to 13, wherein adjusting the connection settings includes selecting a type of connection between each of the plurality of part data, adjusting connection points, and setting a movement direction of a first part included in the plurality of part data.

15. 15. The simulation system according to claim 9, wherein the operation input unit is configured to be able to snap a cursor to each of the plurality of parts data in the 3D space.

16. the operation input unit accepts an input for setting a breakpoint in the user program; 14. The simulation system according to claim 13, wherein the display unit displays the execution result of the simulation corresponding to the breakpoint based on the fact that the user program has stopped at the breakpoint.

Citation Information

Patent Citations

  • Linkage mechanism analytic device and linkage mechanism joint data arithmetic device

    JP1997190467A

  • Method and device for extracting component connecting relation

    JP2001202393A

  • Simulation system, method, program and recording medium

    JP2003030251A

  • Mechanism model simulator and program

    JP2004062435A

  • Analytic model creation device

    JP2005250647A