Support device, support method and program

The support device addresses the limitations of dedicated tools and rigid folder structures by enabling easy file distinction and management using general-purpose applications, improving editing efficiency and flexibility in FA systems.

JP2025174110APending Publication Date: 2025-11-28OMRON CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024080180
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-16
Publication Date
2025-11-28

AI Technical Summary

Technical Problem

Existing support devices for FA systems either require dedicated tools for editing integrated projects, limiting user flexibility, or when projects are divided into multiple files, users cannot easily classify or distinguish between these files due to predefined folder structures.

Method used

A support device that generates folders with a hierarchical structure and allows users to edit files using general-purpose applications, ignoring non-compliant subfolders and integrating files based on predefined rules to facilitate easy distinction and classification.

Benefits of technology

Enables users to easily distinguish and manage multiple project files using general-purpose tools, enhancing editing efficiency and flexibility by allowing arbitrary folder organization and automatic file integration.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025174110000001_ABST
    Figure 2025174110000001_ABST
Patent Text Reader

Abstract

To provide an environment in which a user can easily distinguish a plurality of files constituting a project.SOLUTION: A support device includes an import unit that executes an import of a project corresponding to a folder in accordance with a received import instruction that designates the folder. The import of the project includes: extracting a plurality of sub folders according to a rule in the folder; and generating a project by integrating the plurality of files contained in the plurality of sub folders. Extracting the plurality of sub folders includes: ignoring the subfolder that does not follow the rule in the folder.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a support device, a support method, and a program. [Background technology]

[0002] Factory automation (FA) systems that automate production processes are widespread in various production sites. FA systems include various industrial devices and control devices that control the devices. Support devices that support the development of user programs executed by control devices are known. Support devices manage projects, which are collections of data related to user programs and control device configuration information. For example, Japanese Patent Application Laid-Open Publication No. 2016-224557 (Patent Document 1) discloses a support device that manages a project as a single integrated file or that manages a project by dividing it into multiple files. When a project is divided into multiple files for management, the multiple files include text files that can be edited with a general-purpose text editor. This allows a user to edit the text files that make up the project using a general-purpose text editor rather than a dedicated tool for editing projects. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2016-224557 Summary of the Invention [Problem to be solved by the invention]

[0004] When a project is managed as a single integrated file, the integrated file can only be edited using a dedicated tool, and therefore users of the support device cannot edit the integrated file using a general-purpose application.

[0005] On the other hand, when a project is divided into multiple files and managed, the user of the support device can edit the files using a general-purpose application. However, each of the multiple files that make up the project is usually placed in one of multiple folders with a unique folder structure defined by the developer of the support device. Therefore, the user of the support device cannot classify the multiple files by arbitrary folders, making it difficult to distinguish between the multiple files.

[0006] The present disclosure has been made in consideration of the above-mentioned problems, and its purpose is to provide a support device, a support method, and a program that can provide an environment in which a user can easily distinguish between multiple files that make up a project. [Means for solving the problem]

[0007] According to an example of the present disclosure, a support device provides a development environment for a user program executed by a control device. The support device includes an editing unit that edits a project, which is a collection of data related to the user program and configuration information of the control device; an export unit that generates a first folder corresponding to the first project in response to an export instruction for the first project; and an import unit that imports a second project corresponding to the second folder in response to an import instruction specifying a second folder. Generating the first folder includes dividing the first project into multiple first files that can be edited by a general-purpose application, generating multiple first subfolders in the first folder according to rules that define a hierarchical structure and folder names, and placing each of the multiple first files in one of the multiple first subfolders. Importing the second project includes extracting multiple second subfolders from the second folder that comply with the rules, and generating a second project by integrating the multiple second files contained in the multiple second subfolders. Extracting the multiple second subfolders includes ignoring a third subfolder in the second folder that does not comply with the rules.

[0008] According to this disclosure, a user can insert a subfolder that does not follow the rules into a second folder. This allows the user to easily distinguish between multiple second files in the second folder using the inserted subfolder. In this way, the support device can provide an environment in which the user can easily distinguish between multiple files that make up a project.

[0009] In the above disclosure, generating the second project includes ignoring a third file that is directly contained in a third subfolder.

[0010] According to this disclosure, a user can place any file in the third subfolder of the second folder. For example, the user can insert a file containing comments or other information useful for editing. Alternatively, the user can place a file that constitutes another project as reference information in the third subfolder. As a result, the user can efficiently proceed with editing.

[0011] In the above disclosure, generating a second project includes identifying missing parts that are differences between the collection of data related to the above user program and control device setting information and the multiple second files, and adding default data for the missing parts to the multiple second files.

[0012] According to this disclosure, a user can easily create another project that uses a user program of a certain project, for example, by inputting an import instruction into a support device that specifies a folder that contains only files related to the user program of that project.

[0013] In the above disclosure, generating the second project includes generating second data based on the first data and adding the second data to the plurality of second files in response to the plurality of second files including first data that constitutes a data pair and the plurality of second files not including the second data that constitutes a data pair.

[0014] According to this disclosure, the user can avoid the task of editing the file to add the second data.

[0015] According to an example embodiment of the present disclosure, a method for supporting development of a user program executed on a control device includes: a processor editing a project, which is a collection of data related to the user program and configuration information of the control device; a processor generating a first folder corresponding to the first project in response to an export instruction for the first project; and a processor importing a second project corresponding to the second folder in response to an import instruction specifying a second folder. Generating the first folder includes dividing the first project into a plurality of first files editable by a general-purpose application; generating a plurality of first subfolders in the first folder according to rules defining a hierarchical structure and folder names; and placing each of the plurality of first files in one of the plurality of first subfolders. Importing the second project includes extracting a plurality of second subfolders from the second folder according to the rules; and generating a second project by integrating the plurality of second files contained in the plurality of second subfolders. Extracting the plurality of second subfolders includes ignoring a third subfolder in the second folder that does not follow the rules.

[0016] According to yet another example of the present disclosure, a program causes a computer to execute the support method described above. These disclosures also enable the support method and program to provide an environment in which a user can easily distinguish between multiple files that make up a project. [Effects of the Invention]

[0017] According to the present disclosure, a support device, a support method, and a program can provide an environment in which a user can easily distinguish between multiple files that make up a project. [Brief explanation of the drawings]

[0018] [Figure 1] FIG. 1 is a diagram illustrating an example of a system including a support device according to an embodiment. [Figure 2] 10 is a flowchart illustrating an example of the flow of an export process. [Figure 3] 10 is a flowchart illustrating an example of the flow of an import process. [Figure 4] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a support device. [Figure 5] FIG. 10 is a diagram illustrating an example of definition information. [Figure 6] FIG. 10 is a diagram illustrating a first process performed by an import unit. [Figure 7] FIG. 10 is a diagram illustrating a second process performed by an import unit. [Figure 8] FIG. 10 is a diagram illustrating a third process performed by an import unit. [Figure 9] FIG. 10 is a diagram illustrating an example of use of a support device. [Figure 10] FIG. 10 is a diagram illustrating an example of using a rename tool. [Figure 11] FIG. 10 illustrates an example of how a file comparison tool is used. [Figure 12] FIG. 1 is a diagram illustrating an example of using a generative AI tool. [Figure 13] FIG. 10 is a diagram illustrating an example of using the import function of a support device. [Figure 14] FIG. 10 is a diagram illustrating another example of use of the import function of the support device. DETAILED DESCRIPTION OF THE INVENTION

[0019] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present disclosure will be described in detail with reference to the accompanying drawings. In the drawings, the same or corresponding parts are designated by the same reference numerals and the description thereof will not be repeated.

[0020] §1 Application Examples 1 is a diagram illustrating an example of a system including a support device according to an embodiment. The system 1 shown in FIG. 1 includes a support device 100 and one or more control devices 200.

[0021] The control device 200 is connected to a group of field devices including one or more devices 6 via a field bus. Furthermore, the control devices 200 are connected to each other via a local network. The control device 200 is configured to be connectable to the support device 100.

[0022] The control device 200 is embodied as a computer such as a PLC (Programmable Logic Controller). The control device 200 executes a user program 210 based on input values ​​from a group of field devices, performs control calculations for controlling the device 6, and outputs output values ​​of the calculation results to the device 6. The output values ​​include command values. The device 6 includes devices such as sensors that collect state values ​​of manufacturing equipment, production lines, etc. related to the control as input values. The device 6 may also include devices such as output relays, contactors, servo drivers, servo motors, and any other actuators that perform some kind of action on the production line, etc., in accordance with the command values. The device 6 exchanges data including input values ​​and output values ​​with the control device 200 via a network.

[0023] The support device 100 includes, for example, a notebook or desktop PC (Personal Computer), a tablet terminal, a smartphone, or any other information processing device. The support device 100 provides a development environment for a user program 210. As shown in FIG. 1 , the support device 100 includes an editing unit 10, an export unit 11, and an import unit 12.

[0024] The editing unit 10 edits a project, which is a collection of data related to the user program 210 and setting information of the control device 200. The editing unit 10 provides a user interface and edits the project in accordance with input to the user interface. The project is edited to become a consistent collection of data.

[0025] In response to receiving an export instruction (hereinafter also referred to as a "first export instruction") for a project (hereinafter referred to as a "first project") edited by the editing unit 10, the export unit 11 generates a folder 31 corresponding to the first project. The folder 31 is an example of a "first folder" in the present disclosure.

[0026] In response to receiving an import instruction specifying the folder 41, the import unit 12 imports a project (hereinafter referred to as a "second project") corresponding to the folder 41. This allows the editing unit 10 to edit the second project. The folder 41 is an example of a "second folder" in the present disclosure.

[0027] The flow of export processing will be described with reference to Figures 1 and 2. Figure 2 is a flowchart showing an example of the flow of export processing.

[0028] In step S1, the export unit 11 determines whether or not an export instruction for the first project (first export instruction) has been received. If an export instruction has not been received (NO in step S1), the process returns to step S1.

[0029] If an export instruction (first export instruction) is received (YES in step S1), the process proceeds to step S2. The user specifies a save location when inputting the export instruction. In step S2, the export unit 11 creates a folder 31 corresponding to the first project in the specified save location.

[0030] In the next step S3, the export unit 11 divides the first project into a plurality of files 34 that can be edited by a general-purpose application. The export unit 11 divides the first project into the plurality of files 34 for each predetermined unit. The files 34 are an example of a "first file" in the present disclosure. In the example shown in FIG. 1, the plurality of files 34 include files 34a and 34b.

[0031] In the next step S4, the export unit 11 generates multiple subfolders 32 in the folder 31 according to a rule (hereinafter referred to as the "first rule") that defines a hierarchical structure and folder names. In the example shown in FIG. 1, the multiple subfolders 32 include subfolders 32a, 32b1, and 32b2. The first rule is determined in advance by the developer of the support device 100. The subfolder 32 is an example of the "first subfolder" of the present disclosure.

[0032] In the next step S5, the export unit 11 places each of the multiple files 34 in one of the multiple subfolders 32. In the example shown in FIG. 1, a file 34a having the file name "DataTypeComments.tsv" is placed in a subfolder 32b1 having the folder name "BBB.DataTypes." Each file 34 is placed in one of the multiple subfolders 32 in accordance with a rule (hereinafter referred to as a "second rule") that defines the placement of the files. The second rule is determined in advance by the developer of the support device 100. After step S5, the export process ends.

[0033] The functionality of the editing unit 10 is limited depending on the development costs of the support device 100. Therefore, a user may want to edit a project using functionality that the editing unit 10 does not have. In such a case, the user can export the project being edited and edit the output files 34 using a general-purpose application that has the desired functionality. The user can then enter an import command specifying a folder containing the edited files. This allows the user to efficiently proceed with the project editing process.

[0034] The flow of the import process will be described with reference to Figures 1 and 3. Figure 3 is a flowchart showing an example of the flow of the import process.

[0035] In step S11, the import unit 12 determines whether or not an import instruction specifying a folder has been received. If an import instruction has not been received (NO in step S11), the process returns to step S11.

[0036] If an import instruction is received (YES in step S11), the process proceeds to step S12. In step S12, the import unit 12 extracts multiple subfolders 42 from the specified folder 41 in accordance with the first rule. The subfolders 42 are an example of a "second subfolder" in the present disclosure. In the example shown in FIG. 1, the multiple subfolders 42 include subfolders 42a, 42b1, and 42b2.

[0037] In step S12, the import unit 12 ignores subfolders 43 in folder 41 that do not conform to the first rule. Subfolders 43 are folders that do not have folder names defined by the first rule. In the example shown in FIG. 1, subfolders 43a and 43b exist as subfolders 43 that do not conform to the first rule. Specifically, subfolder 43a having the folder name "MyModule1" exists between subfolder 42a having the folder name "AAA.Controller" and subfolder 42b1 having the folder name "BBB.DataTypes." Therefore, the import unit 12 ignores subfolder 43a and considers subfolder 42b1 to exist as a child folder of subfolder 42a. Similarly, subfolder 43b having the folder name "MyModule2" exists between subfolder 42a and subfolder 42b2 having the folder name "CCC.LadderProgram." Therefore, the import unit 12 ignores the subfolder 43b and considers that the subfolder 42b2 exists as a child folder of the subfolder 42a.

[0038] In the next step S13, the import unit 12 generates a second project by integrating multiple files 44 contained in multiple subfolders 42. The files 44 are an example of a "second file" in the present disclosure. In the example shown in FIG. 1, the multiple files 44 include files 44a and 44b. The second project can be a target for editing by the editing unit 10. After step S12, the import process ends.

[0039] As described above, in step S12, subfolders 43 that do not conform to the first rule are ignored. Therefore, the user can freely insert subfolders 43 that do not conform to the first rule into folder 41. For example, as shown in FIG. 1, the user inserts subfolder 43a with the folder name "MyModule1" directly above subfolder 42b1 with the folder name "BBB.DataTypes." This allows the user to easily recognize that the files 44 included in subfolder 42b1 are related to the module identified by the folder name "MyModule1." As a result, the user can easily distinguish between the multiple files 44 that make up the second project. In this way, the support device 100 according to this embodiment can provide an environment in which the user can easily distinguish between the multiple files that make up a project.

[0040] §2 Specific examples <Hardware configuration of the supported device> The hardware configuration of the support device 100 will be described with reference to Fig. 4. Fig. 4 is a schematic diagram showing an example of the hardware configuration of the support device.

[0041] The support device 100 is, for example, a computer configured according to a general-purpose computer architecture. The support device 100 includes a processor 102 including a CPU (Central Processing Unit) or MPU (Micro-Processing Unit), an R / W (reader / writer) 103 to which an optical disk 105 such as a CD-ROM (Compact Disc Read Only Memory) is removably attached, a main memory 104, a communication interface 111, an I / O (Input / Output) interface 114, a display interface 117, and a non-volatile storage device 120. These components are connected to each other via an internal bus 125 so as to be able to communicate with each other. The main memory 104 includes RAM (Random Access Memory) and the like. The storage device 120 includes HDD (Hard Disk Drive) and SSD (Solid State Drive) and the like. The R / W 103 accesses the attached optical disk 105 based on commands from the processor 102. In FIG. 4, the optical disc 105 is shown as an example of an external storage medium, but the present invention is not limited to this and other storage media such as a USB memory may also be used.

[0042] The processor 102 loads the development support program 60 stored in the storage device 120 into the main memory 104 and executes it, thereby activating a development tool for the user program 210 (see FIG. 1) and providing a development environment. The editing unit 10, export unit 11, and import unit 12 shown in FIG. 1 are realized by the processor 102 executing the development support program 60.

[0043] Furthermore, the storage device 120 stores one or more general-purpose applications 50 and definition information 70 .

[0044] The one or more general-purpose applications 50 include, for example, a collaboration tool, a word processing application, a spreadsheet application, a file comparison application, a generative AI tool, a source code editor, a renaming tool, a version control tool, etc. The support device 100 may use some or all of the one or more general-purpose applications 50 as cloud services. In this case, some or all of the one or more general-purpose applications 50 are not stored in the storage device 120.

[0045] The definition information 70 indicates a first rule that defines the hierarchical structure and folder names, and a second rule that defines the arrangement of files.

[0046] The communication interface 111 exchanges data with other communication devices via a network. These other communication devices include, for example, the control device 200 and device 6 shown in FIG. 1 , as well as a server (not shown). The support device 100 may be configured to be able to download various programs, such as the development support program 60, from these other communication devices via the communication interface 111.

[0047] The I / O interface 114 is connected to the operation unit 115 and receives signals indicating user operations from the operation unit 115. The operation unit 115 is typically configured to be able to accept operations from a user and includes a keyboard, a mouse, a touch panel, a touch pad, etc. The operation unit 115 may be configured integrally with the support device 100 or may be configured separately from the support device 100.

[0048] The display interface 117 is connected to the display unit 118, and sends an image signal for displaying an image to the display unit 118 in accordance with a command from the processor 102. The display unit 118 is configured with an LCD (Liquid Crystal Display), an organic EL (Electro Luminescence) display, or the like, and presents various information to the user. The display unit 118 may be configured integrally with the support device 100, or may be configured separately from the support device 100.

[0049] While FIG. 4 shows an example of a configuration in which the necessary functions are provided by the processor 102, such as a CPU, executing a program, some or all of these provided functions may be implemented using dedicated hardware circuits (e.g., an Application Specific Integrated Circuit (ASIC) or a Field-Programmable Gate Array (FPGA)). In this case, virtualization technology may be used to run multiple operating systems (OSs) for different purposes in parallel, and required applications may be executed on each OS. Furthermore, the above description has exemplified a configuration in which the support device 100 performs all processing, but this is not limiting; multiple devices may work together to provide the above-mentioned functions. Furthermore, some or all of the functions may be realized using computational resources on a server, known as a cloud.

[0050] <Definition information> 5 is a diagram showing an example of definition information. The definition information 70 shows a first rule that defines the hierarchical structure and folder names of multiple subfolders 72 in a folder 71 that is synchronized with a project. The definition information 70 allows the use of any character string specified by the user as the folder name of the folder 71.

[0051] 5, the multiple subfolders 72 include subfolders 72a, and 72b1 to 72b3. Specifically, the first rule defines subfolder 72a having the folder name "{controller name}.Controller" as the top-level subfolder 72. The name of the control device 200 that is the target of the project is inserted into "{controller name}."

[0052] Furthermore, the first rule defines subfolders 72b1 for each namespace as child folders of subfolder 72a. The first rule defines "{any}.DataTypes" as the folder name of subfolder 72b1. An arbitrary character string specified by the user is inserted in "{any}". In other words, the first rule defines a combination of an arbitrary character string and the unique character string ".DataTypes" as the folder name of subfolder 72b1. The first rule defines that the minimum number of subfolders 72b1 is 1 and the maximum number is N.

[0053] Similarly, the first rule defines subfolders 72b2 for each functional unit of the ladder program as child folders of the subfolder 72a. The first rule defines "{POU name}.LadderProgram" as the folder name of the subfolder 72b2. A character string representing the name given to the functional unit is inserted in "{POU name}". The first rule defines that the minimum number of subfolders 72b2 is 0 and the maximum number is N.

[0054] The first rule defines subfolders 72b3 for each functional unit of the ST program as child folders of the subfolder 72a. The first rule defines "{POU name}.STProgram" as the folder name of the subfolder 72b3. A character string representing the name given to the functional unit is inserted in "{POU name}". The first rule defines that the minimum number of subfolders 72b3 is 0 and the maximum number is N.

[0055] The first rule may define the folder name, minimum number, and maximum number of subfolders other than those mentioned above as child folders of the subfolder 72a. Furthermore, the first rule may define the folder name, minimum number, and maximum number of grandchild folders of the subfolder 72a.

[0056] The definition information 70 allows a maximum of N levels of subfolders 73a to be inserted between the folder 71 and the subfolder 72a. Furthermore, the definition information 70 allows a maximum of N levels of subfolders 73b to be inserted between the subfolder 72a and the subfolder 72b.

[0057] Furthermore, the definition information 70 indicates a second rule that defines the arrangement of files. In the example shown in Fig. 5, the second rule defines that a set 74_1 of files related to the corresponding namespace is arranged in the subfolder 72b1. The second rule may also define the file names of the files included in the set 74_1.

[0058] Similarly, the second rule defines that a set 74_2 of files related to a functional unit of the corresponding ladder program is placed in the subfolder 72b2. The second rule may define the file names of the files included in the set 74_2.

[0059] Thus, the second rule defines which files are placed in which subfolders 72.

[0060] The export unit 11 generates a folder 31 (see FIG. 1) corresponding to the folder 71 in a specified storage location based on the definition information 70. Because the definition information 70 allows the use of any character string designated by the user as the folder name of the folder 71, the export unit 11 sets the user-designated character string as the folder name of the folder 31.

[0061] Furthermore, the export unit 11 generates, in the folder 31, a plurality of subfolders 32 corresponding to the plurality of subfolders 72, according to the first project to be exported. For example, the export unit 11 generates a subfolder 32a corresponding to the subfolder 72a. Furthermore, if the first project includes n namespaces, the export unit 11 generates n subfolders 32b1 corresponding to the subfolder 72b1 as child folders of the subfolder 32a. The export unit 11 sets the folder names of the n subfolders 32b1 to "{arbitrary}.DataTypes" in accordance with the first rule indicated by the definition information 70. The export unit 11 inserts a user-specified character string into "{arbitrary}". Similarly, the export unit 11 generates a subfolder 32b2 corresponding to the subfolder 72b2 as a child folder of the subfolder 32a.

[0062] The export unit 11 places each of the multiple files 34 obtained by dividing the first project in one of the multiple subfolders 32, in accordance with the second rule. At this time, the export unit 11 may also determine a file name for each of the multiple files 34 in accordance with the second rule.

[0063] The import unit 12 extracts multiple subfolders 42 that comply with the first rule from a specified folder 41 (see FIG. 1) based on the definition information 70. Specifically, the import unit 12 regards the specified folder 41 as folder 71. Then, the import unit 12 determines, as subfolders 42, folders whose hierarchical relationship with folder 41 matches the hierarchical relationship of subfolders 72 with folder 71 and that have folder names defined by the first rule. At this time, the import unit 12 ignores subfolders 43 that do not have folder names defined by the first rule.

[0064] For example, subfolder 42a shown in Fig. 1 is a child folder of folder 41, and subfolder 72a shown in Fig. 5 is a child folder of folder 71. Furthermore, subfolder 42a has a folder name that includes the same defined character string ".Controller" as subfolder 72a. Therefore, import unit 12 determines subfolder 42a as the folder corresponding to subfolder 72a.

[0065] In FIG. 1, subfolder 42b1 is a grandchild folder of subfolder 42a. However, subfolder 43a, which exists between subfolder 42a and subfolder 42b1, does not have a folder name defined by the first rule. Therefore, the import unit 12 ignores subfolder 43a and considers subfolder 42b1 to be a child folder of subfolder 42a. Subfolder 72b1 shown in FIG. 5 is a child folder of subfolder 72a. Subfolder 42b1 has a folder name that includes the same defined character string ".DataTypes" as subfolder 72b1. Therefore, the import unit 12 determines subfolder 42b1 as the folder corresponding to subfolder 72b1. As a result, the import unit 12 incorporates file 44 included in subfolder 42b1 into the second project as data related to the namespace corresponding to subfolder 42b1.

[0066] <Import process example> As described above, in order to allow the insertion of a subfolder into the folder 41 specified in the import instruction, the import unit 12 ignores any subfolder 43 in the folder 41 that does not comply with the first rule. Furthermore, in order to increase the degree of freedom in changing the contents of the folder 41, the import unit 12 may perform at least one of the following first to third processes.

[0067] (First process) Fig. 6 is a diagram illustrating a first process performed by the import unit. In the example shown in Fig. 6, folder 41 specified in the import instruction includes subfolders 42a and 42b2 having folder names defined by the first rule, and subfolders 43a, 43c, and 43d having folder names not defined by the first rule.

[0068] The import unit 12 imports each file 44 directly contained in a subfolder 42 (for example, subfolder 42b2) that complies with the first rule as project data. Note that a "file directly contained in a subfolder" refers to a file that is contained in a subfolder but is not contained in a child folder of the subfolder.

[0069] On the other hand, the import unit 12 ignores each file 45 directly included in a subfolder 43 that does not comply with the first rule (for example, subfolder 43d). That is, the import unit 12 does not use the file 45 as project data.

[0070] This allows the user to place any file in a subfolder 43 that does not follow the first rule. For example, the user may place a file that constitutes another project in a subfolder 43 in folder 41 as reference information. As a result, the user can easily refer to files corresponding to another project when editing files contained in subfolder 42 in folder 41. Furthermore, because file 45 contained in subfolder 43 is ignored during import, file 45 is not mistakenly recognized as project data. Therefore, the user does not need to delete file 45 from folder 41 before issuing an import instruction specifying folder 41.

[0071] In addition, when the second rule defines a file name, the import unit 12 may ignore a file that does not have a file name defined by the second rule, even if it is in a subfolder 42 that complies with the first rule.

[0072] (Second process) 7 is a diagram illustrating the second process performed by the import unit. In the example shown in FIG. 7, the multiple files 44 contained in the folder specified in the import instruction only contain data related to the item "programming." As described above, a project is a collection of data related to the user program 210 and the setting information of the control device 200. Therefore, the support device 100 cannot import the second project even if it integrates only the multiple files 44.

[0073] Therefore, the import unit 12 identifies missing portions 46, which are differences between the collection of data related to the setting information of the user program 210 and the control device 200 and the plurality of files 44. For example, the import unit 12 may compare the plurality of subfolders 42 extracted from the specified folder with the definition information 70, and identify the differences between the plurality of subfolders 42 and the plurality of subfolders 72 defined by the definition information 70 as the missing portions 46. Alternatively, the import unit 12 may store in advance a plurality of required items indicated by a collection of the minimum data required to configure a project. The import unit 12 may identify, among the plurality of required items, items not indicated by the plurality of files 44 included in the specified folder as the missing portions 46.

[0074] The import unit 12 adds default data 47 for the missing portion 46 to the multiple files 44. For example, the import unit 12 may read the default data 47 corresponding to the missing portion 46 from a database that stores default data for files to be included in each of the multiple subfolders 72 defined by the definition information 70. Alternatively, the import unit 12 may read the default data 47 corresponding to the item in the missing portion 46 from a database that stores default data corresponding to each of the multiple required items.

[0075] This allows the import unit 12 to generate the second project 49 by integrating the default data 47 and the multiple files 44 .

[0076] The ability of the import unit 12 to execute the second process makes it easier for the user to create another project by invoking, for example, the user program 210 of a certain project. That is, the user simply inputs an import command specifying a folder containing only files 44 related to the user program 210 of a certain project to the support device 100. This allows the support device 100 to easily create a project by invoking the user program 210 of a certain project.

[0077] 7, the setting information of the control device 200 may include information about communication settings between the control device 200 and the control target via a field network. The field network may be an industrial network. Known industrial networks include, for example, EtherCAT (registered trademark), EtherNet / IP (registered trademark), DeviceNet (registered trademark), and CompoNet (registered trademark). The setting information may also include information for operating the control device 200 as an OPC UA (registered trademark) (Open Platform Communications Unified Architecture) server.

[0078] (Third process) FIG. 8 is a diagram illustrating the third process performed by the import unit. For example, for an axis included in the device 6, data related to settings such as servo driver allocation and parameters and data related to variables form a data pair. In the example shown in FIG. 8, the multiple files 44 included in the folder 41 specified in the import instruction include only one piece of data 36a that constitutes such a data pair, and do not include the other piece of data 36b that constitutes the data pair. That is, the file 44b related to axis settings includes data 36a, but the file 44a related to variables does not include data 36b. In such a case, because there is no consistency between the data included in the multiple files 44, the support device 100 cannot import the second project even if it integrates only the multiple files 44.

[0079] Therefore, the import unit 12 generates data 36b based on the data 36a in response to the fact that the multiple files 44 contain data 36a but do not contain data 36b. The data 36a is an example of "first data" in the present disclosure. The data 36b is an example of "second data" in the present disclosure. Then, the import unit 12 adds the data 36b to the multiple files 44. Specifically, the import unit 12 adds the data 36b to the variable-related file 44a.

[0080] This allows the import unit 12 to generate the second project 49 by integrating the multiple files 44 to which the data 36b has been added.

[0081] Because the import unit 12 is capable of executing the third process, the user can input an import instruction, for example, at a stage where the user has edited the file 44b to add data related to the target axis but has not yet edited the file 44a to add the variable of the target axis. In this case, the second project 49 is imported with the data of the variable of the target axis automatically added. This allows the user to avoid the work of adding the variable of the target axis.

[0082] <Examples of support device usage> 9 to 14, an example of how the support device 100 is used will be described. FIG. 9 is a diagram showing an example of how the support device is used. As described above, each of the multiple files 34 contained in the folder 31 exported from the support device 100 can be edited by a general-purpose application. Therefore, the user can manage the multiple files 34 using not only the general-purpose application installed in the support device 100 but also an external application.

[0083] As shown in FIG. 9, a user can use a shell 51, collaboration tools 52, database systems 53, custom applications 54, third-party tools 55, etc. to manage multiple files 34.

[0084] The shell 51 provides a user interface. The shell 51 recognizes commands corresponding to user inputs and performs operations according to the commands. The commands include internal commands that are processed by the shell 51 alone and external commands that are executed by an external program. Upon recognizing an internal command, the shell 51 edits the file 34 in accordance with the internal command. Upon recognizing an external command, the shell 51 outputs the external command to an external program (e.g., a collaboration tool 52, a database system 53, a custom application 54, or a third-party tool 55).

[0085] The collaboration tool 52 is a program management tool. Typically, a project is developed through collaboration between multiple users. Therefore, multiple users may edit multiple files 34. The collaboration tool 52 manages the versions of the multiple files 34. This allows multiple users to easily understand which file is the latest version. For example, GitHub (registered trademark) or GitBucket may be used as the collaboration tool 52.

[0086] For example, the database system 53 reads data corresponding to the command from the database and adds or overwrites the read data in the file 34.

[0087] The custom application 54 is created arbitrarily by the user. For example, the custom application 54 determines whether the variable names indicated by the file 34 conform to its own rules.

[0088] The third-party tools 55 include various known applications, such as a rename tool, a file comparison tool, a generation AI tool, and a version control tool.

[0089] Fig. 10 is a diagram showing an example of using a rename tool. The rename tool 55a shown in Fig. 10 collectively changes the names of subfolders and files in the folder 31 exported from the support device 100 in response to a user instruction. In the example shown in Fig. 10, the character string "Section" included in the folder name and file name is collectively changed to the character string "MySection." For example, PowerRename from PowerToys can be used as the rename tool 55a.

[0090] FIG. 11 is a diagram showing an example of using a file comparison tool. For example, file comparison tool 55b compares file 34c in folder 31C exported for project "C" with file 34d in folder 31D exported for project "D." By checking the comparison results of file comparison tool 55b, a user can easily confirm the differences between file 34c and file 34d. For example, WinMerge can be used as file comparison tool 55b.

[0091] 12 is a diagram showing an example of how the generation AI tool is used. For example, the generation AI tool 55c translates a character string (Japanese) in a column of the TSV-format file 34 into English in response to a user instruction. Then, the generation AI tool 55c adds a new column to the file 34 that indicates the English character string.

[0092] The version control tool manages the version of each file 34. For example, the version control tool manages recording of edits, checking differences, rollbacks, branches, etc. For example, Visual Studio Code (registered trademark) can be used as the version control tool.

[0093] Furthermore, the user can use the functions of the import unit 12 to efficiently create new projects.

[0094] FIG. 13 illustrates an example of using the import function of the support device. In the example illustrated in FIG. 13, a user exports a base project to obtain a folder 31E containing a file 34e. Furthermore, the user exports a project for controlling a device 6 including a module "F" to obtain a folder 31F containing a file 34f. Similarly, the user exports a project for controlling a device 6 including a module "G" to obtain a folder 31G containing a file 34g. The user creates a folder 41 containing files 34e, 34f, and 34g and inputs an import command specifying the folder 41 into the support device 100. The support device 100 then integrates the files 34e, 34f, and 34g contained in the folder 41 to generate an integrated project. In this way, the user can easily create an integrated project for controlling a device 6 including modules "F" and "G."

[0095] Fig. 14 is a diagram showing another example of using the import function of the support device. In the example shown in Fig. 14, a user creates multiple new projects by reusing files 34 corresponding to existing projects.

[0096] Specifically, the user creates file 44h by editing file 34 so that it is suitable for device 6 including module "H." The user then inputs an import command specifying folder 41H that includes file 44h into support device 100. This creates a new project for controlling device 6 that includes module "H."

[0097] Similarly, the user creates file 44i by editing file 34 so that it is suitable for device 6 including module "I." The user inputs an import command specifying folder 41I that includes file 44i into support device 100. This creates a new project for controlling device 6 that includes module "I."

[0098] <Modification> The import unit 12 may provide a user interface that visualizes the hierarchical structure of subfolders in the folder 41. In this user interface, the import unit 12 differentiates the display format of the subfolders 42 that comply with the first rule from the display format of the subfolders 43 that do not comply with the first rule. This allows the user to recognize which subfolders are to be ignored.

[0099] The export unit 11 may receive a second export instruction for the first project separately from the above-described first export instruction. In response to receiving the second export instruction, the export unit 11 generates a single file corresponding to the first project (hereinafter referred to as a "project file"). The project file can be edited only by the editing unit 10. Therefore, the user inputs the second export instruction when he / she wants to avoid unintended editing by a general-purpose application. On the other hand, the user inputs the first export instruction when he / she wants to edit by a general-purpose application. In this way, the user can use the first export instruction and the second export instruction depending on whether editing by a general-purpose application is required.

[0100] §3 Supplementary Note As described above, the present embodiment includes the following disclosures.

[0101] (Configuration 1) A support device (100) that provides a development environment for a user program (210) to be executed by a control device (200), an editing unit (10) that edits a project, which is a collection of data related to the user program (210) and setting information of the control device (200); an export unit (11) that, in response to receiving an export instruction for a first project, generates a first folder (31) corresponding to the first project; an import unit (12) that, in response to receiving an import instruction specifying a second folder (41), executes importing a second project corresponding to the second folder (41); The generating of the first folder (31) includes: Dividing the first project into a plurality of first files (34) editable by a general-purpose application; generating a plurality of first subfolders (32) in the first folder (31) according to rules defining a hierarchical structure and folder names; placing each of the plurality of first files (34) in one of the plurality of first subfolders (32); Importing the second project extracting a plurality of second subfolders (42) from the second folder (41) in accordance with the rule; generating the second project (49) by integrating a plurality of second files (44) contained in the plurality of second subfolders (42); The support device (100) wherein extracting the plurality of second subfolders (42) includes ignoring a third subfolder (43) in the second folder (41) that does not comply with the rule.

[0102] (Configuration 2) 2. The support device (100) of claim 1, wherein generating the second project includes ignoring a third file (45) directly contained in the third subfolder (43).

[0103] (Configuration 3) generating the second project, Identifying a missing portion (46) that is a difference between the set and the plurality of second files (44); and adding default data (47) for the missing portion (46) to the plurality of second files (44).

[0104] (Configuration 4) generating the second project, generating the second data (36b) based on the first data (36a) in response to the plurality of second files (44) including first data (36a) constituting a data pair and the plurality of second files (44) not including the second data (36b) constituting the data pair; and adding the second data to the plurality of second files.

[0105] (Configuration 5) A support method for supporting development of a user program (210) to be executed on a control device (200), comprising: A processor (102) edits a project, which is a collection of data relating to the user program (210) and setting information of the control device (200); The processor (102) generates a first folder (31) corresponding to the first project in response to receiving an export instruction for the first project; the processor (102) imports a second project corresponding to the second folder (41) in response to receiving an import instruction specifying the second folder (41); The generating of the first folder (31) includes: Dividing the first project into a plurality of first files (34) editable by a general-purpose application; generating a plurality of first subfolders (32) in the first folder (31) according to rules defining a hierarchical structure and folder names; placing each of the plurality of first files (34) in one of the plurality of first subfolders (32); Importing the second project extracting a plurality of second subfolders (42) from the second folder (41) in accordance with the rule; generating the second project by integrating a plurality of second files (44) contained in the plurality of second subfolders (42); The method of supporting the method, wherein extracting the plurality of second subfolders (42) includes ignoring a third subfolder (43) in the second folder (41) that does not comply with the rule.

[0106] (Configuration 6) A program (60) for causing a computer (102) to execute a support method for supporting development of a user program (210) to be executed by a control device (200), comprising: The support method includes: Editing a project, which is a collection of data relating to the user program (210) and setting information of the control device (200); In response to receiving an export instruction for a first project, generating a first folder (31) corresponding to the first project; In response to receiving an import instruction specifying a second folder (41), importing a second project corresponding to the second folder (41); The generating of the first folder (31) includes: Dividing the first project into a plurality of first files (34) editable by a general-purpose application; generating a plurality of first subfolders (32) in the first folder (31) according to rules defining a hierarchical structure and folder names; placing each of the plurality of first files (31) in one of the plurality of first subfolders (32); Importing the second project extracting a plurality of second subfolders (42) from the second folder (41) in accordance with the rule; generating the second project by integrating a plurality of second files (44) contained in the plurality of second subfolders (42); The program (60) wherein extracting the plurality of second subfolders (42) includes ignoring a third subfolder (43) in the second folder (41) that does not comply with the rule.

[0107] Although the embodiments of the present invention have been described, the embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is defined by the claims, and it is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]

[0108] 1 System, 6 Equipment, 10 Editing section, 11 Export section, 12 Import section, 31, 31E-31G, 41, 41H, 41I, 71 Folder, 32, 32a, 32b1-32b3, 42, 42a, 42b1-42b3, 43, 43a-43d, 72, 72a, 72b1-72b3, 73a, 73b Subfolder, 34, 34a-34g, 44, 44a, 44b, 44h, 44i, 45 File, 36a, 36b Data, 46 Missing part, 47 Default data, 49 Second project, 50 General-purpose application, 51 Shell, 52 Collaboration tool, 53 Database system, 54 Custom application, 55 Third-party tool, 55a Rename tool, 55b File comparison tool, 55c Generative AI tool, 60 Development support program, 70 definition information, 74_1 to 74_3 set, 100 support device, 102 processor, 103 reader / writer, 104 main memory, 105 optical disk, 111 communication interface, 114 interface, 115 operation unit, 117 display interface, 118 display unit, 120 storage device, 125 internal bus, 200 control unit, 210 user program.

Claims

1. A support device that provides a development environment for a user program to be executed on a control device, an editing unit that edits a project, which is a collection of data related to the user program and setting information of the control device; an export unit that generates a first folder corresponding to a first project in response to receiving an export instruction for the first project; an import unit that, in response to receiving an import instruction specifying a second folder, imports a second project corresponding to the second folder; Creating the first folder includes: Dividing the first project into a plurality of first files that can be edited by a general-purpose application; creating a plurality of first subfolders in the first folder according to rules defining a hierarchical structure and folder names; placing each of the plurality of first files in one of the plurality of first subfolders; Importing the second project includes: extracting a plurality of second subfolders from the second folder according to the rule; generating the second project by integrating a plurality of second files contained in the plurality of second subfolders; The support device, wherein extracting the plurality of second subfolders includes ignoring third subfolders within the second folder that do not comply with the rules.

2. The support apparatus of claim 1 , wherein generating the second project includes ignoring a third file directly contained in the third subfolder.

3. generating the second project, Identifying a missing portion that is a difference between the set and the plurality of second files; and adding default data for the missing portions to the plurality of second files.

4. generating the second project, generating the second data based on the first data in response to the plurality of second files including first data constituting a data pair and the plurality of second files not including the second data constituting the data pair; and adding the second data to the plurality of second files.

5. A method for supporting development of a user program to be executed on a control device, comprising: A processor edits a project, which is a collection of data relating to the user program and setting information of the control device; generating a first folder corresponding to the first project in response to receiving an export instruction for the first project; the processor imports a second project corresponding to the second folder in response to receiving an import instruction specifying the second folder; Creating the first folder includes: Dividing the first project into a plurality of first files that can be edited by a general-purpose application; creating a plurality of first subfolders in the first folder according to rules defining a hierarchical structure and folder names; placing each of the plurality of first files in one of the plurality of first subfolders; Importing the second project includes: extracting a plurality of second subfolders from the second folder according to the rule; generating the second project by integrating a plurality of second files contained in the plurality of second subfolders; The method of supporting the method, wherein extracting the plurality of second subfolders includes ignoring third subfolders within the second folder that do not comply with the rules.

6. A program that causes a computer to execute a support method for supporting development of a user program to be executed in a control device, The support method includes: Editing a project which is a collection of data relating to the user program and setting information of the control device; In response to receiving an export instruction for a first project, generating a first folder corresponding to the first project; In response to receiving an import instruction specifying a second folder, importing a second project corresponding to the second folder; Creating the first folder includes: Dividing the first project into a plurality of first files that can be edited by a general-purpose application; creating a plurality of first subfolders in the first folder according to rules defining a hierarchical structure and folder names; placing each of the plurality of first files in one of the plurality of first subfolders; Importing the second project includes: extracting a plurality of second subfolders from the second folder according to the rule; generating the second project by integrating a plurality of second files contained in the plurality of second subfolders; The program, wherein extracting the plurality of second subfolders includes ignoring a third subfolder in the second folder that does not comply with the rule.

Citation Information

Patent Citations

  • Program creation support device, program, and determination method

    JP2016224557A