Analysis device and computer-readable recording medium
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2024-03-28
- Publication Date
- 2026-08-06
Smart Images

Figure JP2024012739_06082026_PF_FP_ABST
Abstract
Description
Analysis Device and Computer-Readable Recording Medium
[0001] The present disclosure relates to an analysis device and a computer-readable recording medium.
[0002] In a numerical control program executed by a control device to control industrial machines such as machine tools and robots, G-codes and movement amounts are commanded numerically. These numerical values can be specified using variables. Instead of directly specifying the value of a variable when commanding a numerical value, the value of the variable can be made to change according to user operations or changes in the states of industrial machines and peripheral devices, thereby creating a numerical control program that can flexibly respond to various situations (for example, see Patent Document 1). When using multiple variables, memory is secured in advance for the number of variables to be used.
[0003] Japanese Patent Application Laid-Open No. 2021-026309
[0004] When the number of variables included in a numerical control program increases, it becomes a list of variable numbers, making it difficult to understand the numerical control program. In the field, technologies for improving the readability of numerical control programs are desired.
[0005] The analysis device according to the present disclosure analyzes variables used in a numerical control program to create calculation information, and generates role information for each variable using a generative AI such as a large language model (LLM: Large Language Models) based on the calculation information, thereby solving the above problems.
[0006] [Correction based on Rule 91 18.05.2026] And, one aspect of the present disclosure is an analysis device comprising: a calculation information creation unit that creates calculation information relating variables included in a program relating to an industrial machine and access information to said variables; a prompt creation unit that creates a prompt for querying role information of said variables; a transmission unit that transmits said prompt to an interactive response device; a receiving unit that receives a response including role information generated by the interactive response device based on said prompt; a program update unit that updates said program based on said calculation information and said role information; and an output unit that outputs the program updated by the program update unit.
[0007] This is a schematic hardware configuration diagram of an analysis device according to one embodiment of the present disclosure. This is a block diagram showing the schematic functions of an analysis device according to the first embodiment. This is a schematic diagram showing an example of a numerical control program. This is a schematic diagram showing another example of a numerical control program. This is a schematic diagram showing an example of calculation information for a numerical control program. This is a schematic diagram showing another example of calculation information for a numerical control program. This is a schematic diagram showing an example of a sequence program. This is a schematic diagram showing an example of calculation information for a sequence program. This is a schematic diagram showing an example of an external application program. This is a schematic diagram showing an example of calculation information for an external application program. This is a schematic diagram showing an example of a template. This is a schematic diagram showing an example of a prompt. This is a schematic diagram showing an example of a response from an interactive response device. This is a schematic diagram showing an example of an updated numerical control program. This is a schematic diagram showing another example of an updated numerical control program. This is a schematic diagram showing another example of a prompt. This is a schematic diagram showing an example of defining the relationship between values used for variables and commands. This is a schematic diagram showing an example of displaying variable transition information in a sequence diagram.
[0008] Embodiments of this disclosure will be described below with reference to the drawings. In the following description, components having the same or similar functions will be denoted by the same reference numerals. Duplication of these components may be omitted.
[0009] In this application, "based on XX" means "based on at least XX," and includes cases where it is based on another element in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where it is based on something that has been calculated or processed. "XX" is any element (for example, any information).
[0010] [First Embodiment] Figure 1 is a schematic hardware configuration diagram showing the main parts of an analysis device according to the first embodiment of the present disclosure. The analysis device 1 according to this embodiment can be implemented, for example, on a control device that controls industrial machinery. The analysis device 1 can also be implemented on a computer such as a personal computer attached to the control device, or a personal computer, cell computer, fog computer 6, or cloud server 7 connected to the control device via a wired / wireless network. In this embodiment, an example is shown in which the analysis device 1 is implemented on a computer connected to a control device that controls industrial machinery via a network.
[0011] The CPU 11 in the analysis device 1 according to this embodiment is a processor that controls the analysis device 1 as a whole. The CPU 11 reads the system program stored in the ROM 12 via the bus 22 and controls the entire analysis device 1 according to the system program. The RAM 13 temporarily stores temporary calculation data, display data, and various data acquired from external sources.
[0012] The non-volatile memory 14 is composed of, for example, a memory backed up by a battery (not shown) or an SSD (Solid State Drive), and its stored state is maintained even when the power to the analysis device 1 is turned off. The non-volatile memory 14 stores programs and data read from external devices 72 via the interface 15, programs and data input via the input device 71, and programs and data acquired from the control device 3 that controls the industrial machine 4 or other devices via the network 5. The programs and data stored in the non-volatile memory 14 may be expanded into the RAM 13 when executed / used. In addition, various system programs, such as known analysis programs, are pre-written in the ROM 12.
[0013] Interface 15 is an interface for connecting the CPU 11 of the analysis device 1 to an external device 72 such as a USB device. For example, system programs and configuration data can be read from the external device 72. Furthermore, programs and configuration data created or edited within the analysis device 1 can be stored in an external storage means via the external device 72.
[0014] Interface 20 is an interface for connecting the CPU 11 of the analysis device 1 to a wired or wireless network 5. The network 5 may communicate using technologies such as serial communication (RS-485, for example), Ethernet® communication, optical communication, wireless LAN, Wi-Fi®, Bluetooth®, etc. The network 5 is connected to a control device 3 that controls at least one industrial machine 4, an interactive response device 2 that responds to user inquiries, a fog computer 6, a cloud server 7, etc., and exchanges data with the analysis device 1.
[0015] The display device 70 displays data obtained as a result of the execution of various data, programs, etc., loaded into memory, via the interface 17. The input device 71, consisting of a keyboard, pointing device, voice input device, etc., transmits commands, data, etc., based on user operations to the CPU 11 via the interface 18.
[0016] The interactive response device 2 is configured to return a response sentence in response to a predetermined sentence. The interactive response device 2 includes a large-scale language model that has learned response sentences for predetermined sentences. This model can be a known model such as the BERT model or the Transformer model. The large-scale language model learns the probability that each text is a response to a predetermined sentence when that sentence is input. It also learns the probability that each other text follows that text. By repeating this learning process, the large-scale language model learns to output a sequence of texts with a high probability of being a response to a predetermined sentence when that sentence is input. Depending on how the interactive response device 2 is trained to learn response documents for predetermined sentences, it can be used for purposes such as dialogue, question and answer, text summarization, text editing, text translation, text transformation, text modification, text optimization, text interpretation, text detection, recognition, prediction, judgment, code generation, image generation, and overall judgment.
[0017] The analysis device 1 described herein is assumed to be connected to an interactive response device 2 via a network 5. This interactive response device 2 includes a model that has been trained based on various information publicly available on the internet, for example. Publicly available information includes manuals for the control device 3 and industrial machine 4, manuals for programming languages such as numerical control programming languages, PLC languages, and C language, and publicly available technical documents related to these programming languages. If necessary, additional training (fine-tuning) may be performed in advance using various documents, including specifications for the control device 3 and industrial machine 4, specifications for programming languages such as numerical control programming languages, PLC languages, and C language, and technical documents related to these programs. Since these documents contain names of system variables, sample function codes, and functions, by narrowing the information to this scope, it is possible to prepare an interactive response device 2 that can return a response with a certain degree of accuracy to queries.
[0018] Figure 2 is a schematic block diagram showing the functions of the analysis device 1 according to the first embodiment of this disclosure. Each function of the analysis device 1 according to this embodiment is realized by the CPU 11 of the analysis device 1 shown in Figure 1 executing a system program and controlling the operation of each part of the analysis device 1.
[0019] The analysis device 1 of this embodiment includes a program acquisition unit 100, a calculation information creation unit 110, a prompt creation unit 130, a transmission unit 140, a reception unit 150, a program update unit 170, and an output unit 190. Furthermore, the RAM 13 to non-volatile memory 14 of the analysis device 1 is provided with a template storage unit 200, which is an area that pre-stores templates related to prompts.
[0020] The program acquisition unit 100 acquires a program that is executed on the control device 3 to control the industrial machine 4. This program is, for example, a numerical control program. Alternatively, it may be, for example, a sequence program executed on a PLC (Programmable Logic Controller) (not shown) provided by the control device 3. Furthermore, it may be, for example, a source program of an external application that accesses variables used by the numerical control program. This source program is written in C, C++, C#, or the like. The program acquisition unit 100 may acquire a program stored in RAM 13 or non-volatile memory 14 according to the operation of the input device 71 by the user. It may also acquire a program stored in an external device 72. Furthermore, it may acquire a program from the control device 3, fog computer 6, or cloud server 7 via the network 5. The program acquisition unit 100 outputs the acquired program to the calculation information creation unit 110. The program acquisition unit 100 also outputs the acquired program to the prompt creation unit 130 and the program update unit 170.
[0021] [Correction based on Rule 91 18.05.2026] The calculation information creation unit 110 analyzes the program acquired by the program acquisition unit 100 and creates calculation information that associates the variables contained in the program with the access information to those variables. Figures 3 and 4 are schematic diagrams showing examples of numerical control programs acquired by the program acquisition unit 100. In numerical control programs, variables are indicated by placing a number after "#". In the numerical control program in Figure 3, for example, "#100", "#101", "#102", "#118600", "#118650", "#300", and "#500" are variables. Also, in the numerical control program in Figure 4, "#101", "#102", "#103", "#300", and "#500" are variables. The calculation information creation unit 110 extracts such variables from within the numerical control program.
[0022] The calculation information creation unit 110 extracts from the processing program the location in which the extracted variables are read or written, and the information related to that read or write operation. In the example in Figure 3, for example, at sequence number N0102, the value obtained by adding variables "#101" and "#102" is assigned (written) to variable "#100". Also, at the same sequence number N0102, the values of variables "#100" and "#101" are read out. The calculation information creation unit 110 creates access information that includes information related to the access operation for each of these variables. Then, it creates calculation information that associates this access information with each variable.
[0023] [Correction based on Rule 91 18.05.2026] Figure 5 is a table diagram showing an example of calculation information related to the numerical control program illustrated in Figure 3. Figure 6 is a table diagram showing an example of calculation information related to the numerical control program illustrated in Figure 4. In Figures 5 and 6, the symbol "[W]" in the access information column indicates that a write operation is being performed, and "[R]" indicates that a read operation is being performed. The access information includes at least information related to such access operations. In addition, "N" and the following four-digit number indicate the sequence number within the numerical control program in which such read and write operations are performed. The access information may also include information related to the location in the numerical control program where such access operations to the variable are performed. Furthermore, in the access information related to writing, the numbers, variables, formulas, etc. following ":" indicate the value to be written to the variable. Thus, the access information related to writing to a variable may include numbers, variables, formulas, etc. indicating the value to be written to the variable. The calculation information illustrated in Figures 5 and 6 is such that, for example, the variable "#101" in the numerical control program O0001 has a value calculated using the formula "#100 + #102" written to it at sequence number N0102. It is also read out at sequence number N0103.
[0024] Figure 7 is a schematic diagram showing an example of a sequence program acquired by the program acquisition unit 100. The sequence program includes, for example, an input data structure and a ladder program. The input data structure indicates the function code of the function provided by the sequence program, the variable number of the variable accessed by the sequence program, and the setting value to be set for that variable. The ladder program defines the access operations related to signal input / output and reading / writing of variables in the sequence program. The example in Figure 7 shows a sequence program that sets a value for the variable "#500". In the ladder program included in this sequence program, if the value of the signal "R100.0" is 1, the value of the variable "#500" is set to 20, and if the value of the signal "R100.0" is 0, the value of the variable "#500" is set to 10.
[0025] Figure 8 is a table diagram showing an example of calculation information related to the numerical control program illustrated in Figure 7. In Figure 8, the conditional expression following "[W]" indicates the conditions under which an access operation to a variable is performed. The access information may include information related to the conditions under which an access operation to a variable is performed within such a sequence program.
[0026] Figure 9 is a schematic diagram showing an example of a source program of an external application acquired by the program acquisition unit 100. The external application accesses variables of the numerical control program by executing a predetermined library function. In the example in Figure 9, it is possible to write a value to a specified variable by accessing the library function "cnc_set_values()". In the structure specified as the third argument of this function "cnc_set_values()", a variable number (in the example in Figure 9, "Macro.datano") and the value to be set (in the example in Figure 9, "Macro.mcr_val") are specified to set a value to the specified variable. In Figure 9, the value of variable "#300" is set to 50. Figure 10 is a table diagram showing an example of calculation information related to the source program of the external application exemplified in Figure 9.
[0027] Note that the format of the access information is not limited to the formats exemplified in Figures 5, 6, 8, and 10. Any format is acceptable as long as it allows us to understand at least the program that accesses each variable, the access operation, and the value written to the variable by the access operation. The calculation information creation unit 110 outputs the calculation information created in this manner to the prompt creation unit 130 and the program update unit 170.
[0028] The prompt creation unit 130 creates prompts that can be input to the interactive response device 2 based on the program acquired by the program acquisition unit 100 and the calculation information created by the calculation information creation unit 110. The prompts created by the prompt creation unit 130 are prompts for querying role information that indicates the role of each variable included in the program acquired by the program acquisition unit 100. The prompt creation unit 130 may assign prompt identification information to the created prompt so that the prompt can be uniquely identified. The prompt creation unit 130 may, for example, create prompts by applying the program and calculation information to a prompt template corresponding to the query information.
[0029] Figure 11 is a schematic diagram showing an example of multiple templates stored in the template storage unit 200. In the example in Figure 11, the template storage unit 200 stores multiple templates 1, 2, ... Each template is associated with the type of program to be queried. The prompt creation unit 130 selects a template stored in the template storage unit 200 according to the type of program acquired by the program acquisition unit 100 and the type of information to be queried. Then, it creates a prompt using the selected template. Finally, it sends the created prompt to the transmission unit 140.
[0030] Figure 12 is a schematic diagram showing an example of a template. The template illustrated in Figure 12 is a template for creating a prompt that queries for information related to the role of each variable used in the program. In this example, the query includes the name of each variable and information about the data stored in each variable as role information. The template may include, for example, information keys for embedding predetermined information at predetermined positions in the prompt text. The prompt creation unit 130 creates the prompt by embedding the corresponding information at the positions of each information key. In the example in Figure 12, files containing numerical control programs are attached to the positions of the information keys "CNC_PROGRAM1" and "CNC_PROGRAM2," respectively. Also, files containing calculation information extracted from the respective numerical control programs are attached to the positions of the information keys "VALIABLES_INFO1" and "VALIABLES_INFO2." The template may also include information keys corresponding to information calculated by performing predetermined calculations based on predetermined machine information.
[0031] Such templates should be created in advance to match the format of inquiries to the interactive response device 2. For example, if the interactive response device 2 handles inquiries in the form of listing items, it is desirable to have a template for creating prompts that list each item. If it handles inquiries in natural language, it is desirable to have a template for creating prompts in the form of natural sentences. It is desirable that each template be created to include machine information and information calculated from machine information that is useful when creating answers to inquiries about the causes and countermeasures for expected abnormal behavior.
[0032] The transmitting unit 140 transmits the prompt created by the prompt creation unit 130 to the interactive response device 2. Upon receiving the prompt from the transmitting unit 140, the interactive response device 2 generates a response to the received prompt. The interactive response device 2 includes role information in the response, such as the names of variables and information about the data stored in the variables. As for the names of the variables, it is expected that the names used will be those used in manuals for the control device 3 and industrial machine 4, manuals for programming languages such as numerical control programming languages, PLC languages, and C language, and technical public documents related to these programming languages. Furthermore, as for the information about the data stored in the variables, it is expected that the types of data assigned to the variables after analyzing the attached program will be used. Figure 13 shows an example of a response generated by the interactive response device 2. The interactive response device 2 transmits the generated response to the analysis device 1.
[0033] The receiving unit 150 receives responses transmitted from the interactive response device 2. The responses received by the receiving unit 150 include role information generated by the interactive response device 2 for each variable included in the program. The receiving unit 150 outputs the received responses to the program update unit 170.
[0034] The program update unit 170 updates the program acquired by the program acquisition unit 100 based on the calculation information created by the calculation information creation unit 110 and the role information included in the response from the interactive response device 2 received by the receiving unit 150. The program update unit 170 may, for example, replace the variable numbers included in each program with the names of the variables indicated in the response from the interactive response device 2. Alternatively, it may associate the variable names and data types indicated in the response with the variable numbers. The program update unit 170 outputs the updated program to the output unit 190.
[0035] The output unit 190 outputs the program updated by the program update unit 170. The output unit 190 may also output the updated program to the display device 70. Figures 14 and 15 are schematic diagrams showing examples of the display of the updated program by the output unit 190. In the example in Figure 14, each variable is replaced with the name of the variable included in the response of the interactive response device 2. Figure 15 is an example in which the names of the variables included in the response of the interactive response device 2 are associated with each variable. The output unit 190 may also display information about the data associated with a variable, for example, by displaying it in a callout when a variable is selected with a mouse cursor. The output unit 190 may also transmit the updated program via the network 5 to other computers such as the control device 3, fog computer 6, and cloud server 7.
[0036] The analysis device 1 according to this embodiment, which has the above configuration, enables the replacement of variables with variable names or the display of information linked to the data stored in the variables in programs such as numerical control device programs in which variables are indicated by variable numbers, related sequence programs, and source programs for external applications. Therefore, it is expected that the readability of the entire program will be improved.
[0037] [Second Embodiment] The following describes an analysis device according to the second embodiment of this disclosure. The analysis device 1 according to this embodiment has the same hardware configuration as the analysis device 1 according to the first embodiment.
[0038] The analysis device 1 of this embodiment, like the analysis device 1 of the first embodiment, includes a program acquisition unit 100, a calculation information creation unit 110, a prompt creation unit 130, a transmission unit 140, a reception unit 150, a program update unit 170, and an output unit 190. In addition, the RAM 13 to non-volatile memory 14 of the analysis device 1 is provided with a template storage unit 200, which is an area that stores templates related to prompts in advance.
[0039] The program acquisition unit 100, calculation information creation unit 110, transmission unit 140, and reception unit 150 of the analysis device 1 according to this embodiment are the same as the functions of the first embodiment.
[0040] The prompt creation unit 130 creates prompts that can be input to the interactive response device 2 based on the program acquired by the program acquisition unit 100 and the calculation information created by the calculation information creation unit 110. The prompts created by the prompt creation unit 130 according to this embodiment are prompts for querying at least one of the following: variable conflict information, variable duplication information, and variable transition information, as information relating to the role of each variable included in the program acquired by the program acquisition unit 100. Variable conflict is when variables with the same variable number are used in different places. Variable conflict information includes the variable numbers of the conflicting variables and a list of the names and locations of the programs in which the conflicting variables are used. Variable duplication information includes a list of the names and locations of programs in which similar writes are made to different variables. Variable transition is the flow of data values read from and written to a variable. Variable transition information includes information indicating the flow of data values read from and written between each variable. In addition to this information, the usage relationships of the variables, the types of data stored in the variables, and the timing of data updates may also be included in the information relating to the role of each variable. Figure 16 is a schematic diagram showing an example of a template used by the prompt creation unit 130 according to this embodiment.
[0041] The program update unit 170 updates the program acquired by the program acquisition unit 100 based on the calculation information created by the calculation information creation unit 110 and the role information included in the response from the interactive response device 2 received by the receiving unit 150. In this embodiment, the program update unit 170 may resolve conflicts by, for example, changing the variable number used in one of the programs to a different variable number for conflicting variables indicated in the response from the interactive response device 2. For variables that use duplicate values, the number of variables can be reduced by, for example, unifying the variable numbers. If no command is executed to change the value used in two or more variables that use duplicate values, it is acceptable to unify the variable numbers of these variables. The relationship between the value used in a variable and the command to change it should be defined in advance and stored in the RAM 13 or non-volatile memory 14. Figure 17 is an example of a relationship definition between the value used in a variable and the command. Based on such a relationship definition and the role information created by the interactive response device 2, variables can be integrated. Furthermore, the program update unit 170 can reduce the amount of code by creating macros for variables that use duplicate values. If no commands are executed that change the values used in two or more variables that use duplicate values, it is more efficient to create macros for the processing of these variables. In this case, the processing of the variables is grouped into a separate program as a macro and replaced with a call to that macro. The program update unit 170 may also perform processing such as making the values constant. Such a program update method can be realized by pre-defining rules based on known code optimization techniques. Similar optimization can be performed on the source code of PLC programs and external applications. The program update unit 170 outputs the updated program to the output unit 190.
[0042] The output unit 190 outputs the program updated by the program update unit 170. In addition to outputting the program, the output unit 190 in this embodiment may also output variable transition information included in the response from the interactive response device 2. Figure 18 is a schematic diagram showing an example of displaying transition information. The variable transition information may be displayed as is, based on the information included in the response from the interactive response device 2. Alternatively, as illustrated in Figure 18, it may be displayed in a format such as a sequence diagram. When creating a sequence diagram from variable transition information, known sequence diagram creation libraries such as Mermaid or SequenceDiagram can be used.
[0043] The analysis device 1 according to this embodiment, equipped with the above configuration, can improve the readability of the entire program by eliminating variable conflicts and duplications. Furthermore, by also looking at variable transition information, it becomes easier to grasp the overall flow of the program. In addition, by eliminating conflicts and duplications, unnecessary resources can be reduced. If variables are not properly managed, multiple variables may be allocated for similar commands, which can lead to excessive memory consumption. Moreover, when numerical control programs are executed with multiple command systems and variables are accessed, or when variables are accessed from external applications or processors controlling signals, conflicts may occur with variables already in use. When there are conflicting or duplicate variables, it is necessary to analyze the numerical control program and deal with them, which is a significant burden for the user. The analysis device 1 according to this embodiment also contributes to solving these problems.
[0044] As one modification of the analysis device 1 according to this embodiment, the analysis device 1 may output the program updated by the program update unit 170 to the prompt creation unit 130 again and query the interactive response device 2 for information on each role. With this configuration, it is possible to query the updated program for information on variable conflicts, duplicate information of the variables, and transition information of the variables, and to check whether there are any further variable conflicts or duplicates, and how the variable transition information has changed as a result of the update.
[0045] [Other Embodiments] In the above-described embodiments, the user may further provide feedback to the interactive response device 2 regarding the results of the countermeasures taken. For example, among the responses including multiple cause countermeasure case information, for the response including the cause countermeasure case information that actually contributed to the improvement of the operation different from normal as a result of the cause investigation and countermeasures, the transmission unit 140 transmits to the interactive response device 2 that the response was useful. By configuring in this way, it is expected that the accuracy of the interactive response device 2 regarding the cause investigation for the operation different from normal and the formulation of countermeasure plans will increase, and it is expected to contribute to the reduction of the countermeasure consideration time.
[0046] As described above, the embodiments of the present disclosure have been described in detail, but the present disclosure is not limited to the individual embodiments described above. These embodiments can be variously added, replaced, changed, partially deleted, etc., without departing from the gist of the invention or without departing from the idea and spirit of the present disclosure derived from the content described in the claims and its equivalents. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as an example and are not limited thereto. The same applies when numerical values or mathematical formulas are used in the description of the above-described embodiments.
[0047] [Correction based on Rule 91, 18.05.2026] The following shows the supplementary notes according to the embodiments of the present disclosure. (Supplementary Note 1) An analysis device (1) according to an aspect of the present disclosure includes an arithmetic information creation unit (110) that creates arithmetic information associating variables included in a program related to an industrial machine (4) and access information to the variables, a prompt creation unit (130) that creates a prompt for inquiring about the role information of the variables, a transmission unit (140) that transmits the prompt to an interactive response device (2), a reception unit (150) that receives a response including the role information generated by the interactive response device (2) based on the prompt, a program update unit (170) that updates the program based on the arithmetic information and the role information, and an output unit (190) that outputs the program updated by the program update unit (170).
[0048] (Supplementary Note 2) The role information of the variables received by the analysis device (1) according to another aspect of the present disclosure includes at least either information on the data stored in the variables or the name of the variables, and the program update unit (170) updates the program based on the operation information and the role information by at least either replacing the variable numbers included in the program with the names of the variables or associating the names of the variables with the variable numbers. (Supplementary Note 3) The role information of the variables received by the analysis device (1) according to another aspect of the present disclosure includes at least either the conflict information of the variables, the duplication information of the variables, or the transition information of the variables, and the program update unit (170) updates the program based on the operation information and the role information by at least either resolving variable conflicts, unifying duplicate variables, or macroizing the operation commands related to the duplicate variables.
[0049] (Supplementary Note 4) The program analyzed by the analysis device (1) according to another aspect of the present disclosure is at least either a numerical control program, a PLC program, or a source program of an application that reads and writes the variables. (Supplementary Note 5) The operation information creation unit (110) included in the analysis device (1) according to another aspect of the present disclosure analyzes the processed program updated by the program update unit (170) again.
[0050] [Correction based on Rule 91, 18.05.2026] (Supplementary Note 6) A computer-readable recording medium according to one aspect of the present disclosure records a program that causes a computer to operate as an operation information creation unit (to create operation information associating variables included in a program related to an industrial machine (4) and access information to the variables), a prompt creation unit (to create a prompt for inquiring about the role information of the variables), a transmission unit (to transmit the prompt to an interactive response device (2)), a reception unit (to receive a response including the role information generated by the interactive response device (2) based on the prompt), a program update unit (to update the program based on the operation information and the role information), and an output unit (to output the program updated by the program update unit (170)).
[0051] 1. Analysis device 2. Interactive response device 3. Control device 4. Industrial machine 5. Network 6. Fog computer 7. Cloud server 11. CPU 12. ROM 13. RAM 14. Non-volatile memory 15, 17, 18, 20. Interface 22. Bus 70. Display device 71. Input device 72. External device 100. Program acquisition unit 110. Calculation information creation unit 130. Prompt creation unit 140. Transmission unit 150. Receiving unit 170. Program update unit 190. Output unit 200. Template storage unit
Claims
1. [Correction based on Rule 91 18.05.2026] An analysis device comprising: a calculation information creation unit that creates calculation information associating variables included in a program relating to an industrial machine with access information to said variables; a prompt creation unit that creates a prompt for querying the role information of said variables; a transmission unit that transmits said prompt to an interactive response device; a receiving unit that receives a response including role information generated by the interactive response device based on said prompt; a program update unit that updates said program based on said calculation information and said role information; and an output unit that outputs the program updated by said program update unit.
2. The analysis apparatus according to claim 1, wherein the variable role information includes at least one of the data information stored in the variable and the name of the variable, and the program update unit updates the program based on the calculation information and the role information by at least one of replacing the variable numbers included in the program with the names of the variables and associating the names of the variables with the variable numbers.
3. The analysis apparatus according to claim 1, wherein the variable role information includes at least one of the variable conflict information, the variable duplication information, and the variable transition information, and the program update unit updates the program based on the calculation information and the role information by at least one of resolving variable conflicts, unifying duplicate variables, and macroizing calculation commands relating to duplicate variables.
4. The analysis apparatus according to claim 1, wherein the program is at least one of a numerical control program, a PLC program, and a source program for an application that reads and writes the variables.
5. The analysis apparatus according to claim 1, wherein the calculation information creation unit re-analyzes the processing program updated by the program update unit.
6. [Correction based on Rule 91 18.05.2026] A computer-readable recording medium that records a program for operating a computer as follows: a calculation information creation unit that creates calculation information associating variables and access information to said variables included in a program relating to an industrial machine; a prompt creation unit that creates a prompt for querying role information of said variables; a transmission unit that transmits said prompt to an interactive response device; a reception unit that receives a response including role information generated by the interactive response device based on said prompt; a program update unit that updates said program based on said calculation information and said role information; and an output unit that outputs the program updated by said program update unit.