Apparatus, method, and program

The device automates the import and redefinition of assembly parts and their coupling relationships using OpenUSD format files, reducing the workload of control designers and enhancing control program development efficiency.

JP2026076553APending Publication Date: 2026-05-12OMRON CORP
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
OMRON CORP
Filing Date
2024-10-24
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Existing technologies struggle to import multiple parts constituting an assembly and their coupling relationships into a device, requiring manual redefinition by control designers.

Method used

A device utilizing OpenUSD format files to automatically import and redefine coupling relationships between parts, generating datasets usable in control program development environments.

Benefits of technology

Significantly reduces the workload of control designers by automating the process of importing and defining coupling relationships, allowing focus on control program development.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026076553000001_ABST
    Figure 2026076553000001_ABST
Patent Text Reader

Abstract

The present invention provides a program for a device and method that imports information about multiple components constituting an assembly and the relationships between each component into the device. [Solution] The device 100 includes: an acquisition unit 201 that acquires a file created in OpenUSD format which includes 3D shape data of each of a plurality of parts constituting an assembly and coupling information which indicates the coupling relationships between the plurality of parts; a storage unit 202 which stores definition information 210 which includes coupling relationships between parts constituting each of a plurality of mechanisms and is associated with additional information corresponding to each of the plurality of mechanisms; a determination unit 203 which determines whether or not definition information 210 which indicates the same coupling relationship as the coupling information of the file exists in the definition information of the plurality of mechanisms; and a generation unit 204 which, if definition information which indicates the same coupling relationship as the coupling information exists, generates a dataset 220 that can be used in the control program development environment based on the plurality of parts, the coupling relationships between the plurality of parts and the additional information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an apparatus capable of using a file in the OpenUSD format, and more particularly, to a technique for importing an assembly defined in a file into an apparatus.

Background Art

[0002] In recent years, for the purpose of designing and maintaining factory lines, etc., a technique of constructing and operating a line or a part thereof in a 3D (Dimensional) space has been used. This technique may be used for the operation test of a line in the design stage. In addition, this technique may be used for a digital twin that reproduces a line operating in the real space in a 3D space. In the digital twin, the line reproduced in the 3D space operates in the same manner as the line in the real space based on a signal output from a control device. By monitoring the line reproduced in the 3D space, a manager can perform maintenance management on the line in the real space located remotely.

[0003] Regarding the technique of constructing and operating a line or a part thereof in a 3D space, for example, Japanese Patent Application Laid-Open No. 2023-64893 (Patent Document 1) discloses a program for "causing a computer to acquire a plurality of component data constituting an assembly, generate a coupling setting between each of the plurality of component data, receive an operation input from a user, adjust the coupling setting based on the operation input from the user, emulate a control device that controls an assembly based on a user program, and operate the assembly in a 3D space" (see [Summary]).

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] According to the technology disclosed in Patent Document 1, it is possible to import multiple parts constituting an assembly into a device. However, the technology disclosed in Patent Document 1 cannot import the coupling relationships of each part data into the device. Therefore, the user needs to redefine the coupling relationships of each imported part. Thus, there is a need for technology to import information on multiple parts constituting an assembly and the coupling relationships between each part into a device.

[0006] This disclosure is made in view of the above-mentioned background, and in one aspect its purpose is to provide a technology for importing information about multiple components constituting an assembly and the coupling relationships between each component into a device. [Means for solving the problem]

[0007] According to one embodiment, a device is provided that can utilize files in the OpenUSD (Universal Scene Description) format. The device includes an acquisition unit that acquires files created in the OpenUSD format. The file includes data for each of a plurality of parts constituting an assembly, and coupling information indicating the coupling relationships between the plurality of parts. The device includes a storage unit that stores definition information for each of a plurality of mechanisms. Each of the definition information for a plurality of mechanisms includes coupling relationships between the parts constituting each of the plurality of mechanisms and is associated with additional information corresponding to each of the plurality of mechanisms. The additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment. The device includes a determination unit that determines whether definition information indicating the same coupling relationship as the coupling information in the file exists among the definition information for a plurality of mechanisms, and a generation unit that, if definition information indicating the same coupling relationship as the coupling information exists, generates a dataset usable in the control program development environment based on the plurality of parts, the coupling relationships between the plurality of parts, and the additional information.

[0008] According to the above disclosure, the device can import 3D geometry data assemblies and further generate datasets usable in the control program development environment. Therefore, control designers no longer need to manually define the relationships between the components constituting the imported assemblies, allowing them to focus on developing the control programs. As a result, the workload of control designers can be significantly reduced.

[0009] The generation unit is configured to redefine the coupling relationships of each of the multiple components constituting the assembly using definition information for one or more minimal configurations of the mechanism registered in the storage unit, if no definition information exists that shows the same coupling relationship as the coupling information, and to generate a dataset that makes one or more of the multiple components with redefined coupling relationships controllable by the control program.

[0010] According to the above disclosure, even if the assembly has an undefined mechanism, the device can be disassembled into multiple assemblies each having a minimum configuration mechanism and imported.

[0011] Redefining the coupling relationships of multiple parts constituting an assembly using definition information of one or more minimal configuration mechanisms registered in the memory unit includes defining multiple assemblies included in the assembly. The generation unit defines a first assembly consisting of a first and second part coupled together, defines a second assembly consisting of a second and third part coupled together, and is configured to link the second part included in the first assembly and the second part included in the second assembly so that they overlap and operate in 3D space.

[0012] According to the above disclosure, the device can link multiple assemblies, each having a minimal configuration mechanism, by parts. This allows the device to associate multiple assemblies and treat them as a single assembly.

[0013] The device further includes an output unit that outputs a control program corresponding to the dataset to the line's control unit or an emulator of the control unit.

[0014] According to the above disclosure, the device may output a control program corresponding to a dataset to an actual control unit or emulator. This allows a control designer to use the emulator to verify whether the control program can properly control the assembly. The control designer can also install the verified control program into the actual control unit.

[0015] The device further includes an output unit that outputs a control program corresponding to a dataset to a control unit for controlling a line that includes an assembly reproduced in a digital twin environment.

[0016] According to the above disclosure, the device can output a control program corresponding to a dataset to a control device that interacts with a digital twin environment. This allows control designers to refer to the digital twin environment to perform maintenance and management of the line in operation.

[0017] The device further includes an output unit that outputs the imported dataset to a simulator or digital twin environment.

[0018] According to the above disclosure, control design engineers can debug control programs using simulators during the development phase. Furthermore, after the control program is completed, operators can monitor the real-world line using a digital twin environment.

[0019] According to one embodiment, a method is provided for importing an assembly of 3D shape data executed by a computer. The method includes obtaining a file created in OpenUSD format. The file includes 3D shape data for each of several parts that make up the assembly, and coupling information indicating the coupling relationships between the several parts. The method further includes referencing each of several mechanism definition information entries that are pre-registered on the computer. Each of the mechanism definition information entries includes coupling relationships between the parts that make up each of the several mechanisms and is associated with additional information corresponding to each of the several mechanisms. The additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment. The method further includes determining whether definition information indicating the same coupling relationships as the coupling information in the file exists among the definition information entries for several mechanisms, and if definition information indicating the same coupling relationships as the coupling information exists, generating a dataset usable in the control program development environment based on the several parts, the coupling relationships between the several parts, and the additional information.

[0020] According to the above disclosure, a computer can import an assembly of 3D shape data by performing the above method and further generate a dataset usable in the control program development environment. Therefore, control designers no longer need to manually define the relationships between the components constituting the assembly imported into the device, allowing them to concentrate on developing the control program. As a result, the workload of control designers can be significantly reduced.

[0021] According to an embodiment, a program is provided that causes a computer to execute a process of importing an assembly of 3D shape data. The program causes the computer to acquire a file created in the OpenUSD format. The file includes 3D shape data of each of a plurality of parts constituting the assembly and connection information indicating the connection relationships of the plurality of parts. The program further causes the computer to refer to each of the definition information of a plurality of mechanisms registered in the computer in advance. Each of the definition information of the plurality of mechanisms includes the connection relationships between the parts constituting each of the plurality of mechanisms and is associated with additional information corresponding to each of the plurality of mechanisms. The additional information includes information for reproducing the operation of the corresponding mechanism in the development environment of the control program. The program further causes the computer to determine whether definition information indicating the same connection relationship as the connection information of the file exists among the definition information of the plurality of mechanisms, and when definition information indicating the same connection relationship as the connection information exists, generate a dataset available in the development environment of the control program based on the plurality of parts, the connection relationships of the plurality of parts, and the additional information.

[0022] According to the above disclosure, by executing the above program, a computer can import an assembly of 3D shape data and further generate a dataset available in the development environment of the control program. Therefore, the person in charge of control design does not need to manually define the connection relationships of the parts constituting the assembly imported into the device and can concentrate on the development of the control program. As a result, the man-hours of the person in charge of control design can be significantly reduced.

Advantages of the Invention

[0023] According to an embodiment, it is possible to import information on a plurality of parts constituting an assembly and the connection relationships between the parts into a device.

[0024] The above and other objects, features, aspects and advantages of this disclosure will become apparent from the following detailed description of the disclosure, which is to be understood in conjunction with the accompanying drawings.

Brief Description of the Drawings

[0025] [Figure 1] It is a diagram showing an example of the outline of the operation of the device 100 according to this embodiment. [Figure 2] It is a diagram showing an example of the configuration of the functional blocks of the device 100 according to this embodiment. [Figure 3] It is a diagram showing an example of the hardware configuration of the device 100 according to this embodiment. [Figure 4] It is a diagram showing an example of the definition information 210 registered in the device 100. [Figure 5] It is a diagram showing a first example of the configuration of the USD file imported into the device 100. [Figure 6] It is a diagram showing a second example of the configuration of the file imported into the device 100. [Figure 7] It is a diagram showing an example of the import process of the assembly 802 having a defined mechanism. [Figure 8] It is a diagram showing an example of the import process of the assembly 802 having an undefined mechanism. [Figure 9] It is a schematic diagram showing an example of the link included in the data structure 820. [Figure 10] It is a diagram showing an example of a series of screens for the import of the USD file. [Figure 11] It is an example of a screen for displaying the imported assembly. [Figure 12] It is an example of a setting screen for the components constituting the imported assembly. [Figure 13] It is an example of a screen for assigning a controller and a motion axis to the movable components constituting the imported assembly. [Figure 14] It is a diagram showing an example of a screen displayed when a mismatch is detected between the selected coupling information and the coupling information of the imported component. [Figure 15] It is a diagram showing an example of a screen displayed when the import of an assembly including an undefined mechanism is detected. [Figure 16] This figure shows an example of a screen that appears when an assembly import matching multiple models is detected. [Figure 17] This figure shows an example of a series of screens for exporting a USD file. [Figure 18] This figure shows an example of the file import process in device 100. [Figure 19] This figure shows an example of exception handling. [Modes for carrying out the invention]

[0026] The embodiments of the technical concept relating to this disclosure will be described below 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 of them will not be repeated. Furthermore, each embodiment, each modification, each program configuration, each hardware configuration, each function, and each process may be selectively combined as appropriate.

[0027] <Examples of application>

[0028] Figure 1 is a diagram showing an example of the operation overview of the apparatus 100 according to this embodiment. A typical application example of the technology of this disclosure will be described with reference to Figure 1. The technology of this disclosure is intended to assist in the process of importing design data of machinery that constitutes lines used in factories, etc., into an apparatus or application for designing control programs.

[0029] The design of manufacturing lines used in a factory includes the design process for each machine that makes up the line, and the design process for the control programs that operate each machine. The machine designer provides the machine design data to the control design designer. The control design designer imports the received machine design data into the device 100 for designing the control program. More specifically, they import the machine design data file into the control program design application installed on the device 100.

[0030] Typically, machine design data created using CAD (Computer-Aided Design) programs is defined as an assembly containing multiple parts and the relationships between those parts. In many cases, assemblies are defined in a format unique to each CAD program. Therefore, users usually cannot directly import assemblies created using one CAD program into other applications. As a result, traditionally, machine designers had to convert each component of the assembly into data in a standard format such as a STEP file, and then individually hand over each converted component to the control design engineer. In this case, the control design engineer had to redefine the relationship information of each imported component within the application for control program design and redesign the assembly. This task was a significant burden for the control design engineer.

[0031] Therefore, the technology disclosed herein utilizes OpenUSD to automate the process by which control designers redefine the coupling information of each imported component. OpenUSD is an open-source version of USD, a 3D shape data file format developed by Pixar®. Developers are free to use or modify OpenUSD. Files created in the OpenUSD format can contain multiple 3D objects and the coupling relationships of each object, and are intended for transfer between applications. Apparatus 100 according to this embodiment is configured to import assembly files created in the OpenUSD format. Hereafter, "assembly files created in the OpenUSD format" will simply be referred to as "USD files." Apparatus 100 can automatically redefine the assembly configuration by analyzing the USD file containing the assembly information.

[0032] Referring to Figure 1, the process from designing assembly 10, importing assembly 10 into the device 100, to utilizing assembly 10 will be explained. In step 1, the mechanical designer designs assembly 10 using a CAD program. In the example in Figure 1, assembly 10 includes three parts: base 11, X-stage 12, and Y-stage 13.

[0033] In step 2, the mechanical designer converts and outputs assembly 10 to a USD file 20 using the functions of the CAD program or other programs. The mechanical designer then passes the USD file 20 to the control designer. The USD file 20 is passed using any means, such as a medium, communication, or online storage. In the example in Figure 1, the USD file 20 contains data showing assembly 10, base 11, X-stage 12, Y-stage 13, combined information 41 of base 11 and X-stage 12, and combined information 42 of X-stage 12 and Y-stage 13.

[0034] In step 3, the device 100 accepts the import operation of USD file 20 from the control design engineer. The device 100 analyzes USD file 20 to obtain part 30B corresponding to base 11, part 30X corresponding to X stage 12, and part 30Y corresponding to Y stage 13. The device 100 also analyzes USD file 20 to extract combination information 41 and 42. Based on this data, the device 100 generates a dataset that makes one or more of the multiple parts constituting assembly 10 controllable from the control program. In other words, the dataset contains information that redefines assembly 10. In addition to the information of assembly 10, the dataset is configured to include data necessary for linking with the line control program. The data necessary for linking with the line control program includes control program variables associated with each part. Parts may include fixed parts and movable parts. The device 100 may associate variables only with movable parts that are controlled by the control device via actuators. The device 100 can link the simulator 110 and emulator 120 using the dataset. In other words, the dataset is in a format that can be used in conjunction with the control program.

[0035] The dataset includes each part and the relationships between each part. Specifically, the dataset includes parts 30B, 30X, 30Y and relationship information 41, 42. The dataset is defined in a data format usable by the device 100. The data format usable by the device 100 may differ from the format used by the CAD program.

[0036] Furthermore, the dataset may include information such as controllers, motion axes, and variables associated with each component. This information enables the control program to operate each component. The controller is a PLC, driver, etc., that drives each component. The motion axis is the axis of the component that is actually moved by the actuator. For rotating components, the rotation axis becomes the motion axis. For linear components, the axis on which the component slides becomes the motion axis. Variables are variables used in the control program and relate to the controller or driver of each component. The dataset may also include the direction of movement of each component. Furthermore, the dataset may include the range of movement of each component. The range of movement may be set to a predetermined default value for each assembly mechanism.

[0037] In step 4, the device 100 may install the dataset into either the simulator 110 or the digital twin environment 130 based on an operation from the control designer. Furthermore, the device 100 may install control programs that control the assemblies within the dataset into the emulator 120 and the control unit 140 based on an operation from the control designer.

[0038] Simulator 110 and emulator 120 can be used during the line design phase. Simulator 110 constructs a line containing one or more assemblies in 3D space. Emulator 120 runs a control program and replicates the input and output signals of the line's control devices. Simulator 110 and emulator 120 are also configured to send and receive signals. Control designers can debug the control program by checking how the line in simulator 110 operates based on the signals output by emulator 120.

[0039] The digital twin environment 130 and the control device 140 can be used during the maintenance and management phase of the line. The digital twin environment 130 reproduces the line operating in the real world in a 3D space. The control device 140 outputs the same signals to both the line operating in the real world and the digital twin environment 130. Based on the signals received from the control device 140, the digital twin environment 130 faithfully reproduces the operation of the line operating in the real world. Line managers can monitor the line remotely by viewing the operation of the line reproduced in the digital twin environment 130.

[0040] As described above, the device 100 according to this embodiment analyzes a USD file containing multiple parts constituting an assembly and the relationships between each part. This allows the device 100 to generate a dataset from the assembly contained in the USD file. Furthermore, the device 100 can refer to the relationship information contained in the USD file to determine the operating direction and operating range of each part in the dataset, and to set the controllers, motion axes, variables, etc., associated with each part. Therefore, control designers do not need to manually perform most of the steps involved in importing the assembly and creating the dataset. As a result, the device 100 can significantly reduce the workload of control designers.

[0041] Next, some terms used herein will be explained. In this specification, “assembly” refers to a machine, machine part, or design data thereof, created by combining two or more parts. An assembly may include other assemblies as parts. An assembly may also represent the interconnectedness and operation of multiple machines and may encompass design data for mechanisms or mechanical structures. Furthermore, an assembly can be described as a 3D object.

[0042] In this specification, "part" refers to an assembly. When an assembly is used as part of another assembly, that assembly is also a part. Since parts can be created as digital data using CAD programs, etc., they may also be interpreted as part data. Furthermore, a part can also be said to be a 3D object.

[0043] In this specification, "line" refers to equipment constructed according to the purpose of manufacturing, inspecting, or other applications of a product, and is used in factories, etc. A line is realized by a combination of one or more machines, one or more robots, and one or more pedestals, etc. In other words, a line can be constructed by one or more assemblies.

[0044] In this specification, a “USD file” is an assembly file created in OpenUSD format. A USD file may contain assemblies, parts, coupling information indicating the relationships between parts, and parent-child information indicating the relationships between parts. A USD file may also contain one or more assemblies, parts, coupling information, and parent-child information. This specification also includes descriptions such as, for example, “importing a USD file.” Such descriptions may be interpreted as “importing an assembly,” as they substantially refer to importing an assembly contained in a USD file.

[0045] In this specification, “device” includes personal computers, workstations, server devices, tablets, smartphones, or any other information processing devices. It also includes virtual machines, nodes, services, or instances built on a server device or cloud environment. Furthermore, a device may include SoCs (System-on-a-chip) and SoMs (System-on-Module). It may also include any peripheral devices such as switches, routers, displays, keyboards, and mice. A device may also be realized through a combination of multiple other devices. Furthermore, since a device may use multiple functions such as arithmetic, storage, and communication in combination, it also includes a system.

[0046] In this specification, "control device" refers to a device for controlling a line, such as a PLC (Programmable Logic Controller). Furthermore, a control device may include an integrated controller for controlling the machinery and robots that constitute the line. A control device is a type of device.

[0047] <Device configuration>

[0048] Figure 2 shows an example of the configuration of a functional block of the device 100 according to this embodiment. The device 100 mainly comprises an acquisition unit 201, a storage unit 202, a determination unit 203, a generation unit 204, and an output unit 205. The storage unit 202 stores definition information 210 and a dataset 220.

[0049] Each functional block shown in Figure 2 may be implemented as a program module. In this case, each functional block can be implemented by executing a program on the hardware shown in Figure 3. Alternatively, some of the functional blocks shown in Figure 2 may be implemented as hardware. In this case, the device 100 includes hardware for implementing specific hardware-based functions, in addition to the configuration shown in Figure 3.

[0050] The acquisition unit 201 acquires a USD file. The acquisition unit 201 may receive USD files from other devices via a network. The acquisition unit 201 may import USD files stored in the storage of device 100. The acquisition unit 201 may import USD files from any storage medium connected to device 100. The acquisition unit 201 extracts from the USD file multiple parts that make up the assembly and connection information between each part. The acquisition unit 201 outputs the information for each part and the connection information to the determination unit 203. Hereafter, "information for multiple parts that make up the assembly and connection information between each part extracted from the USD file" will be referred to as "part information and connection information". The acquisition unit 201 may output the acquired USD file to the determination unit 203. In this case, the determination unit 203 extracts the part information and connection information from the USD file.

[0051] The storage unit 202 is configured to store one or more definition information 210 necessary for importing USD files and one or more datasets 220 generated based on the USD files. The storage unit 202 may be a portion of the storage 303 (see Figure 3) of the device 100. The storage unit 202 may also function as a database. In this case, the storage unit 202 may be any database, such as a relational database, graph database, or document database.

[0052] The definition information 210 is used by the determination unit 203 to determine whether the assembly contained in the USD file can be imported into the device 100. The specific determination method will be described later. The definition information 210 is information that defines a mechanism obtained by combining multiple parts as shown in Figure 4, and includes the number of parts and combination information that shows the relationship between each part. That is, the definition information 210 includes information corresponding to the part information and combination information of the USD file. Furthermore, the definition information 210 may also include information on the type of each part. As an example, the definition information 210A defines the mechanism of a two-axis Cartesian robot. More specifically, the definition information 210A defines that (i) it contains three parts, (ii) the second part is connected to the first part (Base) in a linear motion manner, and (iii) the third part (Y) is connected to the second part (X) in a linear motion manner. The definition information 210A also includes that the types of the first to third parts are Base, X-stage, and Y-stage, respectively. Figure 4 shows, as an example, definition information 210A, 210B, 210C, 210D, 210E, 210F, 210G, and 210H. Hereafter, when referring to multiple definition information items collectively, it will be written as definition information 210. When referring to individual definition information items, it will be written as 210A, 210B, and so on.

[0053] Device 100 may have one or more definition information 210 pre-registered. Device 100 may be configured to accept user input and register new definition information 210. In this case, device 100 may have a UI (User Interface) for creating and registering definition information 210.

[0054] Dataset 220 contains assembly data in a format that can be output to at least one of the simulator 110 and the digital twin environment 130. In practice, dataset 220 may consist of multiple hierarchical files rather than a single file. Dataset 220 also includes information on each component that makes up the assembly, information on the connections between each component, and information necessary for developing the control program. The information necessary for developing the control program includes settings for controllers, motion axes, and variables associated with each component.

[0055] The determination unit 203 determines whether the acquired part information and connection information include the mechanism defined by the definition information 210. More specifically, the determination unit 203 determines whether the number of parts and connection information constituting the assembly included in the USD file matches the number of parts and connection information included in each definition information 210. If they match, the determination unit 203 determines that the assembly can be imported. Otherwise, the determination unit 203 determines that the assembly cannot be imported. The determination unit 203 outputs the determination result, part information, and connection information to the generation unit 204.

[0056] Based on the determination that the data can be imported, the generation unit 204 generates a dataset 220 based on the USD file or assembly. More specifically, the generation unit 204 generates the dataset 220 based on the part information and connection information defined in the USD file. Based on the determination that the data cannot be imported, the generation unit 204 performs exception handling. Exception handling will be described later with reference to Figures 8 and 9.

[0057] The storage unit 202 may store a template (not shown) of a dataset 220 corresponding to each definition information 210. In this case, the template stores component information and connection information extracted from the USD file, and further adds information necessary for the development of the control program. This allows the generation unit 204 to generate a dataset 220 from the USD file or the assemblies contained in the USD file. The generation unit 204 may incorporate an algorithm for generating a dataset 220 from assemblies.

[0058] The information required for developing the control program may include, for example, the operating range of each component and the information required for the control program associated with each component. The information required for developing the control program may be added to the dataset 220 by the user after the dataset 220 has been created. The generation unit 204 stores the generated dataset 220 in the storage unit 202. Furthermore, the generation unit 204 may output the created dataset 220 to the output unit 205.

[0059] The output unit 205 is configured to display information from the acquired dataset 220 on a display. The output unit 205 is also configured to generate a USD file from the dataset 220 and output the USD file. Furthermore, the output unit 205 is configured to output user-defined definition information 210. The output unit 205 may also be configured to display various UIs related to the device 100, as shown in Figures 10 to 17. The acquisition unit 201 may be configured to acquire input information for these UIs. Additionally, the output unit 205 can output the dataset to either or both the simulator 110 and the digital twin environment 130. The output unit 205 can also output a control program for controlling the assembly 10 to the emulator 120 and the control device 140.

[0060] As explained with reference to Figure 2, the device 100 includes an acquisition unit 201 that acquires a file created in OpenUSD (Universal Scene Description) format. The file includes 3D shape data for each of the multiple parts constituting the assembly and coupling information indicating the coupling relationships between the multiple parts. It also includes a storage unit 202 that stores each of the multiple mechanism definition information 210. Each of the multiple mechanism definition information 210 includes the coupling relationships between the parts constituting each of the multiple mechanisms and is associated with additional information corresponding to each of the multiple mechanisms. The additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment. The device 100 includes a determination unit 203 that determines whether or not definition information 210 showing the same coupling relationships as the coupling information of the file exists among the multiple mechanism definition information 210, and a generation unit 204 that, if definition information 210 showing the same coupling relationships as the coupling information exists, generates a dataset 220 usable in the control program development environment based on the multiple parts, the coupling relationships between the multiple parts, and the additional information. The control program here refers to a program that can be executed by the line control device. The 3D shape data for each part may be in the form of, for example, STEP or IGES files. Additional information may include information on the direction and range of movement of each part. The additional information may also include any information related to the development environment of the control program, such as information on variables in the control program associated with each part. The device 100 can link the operation of the assembly by the simulator 110 with the operation of the control program by the emulator 120 via variables.

[0061] Furthermore, the output unit 205 can output a control program corresponding to the dataset 220 to the line control device 140 or the emulator 120 of the control device 140. The output unit 205 can also output a control program corresponding to the dataset 220 to a control device for controlling a line that includes an assembly reproduced in a digital twin environment.

[0062] Figure 3 shows an example of the hardware configuration of the device 100 according to this embodiment. The device 100 may include two or more of the configurations shown in Figure 3. The device 100 may include configurations other than those shown in Figure 3. The device 100 may not include some of the configurations shown in Figure 3.

[0063] The device 100 includes a processor 301, memory 302, storage 303, external device IF 304, input IF 305, output IF 306, and communication IF 307. The device 100 also includes a bus 308 that connects these components.

[0064] The processor 301 can execute programs to realize various functions of the device 100. The processor 301 is composed of, for example, at least one integrated circuit. According to one embodiment, the integrated circuit may include at least one CPU (Central Processing Unit), at least one GPU (Graphics Processing Unit), at least one FPGA (Field Programmable Gate Array), at least one ASIC (Application Specific Integrated Circuit), at least one AI (Artificial Intelligence) chip, or a combination thereof.

[0065] Memory 302 functions as a workspace for processor 301. Memory 302 stores programs executed by processor 301 and data referenced by processor 301. Memory 302 can be implemented using DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory), etc.

[0066] Storage 303 is non-volatile memory that stores programs executed by processor 301 and data referenced by processor 301. Processor 301 executes programs read from storage 303 to memory 302 and references data read from storage 303 to memory 302. Storage 303 can be implemented by HDD (Hard Disk Drive), SSD (Solid State Drive), EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory), or flash memory, etc.

[0067] The external device IF304 can be connected to any external device such as a printer, scanner, and external HDD. The external device IF304 can be implemented using a USB (Universal Serial Bus) terminal or the like.

[0068] Input IF305 can be connected to any input device 315, such as a keyboard, mouse, touchpad, or gamepad. Input IF305 can be implemented using a USB terminal, PS / 2 terminal, or Bluetooth® module.

[0069] Output IF306 can be connected to any output device 316, such as a cathode ray tube display, liquid crystal display, or organic EL display. Output IF306 can be implemented using a USB terminal, D-sub terminal, DVI (Digital Visual Interface) terminal, HDMI (registered trademark) (High-Definition Multimedia Interface), etc.

[0070] The communication IF307 can be connected to any external device 317, such as a PLC, via a wired or wireless network. The external device 317 may be connected to the external device IF304. The communication IF307 can be implemented using a wired LAN (Local Area Network) port and a Wi-Fi® (Wireless Fidelity) module, etc. The communication IF307 can send and receive data using communication protocols such as TCP / IP (Transmission Control Protocol / Internet Protocol) and UDP (User Datagram Protocol).

[0071] <Data structure>

[0072] Figure 4 shows an example of definition information 210 registered in the device 100. The example in Figure 4 illustrates the concept of definition information 210. In practice, the definition information 210 is stored in the storage unit 202 in any data format. Each definition information 210 includes the number of parts required to realize each mechanism and coupling information indicating the coupling relationship of each part. The coupling information includes information on the direction of coupling and the type of coupling. In the example in Figure 4, arrows indicate coupling information. The part at the tip of the arrow is the parent, and the part at the trailing end of the arrow is the child. The arrow labeled P indicates a linear coupling, and the arrow labeled R indicates a rotational coupling. Each definition information 210 may also include the name of the machine or model. Furthermore, each definition information 210 may include the type or name of the parts that constitute each mechanism. As an example, definition information 210A includes the number of parts and coupling information required to realize a Cartesian robot. Definition information 210A also includes the model name "Cartesian robot" and the type or name of each part "base, X stage, Y stage".

[0073] In the example shown in Figure 4, eight types of definition information 210A to 210H are shown, but this is only one example. The device 100 can store any number of definition information 210 in the storage unit 202. Furthermore, the device 100 can appropriately add new definition information 210 to the storage unit 202 based on user operations.

[0074] Furthermore, each definition information 210 can be associated with a template for the dataset 220. For example, definition information 210A can be associated with a template for a Cartesian robot project. Assume that the USD file imported into the device 100 contains an assembly having part information and coupling information that matches the definition information 210A. In this case, the generation unit 204 can generate a dataset 220 from the assembly based on the template for the Cartesian robot project.

[0075] Figure 5 shows a first example of the structure of a USD file imported into device 100. A USD file may contain one or more 3D objects and the connection relationships of each 3D object. A USD file may also group or associate multiple 3D objects using connection relationships. Each part that makes up an assembly is treated as a 3D object. The connection relationships between parts are treated as connection relationships of 3D objects. An assembly is a grouping or association of multiple 3D objects using connection relationships.

[0076] A USD file may contain one or more parts and one or more assemblies individually. The USD file 500 shown in Figure 5 contains three individual parts 510A, 510B, and 510C, and four assemblies 530A, 530B, 530C, and 530D.

[0077] The acquisition unit 201 acquires the part information and connection information of each assembly contained in the USD file and outputs this part information and connection information to the determination unit 203. The acquisition unit 201 stores individual parts 510A, 510B, and 510C in the storage unit 202 as simple parts or 3D objects. These can be used for creating assemblies, etc.

[0078] The determination unit 203 determines whether each assembly has a mechanism corresponding to one of the definition information 210. In the example in Figure 5, the determination unit 203 determines whether each of assemblies 530A, 530B, 530C, and 530D has a mechanism corresponding to one of the definition information 210. To explain the determination process using assembly 530A as an example, the second component 512 is connected to the first component 511 in a linear motion P manner, and the third component 513 is connected to the second component 512 in a linear motion P manner. This structure corresponds to the definition information 210A. Therefore, the determination unit 203 determines that assembly 530A corresponds to the definition information 210A and outputs the determination result to the generation unit 204.

[0079] The generation unit 204 can generate a dataset 220 from the assembly 530A based on a template linked to the definition information 210A. The generation unit 204 stores the created dataset 220 in the storage unit 202. The generation unit 204 may also output the dataset 220 to the output unit 205. The dataset 220 can be used for applications such as simulation and digital twins via the output unit 205.

[0080] Figure 6 shows a second example of the configuration of a file to be imported into the device 100. The USD file 600 shown in Figure 6 contains the same number of parts and assemblies as USD file 500. USD file 600 further includes one or more links 650 indicating parent-child relationships between parts. One end of link 650 is the parent part, and the other end is the child part. In USD file 600, a link 650 is established between a first part 511 which is the parent and a second part 611 which is the child.

[0081] If a link 650 is set between multiple assemblies, the acquisition unit 201 may treat the multiple assemblies connected by the link 650 as one large assembly. In this case, the acquisition unit 201 outputs the part information and connection information of the large assembly to the acquisition and determination unit 203. The determination unit 203 determines whether the large assembly has a mechanism corresponding to one of the definition information 210. The determination unit 203 outputs the determination result of the large assembly to the generation unit 204. The generation unit 204 generates a dataset 220 including the large assembly.

[0082] If links 650 are set between multiple assemblies, the acquisition unit 201 may output the component information and connection information of individual assemblies, as well as the link 650 information between assemblies, to the acquisition and determination unit 203. The determination unit 203 determines whether the individual assembly has a mechanism corresponding to one of the definition information 210. The determination unit 203 then outputs the determination result for the individual assembly and the link 650 information to the generation unit 204. The generation unit 204 can generate a dataset 220 for each individual assembly and combine these datasets 220 based on the link 650 information.

[0083] Figure 7 shows an example of the import process for assembly 802, which has a predefined mechanism. Referring to Figure 7, the process of generating a dataset 220 containing assemblies that match the definition information 210 will be described.

[0084] Figure 7 shows the data structure of the USD file 20 in Figure 1. The USD file 20 contains each component that makes up the assembly, and information about each component. The information for each component includes individual 3D shape data and prim paths. Although not shown in Figure 7, the USD file 20 also contains information about the connections between each component. The USD file 20 contains information for three components: base 11, X stage 12, and Y stage 13, which are connected in a linear motion format and correspond to definition information 210A.

[0085] The generation unit 204 extracts information contained in the USD file 20 to create a dataset 220. For example, the generation unit 204 can create a dataset 220 by adding the information from the USD file 20 to a template of a data structure associated with the definition information 210A. The information added to the template includes the parts that make up the assembly, information on the connections between each part, and additional information. The additional information includes the type of part, the correspondence between movable parts and variables in the control program, etc. Alternatively, the generation unit 204 can generate a dataset 220 from the USD file 20 according to a predetermined algorithm. That is, the generation unit 204 can generate a dataset by adding appropriate additional information to the assembly by referring to the definition information 210.

[0086] Dataset 220 is represented in a hierarchical structure. In the example in Figure 7, Dataset 220 forms a hierarchy in the order of assembly, each component constituting the assembly, and various information constituting each component. The structure of Dataset 220 shown in Figure 7 is merely an example, and Dataset 220 may have any data structure. In addition to 3D shape data and prim path, Dataset 220 further includes additional information as information for each component. Although not shown in Figure 7, Dataset 220 also includes connection information for each component. The 3D shape data included in Dataset 220 may be identical to the 3D shape data included in USD file 20. Alternatively, the 3D shape data included in Dataset 220 may be data obtained by converting the 3D shape data included in USD file 20 to another format. Furthermore, the 3D shape data included in Dataset 220 may be a STEP file, an IGES file, or any other intermediate file. An intermediate file is a file used to exchange 3D shape data between different programs.

[0087] The additional information includes information for reproducing the operation of the mechanisms included in dataset 200 within the control program development environment. The additional information may include settings for the direction of operation for each component, settings for the range of operation for each component, and settings for variables associated with each component. The additional information may include some or all of the following associated with the component: axis assignment, direction of operation settings, name, display / hide settings, TCP position, rotation center, position, parent, easy operation settings, collision detection settings, Link / Mount points, etc. The additional information may be added to or edited by the user in dataset 220 after the process of generating dataset 220 from USD file 20 or assembly.

[0088] As illustrated in Figure 7, the device 100 can generate a dataset 220 that reproduces the structure of an assembly from an assembly that matches any of the definition information 210 by using templates or the like.

[0089] Figure 8 shows an example of the import process for assembly 802 containing an undefined mechanism. An undefined mechanism is a mechanism that does not match any of the definition information 210. The USD file 800 shown in Figure 8 contains the part information and coupling relationship information 801 of assembly 802. The part information and coupling relationship information 801 do not match any of the definition information 210. Referring to Figure 8, the process of generating a dataset 810 from assembly 802 containing the undefined mechanism will be described. Dataset 810 is an example of a dataset 220 created by exception handling.

[0090] First, the acquisition unit 201 acquires part information and coupling relationship information 801 from the USD file 800 and outputs them to the determination unit 203. The determination unit 203 compares the part information and coupling relationship information 801 with each definition information 210. Then, the determination unit 203 outputs a comparison result to the generation unit 204 indicating that there is no definition information 210 that matches the part information and coupling relationship information 801.

[0091] In this case, the generation unit 204 cannot generate a single dataset 220 from the assembly, as shown in the example in Figure 7. Therefore, the generation unit 204 divides the part information and coupling relationship information 801 into a minimum configuration mechanism. The minimum configuration mechanism is a one-axis linear motion mechanism defined by definition information 210F, and a one-axis rotary mechanism defined by definition information 210G. In the example in Figure 8, the part information and coupling relationship information 801 are divided into mechanisms 812 and 814 representing the one-axis linear motion mechanism, and mechanisms 811 and 813 representing the one-axis rotary mechanism.

[0092] Next, the generation unit 204 creates assemblies 831, 832, 833, and 834, which correspond to mechanisms 811, 812, 813, and 814, respectively. These assemblies are created by copying some of the parts of assembly 802.

[0093] Next, the generation unit 204 creates a data structure 820 that links the identical parts included in these divided mechanisms or assemblies. For example, mechanisms 811 and 812, or assemblies 831 and 832, all contain part A. Therefore, part A of mechanism 811 and part A of mechanism 812 are linked. The data structure 820 corresponds to the hierarchical data structure of the dataset 220 shown in Figure 7, and is configured to include various settings necessary for the development of the control program.

[0094] Through this series of processes, the generation unit 204 can create a dataset 810 that includes assemblies 831, 832, 833, and 834, as well as a data structure 820 that links these assemblies.

[0095] In other words, if there is no definition information 210 indicating the same connection relationship as the connection information contained in the USD file, the generation unit 204 redefines the connection relationship of each of the multiple parts constituting the assembly using one or more definition information 210 of the minimum configuration mechanism registered in the storage unit 202. The generation unit 204 is then configured to generate a dataset 220 that makes one or more of the multiple parts whose connection relationships have been redefined controllable by a control program.

[0096] Figure 9 is a schematic diagram showing an example of links included in data structure 820. Assemblies 831 and 832 both contain part A. Therefore, the generation unit 204 connects part A of assembly 831 with part A of assembly 832 using link 910. Similarly, the generation unit 204 connects part B of assembly 832 with part B of assembly 833 using link 920. In addition, the generation unit 204 connects part B of assembly 832 with part B of assembly 834 using link 930.

[0097] In the example in Figure 9, both assemblies 833 and 834 include part B, but part B in assemblies 833 and 834 is already linked via part B in assembly 832. Therefore, part B in assemblies 833 and 834 does not need to be linked. However, part B in assemblies 833 and 834 may be linked.

[0098] Links have direction, with the part connected to the tip of the link's arrow being the parent, and the part connected to the trailing end of the link's arrow being the child. The parent-child relationship is determined based on the original part information and connection relationship information. To explain using part information and connection relationship information 801 as an example, each part is basically connected sequentially by arrows. The direction the tip of the arrow points is the upstream of the connection relationship, and the part included in the mechanism closer to the upstream is selected as the parent. For example, in mechanisms 811 and 812, mechanism 811 is upstream of mechanism 812. Therefore, assembly 831, which corresponds to mechanism 811, is upstream of assembly 832, which corresponds to mechanism 812. As a result, part A in assembly 831 becomes the parent, and part A in assembly 832 becomes the child.

[0099] In a 3D space such as a simulation or digital twin, linked parts are displayed superimposed. That is, linked parts operate in conjunction with each other. For example, in 3D space, the parts linked in assemblies 831-834 completely overlap. Therefore, when a user observes the 3D space where assemblies 831-834 are located via the display of device 100, it appears as if the original assembly 802 is still present. Also, if part A of assembly 831 rotates, part A of assembly 832 also rotates. Thus, to the user, it appears as if the original assembly 802 is behaving as intended.

[0100] As explained with reference to Figure 9, redefining the coupling relationships of each of the multiple parts constituting an assembly using the definition information of one or more minimal assembly configurations registered in the memory unit 202 includes defining multiple assemblies included in the assembly. The generation unit 204 defines a first assembly consisting of a first part and a second part coupled together, and defines a second assembly consisting of a second part and a third part coupled together. The generation unit 204 is then configured to link the second part included in the first assembly and the second part included in the second assembly so that they overlap and operate in 3D space. For example, the first and second assemblies may correspond to assemblies 831 and 832. In this case, the first to third parts may correspond to part Base, part A, and part B.

[0101] As explained with reference to Figures 8 and 9, when the device 100 imports an assembly containing an undefined mechanism, it divides the assembly into assemblies with the minimum configuration mechanism and links the divided assemblies. In this way, the device 100 can generate a dataset 220 even when an assembly containing an undefined mechanism is imported.

[0102] The device 100 may have a UI for editing a dataset 220 of an assembly that includes an undefined mechanism. Furthermore, suppose that after the dataset 220 of an assembly that includes an undefined mechanism is created, definition information 210 for that assembly is newly registered in the device 100. In this case, the device 100 may reconstruct the dataset 220 of the assembly based on the registered definition information 210.

[0103] <Screen>

[0104] The device 100 is configured to output screens for importing USD files and generating dataset 220, screens for editing dataset 220, and so on. Furthermore, the device 100 is configured to output screens for exporting definition information 210, USD files and dataset 220, and screens corresponding to other arbitrary functions. These screens may be provided as screens for a web application. These screens may also be provided as screens for an application installed on the device 100.

[0105] The screens shown in Figures 10 to 17 may be configured to be transitionable to each other as needed. Furthermore, the screens shown in Figures 10 to 17 may be configured to be transitionable from the main application screen of the device 100.

[0106] Figure 10 shows an example of a series of screens for importing a USD file. Screen 1000 is a screen containing a registration menu 1001 for a new mechanical mechanism, i.e., assembly. Screen 1000 is part of the screen displayed on the display of the device 100. When the registration menu 1001 is selected on screen 1000, screen 1010 is displayed on the display. Screen 1000 may transition to screen 1010, or screen 1010 may be displayed as a pop-up.

[0107] Screen 1010 is for selecting the type of mechanical mechanism to be imported. In other words, screen 1010 is a screen for selecting one of the definition information 210. When the type of mechanical mechanism is selected in the selection menu 1011 on screen 1010 and the import button 1012 is pressed, screen 1020 is displayed on the display. Screen 1010 may transition to screen 1020, or screen 1020 may be displayed as a pop-up. In the example in Figure 10, the XY table (XYθ), i.e., definition information 210D, is selected.

[0108] Screen 1020 is the USD file import screen. When button 1021 is pressed on screen 1020, screen 1030, which displays the files stored in device 100, is displayed on the screen. Screen 1020 may transition to screen 1030, or screen 1030 may be displayed as a pop-up.

[0109] Screen 1030 is the file selection screen. When a USD file is selected on screen 1030 and the Open button 1031 is pressed, screen 1100 (see Figure 11) is displayed and the USD file import process begins.

[0110] Figure 11 shows an example of a screen displaying an imported assembly. Screen 1100 indicates that a USD file is being imported into the device 100. Once the USD file import is complete, screen 1100 disappears from the display and screen 1110 appears. Screen 1110 displays the assembly information 1111 contained in the imported USD file. In reality, the assembly information 1111 is the information of the dataset 220 created during the USD file import process. In the example in Figure 11, the assembly information 1111 includes information on four parts: base, X stage, Y stage, and rotary axis. For example, if one of the parts is selected on screen 1100 and the next button 1112 is pressed, screen 1100 transitions to the settings screen, screen 1200 (see Figure 12).

[0111] Figure 12 shows an example of the settings screen for a component that makes up an imported assembly. Screen 1200 is the settings screen for the component selected in Screen 1110. In the example in Figure 12, Screen 1200 displays the settings information for the X-stage. Item 1201 is an item for adjusting the direction of movement of the component. By manipulating Item 1201, the user can adjust the direction of movement of the X-stage in 3D space. Item 1202 is an item for confirming the movement of the component and setting the movement range. By manipulating Item 1202, the user can set the movement range of the X-stage and move the X-stage in 3D space. Item 1203 is an item for displaying the component in 3D space. By setting Items 1201 and 1202 while referring to Item 1203, the user can visually confirm the movement of the X-stage. When the Next button 1204 is pressed, the X-stage settings are completed, and Screen 1200 transitions to the next settings screen. Screen 1200 may return to screen 1110 or transition to the settings screen for the next component. For example, since four components have been imported on screen 1110, the settings screens for the four components may be displayed in sequence. The items that can be set on screen 1200 correspond to the additional information shown in Figure 7. For example, suppose a linear motion component is displayed on screen 1200. In this case, screen 1200 displays settings for the linear motion component's direction of movement and operating range. Also, suppose a rotary component is displayed on screen 1200. In this case, screen 1200 displays settings for the rotary component's direction of rotation and rotation range.

[0112] Figure 13 shows an example of a screen for assigning controllers and motion axes to movable parts that make up an imported assembly. The parts that make up the assembly include fixed parts and movable parts. Fixed parts are non-moving bases, etc. Movable parts are parts that are connected to other parts in a movable state. For example, the X-stage is a movable part because it is connected to the base so as to be able to move linearly. In the example in Figure 13, screen 1300 displays setting items 1301 for assigning variables to the X-stage, Y-stage, and rotation axis. By manipulating setting items 1301, the user can set the controller that operates each movable part and the motion axis of each part. The controller may be a PLC or a motor driver, etc. For example, when the complete button 1302 is pressed, the assignment settings for the controller and motion axis are completed, and screen 1300 transitions to screen 1110. Screen 1300 may be configured to allow setting of axis assignments, operating direction settings, names, display / hide settings, TCP position, rotation center, position, parent, easy operation settings, collision detection settings, Link / Mount points, etc., associated with parts. The items that can be set on screen 1300 correspond to the additional information shown in Figure 7. For example, suppose that a linear motion part and a rotary part are displayed on screen 1300. In this case, screen 1300 will display the variable setting items corresponding to the linear motion part and the variable setting items corresponding to the rotary part.

[0113] Figure 14 shows an example of a screen displayed when a mismatch is detected between the selected coupling information and the coupling information of the imported parts. If the device 100 finds a mismatch between the type or definition information 210 of the mechanical mechanism selected on screen 1010 and the coupling information between parts defined in the imported USD file, it displays screen 1400 on the display. For example, screen 1400 may be displayed after the USD file import is complete and screen 1100 has disappeared.

[0114] Screen 1400 includes the combined information 1401 of the imported file, the selected combined information 1402, and the suggested information 1403. The combined information 1401 of the imported file shows the combined information between parts defined in the USD file imported into the device 100. The selected combined information 1402 shows the type or definition information 210 of the mechanical mechanism selected on screen 1010. The suggested information 1403 includes information suggesting a re-selection of the type or definition information 210 of the mechanical mechanism. The user can re-select the correct combined information by following the suggested information 1403.

[0115] Figure 15 shows an example of a screen displayed when the import of an assembly containing an undefined mechanism is detected. When the device 100 detects the import of a USD file containing binding information that does not match any of the definition information 210, it displays screen 1500 on the display. For example, screen 1500 may be displayed on the display after the USD file import is complete and screen 1100 has disappeared.

[0116] Screen 1500 includes the combined information 1501 of the imported file, the selected combined information 1502, and the suggested information 1503. The combined information 1501 of the imported file shows the combined information between parts defined in the USD file imported into the device 100. The selected combined information 1502 shows the type or definition information 210 of the mechanical mechanism selected on screen 1010. The suggested information 1503 includes information suggesting that the assembly contained in the imported USD file be divided into its minimum configuration and imported. By following the suggested information 1503, the user can import an assembly containing an undefined mechanism into the device 100, as described with reference to Figures 8 and 9.

[0117] Figure 16 shows an example of a screen displayed when the import of an assembly matching multiple machine types is detected. Different machines may have the same mechanism. For example, air cylinders may be implemented in different ways, such as single solenoids and double solenoids. However, since both air cylinders are of the linear type, the coupling information for these machines is contained in definition information 210F. In such cases, definition information 210F is associated with multiple machine types (single solenoid, double solenoid). Therefore, depending on the imported USD file or assembly, it may match multiple machine types.

[0118] If the imported USD file or assembly matches multiple models, the device 100 displays a screen 1600 for selecting a model. Screen 1600 includes a model selection item 1601. The model names displayed in the selection item 1601 are the names of multiple models or machines associated with the same definition information 210. The user can import the assembly into the device 100, associated with the appropriate model, by selecting the desired model from the selection item 1601.

[0119] Figure 17 shows an example of a series of screens for exporting a USD file. Screen 1700 is a screen that includes the USD file export menu 1701. Screen 1700 may, for example, be implemented as a menu screen for screen 1110, which displays information about dataset 220. When the export menu 1701 is selected on screen 1700, screen 1710 is displayed on the display. Screen 1700 may transition to screen 1710, or screen 1710 may be displayed as a pop-up.

[0120] Screen 1710 is for determining the save location and file name of the exported USD file. After the save location and file name have been determined, when the save button 1711 is pressed, the export of the USD file begins and screen 1720 is displayed on the display. Screen 1710 may transition to screen 1720, or screen 1720 may be displayed as a pop-up. Screen 1720 is a screen that indicates that the USD file is being exported. Device 100 may generate and output a USD file from the dataset 220. When importing a USD file, device 100 may store the USD file corresponding to the dataset 220 in the storage unit 202. In this case, device 100 can directly export the USD file in the storage unit 202. When the USD file export process is complete, screen 1730 indicating the completion of the export process is displayed on the display.

