PROGRAM, PROGRAM MANAGEMENT DEVICE, PROGRAM MANAGEMENT SYSTEM, AND PROGRAM MANAGEMENT METHOD
Patent Information
- Application Number
- JP2023551954
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-03-24
- Publication Date
- 2025-03-06
- Estimated Expiration
- 2043-03-24
AI Technical Summary
Existing systems require manual identification of control program versions to resolve execution errors, which is inefficient for quick error resolution.
A program management device that identifies the error-generating control program and updates it with a revision source program that has no error history, using error information and revision history to automate the process.
Quickly resolves control program execution errors by identifying and updating to a version with no error history, reducing manual effort and improving factory reliability.
Smart Images

Figure 00000014_0000 
Figure 00000014_0001 
Figure 00000014_0002
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a program, a program management device, a program management device system, and a program management method. [Background technology]
[0002] A control device controls FA equipment based on a written control program. When developing a program for a control device, a developer may manage the program using a version control system. For example, Patent Document 1 discloses a system that stores the device requirements of a device to be developed in association with the version of a control program developed for the device, thereby making it possible to check how the control program was modified and which version was used in the development of which device. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2008-226005 A Summary of the Invention [Problem to be solved by the invention]
[0004] When an execution error occurs in a control program at a manufacturing site, it is necessary to identify which program and which version the execution error occurred in and resolve the error. In the system of Patent Document 1, the version of the control program in which the execution error occurred must be identified manually and the error must be resolved, leaving room for improvement in terms of quickly resolving errors with less effort.
[0005] The present disclosure has been made in consideration of the above-mentioned problems, and aims to propose a program, a program management device, a program management device system, and a program management method that can quickly resolve errors in managed devices with minimal effort. [Means for solving the problem]
[0006] In order to achieve the above object, the program of the present disclosure causes a computer to function as: an acquisition means for acquiring error information indicating that an execution error has occurred in a control program executed by a control device that controls an equipment; an error-occurring program identification means for identifying an error-occurring program, which is a control program in which an execution error has occurred, based on identification information of the control device included in the acquired error information and a write history indicating the respective records of when the control program has been written to a plurality of control devices; an original revision identification means for identifying an original revision program of the error-occurring program based on association information that associates each control program with an original revision program, which is a control program used to develop the control program; an update program determination means for determining, from the identified original revision programs, an original revision program that has no history of execution errors, as an update program, which is a control program for updating, based on error history information indicating the record of when an execution error has occurred for each control program; and a writing means for executing a write process to write the determined update program to a memory unit provided in the control device that executed the error-occurring program. Effect of the Invention
[0007] According to the present disclosure, a control program that is a revision source of a control program in which an execution error has occurred is identified, and a control program that has not had a history of causing an execution error is selected as an update program from among the revision source control programs based on error history information. The selected update program is then written to a storage unit provided in the control device that executed the program in which the error has occurred. This makes it possible to quickly resolve the problem. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a block diagram showing a configuration of a program management device according to an embodiment of the present disclosure. [Diagram 2] FIG. 2 is a diagram showing an example of project management information stored in the data storage unit shown in FIG. 1; [Diagram 3] FIG. 2 is a diagram showing an example of version information managed by the revision history management unit shown in FIG. 1. [Figure 4] FIG. 2 is a diagram showing an example of an operation status table generated by the schedule management unit shown in FIG. 1; [Diagram 5] FIG. 2 is a diagram showing an example of a schedule setting screen displayed by a schedule management unit shown in FIG. 1; [Figure 6] FIG. 1 is a block diagram showing an example of a physical configuration of a program management device according to an embodiment. [Figure 7] 1 is a flowchart showing an error resolution process performed by a program management device according to an embodiment. [Figure 8] FIG. 2 is a diagram showing an example of a display screen displayed by the error correction unit shown in FIG. 1; [Figure 9] FIG. 2 is a diagram showing an example of a notification screen displayed by the error resolution unit shown in FIG. 1; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, a program, a program management device, a program management system, and a program management method according to embodiments of the present disclosure will be described with reference to the drawings. Note that the same or corresponding parts in the drawings are denoted by the same reference numerals.
[0010] As shown in FIG. 1, the program management device 100 according to the present embodiment is installed in a factory AC, and is communicatively connected to a gateway 300 that collects data from a plurality of connected control devices 200 via a network 400. The control device 200 includes, for example, a programmable logic controller (PLC). The control device 200 controls FA equipment to be controlled by executing a control program, such as a ladder program. A project file including a control program and setting information for the control device 200 is stored in the memory of the control device 200. The project file stored in each control device 200 has a different version or revision depending on the function executed by the control program, the model number of the device, the control content, etc. Each control device 200 executes the control program included in the stored project file. When an execution error occurs in the control program, the control device 200 transmits error information indicating that an execution error has occurred to the gateway 300. When the gateway 300 receives the error information, the gateway 300 assigns the device ID of the control device 200 in which the error has occurred to the error information and transmits it to the program management device 100. In the illustrated example, if the control device 200 has a function of communicating with the program management device 100, the program management device 100 may communicate with the control device 200 without going through the gateway 300. The memory of the control device 200 is an example of a storage unit.
[0011] When the program management device 100 receives error information from the gateway 300, it identifies the control device 200 in which the error was detected and the project file including the control program executed by the control device 200. The program management device 100 refers to the revision history and the execution error occurrence history of each project file, and identifies a project file that has no history of error occurrence from among the project files included in the revision history. The program management device 100 can write a project file that has no history of error occurrence to the control device 200 in which the execution error was detected, at the user's selection. Note that writing the project file to the control device 200 means storing the project file in the memory provided in the control device 200. In addition, the program management device 100 identifies a derived project file that has been developed by revising the project file including the control program in which the execution error occurred. The revision of the project file includes updating the control program, updating the setting information of the control device 200, and updating each of the control program and the setting information. The program management device 100 notifies the user of the identified derived project file as a project file that may have an error occurrence.
[0012] The program management device 100 comprises a program creation unit 110 that creates a project file including a control program, a data storage unit 120 that stores project management information that associates, for each project file, the writing history to the memory of the control device 200 and the error occurrence history, a project management unit 130 that manages the revision history of the project file and resolves any execution errors that occur, an asset management unit 140 that monitors the occurrence of execution errors in the control program and writes the project file to the memory of the control device 200, and a schedule management unit 150 that manages the schedule for writing the project file.
[0013] The program creation unit 110 creates or edits a project file including a control program to be executed by the control device 200 and setting information of the control device 200. Specifically, the function of the program creation unit 110 is realized by a processor provided in the program management device 100 executing an engineering tool. The setting information includes the model name of the control device 200, connection information of the control device 200, various parameters set in the control device 200, and the like. The program creation unit 110 stores the created project file in the data storage unit 120. The program creation unit 110 is an example of a program generation means.
[0014] The data storage unit 120 stores the project files created by the program creation unit 110 and project management information that associates information on the write history and error occurrence history for each project file. As shown in FIG. 2, the project management information includes a "revision number" indicating information that uniquely identifies each project file, a "project name" indicating the name of the project file, a "write history" indicating the history of which control device 200 each project file was written to, a "write date and time" indicating the date and time when each project file was written, and an "error occurrence history" indicating the record of error occurrence. In the illustrated example, the project file with the revision number "31" has the project name "Project A" and indicates that it has been written to the control device 200 identified by the device ID "620" installed in "Factory B" at "0:00 on February 1, 2023". In addition, since "none" is input in the "error occurrence history", this project file indicates that there is no record of error occurrence. The project management information is an example of write history and error history information.
[0015] Returning to FIG. 1, the project management unit 130 includes a revision history management unit 131 that manages the revision history of the project file created by the program creation unit 110, and an error resolution unit 132 that identifies a project file including a control program in which an execution error has occurred, and identifies an update project file to resolve the error that has occurred.
[0016] The revision history management unit 131 generates version information indicating the revision history of the project file created by the program creation unit 110. As shown in FIG. 3, the version information has information of a "revision number" indicating information for uniquely identifying the project file, a "version" indicating information for identifying the version of each project file, a "project name" indicating the name of each project file, and a "revision source project" indicating the revision number of the project file that is the revision source of each project file. In the illustrated example, the project file with the revision number "32" indicates that the version is "1.0.1 (released by Company A)", the project name is "Project B", and it is a project file created by revising the project file with the revision number "31". This version information makes it possible to know which project file each project file was created by revising. The version information is an example of association information, project association information.
[0017] Returning to FIG. 1, the error resolution unit 132 identifies a project file including a control program in which an error has occurred based on the project management information stored in the data storage unit 120. Specifically, when the error resolution unit 132 receives error information from the gateway 300, it acquires a device ID included in the error information and identifies the control device 200 in which the execution error has occurred. Next, the error resolution unit 132 refers to the project management information shown in FIG. 2 and identifies a project file currently written in the memory of the control device 200 of the acquired device ID. For example, when the error resolution unit 132 acquires the device ID "620" from the error information, it reads out information on the "write history" and identifies that the project files with the history written to the device ID "620" have revision numbers "31", "33", and "38". Next, the error resolution unit 132 reads out information on each "write date and time". Since the project file with revision number "31" was written at 00:00 on February 1, 2023, the project file with revision number "33" was written at 00:00 on July 1, 2023, and the project file with revision number "38" was written at 00:00 on August 1, 2023, the error resolution unit 132 determines that an error has occurred in the project file with revision number "38", which has the later write date and time.
[0018] Returning to FIG. 1, the error resolution unit 132 identifies a project file for updating to resolve the error that has occurred. Specifically, the error resolution unit 132 refers to the version information shown in FIG. 3 and acquires a revision history indicating which project file was revised to develop the project file in which the error has occurred. Next, the error resolution unit 132 refers to the project management information shown in FIG. 2, checks the history of error occurrence contained in the revision history, and determines a project file without a history of error as the project file for updating. Details of the process in which the error resolution unit 132 identifies a project file for updating will be described later.
[0019] The error resolution unit 132 identifies a derived project file created by revising a project file including a control program in which an execution error has occurred, and notifies the user of the identified derived project file. This allows the user to know in advance project files that may encounter the same error as the project file in which an execution error has occurred. Details of the process in which the error resolution unit 132 identifies a derived project file will be described later. The error resolution unit 132 is an example of an error-occurring program identifying means, a revision source identifying means, an update program determining means, a derived destination identifying means, and a notifying means, and the derived project file is an example of a derived program.
[0020] Returning to Figure 1, the asset management unit 140 includes a writing unit 141 that writes an update project file identified by the project management unit 130 into the memory of the control device 200, an error monitoring unit 142 that monitors the occurrence of execution errors in the control program included in the project file, and a communication unit 143 that communicates with the gateway 300.
[0021] The writing unit 141 writes the update project file, which is identified by the project management unit 130 as operating normally, into the memory of the control device 200 in which the error has occurred. Specifically, the writing unit 141 acquires the project file of the revision number identified by the project management unit 130 from the data storage unit 120. Next, the writing unit 141 transmits the acquired project file to the control device 200 in which the error has occurred, and writes the transmitted project file into the memory of the control device 200. Note that writing of the project file may be performed by the writing unit 141 transmitting the acquired project file and a message requesting writing of this file to the control device 200, and the control device 200 writing the received project file into the memory included in the control device 200 based on the received write request. Note that the writing unit 141 is an example of a writing means.
[0022] The error monitoring unit 142 monitors the occurrence of an execution error in the control program. Specifically, the error monitoring unit 142 waits for error information from the gateway 300. When the error monitoring unit 142 receives error information from the gateway 300, it transmits the received error information to the project management unit 130.
[0023] The communication unit 143 includes a network interface for communication between the program management device 100 and the gateway 300. The communication unit 143 transmits a write request from the writing unit 141 to the control device 200 and receives error information from the gateway 300. The communication unit 143 is an example of an acquisition unit.
[0024] The schedule management unit 150 sets the date and time when the update project file is written to the control device 200. Specifically, the schedule management unit 150 acquires operation data indicating the operation status of the control device 200 from the control device 200, and determines the time period when the control device 200 operated in the past. For example, the schedule management unit 150 generates an operation status table indicating the time period when each control device 200 has operated, as shown in FIG. 4, based on the operation data within a preset period such as the past week or the past month, and stores the table in the data storage unit 120. When setting the date and time when the update project file is written, the user performs a setting operation on the schedule setting screen shown in FIG. 5. The schedule management unit 150 displays the schedule setting screen on the display unit, in which the device ID of the control device 200 in which the execution error occurred, the factory name, and the scheduled start date and time of the write process are input. For example, in the case of the illustrated device ID "620", the schedule management unit 150 acquires the current date "9 / 7" from the timer, and inputs the next day's date "9 / 8" into the form as the scheduled start date. Next, the schedule management unit 150 refers to the operation status table shown in FIG. 4 and inputs the time "23:00" when the device ID "620" has no operation record into the form as the scheduled start time. When the user presses the set button, the schedule management unit 150 sets a transmission timer that transmits an instruction signal to execute a write process to the writing unit 141 at the date and time inputted into the form of the scheduled start date and time. The user may change the date and time inputted into the form of the scheduled start date and time, and by inputting a new date and time into the form and pressing the set button, the transmission timer based on the date and time changed by the user is set. When the user inputs a time with an operation record, the schedule management unit 150 may display an error message to notify the user that the time will be changed. The schedule management unit 150 may not display the time with an operation record in the form. The schedule management unit 150 is an example of a schedule setting means, and the operation status table is an example of operation record information.
[0025] Next, the physical configuration of the program management device 100 will be described with reference to Fig. 6. The program management device 100 includes a processor 11 that executes processing according to a program, a RAM (Random Access Memory) 12 which is a volatile memory, a ROM (Read Only Memory) 13 which is a non-volatile memory, a storage unit 14 that stores data, an input unit 15 that accepts input of information, a display unit 16 that visualizes and displays information, and a communication unit 17 that transmits and receives information, which are connected via an internal bus 99.
[0026] The processor 11 includes a CPU (Central Processing Unit). The processor 11 executes various processes by reading out programs stored in the storage unit 14 into the RAM 12 and executing the programs. The processor 11 executes processes by a program creation unit 110, a project management unit 130, an asset management unit 140, and a schedule management unit 150 as main functions provided by the programs.
[0027] The RAM 12 is used as a work area for the CPU. The ROM 13 stores a control program executed by the CPU for the basic operation of the program management device 100, a BIOS (Basic Input Output System), and the like.
[0028] The storage unit 14 includes a hard disk drive, stores the programs executed by the CPU, and stores various data used when the programs are executed. The storage unit 14 functions as a data storage unit 120.
[0029] The input unit 15 is a user interface including a keyboard, a mouse, etc. The display unit 16 is a display device such as a liquid crystal display or an organic EL (Electro Luminescence) display that visualizes and displays information.
[0030] The communication unit 17 is a network termination device or a wireless communication device that connects to the network, and a serial interface or a LAN interface that connects to them. The communication unit 17 receives a signal from the outside and outputs data indicated by the signal to the processor 11. The communication unit 17 functions as the communication unit 143.
[0031] Next, the operation of the program management device 100 having the above configuration will be described with reference to FIG.
[0032] The data storage unit 120 of the program management device 100 stores in advance the project management information shown in FIG. 2, the version information shown in FIG. 3, and the operation status table shown in FIG.
[0033] When the writing unit 141 of the asset management unit 140 performs a process of writing a project file to the memory of the control device 200, the writing unit 141 adds the revision number and project name of the written project file, the device ID and factory name of the target control device 200, and information on the date and time of the writing process to the project management information shown in Fig. 2, and updates it. When the error resolution unit 132 receives error information and identifies the project file in which an error has occurred, it reads the project management information from the data storage unit 120, enters "Yes" in the "Error occurrence history" column in the same row as the revision number of the identified project file, and updates the project management information. When the writing unit 141 outputs a write request message to the control device 200, the date and time when the write request message was output can be added to and updated in the project management information.
[0034] When a project file developer creates a new project file, or revises an existing project file to create a new version or revision of a project file, the developer reads out the version information shown in Figure 3 and adds information to the "Revision number," "Version," "Project name," and "Original project" fields to update the version information.
[0035] The schedule management unit 150 acquires operation data indicating the operation status of the control device 200 from the control device 200, and generates an operation status table indicating the time period during which each control device 200 has operated. Specifically, the schedule management unit 150 determines the time period during which the control device 200 has operated, based on the operation data within a preset period such as the past week or the past month. The schedule management unit 150 generates an operation status table for each fixed period, such as every week or month, and stores it in the data storage unit 120.
[0036] Returning to FIG. 7, when the user operates the input unit 15 to request the start of error resolution processing, the program management device 100 starts the processing.
[0037] The error monitoring unit 142 of the asset management unit 140 waits for error information indicating that an execution error has occurred in the control program (step S11). When the error monitoring unit 142 receives error information from the gateway 300 via the communication unit 143 (step S12; Yes), it transmits the received error information to the project management unit 130 and proceeds to the process of step S13. On the other hand, when the error monitoring unit 142 has not received error information (step S12; No), it waits for error information until it receives the error information (step S11).
[0038] When the error resolution unit 132 of the project management unit 130 receives the error information from the error monitoring unit 142, it identifies the project file including the control program in which the error occurred (step S13). Specifically, the error resolution unit 132 acquires the device ID of the control device 200 included in the error information, and identifies the control device 200 in which the execution error occurred. Next, the error resolution unit 132 refers to the project management information shown in Fig. 2 and identifies the project file currently written in the memory of the control device 200 with the acquired device ID.
[0039] For example, when the error resolution unit 132 acquires the device ID "620" from the error information, it reads out the information of the "writing history" and identifies that the project files with the history written to the device ID "620" are the revision numbers "31", "33", and "38". Next, the error resolution unit 132 reads out the information of each "writing date and time". Since the project file with the revision number "31" was written at 0:00 on February 1, 2023, the project file with the revision number "33" was written at 0:00 on July 1, 2023, and the project file with the revision number "38" was written at 0:00 on August 1, 2023, the error resolution unit 132 identifies that the project file with the revision number "38" with the latest writing date and time is the project file currently written in the memory of the control device 200 of the device ID 620 and is the project file in which the error occurred. The error correction unit 132 updates the "Error Occurrence History" of the project management information for revision number "38" by adding "Yes", indicating that an execution error has occurred. The project file with revision number "38" is an example of an error occurring program.
[0040] Returning to FIG. 7, next, the error resolution unit 132 identifies a project file for updating to resolve the error that has occurred (step S14). Specifically, the error resolution unit 132 refers to the version information shown in FIG. 3 to acquire a revision history indicating which project file was revised to develop the project file including the control program in which the error has occurred. For example, in the case of the project file with revision number "38" identified in step S13, the error resolution unit 132 reads out "original project" in the version information and identifies the project file with revision number "38" as a project file with revision number "33" as the original revision. Next, the error resolution unit 132 identifies the project file with revision number "33" as a project file with revision number "31" by a similar process. By these processes, the error resolution unit 132 acquires the project files with revision number "31" and revision number "33" as the revision history of the project file with revision number "38". The project files with revision number "31" and revision number "33" are examples of the pre-revision program.
[0041] Returning to FIG. 7, next, the error resolution unit 132 refers to the project management information shown in FIG. 2, checks the error occurrence history of the project file included in the revision history, and determines the project file without the error occurrence history as the project file for update. Specifically, the error resolution unit 132 reads out the "error occurrence history" of the project management information, and obtains the error occurrence history of the project files with the revision numbers "31" and "33". In the illustrated example, the project file with the revision number "33" with the newer writing date and time has the error occurrence history "present", and the project file with the revision number "31" with the older writing date and time has the error occurrence history "not present". The error resolution unit 132 determines the project file with the revision number "31" without the error occurrence history as the project file for update. The error resolution unit 132 notifies the writing unit 141 that the project file with the revision number "31" has been determined as the project file for update. The project file with the revision number "31" is an example of an update program.
[0042] FIG. 8 shows an example of a display screen displaying the result of the decision of the project file for update by the error resolution unit 132. The vertical axis of this display screen displays version information indicating the version of the project file, and the horizontal axis displays the revision number of the project file. In addition, a cell where the version "1.0.3" of the project file in which the execution error occurred intersects with the revision number "38", and a cell where the version "1.0.0" of the project file decided as the project file for update in step S14 intersects with the revision number "31" are highlighted and displayed. In addition, the revision history of the project file with the revision number "38" and the project file created by revising the project file with the revision number "38" are visualized and displayed by dotted lines connecting the respective cells. The user checks the contents displayed on the display screen and clicks the "Yes" icon to proceed to step S15.
[0043] Returning to FIG. 7, next, the schedule management unit 150 sets a schedule for writing the update project file identified in step S14 into the memory of the control device 200 (step S15). Specifically, the schedule management unit 150 displays a schedule setting screen exemplified in FIG. 5 on the display unit 16 and accepts an input operation by the user. In the schedule setting screen, the schedule management unit 150 inputs the device ID of the target control device 200 and the factory name into each form. Next, the schedule management unit 150 refers to the operation status table shown in FIG. 4 stored in the data storage unit 120, determines a time period with no operation record, and inputs it into the form of the scheduled start date and time. For example, in the case of the target control device 200 with the device ID "620", the schedule management unit 150 obtains the current date "9 / 7" from the timer and inputs the next day's date "9 / 8" into the form as the scheduled start date. Next, the schedule management unit 150 refers to the operation status table and inputs "23:00", which has no operation record for the device ID "620", into the form as the planned start time. When the user presses the set button, the schedule management unit 150 sets a transmission timer for transmitting an instruction signal to the writing unit 141 to execute the write process, at the date and time input into the form for the start date and time.
[0044] Returning to FIG. 7, the error resolution unit 132 determines whether or not there is a derived project file created by revising the project file including the control program in which the execution error occurred (step S16). Specifically, the error resolution unit 132 identifies the derived project file by referring to the version information shown in FIG. 3. The error resolution unit 132 searches for a project file including the revision number "38" of the project file in which the execution error occurred in the "original project" of the version information. In the illustrated example, since the "original project" includes a project file with revision number "41" including revision number "38", the error resolution unit 132 determines that there is a derived project file (step S16; Yes) and identifies the project file with revision number "41" as the derived project file. Next, the error resolution unit 132 refers to the project management information shown in FIG. 2 and identifies that the device 200 in which the project file with revision number "41" has been written is device ID "630". Next, the error resolution unit 132 determines whether or not there is a derived project file created by revising the project file with revision number "41" by a similar process. In the illustrated example, since there is no project file including revision number "41" in the "original project", the error correction unit 132 determines that there is no derived project file based on the project file with revision number "41".
[0045] Next, the error resolution unit 132 notifies the user of the derived project file identified in step S16 (step S17). Specifically, the error resolution unit 132 generates a notification screen shown in FIG. 9 and causes the display unit to display information indicating that the derived project file has been identified. This allows the user to know in advance the project file that includes a control program in which the same error may occur. If the error resolution unit 132 determines that there is a derived project file with revision number "41", it identifies the revision number of this derived project file and repeats the process until it determines that there is no derived project file.
[0046] 7, next, the error resolution unit 132 identifies an update project file for the derived project file identified in step S16 (step S18). Specifically, the error resolution unit 132 acquires the revision history of the derived project file by the same process as in step S14, checks the history of error occurrence of the project file included in the revision history, and determines the project file without an error history as the update project file.
[0047] Next, the schedule management unit 150 sets a schedule for writing the update project file identified in step S18 into the memory of the control device 200 in which the derived project file is written (step S19). Specifically, similar to step S15, the schedule management unit 150 displays a schedule setting screen exemplified in Fig. 5 on the display unit 16 and sets a schedule according to an input operation by the user.
[0048] Returning to FIG. 7, in step S16, if the error correction unit 132 determines that there is no derived project file (step S16; No), the process proceeds to step S20.
[0049] Next, when the schedule management unit 150 detects that the date and time of the schedule set in step S15 or step S19 has arrived and the transmission timer has expired, it transmits an instruction signal to the writing unit 141 to execute a write process. When the writing unit 141 receives the instruction signal, it executes a process of writing the project file for update determined in step S14 or step S18 to the memory of the control device 200 (step S20). Specifically, when executing the write set in step S15, the writing unit 141 acquires the project file with the revision number "31" determined by the project management unit 130 from the data storage unit 120. Next, the writing unit 141 transmits the acquired project file to the control device 200 in which the error has occurred, and writes the transmitted project file to the memory of the error control device 200.
[0050] Next, the writing unit 141 updates the project management information shown in Fig. 2 (step S21). Specifically, the writing unit 141 reads out the project management information, adds "Factory B-equipment ID: 620" indicating the equipment ID and factory name of the control device 200 to which the data is written to the "writing history" of the revision number "31" of the project file written in step S20, adds the date and time of writing to the "writing date and time", updates the project management information, and ends the process. Note that the project management information is updated in the same way when writing of an update project file to the derived project file identified in step S18 is executed.
[0051] As described above, when an execution error occurs in a control program executed by the control device 200, the program management device 100 refers to the revision history and error occurrence history of a project file including the control program in which the execution error occurred, and identifies a project file in which no errors have occurred. The program management device 100 writes the identified project file into the memory of the control device 200. Therefore, it becomes possible to quickly resolve the error that occurred in the control device 200 with little effort.
[0052] Furthermore, the program management device 100 automatically identifies a derived project file created by revising a project file including a control program in which an execution error has occurred, and notifies the user of the identified derived project file. This allows the user to know in advance which project files may potentially have the same execution error as the one that has occurred. Then, before an execution error occurs, an updated project file can be written to the memory of the control device 200, or revision work for the derived project file can be started, improving the reliability of the entire factory.
[0053] Furthermore, the program management device 100 automatically generates a schedule for writing the update project file. The user checks the date and time of the generated schedule and modifies the schedule by changing the date and time as necessary. This eliminates the need to manually check the operating status of the target control device 200 and create a schedule, making it possible to update the project file with less effort.
[0054] As long as it does not deviate from the gist of the present disclosure, it is possible to select and discard the configurations described in the above embodiments, or to change them to other configurations as appropriate.
[0055] In the above embodiment, each control device 200 is described as executing a control program included in one project file, but this is not limited thereto. The control device 200 may have a plurality of CPUs, and each CPU may execute a control program included in a different project file. In this case, the control device 200 may add information for identifying the CPU to the error information and transmit it to the gateway 300. Furthermore, the writing unit 141 may add the device ID and the identification information of the CPU to the "writing history" of the project management information shown in FIG. 2. In the process of step S13 of FIG. 7, the error resolution unit 132 of the project management unit 130 may acquire the device ID and the identification information of the CPU of the control device 200 included in the error information, refer to the project management information, and identify the project file currently written in the CPU of the control device 200 of the acquired device ID. Furthermore, in step S20 of FIG. 7, when the writing unit 141 receives an instruction signal from the schedule management unit 150, it may execute a process of writing the update project file to the area of the memory that is read by the CPU identified in step S13.
[0056] In the above embodiment, the program management device 100 has been described as writing an update project file into the memory of the control device 200 in which an execution error has occurred, but this is not limited thereto. The program management device 100 may identify other control devices 200 in which the same project file as that of the control device 200 in which an execution error has occurred has been written into the memory, and write the update project file into these memories. Specifically, in the project management information shown in FIG. 2, when the project file identified in step S13 of FIG. 7 has been written into the memory of a plurality of control devices 200, the error resolution unit 132 acquires the device IDs of the respective control devices 200 from the project management information. In step S15, the schedule management unit 150 refers to the operation status table and determines the time period in which each of the control devices 200 with the acquired device IDs has no operation record. The schedule management unit 150 displays the scheduled disclosure date and time of the write process of each of the control devices 200 on the schedule setting screen, and sets the write schedule. In step S20, upon receiving the instruction signal transmitted according to the schedule set in step S15, the writing unit 141 writes the project file identified in step S14 into the memory of the control device 200.
[0057] In addition, in the above embodiment, the program management device 100 has been described as managing a project file including a control program, but this is not limited to this, and the program management device 100 may also manage a control program and write the control program into the memory of the control device 200 in which an error has occurred.
[0058] The information stored in data storage unit 120 may be managed collectively by a cloud server on the network, and program management device 100 may access the cloud server as necessary to read and write information. In this case, program management device 100 does not need to include data storage unit 120.
[0059] In the above embodiment, the processing is executed by one program management device 100, but the system configuration is arbitrary. For example, the functions of the program management device 100 may be realized by a system including a plurality of devices each realizing any one of the functions of the program creation unit 110, the project management unit 130, the asset management unit 140, and the schedule management unit 150.
[0060] Furthermore, program management device 100 can be realized by using a normal computer system, not by a dedicated device. For example, a program for realizing each function of program management device 100 may be stored in a computer-readable recording medium such as a CD-ROM (Compact Disc Read Only Memory) or a DVD-ROM (Digital Versatile Disc Read Only Memory) and distributed, and a computer capable of realizing each of the above-mentioned functions may be configured by writing this program into the computer.
[0061] Furthermore, when each function is realized by sharing the functions between an OS (Operating System) and an application, or by cooperation between the OS and the application, only the application may be stored on the recording medium.
[0062] In addition, various embodiments and modifications of the present disclosure are possible without departing from the broad spirit and scope of the present disclosure. The above-described embodiments are for explaining the present disclosure and do not limit the scope of the present disclosure. That is, the scope of the present disclosure is indicated by the claims, not the embodiments. Various modifications made within the scope of the claims and the scope of the disclosure equivalent thereto are considered to be within the scope of the present disclosure. [Explanation of symbols]
[0063] 100 program management device, 110 program creation section, 120 data storage section, 130 project management section, 131 revision history management section, 132 error resolution section, 140 asset management section, 141 writing section, 142 error monitoring section, 143 communication section, 150 schedule management section, 11 processor, 12 RAM, 13 ROM, 14 memory section, 15 input section, 16 display section, 17 communication section, 99 internal bus, 200 control device, 300 gateway, 400 network.
Claims
1. Computer, An acquisition means for acquiring error information indicating that an execution error has occurred in a control program executed by a control device that controls the device; an error-occurring program identifying means for identifying an error-occurring program, which is the control program in which an execution error has occurred, based on identification information of the control device included in the acquired error information and a write record indicating the record of writing the control program to each of the plurality of control devices; a revision source identification means for identifying the revision source program of the error occurrence program based on correspondence information that associates each of the control programs with a revision source program that is a control program used to develop the control program; an update program determining means for determining, from among the identified pre-revision programs, a pre-revision program having no history of occurrence of an execution error, as an update program which is the control program for updating, based on error history information indicating a history of occurrence of an execution error for each of the control programs; a write means for executing a write process for writing the determined update program into a storage unit included in the control device that executed the error occurrence program; A program that functions as a
2. the writing history includes a history of a project including the control program to be executed by the control device being written, the error occurrence program identification means identifies a project including the error occurrence program in which an execution error has occurred based on the identification information and the writing history, the revision source identifying means identifies a revision source project of the project including the error occurrence program based on project correspondence information including a correspondence between each project and a revision source project of the project, the update program determination means determines, as an update project, a project including the pre-revision program that has not had an execution error from among the pre-revision projects identified by the pre-revision identification means; The writing means writes the determined update project into a storage unit included in the control device that executed the error occurrence program. The program according to claim 1.
3. The computer, a derived program specifying means for specifying a derived program which is a control program created by revising the error-causing program specified by the error-causing program specifying means based on the correspondence information; a notification means for notifying the derived program identified by the derivative destination identification means; The program according to claim 1 or 2, further functioning as:
4. The computer, a schedule setting means for setting a date and time for the writing means to execute the writing process based on operation result information indicating an operation time result of the control device; The program according to claim 1 or 2, further functioning as:
5. The computer, A program generating means for generating a control program to be executed by a control device that controls the device; The program according to claim 1 or 2, further functioning as:
6. An acquisition means for acquiring error information indicating that an execution error has occurred in a control program executed by a control device that controls the device; an error-occurring program identifying means for identifying an error-occurring program, which is the control program in which an execution error has occurred, based on identification information of the control device included in the error information acquired by the acquiring means and a writing record of the control program; a revision source identification means for identifying the revision source program of the error occurrence program based on correspondence information that associates each of the control programs with a revision source program that is a control program used to develop the control program; an update program determining means for determining, from among the identified pre-revision programs, a pre-revision program that has not had a history of occurrence of an execution error, as an update program that is the control program for updating, based on error history information of each of the control programs; a write means for executing a write process for writing the determined update program into a storage unit included in the control device that executed the error occurrence program; A program management device comprising:
7. A program management device according to claim 6; a control device that controls the device and transmits error information indicating that an execution error has occurred in a control program executed by the control device; a gateway that acquires error information transmitted from the control device and transmits the error information to the program management device; A program management system comprising:
8. acquiring error information indicating that an execution error has occurred in a control program executed by a control device that controls the device; Identifying an error-causing program, which is the control program in which an execution error has occurred, based on identification information of the control device included in the acquired error information and a writing history of the control program; identifying a pre-revision program of the error occurrence program based on association information that associates each of the control programs with a pre-revision program that is a control program used to develop the control program; determining, from among the identified pre-revision programs, a pre-revision program that has not had a history of occurrence of an execution error, as an update program that is the control program for updating, based on error history information of each of the control programs; writing the determined update program into a storage unit included in the control device that executed the error occurrence program; A program management method, comprising: