Program creation support device, program creation support system, program creation support method, and program

The program creation support device addresses the issue of unnecessary program duplication by intelligently searching and modifying existing programs, ensuring efficient and effective program creation.

JP7892157B1Active Publication Date: 2026-07-17MITSUBISHI ELECTRIC CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
MITSUBISHI ELECTRIC CORP
Filing Date
2025-10-22
Publication Date
2026-07-17

AI Technical Summary

Technical Problem

Existing program creation technologies generate multiple programs with minor differences for similar processes, leading to unnecessary mass production and inefficient testing, as they lack consideration for reusing existing programs and manual determination of necessary modifications.

Method used

A program creation support device that includes a search unit to find programs with similar metadata and a generation unit to create new programs when necessary, along with a modification unit to adjust programs based on user instructions, preventing unnecessary duplication and enhancing efficiency.

Benefits of technology

Prevents the unnecessary mass production of similar programs by reusing existing ones and supports efficient program creation through intelligent search and modification processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007892157000001
    Figure 0007892157000001
  • Figure 0007892157000002
    Figure 0007892157000002
  • Figure 0007892157000003
    Figure 0007892157000003
Patent Text Reader

Abstract

The program creation support device (2A) includes a search unit (12) that acquires first design information, which is information about a new program desired by the user, and searches for a program from a group of programs that matches information similar to the first design information, and a generation unit (13) that generates a new program based on second design information input by the user if there is no program in the group of programs that matches information similar to the first design information, or if it is determined that a program found in the group of programs cannot be reused for the new program.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a program creation support device, a program creation support system, a program creation support method, and a program for assisting in the creation of a program.

Background Art

[0002] In software development, in response to the increasing burden of creating programs due to the large scale and complexity of programs, support for program creation using artificial intelligence (AI) has been studied.

[0003] Patent Document 1 discloses a system that receives an instruction from a user, analyzes the instruction, and automatically generates a program based on the analyzed instruction. In the system according to Patent Document 1, when the user inputs the processing content in natural language, the generation AI analyzes the input and outputs a program.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] From the perspective of managing program assets in software development, it is undesirable to unnecessarily mass-produce programs for similar processes. To avoid a proliferation of programs for similar processes, it is necessary to reuse existing programs for processes where it is possible. By reusing existing programs, the time required to create new programs can be reduced. Furthermore, programmers who test programs created by reusing existing programs can judge the content of the process based on their past knowledge by looking at the reused parts of the program, allowing for more efficient testing.

[0006] When a program is automatically generated by analyzing input instructions, as in the technology described in Patent Document 1, no consideration is given to reusing existing programs. As a result, multiple programs with minor differences may be generated for similar processes.

[0007] Furthermore, when creating a program, it is conceivable to search for existing programs with similar functions to those desired by the user and reuse the found programs. However, in this case, when creating a program for a new device or a new function, existing programs cannot be reused because no such programs exist. Also, when creating a new program by modifying an existing program, the determination of necessary modifications and the modification work itself must be done manually. For these reasons, relying solely on searching for existing programs cannot be said to adequately support program creation.

[0008] This disclosure is made in view of the above, and aims to provide a program creation support device that prevents the unnecessary mass production of programs for similar processes and enables assistance in program creation. [Means for solving the problem]

[0009] To solve the above-mentioned problems and achieve the objective, the program creation support device relating to this disclosure includes: a search unit that acquires first design information, which is information about a new program desired by the user, and searches for a program from a group of programs that matches information similar to the first design information; and a generation unit that generates a new program based on second design information input by the user when there is no program in the group of programs that matches information similar to the first design information, or when it is determined that a program found in the group of programs cannot be reused for the new program; A modification unit modifies the program found by the search unit, or the program generated by the generation unit, according to the user's modification instructions. It includes the following. The second design information includes control specifications in natural language that show the control procedures to be implemented by the program. The correction unit determines whether the correction instruction is valid, and if it determines that the correction instruction is not valid, it stops modifying the program in accordance with the instruction. [Effects of the Invention]

[0010] The program creation support device described herein has the effect of preventing the unnecessary mass production of programs for similar processes and providing support for program creation. [Brief explanation of the drawing]

[0011] [Figure 1] This figure shows an example configuration of the program creation support system according to Embodiment 1. [Figure 2] This diagram illustrates the input to the program creation support device and the output from the program creation support device in Embodiment 1. [Figure 3] A diagram illustrating the metadata stored in the program creation support system according to Embodiment 1. [Figure 4] A diagram illustrating the search process performed by the search unit of the program creation support device according to Embodiment 1. [Figure 5] A diagram illustrating the generation process by the generation unit of the program creation support device according to Embodiment 1. [Figure 6] A flowchart showing an example of the operation procedure of the program creation support device according to Embodiment 1. [Figure 7]Diagram showing the configuration example of the program creation support system according to Embodiment 2 [Figure 8] Diagram for explaining the input to the program creation support device and the output from the program creation support device in Embodiment 2 [Figure 9] Diagram for explaining the program modification by the modification unit of the program creation support device according to Embodiment 2 [Figure 10] Flowchart showing an example of the operation procedure of the program creation support device according to Embodiment 2 [Figure 11] Diagram for explaining the input to the program creation support device and the output from the program creation support device in Embodiment 3 [Figure 12] Flowchart showing an example of the operation procedure of the program creation support device according to Embodiment 3 [Figure 13] Diagram showing the configuration example of the program creation support device according to Embodiment 4 [Figure 14] Diagram for explaining the input to the program creation support device and the output from the program creation support device in Embodiment 4 [Figure 15] Diagram showing the configuration example of the program creation support system according to Embodiment 5 [Figure 16] Flowchart showing an example of the operation procedure of the program creation support device according to Embodiment 5 [Figure 17] Diagram for explaining the metadata stored in the program creation support system according to Embodiment 5 [Figure 18] Diagram showing the configuration example of the program creation support system according to Embodiment 6 [Figure 19] Diagram for explaining the generation process by the generation unit of the program creation support device according to Embodiment 6 [Figure 20] Diagram showing the configuration example of the program creation support system according to Embodiment 7 [Figure 21] Diagram for explaining the search process by the search unit of the program creation support device according to Embodiment 7 [Figure 22]A diagram illustrating the generation process by the generation unit of the program creation support device according to Embodiment 7. [Figure 23] This figure shows an example configuration of the program creation support system according to Embodiment 8. [Figure 24] Flowchart showing an example of the operation procedure of the program creation support device according to Embodiment 8 [Figure 25] This diagram illustrates the input to the program creation support device and the output from the program creation support device in Embodiment 9. [Figure 26] This figure shows an example configuration of the program creation support system according to Embodiment 10. [Figure 27] Figure showing an example of the hardware configuration of a program creation support device according to Embodiments 1 to 10. [Modes for carrying out the invention]

[0012] The following describes in detail, with reference to the drawings, the program creation support device, program creation support system, program creation support method, and program according to the embodiment.

[0013] Embodiment 1. Figure 1 shows an example configuration of a program creation support system 1A according to Embodiment 1. The program creation support system 1A comprises a program creation support device 2A, an input device 3, and a display device 4. The program creation support device 2A assists the user in creating a program. The user is defined as the person who creates the program.

[0014] Input device 3 is operated by the user and inputs information to the program creation support device 2A. Input device 3 includes, for example, a keyboard, mouse, keypad, or touch panel. Input device 3 inputs design information, which is information related to the design of the program, and operation instructions for the program creation support device 2A to the program creation support device 2A.

[0015] The display device 4 presents the information output by the program creation support device 2A to the user by displaying the information output by the program creation support device 2A. The display device 4 is, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display.

[0016] In Embodiment 1, the program creation support device 2A is a server device. The program creation support device 2A is composed of, for example, one or more cloud servers. A cloud server is a server built in a cloud environment that includes computer resources provided on a cloud service platform.

[0017] The program creation support device 2A and the input device 3 are connected to each other via a network. The program creation support device 2A and the display device 4 are also connected to each other via a network. The network is, for example, a LAN (Local Area Network), but it may also be a WAN (Wide Area Network) such as the Internet.

[0018] The program creation support device 2A comprises an input processing unit 11, a search unit 12, a generation unit 13, an output processing unit 14, and a program storage unit 15. In Embodiment 1, a generation AI is used for the search unit 12 and the generation unit 13. That is, in the program creation support device 2A according to Embodiment 1, the generation AI performs the functions of both the search unit 12 and the generation unit 13.

[0019] The user inputs the first design information and the second design information to the program creation support device 2A by operating the input device 3. In Embodiment 1, the first design information and the second design information are information expressed in natural language.

[0020] The first design information is information about a new program desired by the user. The first design information represents the attributes of the new program and can be considered metadata for the new program. The first design information includes at least one of the following: information indicating the device to which the program will be applied, information indicating the functions to be implemented by the program, and information indicating the purpose of the functions to be implemented by the program. The functions to be implemented by the program represent the content of the operation shown in the algorithm.

[0021] The second design information is information that indicates the specific control specifications of the new program desired by the user. The second design information includes information that indicates the control specifications of the program.

[0022] The input processing unit 11 receives information from the input device 3 and performs input processing that causes the generating AI to perform actions according to the content of the information. The input processing unit 11 provides information to the generating AI and activates the generating AI. The input processing unit 11 causes the generating AI to switch between the operation of the search unit 12 and the operation of the generation unit 13.

[0023] The program storage unit 15 stores programs. As programs are created, the program storage unit 15 stores multiple programs created in the past. As a result, the program storage unit 15 stores a collection of programs that have been created in the past.

[0024] The search unit 12 obtains first design information from the input processing unit 11. The search unit 12 performs a search process to find a program that matches information similar to the first design information from the group of programs in the program storage unit 15.

[0025] Each of the multiple programs that make up the above program group is assigned metadata. The metadata is stored in the program storage unit 15. The search unit 12 searches the program group for programs that have metadata similar to the first design information, as programs that match information similar to the first design information.

[0026] The search unit 12 searches the program group for programs that have metadata similar to the first design information during the search process. The search unit 12 provides the search results obtained by the search process to the output processing unit 14. If a program is found through the search, the search unit 12 outputs the search results indicating the found program to the output processing unit 14. If no program is found through the search, the search unit 12 outputs the search results indicating that no program was found to the output processing unit 14. Upon receiving the search results, the output processing unit 14 executes output processing to output the search results to the display device 4. The display device 4 displays the search results.

[0027] The generation unit 13 obtains second design information from the input processing unit 11. If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for the new program, the generation unit 13 generates a new program based on the second design information input by the user. The generation unit 13 provides the generated program to the output processing unit 14. Upon receiving the generated program, the output processing unit 14 executes output processing to output the generated program to the display device 4. The display device 4 displays the generated program.

[0028] Furthermore, a situation in which a found program cannot be reused is, for example, if the device to which the found program applies is completely different from the device to which the program desired by the user applies. Also, if the found program contains code for a model that is no longer in use, the found program may also be deemed unusable.

[0029] The program creation support system 1A may include a user terminal, which is a computer system having an input unit and a display unit. In this case, the input unit of the user terminal functions as an input device 3, and the display unit of the user terminal functions as a display device 4.

[0030] In the above, the program storage unit 15 is assumed to be provided in the program creation support device 2A. However, the program storage unit 15 may be provided in an external device to the program creation support device 2A. For example, the program storage unit 15 may be provided in a user terminal.

[0031] In the above, the first and second design information are assumed to be information expressed in natural language. At least one of the first and second design information may contain information other than natural language. Furthermore, the first and second design information may contain the same information as each other.

[0032] Next, we will explain the input to the program creation support device 2A and the output from the program creation support device 2A. Figure 2 is a diagram illustrating the input to the program creation support device 2A and the output from the program creation support device 2A in Embodiment 1.

[0033] In Embodiment 1, the program creation support device 2A interacts with the user through a chat-based dialogue. Figure 2 shows an example of a chat screen where the program creation support device 2A and the user interact. The chat screen is displayed on the display device 4. The user inputs information into the chat screen by text input using the input device 3. In Figure 2, the speech bubble with its tail pointed towards the "User" icon shows the information input by the user to the program creation support device 2A. The speech bubble with its tail pointed towards the "AI" icon shows the information output from the program creation support device 2A. Messages from the program creation support device 2A displayed on the chat screen are generated, for example, by the generation AI within the program creation support device 2A.

[0034] Alternatively, a message template for output by the program creation support device 2A may be pre-stored in the program creation support device 2A, and the output processing unit 14 may create the message using the template. In this case, the output processing unit 14 creates the message by applying information from the search unit 12 or the generation unit 13 to the template.

[0035] In the example shown in Figure 2, the message "Create a program for the A Company barcode reader XX-YY123Z" is input to the program creation support device 2A. "A Company barcode reader XX-YY123Z" represents the device to which the program will be applied and corresponds to the first design information. "A Company" indicates that it was manufactured by the manufacturer, A Company. "Barcode reader" represents the name of the device. "XX-YY123Z" represents the model number. Note that the information indicating the device to which the program will be applied is arbitrary and only requires information that can identify the device.

[0036] The "Program for Company A's barcode reader XX-YY123Z" is a new program requested by the user. The user instructs the program creation support device 2A to create the "Program for Company A's barcode reader XX-YY123Z" by inputting a message. That is, the message input by the user includes the first design information and instructions for creating the program. It is sufficient that the user input includes at least the first design information.

[0037] The input processing unit 11 analyzes the message entered by the user and outputs the first design information, "A Company's barcode reader XX-YY123Z," to the search unit 12. The search unit 12 searches the program group in the program storage unit 15 for a program that has metadata similar to "A Company's barcode reader XX-YY123Z."

[0038] Suppose the search unit 12 finds a program for "A Company's barcode reader XX-YY456W". The program for "A Company's barcode reader XX-YY456W" is assumed to have metadata similar to that of "A Company's barcode reader XX-YY123Z". The output processing unit 14 outputs the message "If it is A Company's barcode reader XX-YY456W, we have a program that we have created in the past." to the display device 4. The display device 4 displays the message on the chat screen.

[0039] The user determines whether the program for "Company A's barcode reader XX-YY456W," as indicated in the message, can be used for "Company A's barcode reader XX-YY123Z." Here, the user determines that the program for "Company A's barcode reader XX-YY456W" cannot be used for "Company A's barcode reader XX-YY123Z."

[0040] The user, having determined that the existing program cannot be reused, inputs the message "The program for the A Company barcode reader XX-YY456W cannot be reused, so please create a new program with the following control specifications." into the program creation support device 2A. This instructs the program creation support device 2A to create a new program for the A Company barcode reader XX-YY123Z. Following this message, the user inputs the second design information, which is the control specification for the A Company barcode reader XX-YY123Z, into the program creation support device 2A. It is sufficient that the user's input includes at least the second design information.

[0041] The input processing unit 11 analyzes the message and control specifications entered by the user. From the phrase "The program for the A Company barcode reader XX-YY456W cannot be reused," the input processing unit 11 recognizes that the found "A Company barcode reader XX-YY456W program" has been determined to be unusable. Also, upon receiving the phrase "Create a new program," the input processing unit 11 instructs the generation unit 13 to generate a program. When instructing the generation unit 13 to generate a program, the input processing unit 11 outputs the control specifications, which are the second design information, to the generation unit 13.

[0042] The generation unit 13 generates a program according to the control specifications. The generation unit 13 outputs the generated program to the output processing unit 14. The output processing unit 14 outputs the generated program to the display device 4.

[0043] The display device 4 displays the generated program, "Program for Company A's barcode reader XX-YY123Z," on the chat screen. In the example shown in Figure 2, the generated program is displayed along with the message, "Outputting the program for Company A's barcode reader XX-YY123Z."

[0044] The user message when instructing the creation of a new program may include wording to specify the programming language to be used for the program to be created. The generation unit 13 creates a program written in the specified programming language. The programming language specified by the message is, for example, a programming language defined in IEC61131-3, a standard set by the International Electrotechnical Commission. The programming languages ​​defined in IEC61131-3 are the Ladder Diagram (LD) language, Function Block Diagram (FBD) language, Structured Text (ST) language, Instruction List (IL) language, and Sequential Function Chart (SFC) language. The programming language specified by the message may also be, for example, Python®, Java®, or C++. In the example shown in Figure 2, the program is created using the IL language.

[0045] In the above, it is assumed that information is input to the program creation support device 2A using input device 3, such as a keyboard. The method of inputting information to the program creation support device 2A is arbitrary. For example, information may be input to the program creation support device 2A by voice input. In this case, the program creation support system 1A is equipped with a voice input unit that captures the user's speech. The voice input unit is, for example, a microphone.

[0046] Figure 3 is a diagram illustrating the metadata stored in the program creation support system 1A according to Embodiment 1. The program storage unit 15 stores a table that represents the correspondence between each program constituting the program group and its metadata. Figure 3 shows an example of a table stored in the program storage unit 15. The table shown in Figure 3 stores metadata associated with the program name. In this way, metadata is associated with the programs stored in the program storage unit 15.

[0047] For example, "P_XX-YY456W" shown in Figure 3 is the name of a program for a barcode reader manufactured by Company A. In the table, the metadata "Barcode Reader manufactured by Company A" is linked to "P_XX-YY456W". "Barcode Reader manufactured by Company A" and "Pick and Place Device manufactured by Company B" shown in Figure 3 are examples of metadata that indicate the equipment to which the program is applied.

[0048] Figure 4 is a diagram illustrating the search process performed by the search unit 12 of the program creation support device 2A according to Embodiment 1. In Figure 4, the white arrows pointing into the block representing the search unit 12 represent input to the search unit 12. The white arrows pointing out of the block representing the search unit 12 represent output from the search unit 12. Figure 4 schematically illustrates the process in which the first design information is input to the search unit 12 and the program name, which is the search result, is output from the search unit 12.

[0049] In the example shown in Figure 4, the search unit 12 receives the input "A Company's barcode reader XX-YY123Z". The search unit 12 looks at the table stored in the program storage unit 15 to find a program with metadata similar to "A Company's barcode reader XX-YY123Z". The search unit 12 outputs "P_XX-YY456W", which is the name of the program that represents the search result. Thus, the search unit 12 outputs "P_XX-YY456W" when "A Company's barcode reader XX-YY123Z" is input.

[0050] For example, the search unit 12 uses cosine similarity as an evaluation index for the semantic closeness between the first design information and the metadata. The search unit 12 vectorizes the input first design information and the metadata of each program, and calculates the cosine similarity between the vectors. The search unit 12 identifies the program with the metadata that has the highest cosine similarity. In this way, the search unit 12 identifies the program from the group of programs that has metadata similar to the first design information. The search unit 12 outputs the name of the identified program as the search result.

[0051] In the above, the search unit 12 is configured to find a program that has metadata similar to the first design information by calculating cosine similarity. The method by which the search unit 12 finds a program that has metadata similar to the first design information is not limited to the method described above and is arbitrary.

[0052] The search unit 12 may identify one or more programs. For example, the search unit 12 may identify one program with the highest cosine similarity, or it may identify two or more programs with the highest cosine similarity. The search unit 12 outputs the names of the two or more identified programs as search results. The program creation support device 2A then presents the names of the two or more programs, which are the search results, to the user. In this case, the user selects a program from the two or more programs in the search results to use in the new program.

[0053] Here, we will explain an example of the first design information. "A barcode reader XX-YY123Z manufactured by Company A" in the message "Create a program for Company A's barcode reader XX-YY123Z," and "pick and place device" in the message "Create a program for a pick and place device" are examples of the first design information that indicate the device to which the program will be applied. "Initiate positioning of a point table" in the message "Create a program to initiate positioning of a point table" is an example of the first design information that indicates the function to be implemented by the program.

[0054] For example, in the case of a barcode reader program, reading a numerical sequence from a barcode constitutes the first design information indicating the function implemented by the program. Furthermore, if the function of reading a numerical sequence from a barcode is used for analyzing the information indicated by the barcode, then analyzing the information indicated by the barcode constitutes the first design information indicating the purpose of the function implemented by the program.

[0055] In the above, the user is assumed to input a message containing the first design information to the program creation support device 2A. The user may also input keywords, which are the first design information, to the program creation support device 2A. The search unit 12 may search for programs that have metadata similar to the first design information by performing a full-text search of the metadata stored in the program storage unit 15.

[0056] Figure 5 is a diagram illustrating the generation process by the generation unit 13 of the program creation support device 2A according to Embodiment 1. In Figure 5, the white arrows pointing into the block representing the generation unit 13 represent input to the generation unit 13. The white arrows pointing out of the block representing the generation unit 13 represent output from the generation unit 13. Figure 5 schematically illustrates the process in which second design information is input to the generation unit 13 and the generated program is output from the generation unit 13.

[0057] The second design information input to the generation unit 13 includes information indicating the control specifications of the program. The second design information corresponds to a prompt given to the generation AI. The generation unit 13 generates a program that satisfies the control specifications indicated in the second design information. The generation unit 13 outputs the generated program. For example, the generation unit 13 outputs the generated "program for Company A's barcode reader XX-YY123Z" when information regarding the control specifications for the "program for Company A's barcode reader XX-YY123Z" desired by the user is input.

[0058] Here, we will explain an example of the second type of design information. The second type of design information may include control specification information such as the following:

[0059] (1) Turning on the operation preparation switch (X001) turns on the operation preparation complete lamp (Y000) and enables self-holding. Turning on the operation preparation release switch (X003) turns off the operation preparation complete lamp (Y000) and releases self-holding.

[0060] (2) When the operation readiness lamp (Y000) is ON, the device start / stop switch (X000) is turned ON or OFF, which activates the device MC (Y002) and allows the device to be started or stopped. The operation is selected using the changeover switch (X005 / X006). • If X005 is ON: Device output 1 (Y001) is ON • If X006 is ON: Device output 2 (Y003) is ON

[0061] In the above, the program creation support device 2A performs search processing and generation processing by switching the operation of the generation AI between operation as a search unit 12 and operation as a generation unit 13. The configuration of the program creation support device 2A is not limited to this configuration. For example, the program creation support device 2A may be equipped with a search unit 12, which is a tool for performing search processing, and a generation unit 13, which is a tool for performing generation processing. In this case, the generation AI may generate an instruction for performing search processing, and the search unit 12 may perform search processing according to the generated instruction. Alternatively, the generation AI may generate an instruction for performing generation processing, and the generation unit 13 may perform generation processing according to the generated instruction.

[0062] Next, the operating procedure of the program creation support device 2A will be described. Figure 6 is a flowchart showing an example of the operating procedure of the program creation support device 2A according to Embodiment 1.

[0063] In step S1, the input processing unit 11 acquires the first design information. In the example shown in Figure 2, the input processing unit 11 receives a message containing the first design information. The input processing unit 11 analyzes the received message and acquires the first design information. The input processing unit 11 outputs the first design information to the search unit 12.

[0064] In step S2, the search unit 12 executes a search process. Through the search process, the search unit 12 finds a program from the program group that has metadata similar to the first design information.

[0065] In step S3, the search unit 12 determines whether or not there is a program with metadata similar to the first design information. If there is a program with metadata similar to the first design information (step S3, Yes), the search unit 12 outputs the search results indicating the found program to the output processing unit 14. In step S4, the output processing unit 14 outputs the search results to the display device 4. The display device 4 displays, for example, the name of the found program as a search result. After that, the program creation support device 2A proceeds to step S5.

[0066] On the other hand, if there is no program with metadata similar to the first design information (step S3, No), the program creation support device 2A skips step S4 and proceeds to step S5. In this case, the search unit 12 notifies the output processing unit 14 that there is no program with metadata similar to the first design information. The output processing unit 14 causes the display device 4 to display that no program with metadata similar to the first design information has ever been created.

[0067] If the user determines that the program shown in the search results output in step S4 cannot be reused for the new program, the user instructs the program creation support device 2A to create a new program. If no program with metadata similar to the first design information has been created in the past, the user instructs the program creation support device 2A to create a new program.

[0068] In step S5, the input processing unit 11 determines whether or not a new program creation has been instructed. If a new program creation has been instructed (step S5, Yes), in step S6, the input processing unit 11 acquires the second design information. The input processing unit 11 outputs the second design information to the generation unit 13. In the example shown in Figure 2, the input processing unit 11 receives both the message instructing the creation of a new program and the second design information simultaneously. That is, the instruction to create a new program in step S5 and the acquisition of the second design information in step S6 occur simultaneously.

[0069] In step S7, the generation unit 13 executes the generation process. The generation unit 13 outputs the generated program to the display device 4 via the output processing unit 14. Upon completion of step S7, the program creation support device 2A terminates its operation according to the procedure shown in Figure 6.

[0070] If the user determines that the program shown in the search results output in step S4 can be reused for a new program, they do not instruct the creation of a new program. If the user does not instruct the creation of a new program (step S5, No), the program creation support device 2A terminates its operation according to the procedure shown in Figure 6.

[0071] According to Embodiment 1, the program creation support device 2A includes a search unit 12 that acquires first design information, which is information about a new program desired by the user, and searches for a program from a group of programs that matches information similar to the first design information, and a generation unit 13 that generates a new program based on second design information input by the user when there is no program in the group of programs that matches information similar to the first design information, or when it is determined that a program found in the group of programs cannot be reused for the new program.

[0072] If a program matching information similar to the first design information is found in the program group, the found program can be reused in a new program. The program creation support device 2A can prevent the unnecessary mass production of programs for similar processes by reusing existing programs. If there is no program matching information similar to the first design information, or if the found program cannot be reused in a new program, the program creation support device 2A can also support program creation by generating a new program based on the second design information. In this way, the program creation support device 2A can prevent the unnecessary mass production of programs for similar processes and provide support for program creation.

[0073] Metadata may be attached to each of the multiple programs that make up the program group. The search unit 12 may search the program group for programs that have metadata similar to the first design information, as programs that match information similar to the first design information. In this way, the program creation support device 2A can find programs from the program group that may be repurposed for new programs.

[0074] The first design information may include at least one of the following: information indicating the equipment to which the program will be applied; information indicating the functions to be realized by the program; and information indicating the intended use of the functions to be realized by the program. This allows the program creation support device 2A to find programs from the program group that may be repurposed for new programs.

[0075] The second set of design information may include information indicating the control specifications of the program. This allows the program creation support device 2A to generate a new program.

[0076] Furthermore, the components of the program creation support device 2A do not need to be physically configured as shown in the diagram. The specific forms of distribution and integration of the components are not limited to those shown. Each component may be configured functionally or physically distributed in any unit, or it may be configured as an integrated unit. The functions of the program creation support device 2A may be distributed across two or more devices.

[0077] In the above, the program creation support system 1A is assumed to include a program creation support device 2A, which is a server device. The program creation support system 1A may be modified as appropriate from the configuration described in Embodiment 1. For example, the program creation support device 2A may be provided in a user terminal. The user terminal may be equipped with the program creation support device 2A, an input unit that functions as an input device 3, and a display unit that functions as a display device 4.

[0078] Embodiment 2. Embodiment 2 describes an example of modifying a program found from a group of programs or a generated program. In Embodiment 2, the same reference numerals are used for the same components as in Embodiment 1, and the description mainly focuses on configurations that differ from Embodiment 1.

[0079] Figure 7 shows an example configuration of the program creation support system 1B according to Embodiment 2. The program creation support system 1B comprises a program creation support device 2B, an input device 3, and a display device 4. The program creation support device 2B assists the user in creating a program.

[0080] The program creation support device 2B, like the program creation support device 2A shown in Figure 1, comprises an input processing unit 11, a search unit 12, a generation unit 13, an output processing unit 14, and a program storage unit 15. The program creation support device 2B also includes a modification unit 16. The modification unit 16 modifies the program found by the search unit 12 or the program generated by the generation unit 13 according to the user's modification instructions.

[0081] In Embodiment 2, a generation AI is used for the search unit 12, the generation unit 13, and the modification unit 16. That is, in the program creation support device 2B according to Embodiment 2, the generation AI performs the functions of the search unit 12, the generation unit 13, and the modification unit 16. The input processing unit 11 causes the generation AI to switch between the operation as the search unit 12, the operation as the generation unit 13, and the operation as the modification unit 16.

[0082] When a user modifies a program found by the search unit 12, or modifies a program generated by the generation unit 13, the user inputs a modification instruction to the program creation support device 2B by operating the input device 3. The input processing unit 11 receives the modification instruction.

[0083] When the input processing unit 11 receives a modification instruction for a program found by the search unit 12, the output processing unit 14 provides the found program to the input processing unit 11. When the input processing unit 11 receives a modification instruction for a program generated by the generation unit 13, the output processing unit 14 provides the generated program to the input processing unit 11. As a result, the input processing unit 11 receives the program to be modified from the output processing unit 14. The input processing unit 11 provides the modification instruction and the program to be modified to the modification unit 16.

[0084] The modification unit 16 modifies the program to be modified according to the modification instructions. The modification unit 16 provides the modified program to the output processing unit 14. Upon receiving the modified program, the output processing unit 14 outputs the modified program to the display device 4. The display device 4 displays the modified program.

[0085] Next, we will explain the input to the program creation support device 2B and the output from the program creation support device 2B. Figure 8 is a diagram illustrating the input to the program creation support device 2B and the output from the program creation support device 2B in Embodiment 2.

[0086] In Embodiment 2, the program creation support device 2B interacts with the user through a chat-based dialogue. Figure 8 shows an example of a chat screen where the program creation support device 2B and the user interact.

[0087] In the example shown in Figure 8, the new program desired by the user is "a program for company A's barcode reader XX-YY123Z," and the search unit 12 finds "a program for company A's barcode reader XX-YY456W." Furthermore, the user determines that "a program for company A's barcode reader XX-YY456W" cannot be used for "a program for company A's barcode reader XX-YY123Z."

[0088] In Figure 8, the message entered by the user, "Modify the communication command data from 'S' to 'R'," is a modification instruction. The modification instruction includes the specific details of the modification. The input processing unit 11 outputs the modification instruction entered by the user and the program found by the search unit 12 to the modification unit 16. The modification unit 16 modifies the program found by the search unit 12 according to the modification instruction. The modification unit 16 outputs the modified program to the output processing unit 14. The output processing unit 14 outputs the modified program, i.e., the modified "program for Company A's barcode reader XX-YY456W," to the display device 4.

[0089] Display device 4 displays the corrected program on the chat screen. In the example shown in Figure 8, the corrected program is displayed with the message, "The program with corrected communication commands will be output."

[0090] Figure 9 is a diagram illustrating the modification of a program by the modification unit 16 of the program creation support device 2B according to Embodiment 2. In Figure 9, the white arrows pointing into the block representing the modification unit 16 represent input to the modification unit 16. The white arrows pointing out of the block representing the modification unit 16 represent output from the modification unit 16. Figure 9 schematically illustrates that a modification instruction and the program to be modified are input to the modification unit 16, and the modified program is output from the modification unit 16.

[0091] In the example shown in Figure 9, the modification unit 16 receives the modification instruction message, "Modify the communication command data from 'S' to 'R'," and the program to be modified. In response to this input, the modified program is output from the modification unit 16. The modification instruction corresponds to a prompt given to the generating AI.

[0092] In the above description, the program creation support device 2B performs a modification process to modify the program by having the generating AI act as the modification unit 16. The configuration of the program creation support device 2B is not limited to this configuration. For example, the program creation support device 2B may be equipped with a modification unit 16, which is a tool for executing the modification process. In this case, the generating AI may generate instructions for modifying the program, and the modification unit 16 may modify the program according to the generated instructions.

[0093] Next, the operating procedure of the program creation support device 2B will be described. Figure 10 is a flowchart showing an example of the operating procedure of the program creation support device 2B according to Embodiment 2. Steps S1 to S7 shown in Figure 10 are the same as steps S1 to S7 shown in Figure 6.

[0094] If step S7 is completed, or if no instruction is given to create a new program (step S5, No), in step S11, the input processing unit 11 determines whether or not an instruction has been given to modify the program.

[0095] If the user determines that the program found by the search unit 12 can be reused without modification, they do not issue a program modification instruction. Alternatively, if the user determines that the program generated by the generation unit 13 does not require modification, they do not issue a program modification instruction. If no program modification instruction is given (step S11, No), the program creation support device 2B terminates its operation according to the procedure shown in Figure 10.

[0096] If a program modification is instructed (step S11, Yes), the input processing unit 11 outputs the modification instruction and the program to be modified to the modification unit 16. In step S12, the modification unit 16 modifies the program. The modification unit 16 outputs the modified program to the display device 4 via the output processing unit 14. The display device 4 displays the modified program.

[0097] The user checks the modified program on the display device 4. If the user determines that further modifications to the modified program are necessary, the user instructs the program creation support device 2B to modify the program again.

[0098] In step S13, the input processing unit 11 determines whether or not a program revision has been instructed. If a program revision has been instructed (step S13, Yes), the input processing unit 11 outputs a revision instruction to the revision unit 16. The program creation support device 2B returns to step S12 and performs the program revision by the revision unit 16.

[0099] If the user determines that no further modifications are needed to the modified program, they do not instruct the program to be modified again. If the user does not instruct the program to be modified again (step S13, No), the program creation support device 2B terminates its operation according to the procedure shown in Figure 10.

[0100] According to Embodiment 2, the program creation support device 2B includes a modification unit 16 that modifies the program found by the search unit 12 or the program generated by the generation unit 13 according to modification instructions from the user. The inclusion of the modification unit 16 in the program creation support device 2B eliminates the need for manual program modification. This allows the program creation support device 2B to create programs more efficiently.

[0101] Embodiment 3. Embodiment 3 describes an example of canceling a modification if it is determined that the modification instruction is not appropriate. In Embodiment 3, the same reference numerals are used for components that are the same as those in Embodiment 1 or 2, and the description will mainly focus on configurations that differ from those in Embodiment 1 or 2.

[0102] The program creation support device according to Embodiment 3 has a configuration similar to that of the program creation support device 2B shown in Figure 7. The program creation support device 2B according to Embodiment 3 will now be described with reference to the configuration shown in Figure 7.

[0103] The modification unit 16 determines whether the modification instruction is valid. If the modification unit 16 determines that the modification instruction is not valid, it stops modifying the program in accordance with the modification instruction. The modification unit 16 determines that the modification instruction is not valid if it is impossible to modify the program as instructed. The modification unit 16 also determines that the modification instruction is not valid if it is possible to modify the program in accordance with the modification instruction, but it is not appropriate to do so. An example of a case where it is not appropriate to modify the program in accordance with the modification instruction is when a problem occurs when the modified program is executed.

[0104] Next, we will explain the input to the program creation support device 2B and the output from the program creation support device 2B. Figure 11 is a diagram illustrating the input to the program creation support device 2B and the output from the program creation support device 2B in Embodiment 3.

[0105] In Embodiment 3, the program creation support device 2B interacts with the user through a chat-based dialogue. Figure 11 shows an example of a chat screen where the program creation support device 2B and the user interact.

[0106] In the example shown in Figure 11, similar to the example shown in Figure 8, the user determines that the "program for barcode reader XX-YY456W manufactured by Company A," which was found by the search unit 12, cannot be used for the "program for barcode reader XX-YY123Z manufactured by Company A." Furthermore, the user inputs a correction instruction message, "Correct the communication command data from 'S' to 'R'," into the program creation support device 2B.

[0107] Here, the program for the "A Company barcode reader XX-YY456W" does not contain any communication command data, and therefore cannot be modified according to the modification instructions. The modification unit 16 determines that the modification instructions are not valid because it cannot be modified according to the instructions. The modification unit 16 cancels the modification of the program according to the modification instructions. The modification unit 16 outputs a warning to the display device 4 via the output processing unit 14.

[0108] The chat screen of display device 4 displays the words "Warning." Following the "Warning" message, a message is displayed indicating the reason for stopping the correction and prompting confirmation of the correction instructions. In the example shown in Figure 11, the message "The instructed command data does not exist. Please check if there are any errors in the correction details." is displayed on the chat screen.

[0109] If the correction instruction is not deemed valid and the correction is not stopped, the correction unit 16 may attempt to comply with the instruction against its will, resulting in inappropriate processing and a malfunction. An example of such a malfunction is the creation of an abnormal program. The correction unit 16 can prevent the occurrence of a malfunction by determining whether the correction instruction is valid and stopping the correction if the instruction is not valid.

[0110] Next, the operation procedure of the program creation support device 2B will be described. Figure 12 is a flowchart showing an example of the operation procedure of the program creation support device 2B according to Embodiment 3. The program creation support device 2B according to Embodiment 3 operates in the same manner as steps S1 to S7 shown in Figure 10. Figure 12 shows an example of the operation procedure after steps S1 to S7.

[0111] In step S11, the input processing unit 11 determines whether or not a program modification has been instructed. If no program modification has been instructed (step S11, No), the program creation support device 2B terminates its operation according to the procedure shown in Figure 12.

[0112] If a program modification is instructed (step S11, Yes), the input processing unit 11 outputs the modification instruction and the program to be modified to the modification unit 16. In step S21, the modification unit 16 determines whether the modification instruction is valid.

[0113] If the correction instruction is deemed inappropriate (step S21, No), in step S22, the correction unit 16 outputs a warning to the display device 4 via the output processing unit 14. After that, the program creation support device 2B returns to step S11.

[0114] If the correction instruction is deemed valid (step S21, Yes), in step S12, the correction unit 16 corrects the program. The correction unit 16 outputs the corrected program to the display device 4 via the output processing unit 14. The display device 4 displays the corrected program.

[0115] In step S13, the input processing unit 11 determines whether or not a program revision has been instructed. If a program revision has been instructed (step S13, Yes), the input processing unit 11 outputs a revision instruction to the revision unit 16. After that, the program creation support device 2B returns to step S21. The revision unit 16 determines whether or not the revision instruction is valid.

[0116] If no further program modifications are requested (Step S13, No), the program creation support device 2B terminates its operation according to the procedure shown in Figure 12.

[0117] According to Embodiment 3, the modification unit 16 determines whether the modification instruction is valid, and if it determines that the modification instruction is not valid, it stops modifying the program in accordance with the modification instruction. This prevents the program creation support device 2B from experiencing malfunctions.

[0118] Embodiment 4. Embodiment 4 describes an example in which a program creation support device executes tasks using multiple agents. In Embodiment 4, the same reference numerals are used for components identical to those in Embodiments 1 to 3, and the description mainly focuses on configurations that differ from Embodiments 1 to 3.

[0119] Figure 13 shows an example configuration of the program creation support device 2C according to Embodiment 4. The program creation support device 2C assists the user in creating a program. The program creation support device 2C is an example in which the program creation support device 2B according to Embodiment 2 is modified to include a configuration with multiple agents. The program creation support device 2C, together with the input device 3 and the display device 4, constitutes the program creation support system 1B, similar to the program creation support device 2B shown in Figure 7.

[0120] The program creation support device 2C comprises a program storage unit 15 and an AI unit 21. The AI ​​unit 21 comprises a central agent 22, a search agent 23, a generation agent 24, and a modification agent 25. Each of the central agent 22, search agent 23, generation agent 24, and modification agent 25 is an agent that autonomously performs tasks. Each agent of the AI ​​unit 21 performs processing in response to user input by interacting with each other.

[0121] The central agent 22 is a generation AI that aggregates the output from the program creation support device 2C in response to the input to the program creation support device 2C. In the program creation support device 2C, the functions of the input processing unit 11 and the output processing unit 14 shown in Figure 7 are realized by using the central agent 22. The central agent 22 exchanges information with the user. The central agent 22 instructs the search agent 23, the generation agent 24, and the modification agent 25 to execute processing. The central agent 22 receives the processing results from each of the search agent 23, the generation agent 24, and the modification agent 25.

[0122] The search agent 23 is a generative AI that performs the search process. In the program creation support device 2C, the functions of the search unit 12 shown in Figure 7 are realized by using the search agent 23. The search agent 23 searches for a program in the program storage unit 15 that has metadata similar to the first design information. The search agent 23 provides the search results indicating the found program to the management agent 22.

[0123] The generation agent 24 is a generation AI that executes the generation process. In the program creation support device 2C, the functions of the generation unit 13 shown in Figure 7 are realized by using the generation agent 24. When there is no program in the program group that matches information similar to the first design information, or when it is determined that a program found in the program group cannot be reused for the new program, the generation agent 24 generates a new program based on the second design information input by the user. The generation agent 24 provides the generated program to the management agent 22.

[0124] The modification agent 25 is a generating AI that performs program modification processing. In the program creation support device 2C, the functions of the modification unit 16 shown in Figure 7 are realized by using the modification agent 25. The modification agent 25 modifies the program found by the search agent 23 or the program generated by the generation agent 24 according to the modification instructions from the user. The modification agent 25 provides the modified program to the management agent 22.

[0125] Next, we will explain the input to the program creation support device 2C and the output from the program creation support device 2C. Figure 14 is a diagram illustrating the input to the program creation support device 2C and the output from the program creation support device 2C in Embodiment 4.

[0126] In Embodiment 4, the program creation support device 2C communicates with the user through a chat-based dialogue. Figure 14 shows an example of a chat screen where the program creation support device 2C and the user communicate.

[0127] The central agent 22 receives the message, "Create a program for the A Company barcode reader XX-YY123Z." The central agent 22 analyzes the message entered by the user. The central agent 22 instructs the search agent 23 to perform a search to find a program that has metadata similar to "A Company barcode reader XX-YY123Z."

[0128] Suppose the search agent 23 finds a program for "Company A's barcode reader XX-YY456W". The search agent 23 outputs "P_XX-YY456W", which is the name of the program for "Company A's barcode reader XX-YY456W", to the management agent 22. The management agent 22 generates the message "We have a program created in the past for Company A's barcode reader XX-YY456W" and outputs the message to the display device 4. The display device 4 displays the message on the chat screen.

[0129] Suppose the user determines that the program for the "A Company barcode reader XX-YY456W" cannot be reused for the "A Company barcode reader XX-YY123Z". The user inputs the message "The program for the A Company barcode reader XX-YY456W cannot be reused, so please create a new program with the following control specifications" into the program creation support device 2C. Following this message, the user also inputs the second design information, which is the control specification for the "A Company barcode reader XX-YY123Z," into the program creation support device 2C.

[0130] The central agent 22 analyzes the message and control specifications entered by the user. The central agent 22 outputs the control specifications to the generation agent 24 and instructs the generation agent 24 to generate the "program for the A Company barcode reader XX-YY123Z".

[0131] The generation agent 24 generates a program according to the control specifications. The generation agent 24 outputs the generated program to the control agent 22. The control agent 22 outputs the generated program to the display device 4. The display device 4 displays the generated program, "Program for Company A's barcode reader XX-YY123Z," on the chat screen.

[0132] Suppose the user determines that the program presented by the program creation support device 2C needs modification. The user inputs the modification instruction message, "Modify the communication command data from 'S' to 'R'," into the program creation support device 2C. The central agent 22 receives the modification instruction and outputs it to the modification agent 25. The central agent 22 also outputs the program generated by the generation agent 24 to the modification agent 25.

[0133] The correction agent 25 corrects the program generated by the generation agent 24 according to the correction instructions. The correction agent 25 outputs the corrected program to the management agent 22. The management agent 22 outputs the corrected program to the display device 4. The display device 4 displays the corrected program, i.e., the corrected "program for Company A's barcode reader XX-YY123Z", on the chat screen.

[0134] According to Embodiment 4, each of the search unit 12, generation unit 13, and modification unit 16 is realized by using an agent that autonomously performs tasks. The program creation support device 2C includes a central agent 22 that exchanges information with the user and instructs each agent to execute processing. The program creation support device 2C can perform search processing, generation processing, and modification processing through information exchange with the user. The program creation support device 2C can also easily realize complex processing that links search, generation, and modification.

[0135] Furthermore, the correction agent 25, similar to the correction unit 16 in Embodiment 3, may determine whether the correction instruction is valid, and if it determines that the correction instruction is not valid, it may stop correcting the program in accordance with the instruction. This prevents the program creation support device 2C from creating an abnormal program.

[0136] The above describes an example in which the program creation support device 2B according to Embodiment 2 is modified to include a configuration with multiple agents. In Embodiment 4, the program creation support device 2A according to Embodiment 1 may also be modified to include a configuration with multiple agents. In this case, the functions of the search unit 12 shown in Figure 1 are realized by using the search agent 23. The functions of the generation unit 13 shown in Figure 1 are realized by using the generation agent 24. The functions of the input processing unit 11 and the output processing unit 14 shown in Figure 1 are realized by using the central agent 22. The central agent 22 exchanges information with the user and instructs the search agent 23 and the generation agent 24 to execute processing. The program creation support device 2A can perform search processing and generation processing by exchanging information with the user. The program creation support device 2A can also easily realize complex processing that links search and generation.

[0137] Embodiment 5. Embodiment 5 describes an example in which the program generated by the generation unit 13 is added to the group of programs in the program storage unit 15. In Embodiment 5, the same reference numerals are used for the same components as in Embodiments 1 to 4, and the description will mainly focus on configurations that differ from Embodiments 1 to 4.

[0138] Figure 15 shows an example configuration of the program creation support system 1D according to Embodiment 5. The program creation support system 1D comprises a program creation support device 2D, an input device 3, and a display device 4. The program creation support device 2D assists the user in creating a program. Similar to the program creation support device 2A according to Embodiment 1, the program creation support device 2D comprises an input processing unit 11, a search unit 12, a generation unit 13, an output processing unit 14, and a program storage unit 15.

[0139] Similar to the search unit 12 in Embodiment 1, the search unit 12 searches for a program that matches information similar to the first design information from the group of programs stored in the program storage unit 15.

[0140] The generation unit 13 provides the generated program to the output processing unit 14. Upon receiving the generated program, the output processing unit 14 executes output processing to output the generated program to the display device 4. The output processing unit 14 also stores the generated program in the program storage unit 15. As a result, the program generated by the generation unit 13 is added to the program group in the program storage unit 15.

[0141] When a program is added to the program group, the user inputs the metadata attached to the program into the program creation support device 2D. For example, the user inputs the metadata into the chat screen displayed on the display device 4.

[0142] The input processing unit 11 receives metadata and stores it in the program storage unit 15. The metadata entered by the user and the name of the generated program are stored in a table as shown in Figure 3. In this way, the metadata is associated with the program added to the program group.

[0143] The metadata entered by the user includes at least one of the following: information indicating the device to which the program is applied; information indicating the function implemented by the program; information indicating the purpose of the function implemented by the program; a description of the program; and comments from the user who instructed the program's creation. As a result, when the program generated by the generation unit 13 is added to the program group, at least one of the following is stored in the program storage unit 15: information indicating the device to which the program is applied; information indicating the function implemented by the program; information indicating the purpose of the function implemented by the program; a description of the program; and comments from the user who instructed the program's creation. User comments are, for example, precautions to be taken when the program is reused.

[0144] Furthermore, the program creation support device 2D may save programs found by the search unit 12 that it determines can be reused, along with their metadata, in the program storage unit 15. The user instructs the program creation support device 2D to save the programs it determines can be reused. The output processing unit 14 saves the programs found by the search unit 12 to the program storage unit 15. As a result, programs found by the search unit 12 and determined to be reusable are added to the program group in the program storage unit 15. The user also inputs the metadata of the programs it determines can be reused to the program creation support device 2D. The input processing unit 11 receives the metadata and saves it in the program storage unit 15. The metadata is associated with the programs added to the program group.

[0145] Next, the operation procedure of the program creation support device 2D will be described. Figure 16 is a flowchart showing an example of the operation procedure of the program creation support device 2D according to Embodiment 5. Steps S1 to S7 shown in Figure 16 are the same as steps S1 to S7 shown in Figure 6.

[0146] If step S7 is completed, or if no instruction is given to create a new program (step S5, No), in step S31, the output processing unit 14 saves the program to the program storage unit 15. If no instruction is given to create a new program, the output processing unit 14 saves the program that it has determined to be reusable to the program storage unit 15.

[0147] The input processing unit 11 receives the program metadata saved in step S31. In step S32, the input processing unit 11 saves the program metadata to the program storage unit 15. With this, the program creation support device 2D completes its operation according to the procedure shown in Figure 16.

[0148] Figure 17 is a diagram illustrating the metadata stored in the program creation support system 1D according to Embodiment 5. Here, an example of the metadata stored when "P_XX-YY123Z" is generated by the generation unit 13 is described.

[0149] The program storage unit 15 stores a table that shows the correspondence between each program that makes up the program group and its metadata. In the example shown in Figure 17, the metadata of the generated program is associated with the name of the generated program, "P_XX-YY123Z".

[0150] In Figure 17, "A Company barcode reader" and "Applicable to device X" are examples of information indicating the device to which the program is applied. "Program for barcode reading function" is an example of information indicating the function implemented by the program. "Scans barcodes and transmits the read data" is an example of information indicating the purpose of the function implemented by the program. Furthermore, in the example shown in Figure 17, the metadata includes control specification information and creator comments. The control specification information is an example of a description of the program. Creator comments are comments from the user who instructed the creation of the program. Note that metadata may also include information other than the above.

[0151] The above shows an example of metadata attached to a program generated by the generation unit 13. The metadata stored when a program found by the search unit 12 is saved can also include the same information as above.

[0152] As the generated programs and the programs that have been found are added to the program collection, a large number of programs will be accumulated as the program creation support system 1D is operated. This will allow the program creation support device 2D to broaden the range of functions that can be reused and the range of processes that can be reused.

[0153] In the above, the program group was to include the program generated by the generation unit 13 and the program found by the search unit 12 that was deemed reusable. In Embodiment 5, the program group only needs to include at least the program generated by the generation unit 13.

[0154] According to Embodiment 5, the search unit 12 finds a program from the stored program group that matches information similar to the first design information. The program generated by the generation unit 13 is added to the program group. This allows the program creation support device 2D to broaden the range of functions that can be reused and the range of processes that can be reused.

[0155] When a program generated by the generation unit 13 is added to the program group, at least one of the following may be stored: information indicating the device to which the program is applied; information indicating the function realized by the program; information indicating the use of the function realized by the program; a description of the program; and comments from the user who instructed the program generation. By accumulating this information, the program creation support device 2D can increase the amount of information referenced in the search process of the search unit 12. This allows the program creation support device 2D to improve the accuracy of the search by the search unit 12 and find a program that is closer to the program desired by the user.

[0156] In the above, a program creation support device 2D having a configuration similar to that of the program creation support device 2A according to Embodiment 1 was used as an example. The features described in Embodiment 5 may also be applied to the program creation support device 2B according to Embodiment 2. In this case, the program modified by the modification unit 16 shown in Figure 7 may be added to the program group in the program storage unit 15. By adding the modified program to the program group, the program creation support device 2B can broaden the range of functions that can be reused and the range of processes that can be reused.

[0157] Furthermore, when a modified program is added to the program group, at least one of the following may be saved: information indicating the device to which the program is applied, information indicating the function implemented by the program, information indicating the use of the function implemented by the program, a description of the program, and comments from the user who instructed the program modification. As the program creation support device 2B references more information in the search process of the search unit 12, the accuracy of the search by the search unit 12 can be improved, and a program closer to the program desired by the user can be found.

[0158] The features described in Embodiment 5 may also be applied to the program creation support device 2B according to Embodiment 3, or the program creation support device 2C according to Embodiment 4.

[0159] Embodiment 6. Embodiment 6 describes an example in which a program deemed unsuitable for reuse is included in the negative prompt during program generation. In Embodiment 6, the same reference numerals are used for components identical to those in Embodiments 1 to 5, and the description mainly focuses on configurations that differ from those in Embodiments 1 to 5.

[0160] Figure 18 shows an example configuration of the program creation support system 1E according to Embodiment 6. The program creation support system 1E comprises a program creation support device 2E, an input device 3, and a display device 4. The program creation support device 2E assists the user in creating a program. Similar to the program creation support device 2A according to Embodiment 1, the program creation support device 2E comprises an input processing unit 11, a search unit 12, a generation unit 13, an output processing unit 14, and a program storage unit 15.

[0161] The input processing unit 11 recognizes, for example, from the user's input such as "The program for the A Company barcode reader XX-YY456W cannot be reused," that it has been determined that the program found in the program group cannot be reused for the new program. The output processing unit 14 outputs the program found by the search unit 12 to the input processing unit 11 when it is determined that the program cannot be reused.

[0162] When the generation unit 13 determines that a program found by the search unit 12 in the program group cannot be reused in a new program, and generates a new program based on the second design information, it includes the program that was determined to be unusable in the negative prompt. The generation unit 13 generates the program, including the program that was determined to be unusable in the negative prompt.

[0163] Figure 19 is a diagram illustrating the generation process by the generation unit 13 of the program creation support device 2E according to Embodiment 6. In Figure 19, the white arrows pointing into the block representing the generation unit 13 represent input to the generation unit 13. The white arrows pointing out of the block representing the generation unit 13 represent output from the generation unit 13. Figure 19 schematically illustrates that the second design information and the program, which is a negative prompt, are input to the generation unit 13, and the generated program is output from the generation unit 13.

[0164] The second design information input to the generation unit 13 includes information indicating the control specifications of the program. The second design information corresponds to a prompt given to the generation AI. The program input to the generation unit 13, that is, the program that is determined to be unusable, is a negative prompt given to the generation AI.

[0165] According to Embodiment 6, when the generation unit 13 determines that a program found in the program group cannot be reused in a new program and generates a new program based on the second design information, it includes the program deemed unusable in the negative prompt. This prevents the program creation support device 2E from generating a program similar to the program deemed unusable. The program creation support device 2E can prevent the generated program from being unusable and the program generation being instructed again, thereby improving the efficiency of program creation.

[0166] The features described in Embodiment 6 may also be applied to the program creation support devices 2B, 2C, and 2D according to Embodiments 2 to 5.

[0167] Embodiment 7. Embodiment 7 describes an example of using external knowledge acquired from outside the program creation support device. In Embodiment 7, the same reference numerals are used for the same components as in Embodiments 1 to 6, and the description mainly focuses on configurations that differ from Embodiments 1 to 6.

[0168] Figure 20 shows an example configuration of the program creation support system 1F according to Embodiment 7. The program creation support system 1F comprises a program creation support device 2F, an input device 3, and a display device 4. The program creation support device 2F assists the user in creating a program.

[0169] The program creation support device 2F, like the program creation support device 2A shown in Figure 1, comprises an input processing unit 11, a search unit 12, a generation unit 13, an output processing unit 14, and a program storage unit 15. The program creation support device 2F also includes an external knowledge storage unit 31.

[0170] The program creation support device 2F acquires external knowledge, which is knowledge existing outside of the program creation support device 2F. The acquired external knowledge is stored in the external knowledge storage unit 31. In Embodiment 7, the external knowledge is information expressed in natural language. A database of external knowledge is constructed in the external knowledge storage unit 31.

[0171] The program creation support device 2F uses external knowledge as a condition for searching for a program using the search unit 12, or as a condition for generating a new program using the generation unit 13. External knowledge is, for example, design know-how. The external knowledge storage unit 31 stores a set of information representing design know-how.

[0172] When the first design information is input, the search unit 12 searches for external knowledge related to the first design information from the external knowledge stored in the external knowledge storage unit 31. If external knowledge related to the first design information is stored in the external knowledge storage unit 31, the search unit 12 reads out that external knowledge. The search unit 12 performs a search to find a program that matches information similar to the first design information from the program group, and a search using the external knowledge as a search condition.

[0173] When the generation unit 13 receives the second design information, it searches for external knowledge related to the second design information from the external knowledge stored in the external knowledge storage unit 31. If external knowledge related to the second design information is stored in the external knowledge storage unit 31, the generation unit 13 reads that external knowledge. The generation unit 13 uses the external knowledge as a prompt when generating a new program based on the second design information.

[0174] External knowledge, or design know-how, is expertise that is commonly applied to the design of multiple devices. Examples of design know-how include how to write instructions to prevent processing bottlenecks, design patterns in software development, and dependencies between programs. Specific examples of design know-how include avoiding having five or more consecutive instructions in a program because their efficiency decreases if they appear consecutively, or creating a program for a different function simultaneously when creating a particular program.

[0175] Figure 21 is a diagram illustrating the search process performed by the search unit 12 of the program creation support device 2F according to Embodiment 7. In Figure 21, the white arrows pointing into the block representing the search unit 12 represent input to the search unit 12. The white arrows pointing out of the block representing the search unit 12 represent output from the search unit 12. Figure 21 schematically illustrates that the first design information and external knowledge are input to the search unit 12, and the search results, name of the program and the program created based on the external knowledge, are output from the search unit 12.

[0176] In the example shown in Figure 21, it is assumed that the first design information, "Barcode reader XX-YY123Z manufactured by Company A," is input to the search unit 12. The search unit 12 retrieves external knowledge related to "Barcode reader XX-YY123Z manufactured by Company A" from the external knowledge storage unit 31.

[0177] Here, it is known that a program for a certain function has a dependency on a program for a barcode reader. Here, we will refer to this function as function Y. Regarding this dependency, it is assumed that the external knowledge that "when creating a program for a barcode reader, the program for function Y is created at the same time" is stored in the external knowledge storage unit 31. The search unit 12 retrieves this external knowledge from the external knowledge storage unit 31.

[0178] The search unit 12 searches the program storage unit 15 for a program with metadata similar to "A Company's barcode reader XX-YY123Z". Here, let's assume that "the program for A Company's barcode reader XX-YY456W" is found.

[0179] Furthermore, the search unit 12 searches for the "program for function Y" in the program storage unit 15. Here, we assume that the "program for function Y" has been found. The search unit 12 outputs "P_XX-YY456W", which indicates the program that is the search result based on the first design information, and the "program for function Y" that was found based on external knowledge.

[0180] The program creation support device 2F can find programs from a different perspective than whether or not they match information similar to the first design information, by using external knowledge as a condition for finding programs. This makes the program creation support device 2F more efficient.

[0181] Figure 22 is a diagram illustrating the generation process by the generation unit 13 of the program creation support device 2F according to Embodiment 7. In Figure 22, the white arrows pointing into the block representing the generation unit 13 represent input to the generation unit 13. The white arrows pointing out of the block representing the generation unit 13 represent output from the generation unit 13. Figure 22 schematically illustrates how the second design information and external knowledge are input to the generation unit 13, and how the generated program is output from the generation unit 13.

[0182] The generation unit 13 searches the external knowledge storage unit 31 for external knowledge related to the control specifications shown in the second design information. Suppose the external knowledge found is: "Since efficiency decreases when MOV instructions are used consecutively, avoid having five or more MOV instructions in a row." The generation unit 13 retrieves this external knowledge from the external knowledge storage unit 31. The generation unit 13 uses the control specifications and the external knowledge as prompts to create a new program. That is, the generation unit 13 generates a program that satisfies the control specifications and the external knowledge. The generation unit 13 outputs the generated program.

[0183] The program creation support device 2F can generate a program from a different perspective than that shown in the second design information by using external knowledge as a condition for generating a new program. This makes the program creation support device 2F more efficient.

[0184] According to Embodiment 7, the program creation support device 2F acquires external knowledge that exists outside of the program creation support device 2F. The program creation support device 2F uses the external knowledge as a condition when the search unit 12 finds a program, or as a condition when the generation unit 13 generates a new program. This makes the program creation support device 2F more efficient in program creation.

[0185] It should be noted that design know-how is merely an example of external knowledge acquired by the program creation support device 2F. The external knowledge acquired by the program creation support device 2F may include information other than design know-how.

[0186] In the above definition, external knowledge is defined as information expressed in natural language. However, external knowledge may include information other than that expressed in natural language.

[0187] In the above configuration, the external knowledge storage unit 31 has a database of external knowledge, and the search unit 12 and the generation unit 13 read external knowledge from the external knowledge storage unit 31. The program creation support device 2F is not limited to a configuration that reads external knowledge from the external knowledge storage unit 31. External knowledge may be input into the program creation support device 2F by the user. In this case, the search unit 12 and the generation unit 13 each acquire the external knowledge input by the user.

[0188] The features described in Embodiment 7 may also be applied to, for example, the program creation support devices 2B and 2C according to Embodiments 2 to 4. In this case, the program creation support devices 2B and 2C use external knowledge as conditions for finding a program or for generating a new program. Alternatively, the program creation support devices 2B and 2C may use external knowledge as conditions for modifying a program. In this case, the program creation support devices 2B and 2C can modify the program from a perspective different from the user's modification instructions. This makes the program creation support devices 2B and 2C more efficient in program creation. The features described in Embodiment 7 may also be applied to the program creation support devices 2D and 2E according to Embodiment 5 or 6.

[0189] Embodiment 8. Embodiment 8 describes an example of determining whether a program found in a group of programs can be reused in a new program. In Embodiment 8, the same reference numerals are used for components that are the same as those in Embodiments 1 to 7, and the description mainly focuses on configurations that differ from Embodiments 1 to 7.

[0190] Figure 23 shows an example configuration of the program creation support system 1G according to Embodiment 8. The program creation support system 1G comprises a program creation support device 2G, an input device 3, and a display device 4. The program creation support device 2G assists the user in creating programs.

[0191] The program creation support device 2G, like the program creation support device 2A shown in Figure 1, comprises an input processing unit 11, a search unit 12, a generation unit 13, an output processing unit 14, and a program storage unit 15. The program creation support device 2G also includes a determination unit 41 and an evaluation criteria storage unit 42.

[0192] The evaluation criteria storage unit 42 stores evaluation criteria for determining whether a program found in the program group within the program storage unit 15 can be reused in a new program. Evaluation criteria are the standards that a program found in the search results must meet in order to be evaluated as reusable. A database of evaluation criteria is constructed in the evaluation criteria storage unit 42.

[0193] The search unit 12 provides the program found in the program storage unit 15 to the decision unit 41. The decision unit 41 reads the evaluation criteria stored in the evaluation criteria storage unit 42. The decision unit 41 determines, based on the evaluation criteria, whether the found program can be reused in a new program. The decision unit 41 outputs the result of its determination on whether reuse is possible to the output processing unit 14. The output processing unit 14 outputs the search results to the display device 4, indicating the programs found by the search unit 12 and determined to be reusable. If the search unit 12 determines that a program cannot be reused, the output processing unit 14 outputs the search results to the display device 4 indicating that no program was found.

[0194] Here, we will explain two examples of evaluation criteria. The first example of an evaluation criterion is that the degree of deviation from the design know-how described in Embodiment 7 falls within a predetermined range of criteria. In this case, the judgment unit 41 determines the degree of deviation from the design know-how for the program, which is the search result, and determines that reuse is not permitted if the degree of deviation does not fall within the range of criteria.

[0195] A second example of an evaluation criterion is that the number of places in the program that need modification is below a threshold. In this case, the judgment unit 41 determines the number of places that need modification from the number of processes unique to the program or the number of variables unique to the program. If the number of places that need modification is above the threshold, the judgment unit 41 determines that reuse is not permitted. Note that the evaluation criteria are not limited to those exemplified here and are arbitrary.

[0196] For example, a generation AI is used in the decision unit 41. In this case, the program creation support device 2G determines whether or not the program can be reused by using the generation AI. Here, the evaluation criteria for determining whether or not the program can be reused are the evaluation criteria of the second example above. For example, a prompt such as "When modifying the program, which is a search result, to satisfy the first design information, extract and count the parts that need to be modified" is given to the generation AI, LLM (Large Language Model). The generation AI, LLM, is also provided with the first design information from the input processing unit 11. As a result, the decision unit 41 can determine the number of parts that need to be modified in the program, which is a search result. For example, the program creation support device 2G is equipped with a generation AI that functions as a decision unit 41, in addition to the generation AI that functions as a search unit 12 and a generation unit 13. Alternatively, the generation AI that functions as a search unit 12 and a generation unit 13 may also perform the function of the decision unit 41.

[0197] The method used by the decision unit 41 for making a decision is not limited to the method described above and is arbitrary. The decision unit 41 may, for example, determine whether or not the program can be reused using a rule-based method.

[0198] Next, the operating procedure of the program creation support device 2G will be described. Figure 24 is a flowchart showing an example of the operating procedure of the program creation support device 2G according to Embodiment 8.

[0199] Steps S1 to S3 shown in Figure 24 are the same as steps S1 to S3 shown in Figure 6. If there is a program that has metadata similar to the first design information (step S3, Yes), the program creation support device 2G proceeds to step S41.

[0200] In step S41, the determination unit 41 determines, based on evaluation criteria, whether or not the program found by the search unit 12 can be reused. If the determination unit 41 determines that the program can be reused (step S41, Yes), in step S4, the output processing unit 14 outputs the search results indicating the found program to the display device 4.

[0201] If the program reuse determination unit 41 determines that it is not possible to reuse the program (step S41, No), the program creation support device 2G proceeds to step S6. Steps S6 and S7 shown in Figure 24 are the same as steps S6 and S7 shown in Figure 6. The program creation support device 2G terminates its operation according to the procedure shown in Figure 24 by completing step S4 or by completing step S7.

[0202] According to Embodiment 8, the program creation support device 2G includes a determination unit 41 that determines, based on evaluation criteria, whether a program found in the program group can be reused in a new program. The inclusion of the determination unit 41 in the program creation support device 2G eliminates the need for the user to determine whether a found program can be reused. Therefore, the program creation support device 2G can reduce the user's burden in program creation.

[0203] In the above configuration, the evaluation criteria storage unit 42 has a database of evaluation criteria, and the decision unit 41 reads the evaluation criteria from the evaluation criteria storage unit 42. The program creation support device 2G is not limited to a configuration that reads evaluation criteria from the evaluation criteria storage unit 42. The program creation support device 2G may also receive evaluation criteria input by the user. In this case, the decision unit 41 acquires the evaluation criteria input by the user.

[0204] Furthermore, the configuration described in Embodiment 8 may also be applied to the program creation support devices 2B, 2C, 2D, 2E, and 2F according to Embodiments 2 to 7.

[0205] Embodiment 9. Embodiment 9 describes an example in which external tools of the program creation support device are used for searching, generating, modifying, and verifying the operation of the program. In Embodiment 9, the same reference numerals are used for components that are the same as those in Embodiments 1 to 8, and the description mainly focuses on configurations that differ from Embodiments 1 to 8.

[0206] The program creation support device according to Embodiment 9 shall have the same configuration as the program creation support device 2B shown in Figure 7. Hereinafter, the program creation support device 2B according to Embodiment 9 will be described with reference to the configuration shown in Figure 7.

[0207] The program creation support device 2B performs at least one of the following processes using an external tool: a search process in which the search unit 12 finds a program that matches information similar to the first design information; a generation process in which the generation unit 13 generates a new program; a modification process in which the modification unit 16 modifies the program; and an operation verification of the program obtained through the search process, generation process, or modification process. The operation verification of the program includes debugging and unit testing. The results of the operation verification are fed back to the program creation support device 2B.

[0208] For example, when an external tool is to perform a search, the search unit 12 generates instructions for executing the search. The search unit 12 provides the first design information input by the user and the generated instructions to the external tool. The external tool searches the program group for a program that has metadata similar to the first design information, according to the instructions. The external tool sends the search results to the program creation support device 2B. The search unit 12 receives the search results and outputs them to the output processing unit 14.

[0209] When an external tool is to perform the generation process, the generation unit 13 generates instructions for executing the generation process. The generation unit 13 provides the external tool with the second design information input by the user and the generated instructions. The external tool generates a new program based on the second design information according to the instructions. The external tool sends the generated program to the program creation support device 2B. The generation unit 13 receives the generated program and outputs it to the output processing unit 14.

[0210] When an external tool is to perform the modification process, the modification unit 16 generates instructions for executing the modification process according to the modification instructions entered by the user. The modification unit 16 provides the program to be modified and the generated instructions to the external tool. The external tool modifies the program according to the instructions. The external tool sends the modified program to the program creation support device 2B. The modification unit 16 receives the modified program and outputs the modified program to the output processing unit 14.

[0211] The user instructs the program creation support device 2B to verify the operation of a program by operating the input device 3. The program to be verified is a program found through a search process, a program generated through a generation process, or a program modified through a modification process. The input processing unit 11 receives the user's instruction and generates commands to execute the operation verification. The input processing unit 11 provides the generated commands to the output processing unit 14. The output processing unit 14 outputs the program to be verified and the commands to an external tool that performs the operation verification. The external tool performs the program operation verification according to the commands. The external tool sends the results of the operation verification to the program creation support device 2B. The output processing unit 14 receives the results of the operation verification and outputs the results of the operation verification to the display device 4.

[0212] In the program creation support device 2B, the generation AI generates, for example, commands for executing the search process, commands for executing the generation process, commands for executing the modification process, and commands for executing the operation check.

[0213] Next, we will explain the input to the program creation support device 2B and the output from the program creation support device 2B. Figure 25 is a diagram illustrating the input to the program creation support device 2B and the output from the program creation support device 2B in Embodiment 9.

[0214] This section describes the case where the user instructs the user to verify the operation of the program generated by the generation process. In Figure 25, some of the interactions between the user and the program creation support device 2B up to the point when the generated program is output are omitted from the illustration. The generation AI of the program creation support device 2B generates commands for operation verification and, in cooperation with engineering tools, enables the program's operation verification.

[0215] In the example shown in Figure 25, the message "Check if the generated program works using an engineering tool" is input to the program creation support device 2B. Here, the engineering tool is an external tool that performs operational verification. The input processing unit 11 analyzes the message input by the user and generates instructions to perform the operational verification. The output processing unit 14 outputs the program and instructions to be verified to the engineering tool.

[0216] The engineering tool performs a program operation check and sends the results to the program creation support device 2B. The input processing unit 11 receives the results of the operation check and provides them to the output processing unit 14. The output processing unit 14 outputs the results of the operation check to the display device 4. In Figure 25, the message "The results of the execution by the engineering tool are as follows: 1 warning, 0 errors, successful completion." indicates the results of the operation check.

[0217] Next, we will explain specific examples of external tools and their integration. An example of an external tool that performs search processing is Elasticsearch®. Elasticsearch is a full-text search engine that enables high-speed document searching. The search unit 12 sends the first design information and commands to the external tool, thereby instructing the external tool to perform a program search using the first design information as a query. The search unit 12 receives the search results, which are the output of the external tool.

[0218] A specific example of an external tool that performs the generation process is Cline, a generation AI tool usable with code editors such as VS Code. Cline enables code generation and code modification based on natural language instructions. The generation unit 13 sends the second design information and instructions to the external tool, thereby instructing the external tool to generate a program using the second design information as a prompt. The generation unit 13 receives the generated program, which is the output of the external tool.

[0219] A concrete example of an external tool that performs the correction process is Cline, as mentioned above. The correction unit 16 sends correction instructions and commands to the external tool, thereby instructing the external tool to correct the program using the correction instructions as a prompt. The correction unit 16 receives the corrected program, which is the output of the external tool.

[0220] Specific examples of external tools used to perform operational verification include MELSOFT® GX Works® 3 and Visual Studio®. MELSOFT GX Works 3 is an engineering tool for programmable logic controllers and is used in the development of sequence control programs. Visual Studio is an integrated development environment that supports programs in various languages. When the user instructs that the operation of a program be verified, the output processing unit 14 sends the program and instructions to be verified to the external tool, for example, instructing the external tool to perform debug execution. The output processing unit 14 receives the result of the debug execution, which is the output of the external tool. The output processing unit 14 may also send the program and instructions to be verified to the external tool as a step before outputting the program obtained by searching, generating, or modifying to the display device 4.

[0221] According to Embodiment 9, the program creation support device 2B performs at least one of the following processes by using an external tool: a search process in which the search unit 12 finds a program that matches information similar to the first design information; a generation process in which the generation unit 13 generates a new program; a modification process in which the modification unit 16 modifies the program; and an operation verification of the program obtained through the search process, generation process, or modification process. The program creation support device 2B performs at least one of the search process, generation process, modification process, and operation verification through cooperation with an external tool. As a result, the program creation support device 2B can create programs more efficiently.

[0222] Furthermore, the features described in Embodiment 9 may also be applied to the program creation support devices 2B and 2C according to Embodiment 3 or 4. In this case, the program creation support devices 2B and 2C perform at least one of the following processes—searching, generating, modifying, and verifying operation—through cooperation with an external tool. This allows the program creation support devices 2B and 2C to create programs more efficiently.

[0223] Furthermore, the features described in Embodiment 9 may also be applied to the program creation support device 2A according to Embodiment 1, or the program creation support devices 2D, 2E, 2F, and 2G according to Embodiments 5 to 8. In this case, the program creation support devices 2A, 2D, 2E, 2F, and 2G perform at least one of the following processes: search processing, generation processing, and operation verification, in cooperation with an external tool. This enables the program creation support devices 2A, 2D, 2E, 2F, and 2G to create programs more efficiently.

[0224] Embodiment 10. In embodiments 1 to 9 described above, examples were explained in which the generation AI is provided in the server device, which is the program creation support device 2A, 2B, 2C, 2D, 2E, 2F, 2G. Embodiment 10 describes an example in which the generation AI is provided outside the server device, which is the program creation support device. In embodiment 10, the same reference numerals are used for the same components as in embodiments 1 to 9, and the description mainly focuses on configurations that differ from embodiments 1 to 9.

[0225] Figure 26 shows an example configuration of the program creation support system 1H according to Embodiment 10. The program creation support system 1H comprises a program creation support device 2H, an input device 3, a display device 4, and an information processing device 5. The program creation support device 2H assists the user in creating a program.

[0226] The program creation support system 1H is a modified version of the program creation support system 1A shown in Figure 1. In the program creation support system 1H, the generated AI in the program creation support device 2A shown in Figure 1 is transferred to the information processing device 5.

[0227] The program creation support device 2H is a server device. The program creation support device 2H is composed of, for example, one or more cloud servers.

[0228] The program creation support device 2H and the information processing device 5 are connected to each other via a network such as a VPN (Virtual Private Network). The program creation support device 2H and the information processing device 5 send and receive information to each other through communication over the network.

[0229] The program creation support device 2H provides the information processing device 5 with first design information, which is information about a new program desired by the user, and second design information input by the user. The information processing device 5 receives the first and second design information and performs information processing using the generation AI. The information processing device 5 then provides the results of the information processing to the program creation support device 2H.

[0230] The program creation support device 2H and the input device 3 are connected to each other via a network. The input device 3 is operated by the user to input information to the program creation support device 2H. The program creation support device 2H and the display device 4 are connected to each other via a network. The display device 4 presents the information output by the program creation support device 2H to the user by displaying the information output by the program creation support device 2H.

[0231] The program creation support device 2H comprises an input processing unit 11, a control unit 51, and an output processing unit 14. The user inputs first design information and second design information to the program creation support device 2H by operating the input device 3. The input processing unit 11 receives information from the input device 3 and outputs the information to the control unit 51. The control unit 51 is an interface for exchanging information with the information processing device 5. The control unit 51 receives information from the information processing device 5 and outputs the information to the output processing unit 14. The output processing unit 14 outputs the information to the display device 4.

[0232] The information processing device 5 comprises a program storage unit 15 and an AI unit 52, which is an artificial intelligence unit. The artificial intelligence unit is an artificial intelligence equipped with intelligent functions such as reasoning or judgment, and its operating environment. In Embodiment 10, the AI ​​unit 52 is a generative AI.

[0233] The AI ​​unit 52 comprises a model control unit 53 and a model storage unit 54. The AI ​​unit 52 is a model and its operating environment configured to find a program from the program group in the program storage unit 15 that matches information similar to the first design information when first design information is input. When the AI ​​unit 52 obtains the first design information from the control unit 51, it performs a search process based on the first design information and the trained model and outputs the search results. In this way, the AI ​​unit 52 performs the same functions as the search unit 12 shown in Figure 1.

[0234] Furthermore, the AI ​​unit 52 is a model and its operating environment configured to generate a new program based on the second design information when the second design information is input. When the AI ​​unit 52 obtains the second design information from the control unit 51, it performs generation processing based on the second design information and the trained model, and outputs the generated program. If there is no program in the program group that matches information similar to the first design information, or if it is determined that it is not possible to reuse a program found in the program group for the new program, the AI ​​unit 52 generates a new program based on the second design information input by the user. In this way, the AI ​​unit 52 performs the same functions as the generation unit 13 shown in Figure 1.

[0235] The model memory unit 54 stores the trained model. The trained model includes model information, which will be described later. The trained model may also include model parameters, which are information that defines the behavior of the model, such as constraints, weighting variables, and evaluation functions.

[0236] The models may include, for example, NN (Neural Network), CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), VAE (Variational Auto-Encoder), GAN (Generative Adversarial Networks), Diffusion Model, Transformer, LLM, VLM (Vision Language Model), BERT (Bidirectional Encoder Representations from Transformers), GPT (Generative Pre-trained Transformer), or CLIP (Contrastive Language Image Pre-training). Note that the models are not mutually exclusive; for example, LLM, VLM, BERT, and GPT are included in Transformer. Also, for example, Transformer is included in NN. Furthermore, the learning algorithm and model may be a combination of multiple types. Models also include what are called multimodal models, which are trained by combining multiple different types of data.

[0237] When the model control unit 53 acquires the first design information, it outputs search results indicating programs that match information similar to the first design information, based on the first design information and the trained model. In other words, when the model control unit 53 acquires the first design information, it uses the model indicated by the trained model to generate and output search results corresponding to the first design information.

[0238] Furthermore, when the model control unit 53 acquires the second design information, it generates a program that satisfies the second design information based on the second design information and the trained model. In other words, when the model control unit 53 acquires the second design information, it uses the model shown by the trained model to generate and output a program corresponding to the second design information.

[0239] The trained model and other information used by the AI ​​unit 52 may be pre-prepared, or they may be acquired via the network as needed.

[0240] The program creation support system 1H may also include a user terminal, which is a computer system having an input unit and a display unit. In this case, the input unit of the user terminal functions as an input device 3, and the display unit of the user terminal functions as a display device 4.

[0241] In the above, the program storage unit 15 is assumed to be provided in the information processing device 5. However, the program storage unit 15 may be provided in an external device to the information processing device 5. For example, the program storage unit 15 may be provided in a user terminal.

[0242] According to Embodiment 10, the program creation support system 1H comprises a program creation support device 2H and an information processing device 5. The program creation support device 2H provides the information processing device 5 with first design information, which is information about a new program desired by the user, and second design information input by the user. The AI ​​unit 52 of the information processing device 5 functions as a search unit 12 that finds a program from a group of programs that matches information similar to the first design information. Furthermore, if there is no program in the group of programs that matches information similar to the first design information, or if it is determined that a program found in the group of programs cannot be reused for the new program, the AI ​​unit 52 of the information processing device 5 functions as a generation unit 13 that generates a new program based on the second design information.

[0243] The program found by the AI ​​unit 52 can be reused in a new program. The program creation support system 1H can prevent the unnecessary mass production of programs for similar processes by reusing existing programs. If there is no program that matches the information similar to the first design information, or if it is not possible to reuse the found program in a new program, the program creation support system 1H can also support program creation by generating a new program based on the second design information. In this way, the program creation support system 1H has the effect of preventing the unnecessary mass production of programs for similar processes and supporting program creation.

[0244] In the above description, the program creation support system 1H includes a server device, the program creation support device 2H. The program creation support system 1H may be modified as appropriate from the configuration described in Embodiment 10. For example, the program creation support device 2H may be provided in a user terminal. The user terminal may be equipped with the program creation support device 2H, an input unit that functions as an input device 3, and a display unit that functions as a display device 4. In this case, the program creation support system 1H includes a user terminal and an external information processing device 5 of the user terminal.

[0245] In the above, the features of Embodiment 10 were described using the program creation support system 1H, which is a modified version of the program creation support system 1A according to Embodiment 1, as an example. Modifications that have the features described in Embodiment 10 may also be applied to the program creation support systems 1B, 1D, 1E, 1F, and 1G according to Embodiments 2 to 9. That is, the program creation support systems 1B, 1D, 1E, 1F, and 1G according to Embodiments 2 to 9 may be modified by adding an information processing device 5, so that the generated AI is transferred from the program creation support devices 2B, 2C, 2D, 2E, 2F, and 2G to the information processing device 5. For example, in the configuration in which the generated AI of the program creation support system 1B shown in Figure 7 is transferred to the information processing device 5, the AI ​​unit 52 of the information processing device 5 may perform the same functions as the search unit 12, generation unit 13, and modification unit 16 shown in Figure 7.

[0246] Next, the hardware configuration of the program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H according to Embodiments 1 to 10 will be described. Figure 27 shows an example of the hardware configuration of the program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H according to Embodiments 1 to 10.

[0247] The program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H are implemented by a computer system comprising a processing circuit 71 and a communication device 72. The processing circuit 71 comprises a processor 73 and memory 74. The processing circuit 71 is a circuit in which the processor 73 executes software.

[0248] The processing units of the program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H, namely the input processing unit 11, search unit 12, generation unit 13, output processing unit 14, modification unit 16, AI unit 21, judgment unit 41, and control unit 51, are implemented by software, firmware, or a combination of software and firmware. The software or firmware is written as a program and stored in memory 74.

[0249] The processing circuit 71 realizes the above-mentioned processing unit by having the processor 73 read and execute the program stored in the memory 74. The processing circuit 71 includes a memory 74 that stores the program that will ultimately be executed by the program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H. It can also be said that the program stored in the memory 74 causes the computer to execute the procedures and methods of processing by the program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H.

[0250] The processor 73 is a CPU (Central Processing Unit, also known as a processing unit, arithmetic unit, microprocessor, microcomputer, processor, or DSP (Digital Signal Processor)). The memory 74 includes, for example, non-volatile or volatile semiconductor memory such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), EEPROM (Registered Trademark) (Electrically Erasable Programmable Read Only Memory), magnetic disks, flexible disks, optical disks, compact disks, minidiscs, or DVDs (Digital Versatile Discs). The program storage unit 15, external knowledge storage unit 31, and evaluation criteria storage unit 42 of the program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H are implemented by the memory 74.

[0251] The communication device 72 communicates with external devices of the program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H. The program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, and 2G communicate with the input device 3 and the display device 4, respectively, using the communication device 72. The program creation support device 2H communicates with the input device 3, the display device 4, and the information processing device 5, respectively, using the communication device 72.

[0252] The program creation support devices 2A, 2B, 2C, 2D, 2E, 2F, 2G, and 2H may include integrated circuits such as ASICs (Application Specific Integrated Circuits) or FPGAs (Field Programmable Gate Arrays). The programs according to Embodiments 1 to 10 may be provided on recording media such as CD-ROMs (Compact Disc) or DVD-ROMs. The programs according to Embodiments 1 to 10 may be provided by being stored on a computer connected to a network such as the Internet and downloaded via the Internet or other network. The programs according to Embodiments 1 to 10 may be provided or distributed via a network such as the Internet.

[0253] Next, the hardware configuration of the information processing device 5 according to Embodiment 10 will be described. The hardware configuration of the information processing device 5 is the same as the hardware configuration shown in Figure 27. The information processing device 5 is realized by a computer system that includes a processing circuit 71 and a communication device 72. The function of the model control unit 53, which is the processing unit of the information processing device 5, is realized by the processor 73 reading and executing a program stored in the memory 74. The program storage unit 15 and the model storage unit 54 are realized by the memory 74. The communication device 72 communicates with the program creation support device 2H. The information processing device 5 may also include an integrated circuit such as an ASIC or FPGA.

[0254] The configurations shown in each of the embodiments described above are examples of the content of this disclosure. The configurations of each embodiment can be combined with other known technologies. The configurations of each embodiment may be combined with each other as appropriate. It is possible to omit or modify parts of the configurations of each embodiment without departing from the gist of this disclosure. [Explanation of Symbols]

[0255] 1A, 1B, 1D, 1E, 1F, 1G, 1H Program creation support system, 2A, 2B, 2C, 2D, 2E, 2F, 2G, 2H Program creation support device, 3 Input device, 4 Display device, 5 Information processing device, 11 Input processing unit, 12 Search unit, 13 Generation unit, 14 Output processing unit, 15 Program storage unit, 16 Modification unit, 21, 52 AI unit, 22 Coordinating agent, 23 Search agent, 24 Generation agent, 25 Modification agent, 31 External knowledge storage unit, 41 Judgment unit, 42 Evaluation criteria storage unit, 51 Control unit, 53 Model control unit, 54 Model storage unit, 71 Processing circuit, 72 Communication device, 73 Processor, 74 Memory.

Claims

1. A search unit that obtains first design information, which is information about a new program desired by the user, and searches for a program from a group of programs that matches information similar to the first design information, If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for a new program, a generation unit generates a new program based on the second design information input by the user, A modification unit modifies the program found by the search unit or the program generated by the generation unit according to the user's modification instructions. Equipped with, The second design information includes control specifications in which the control procedures to be implemented by the program are expressed in natural language. The modification unit determines whether the modification instruction is valid, and if it determines that the modification instruction is not valid, it stops modifying the program in accordance with the modification instruction. A program creation support device characterized by the following features.

2. Each of the multiple programs that make up the aforementioned group of programs is assigned metadata, The search unit finds a program from the group of programs that has metadata similar to the first design information, as a program that matches information similar to the first design information. The program creation support device according to feature 1.

3. The first design information includes at least one of the following: information indicating the device to which the program is applied; information indicating the function realized by the program; and information indicating the use of the function realized by the program. The program creation support device according to feature 1.

4. The search unit finds a program from the stored group of programs that matches information similar to the first design information. The program generated by the generation unit is added to the program group. A program creation support device according to any one of claims 1 to 3.

5. When the program generated by the generation unit is added to the program group, at least one of the following is stored: information indicating the device to which the program is applied; information indicating the function realized by the program; information indicating the use of the function realized by the program; a description of the program; and a comment from the user who instructed the program to be generated. The program creation support device according to feature 4.

6. At least one of the following is achieved by using an external tool of the program creation support device: a search process in which the search unit finds a program that matches information similar to the first design information; a generation process in which the generation unit generates a new program; a modification process in which the modification unit modifies the program; and an operation verification of the program obtained by the search process, the generation process, or the modification process. The program creation support device according to feature 1.

7. A search unit that obtains first design information which is information about a new program desired by the user, and searches for a program from a group of programs that matches information similar to the first design information, If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for a new program, a generation unit generates a new program based on the second design information input by the user, A modification unit modifies the program found by the search unit or the program generated by the generation unit according to the user's modification instructions. Equipped with, The second design information includes control specifications in which the control procedures to be implemented by the program are expressed in natural language. Each of the aforementioned search unit, generation unit, and modification unit is implemented by using an agent that autonomously performs tasks. A central agent that exchanges information with the user and instructs each agent to execute a process. Equipped with A program creation support device characterized by the following features.

8. A search unit that obtains first design information which is information about a new program desired by the user, and searches for a program from a group of programs that matches information similar to the first design information, If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for a new program, a generation unit generates a new program based on the second design information input by the user, A determination unit that determines, based on evaluation criteria, whether or not a program found from the aforementioned group of programs can be reused in a new program, Equipped with, The second design information includes control specifications in natural language that describe the control procedures to be implemented by the program. A program creation support device characterized by the following features.

9. A search unit that obtains first design information, which is information about a new program desired by the user, and searches for a program from a group of programs that matches information similar to the first design information, If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for a new program, a generation unit generates a new program based on the second design information input by the user, Equipped with, When the generation unit determines that a program found in the program group cannot be reused in a new program, and generates a new program based on the second design information, it includes the program deemed unusable in the negative prompt. A program creation support device characterized by the following features.

10. A search unit that obtains first design information, which is information about a new program desired by the user, and searches for a program from a group of programs that matches information similar to the first design information, If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for a new program, a generation unit generates a new program based on the second design information input by the user, A program creation support device comprising: The program creation support device acquires external knowledge that exists outside of the program creation support device, The external knowledge is used as a condition when the search unit finds a program, or as a condition when the generation unit generates a new program. A program creation support device characterized by the following features.

11. Information processing device and A program creation support device that provides the information processing device with first design information, which is information about a new program desired by the user, and second design information input by the user. Equipped with, The aforementioned information processing device is A search unit that finds a program from a group of programs that matches information similar to the first design information, If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for a new program, a generation unit generates a new program based on the second design information, A modification unit modifies the program found by the search unit or the program generated by the generation unit according to the user's modification instructions. Equipped with, The second design information includes control specifications in which the control procedures to be implemented by the program are expressed in natural language. The modification unit determines whether the modification instruction is valid, and if it determines that the modification instruction is not valid, it stops modifying the program in accordance with the modification instruction. A program creation support system characterized by the following features.

12. A program creation support method for a program creation support device, The steps include obtaining first design information, which is information about a new program desired by the user, and searching for a program from a group of programs that matches information similar to the first design information, If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for a new program, the steps include generating a new program based on the second design information input by the user, The steps include modifying a program found from the aforementioned group of programs, or a program generated based on the second design information, in accordance with the user's modification instructions, Includes, The second design information includes control specifications in which the control procedures to be implemented by the program are expressed in natural language. In the step of modifying a program found from the group of programs or a program generated based on the second design information in accordance with the modification instructions, it is determined whether the modification instructions are valid, and if it is determined that the modification instructions are not valid, the modification of the program in accordance with the modification instructions is stopped. A method for supporting program creation, characterized by the features described above.

13. In a computer system, The steps include obtaining first design information, which is information about a new program desired by the user, and searching for a program from a group of programs that matches information similar to the first design information, If there is no program in the program group that matches information similar to the first design information, or if it is determined that a program found in the program group cannot be reused for a new program, the steps include generating a new program based on the second design information input by the user, The steps include modifying a program found from the aforementioned group of programs, or a program generated based on the second design information, in accordance with the user's modification instructions, Make it run, The second design information includes control specifications in which the control procedures to be implemented by the program are expressed in natural language. In the step of modifying a program found from the group of programs or a program generated based on the second design information in accordance with the modification instructions, it is determined whether the modification instructions are valid, and if it is determined that the modification instructions are not valid, the modification of the program in accordance with the modification instructions is stopped. A program characterized by the following features.