[0121] The device 100 may generate a USD file from the assembly dataset 220 displayed on screen 1110. The device 100 may be configured to display a screen for selecting the dataset 220 from which the USD file will be derived. In this case, the device 100 generates a USD file from the selected dataset 220.

[0122] Thus, the device 100 can also create and output a USD file from the dataset 220. Furthermore, the device 100 may similarly export the definition information 210 and the dataset 220. When exporting the definition information 210 and the dataset 220, the device 100 may display a screen on the display for the export process of these files. This allows the device 100 to share the USD file, definition information 210, and dataset 220 among multiple operators.

[0123] Furthermore, the device 100 includes an output unit 205 capable of outputting the data set 220 imported into the device 100 to other devices. For example, the output unit 205 can output the data set 220 to the simulator 110 or the digital twin environment 130. The output unit 205 can also output the control program associated with the data set 220 to the emulator 120 or the control device 140. The user can refer to the operation of the simulator 110 and the emulator 120 to check for any defects in the control program and line design. The user can also refer to the digital twin environment 130 to perform maintenance and management of the line in operation.

[0124] <Processing Procedure>

[0125] Next, with reference to Figures 18 and 19, the procedure for the device 100 to import a USD file will be described. The processor 301 may import a program for performing the operations shown in Figures 18 and 19 from storage 303 into memory 302 and execute the program. Some or all of the operations may also be implemented as a combination of circuit elements configured to perform the operations. The following steps may be performed in any order.

[0126] Figure 18 shows an example of the file import process in device 100. In step S1800, device 100 creates a new dataset 220 based on the user's input. At this point, the dataset 220 is a template corresponding to one of the registered definition information 210.

[0127] In step S1810, the device 100 imports the USD file based on the user's input. The device 100 also accepts selection input for definition information 210 from the user. This selection input corresponds to the selection of the mechanism type in the selection menu 1011 in Figure 11. The device 100 may receive the USD file from another device. The device 100 may read the USD file from local storage or a storage medium connected to the device 100.

[0128] In step S1820, the device 100 retrieves all the parts contained in the USD file. Using the USD file 20 in Figure 1 as an example, the device 100 retrieves parts 30B, 30X, and 30Y.

[0129] In step S1830, the device 100 acquires all the combined information contained in the USD file. Using the USD file 20 in Figure 1 as an example, the device 100 acquires combined information 41 and 42.

[0130] In step S1840, the device 100 determines whether the assembly mechanism in the USD file matches the mechanism of the selected definition information 210. If the device 100 determines that the assembly mechanism in the USD file matches the mechanism of the selected definition information 210 (YES in step S1840), it transfers control to step S1850. Otherwise (NO in step S1840), the device 100 transfers control to step S1870. To explain this step using the USD file 20 in Figure 1 as an example, the device 100 determines that the assembly mechanism included in the USD file matches the definition information 210A.

[0131] In step S1850, the device 100 automatically assigns each component in the USD file to the dataset 220. Using the USD file 20 in Figure 1 as an example, the device 100 automatically assigns the data for components 30B, 30X, and 30Y to the template corresponding to the definition information 210. The processing in this step is part of the generation process shown in Figure 7.

[0132] In step S1860, the device 100 automatically determines the direction of movement for each component included in the dataset 220. Using the USD file 20 in Figure 1 as an example, the device 100 determines the direction of movement for each component 30B, 30X, and 30Y based on the coupling information 41 and 42. The device 100 may also determine whether each component is a movable component or not. For example, component 30B is a fixed component, while components 30X and 30Y are movable components.

[0133] In step S1870, the device 100 performs exception handling. Exception handling will be explained with reference to Figure 19. In step S1880, the device 100 outputs a dataset 220 based on the acceptance of user input. More specifically, the device 100 may output the dataset 220 to the simulator 110 or the digital twin environment 130. The device 100 may also output a control program corresponding to an assembly in the dataset 220 to the emulator 120 or the control device 140.

[0134] Figure 19 shows an example of exception handling. In step S1900, the device 100 determines whether the assembly mechanism in the USD file matches the mechanism of any of the definition information 210. More specifically, the processing in this step determines whether the assembly mechanism in the USD file matches any of the other definition information 210, excluding the definition information 210 selected in step S1810. If the device 100 determines that the assembly mechanism in the USD file matches the mechanism of any of the definition information 210 (YES in step S1900), it transfers control to step S1910. Otherwise (NO in step S1900), the device 100 transfers control to step S1930.

[0135] In step S1910, the device 100 displays a first warning screen. The first warning screen corresponds to screen 1400. In other words, the device 100 presents information indicating that the user has selected incorrect definition information 210.

[0136] In step S1920, the device 100 selects another definition information 210 based on the user's input. Then, based on the other definition information 210, the device 100 executes the processes corresponding to steps S1850 to S1870 to create a dataset 220.

[0137] In step S1930, the device 100 outputs a second warning screen. The second warning screen corresponds to screen 1500. In other words, the device 100 presents information indicating that there is no definition information 210 corresponding to the assembly in the USD file.

[0138] In step S1940, based on the user's input, the device 100 divides the assembly mechanism in the USD file into its minimum configuration. In step S1950, the device 100 imports each mechanism obtained by the division into the device 100. In step S1960, the device 100 links each mechanism based on its parent-child relationships and includes these mechanisms in the dataset 220. The processes from steps S1940 to S1960 correspond to the processes described with reference to Figures 8 and 9.

[0139] As explained with reference to Figures 18 and 19, the computer device 100 can generate a dataset 220 from the assembly contained in the USD file by executing a program. That is, the program causes the device 100 to retrieve a file created in OpenUSD format. The file contains 3D shape data for each of the multiple parts that make up the assembly, and coupling information indicating the coupling relationships between the multiple parts. The program further causes the device 100 to refer to each of the multiple mechanism definition information 210 that has been pre-registered in the device 100. Each of the multiple mechanism definition information 210 includes coupling relationships between the parts that make up each of the multiple mechanisms and is associated with additional information corresponding to each of the multiple mechanisms. The additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment. The program further causes the device 100 to determine whether definition information 210 showing the same connection relationship as the file connection information exists among the definition information 210 of multiple mechanisms, and if definition information 210 showing the same connection relationship as the connection information exists, to generate a dataset 220 that can be used in the control program development environment based on multiple parts, the connection relationships of multiple parts, and additional information.

[0140] As described above, the device 100 according to this embodiment analyzes a USD file containing multiple parts constituting an assembly and the relationships between each part. This allows the device 100 to generate a dataset from the assembly. Furthermore, the device 100 can refer to the relationship information contained in the USD file to determine the operating direction and range of each part in the dataset, and to set controllers, motion axes, and variables for each part. This allows control designers to develop control programs without manually importing assemblies and creating datasets. As a result, the device 100 can significantly reduce the workload of control designers.

[0141] <Note>

[0142] As described above, this embodiment includes the following disclosures. [Configuration 1] It includes an acquisition unit that acquires a file created in OpenUSD format, and the file includes 3D shape data of each of the multiple parts constituting the assembly and coupling information indicating the coupling relationship of the multiple parts. It comprises a memory unit that stores definition information for each of the multiple mechanisms, each of the definition information for the multiple mechanisms includes the coupling relationships between the components constituting each of the multiple mechanisms, and is associated with additional information corresponding to each of the multiple mechanisms, and the additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment. A determination unit that determines whether or not definition information showing the same coupling relationship as the above coupling information of the above file exists among the definition information of the above multiple mechanisms, The apparatus comprises a generation unit that generates a dataset usable in the development environment of the control program based on the plurality of components, the coupling relationships of the plurality of components, and the additional information, if definition information showing the same coupling relationship as the above coupling information exists. [Configuration 2] The apparatus according to Configuration 1, wherein, if no definition information exists that shows the same coupling relationship as the coupling information, the generation unit is configured to redefine the coupling relationship of each of the multiple components constituting the assembly using definition information of one or more minimal configuration mechanisms registered in the storage unit, and to generate a dataset that makes one or more of the multiple components whose coupling relationships have been redefined controllable from the control program. [Configuration 3] Redefining the coupling relationships of each of the multiple components constituting the assembly using the definition information of the one or more minimum configuration mechanisms registered in the above storage unit includes defining multiple assemblies included in the assembly. The above generation unit is, Define a first assembly consisting of a first part and a second part joined together, Define a second assembly consisting of the second and third parts connected to each other, The apparatus according to configuration 2, wherein the second part included in the first assembly and the second part included in the second assembly are linked so that they overlap and operate in 3D space. [Structure 4] The apparatus according to any one of configurations 1 to 3, further comprising an output unit that outputs the control program corresponding to the above dataset to a line control device or an emulator of the above control device. [Composition 5] The apparatus according to any one of configurations 1 to 3, further comprising an output unit that outputs the control program corresponding to the above dataset to a control device for a line including the above assembly reproduced in a digital twin environment. [Composition 6] The apparatus according to any one of configurations 1 to 3, further comprising an output unit that outputs the above dataset imported into the above apparatus to a simulator or digital twin environment. [Composition 7] A method performed by a computer, the above method is The method includes obtaining a file created in OpenUSD format, wherein the file includes 3D shape data for each of the multiple parts constituting the assembly and coupling information indicating the coupling relationships between the multiple parts, and the method further includes This includes referring to each of the definition information of multiple mechanisms that are pre-registered in the computer, each of the definition information of multiple mechanisms includes the coupling relationships between the components constituting each of the multiple mechanisms, and is associated with additional information corresponding to each of the multiple mechanisms, and the additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment. The above method further, To determine whether or not definition information showing the same coupling relationship as the above coupling information in the above file exists among the definition information of the above multiple mechanisms, A method comprising generating a dataset usable in the development environment of the control program based on the multiple components, the coupling relationships between the multiple components, and the additional information, if definition information exists that shows the same coupling relationship as described above. [Structure 8] A program executed by a computer, the above program is The computer is instructed to retrieve a file created in OpenUSD format, the file containing 3D shape data for each of the multiple parts constituting the assembly, and coupling information indicating the coupling relationships between the multiple parts, each of the multiple parts being a 3D object, and the program further... The computer is instructed to refer to each of the definition information of multiple mechanisms that are pre-registered in the computer, each of the definition information of multiple mechanisms includes the coupling relationships between the components that constitute each of the multiple mechanisms, and is associated with additional information corresponding to each of the multiple mechanisms, and the additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment, and the program further... To determine whether or not definition information showing the same coupling relationship as the above coupling information in the above file exists among the definition information of the above multiple mechanisms, A program that, if definition information exists that shows the same coupling relationship as the above coupling information, causes the computer to generate a dataset usable in the development environment of the control program based on the above-mentioned multiple components, the coupling relationships between the above-mentioned multiple components, and the above-mentioned additional information.

[0143] The embodiments disclosed herein should be considered in all respects as illustrative and not restrictive. The scope of this disclosure is indicated by the claims rather than the foregoing description, and all modifications are intended to be equivalent to the claims. Furthermore, the disclosures described in the embodiments and each variation are intended to be implemented, as far as possible, individually or in combination. [Explanation of Symbols]

[0144] 10, 530A, 530B, 530C, 530D, 802, 831, 832, 833, 834 Assembly, 11 Base, 12 X Stage, 13 Y Stage, 20, 500, 600, 800 USD File, 30B, 30X, 30Y, 510A, 510B, 510C Parts, 41, 42, 1401, 1402, 1501, 1502 Combination Information, 100 Device, 110 Simulator, 120 Emulator, 130 Digital Twin Environment, 140 Control Device, 201 Acquisition Unit, 202 Storage Unit, 203 Determination Unit, 204 Generation Unit, 205 Output Unit, 210, 210A, 210B, 210C, 210D, 210E, 210F, 210G, 210H Definition information, 220,810 Dataset, 301 Processor, 302 Memory, 303 Storage, 304 External device IF, 305 Input IF, 306 Output IF, 307 Communication IF, 308 Bus, 315 Input device, 316 Output device, 317 External device, 511 First component, 512,611 Second component, 513 Third component, 650,910,920,930 Link, 801 Coupling relationship information, 811,812,813,814 Mechanism, 820 Data structure, 1000,1010,1020,1030,1100,1110,1200,1300,1400,1500,1600,1700,1710,1720,1730 Screen, 1001 Registration menu, 1011 Selection menu, 1012 Import button, 1021 Button, 1031 Open button, 1111 Assembly information, 1112, 1204 Next button, 1201, 1202, 1203 Items, 1301 Settings item, 1302 Finish button, 1403, 1503 Suggestion information, 1601 Selection item, 1701 Export menu, 1711 Save button.

Claims

1. It includes an acquisition unit that acquires a file created in OpenUSD (Universal Scene Description) format, and the file includes 3D shape data of each of the multiple parts constituting the assembly and coupling information indicating the coupling relationship of the multiple parts. It comprises a storage unit for storing definition information for each of a plurality of mechanisms, each of the definition information for the plurality of mechanisms includes the coupling relationships between the components constituting each of the plurality of mechanisms, and is associated with additional information corresponding to each of the plurality of mechanisms, and the additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment, A determination unit that determines whether or not definition information showing the same coupling relationship as the coupling information of the aforementioned file exists among the definition information of the plurality of mechanisms, The apparatus includes, if definition information exists that shows the same coupling relationship as the coupling information, a generation unit that generates a dataset usable in the development environment of the control program based on the plurality of components, the coupling relationships of the plurality of components and the additional information.

2. The apparatus according to claim 1, wherein the generation unit is configured to, if no definition information indicating the same coupling relationship as the coupling information exists, redefine the coupling relationship of each of the plurality of parts constituting the assembly using definition information of one or more minimal configuration mechanisms registered in the storage unit, and generate a dataset to make one or more of the plurality of parts whose coupling relationships have been redefined controllable from the control program.

3. Redefining the coupling relationships of each of the multiple components constituting the assembly using the definition information of the one or more minimum configuration mechanisms registered in the storage unit includes defining the multiple assemblies included in the assembly. The generating unit is Define a first assembly consisting of a first part and a second part joined together, A second assembly is defined, which consists of the second and third parts joined together. The apparatus according to claim 2, wherein the second component included in the first assembly and the second component included in the second assembly are linked to each other so as to operate in overlapping 3D space.

4. The apparatus according to any one of claims 1 to 3, further comprising an output unit that outputs the control program corresponding to the dataset to a line control device or an emulator of the control device.

5. The apparatus according to any one of claims 1 to 3, further comprising an output unit that outputs the control program corresponding to the dataset to a control device for a line including the assembly reproduced in a digital twin environment.

6. The apparatus according to any one of claims 1 to 3, further comprising an output unit for outputting the dataset imported into the apparatus to a simulator or digital twin environment.

7. A method performed by a computer, the method is The method includes obtaining a file created in OpenUSD format, wherein the file includes 3D shape data for each of a plurality of parts constituting an assembly and coupling information indicating the coupling relationship of the plurality of parts, and the method further includes This includes referring to each of the definition information of a plurality of mechanisms that are registered in the computer in advance, each of the definition information of a plurality of mechanisms includes the coupling relationships between the components constituting each of the plurality of mechanisms, and is associated with additional information corresponding to each of the plurality of mechanisms, and the additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment, The above method further, To determine whether or not definition information indicating the same coupling relationship as the coupling information of the aforementioned file exists among the definition information of the multiple mechanisms, A method comprising, if definition information exists that shows the same coupling relationship as the coupling information, generating a dataset usable in the development environment of the control program based on the plurality of components, the coupling relationships of the plurality of components, and the additional information.

8. A program executed by a computer, wherein the program is The program causes the computer to retrieve a file created in OpenUSD format, the file containing 3D shape data for each of the multiple parts constituting the assembly and coupling information indicating the coupling relationship between the multiple parts, and the program further: The computer is instructed to refer to each of the definition information of a plurality of mechanisms that has been registered in the computer in advance, each of the definition information of a plurality of mechanisms includes the coupling relationships between the components constituting each of the plurality of mechanisms and is associated with additional information corresponding to each of the plurality of mechanisms, the additional information includes information for reproducing the operation of the corresponding mechanism in the control program development environment, and the program further, To determine whether or not definition information indicating the same coupling relationship as the coupling information of the aforementioned file exists among the definition information of the multiple mechanisms, A program that, if definition information exists that shows the same coupling relationship as the coupling information, causes the computer to generate a dataset usable in the development environment of the control program based on the plurality of components, the coupling relationships of the plurality of components, and the additional information.