WO2019229845A1 - Program management system, programming assistance device, program management method, and programming assistance program - Google Patents
Program management system, programming assistance device, program management method, and programming assistance program Download PDFInfo
- Publication number
- WO2019229845A1 WO2019229845A1 PCT/JP2018/020538 JP2018020538W WO2019229845A1 WO 2019229845 A1 WO2019229845 A1 WO 2019229845A1 JP 2018020538 W JP2018020538 W JP 2018020538W WO 2019229845 A1 WO2019229845 A1 WO 2019229845A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- version
- program
- execution module
- management
- programming support
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Definitions
- the present invention relates to a program management system, a programming support apparatus, a program management method, and a programming support program for managing programs.
- a PLC Programmable Logic Controller
- This control program may be edited by the user to become a new version of the program.
- a new version of the execution module is created by compiling the difference between the new version of the program and the old version of the program, and the new version of the PLC operating with the old version of the execution module is created.
- An execution module may be written. Such a process of updating the execution module with respect to the operating PLC is referred to as “running execution” or “run (RUN) writing”.
- the programmable controller system described in Patent Document 1 associates identification information with an execution module created from a program. This programmable controller system determines, based on the identification information, whether or not the execution module to be downloaded to the PLC is a derivative version created from the master version being executed in the PLC before performing the writing during execution. If it is a derivative version, download is permitted.
- the present invention has been made in view of the above, and an object thereof is to obtain a program management system capable of efficiently developing a program.
- the program management system of the present invention uses a first version execution module created by compiling using a first version program to control a controlled device.
- a programming support device for creating a version execution module is provided.
- the program management system of the present invention includes a management device that manages an execution module being executed by the control device, the latest version of the program, and compile information indicating whether or not the latest version of the program has been compiled. Prepare.
- the programming support apparatus When writing the second version of the execution module to the control device that is executing the first version of the execution module, the programming support apparatus is specific to the second version of the program and the second version of the execution module. When the second version of the execution module is not written to the control device that is executing the first version of the execution module, the second version of the program is transmitted to the management device.
- the management apparatus receives information specific to the second version program and the second version execution module, the management apparatus manages the second version program as the latest version program, and controls the second version execution module to the control apparatus. Is managed as an execution module being executed, and compile information is set to information indicating that it has been compiled.
- the management apparatus When the management apparatus receives the second version of the program without receiving information specific to the second version of the execution module, the management apparatus manages the second version of the program as the latest version of the program, and the first version of the execution module Is managed as an execution module being executed by the control device, and the compile information is set to information indicating that it has not been compiled.
- the program management system according to the present invention has an effect that a program can be efficiently developed.
- the figure which shows the structure of the program management system concerning embodiment of this invention The figure for demonstrating the information memorize
- stores after the process of FIG. 3 is performed
- stores after the process of FIG. 5 is performed
- FIG. 1 is a diagram showing a configuration of a program management system according to an embodiment of the present invention.
- the program management system 1 is a system that manages the execution module Mx created by compiling the program P, and writes the PLC 10 during execution using the newly created execution module Mx.
- the program management system 1 manages the execution module Mx so that the version of the execution module Mx that is being executed by the PLC 10 matches the version of the execution module Mx that is read when the execution-in-execution write is about to be performed.
- the program P can be edited by a plurality of users. When edited by the user, the program P becomes a new version of the program P. When the new version of the program P is compiled, a new version of the execution module Mx is generated. Examples of the program P are programs Pv1 to Pv3 described later, and examples of the execution module Mx are execution modules M1 to M3 described later.
- “In-execution writing” is a process of updating the execution module of the PLC 10 without stopping the operation of the PLC 10.
- a new version of the execution module is written to the PLC 10 operating using a specific execution module.
- an execution module that is a difference from the previous writing is written into the PLC 10.
- the program management system 1 manages the version of the execution module Mx being executed by the PLC 10, and permits execution writing only to an appropriate execution module Mx corresponding to the execution module Mx being executed by the PLC 10. To do.
- the program management system 1 includes a PLC 10, which is an example of a control device that controls an industrial machine, a management device 20, and a programming support device 30.
- the PLC 10 stores an execution module Mx, and controls the controlled device such as an industrial machine using the execution module Mx.
- the programming support device 30 is a computer that creates an execution module Mx from the program P by compiling the program P for controlling the industrial machine.
- the management device 20 that is a program management device is a computer that performs version management of the program P and version management of the execution module Mx.
- the management device 20 is connected to one or more programming support devices 30.
- One or more programming support devices 30 are each connected to the PLC 10.
- An example of the management device 20 is a server, and an example of the programming support device 30 is a client device.
- the programming support device 30 includes a programming support unit 31 that is a programming support tool, and a storage unit 39.
- the programming support unit 31 has a function of supporting creation of the program P.
- the programming support unit 31 has a function of creating the program P, a function of editing the program P, and a function of compiling the program P.
- the programming support unit 31 has a function of transmitting the program P and the execution module Mx to the management device 20 that is an external device, a function of writing the execution module Mx into the PLC 10, and a compile flag managed by the management device 20. 23, and a function of reading the program P and the execution module Mx.
- a specific example of the function of creating the program P is a function of creating the program P according to an instruction from the user
- a specific example of the function of editing the program P is a function of editing the program P according to the instruction from the user.
- the function for compiling the program P is a function for creating the execution module Mx from the program P by compiling the program P.
- a compiler which is a function for compiling the program P, converts the program P, which is a source code, into an execution module Mx, which is a machine language.
- the programming support unit 31 may create an execution module Mx for a plurality of programs P, or may create an execution module Mx for each program P.
- the program P and the execution module Mx transmitted from the programming support unit 31 to the management device 20 are created or edited by the programming support unit 31.
- the execution module Mx written to the PLC 10 by the programming support unit 31 is created or edited by the programming support unit 31.
- program P and the execution module Mx that the programming support unit 31 reads from the management device 20 are previously created or edited by the programming support unit 31.
- the program P and the execution module Mx that the programming support unit 31 reads from the management device 20 may be created or edited by another programming support device 30.
- the storage unit 39 stores project data 22 that is data for managing the program P and the execution module Mx.
- the project data 22 is read by the programming support unit 31 from the management apparatus 20 when the programming support unit 31 edits the project data 22.
- the project data 22 includes a compile flag 23, a program P, and an execution module Mx.
- the execution module Mx When the program P is compiled and compiled after the program P becomes a new version, the execution module Mx also becomes a new version. Therefore, when the programming support unit 31 compiles a new version of the program P and creates a new version of the execution module Mx, the new version of the execution module Mx is stored in the storage unit 39. Thus, when the programming support unit 31 edits the project data 22, the storage unit 39 stores the edited project data 22.
- the compile flag 23 which is compile information is a flag indicating whether or not the program P included in the project data 22 has been compiled.
- the compile flag 23 indicates information about whether or not the program has been compiled for each program.
- the programming support apparatus 30 edits the program P in accordance with an instruction from the user and saves the program P, and compiles the edited program P in accordance with the instruction from the user and writes it to the PLC 10 during execution. There is.
- the programming support device 30 compiles the edited program P according to an instruction from the user and writes the program P during execution to the PLC 10, the difference between the edited program P and the program P corresponding to the execution module Mx being executed in the PLC 10 And an execution module corresponding to the difference is created.
- An example of the execution module corresponding to the difference is an execution module M3 described later.
- the programming support apparatus 30 writes the execution in progress to the PLC 10 using the differential execution module M3, and further stores the differential execution module M3 in the management apparatus 20.
- the programming support apparatus 30 may create an execution module corresponding to the difference between the execution module of the edited program P and the execution module Mx being executed by the PLC 10. Also in this case, an example of an execution module corresponding to the difference is an execution module M3 described later.
- the difference between the edited program P and the program P corresponding to the execution module Mx being executed by the PLC 10 is a specific line added by editing the program P.
- the difference between the edited program P and the program P corresponding to the execution module Mx being executed by the PLC 10 is the difference between a specific program among the plurality of programs. The whole may be sufficient.
- the programming support unit 31 that is a programming support tool may be a part of an engineering tool.
- the engineering tool is application software for the programming support device 30 to make various settings to the PLC 10 in accordance with instructions from the user.
- the management device 20 includes a version management unit 21 that is a version management tool, and a storage unit 29.
- the version management unit 21 manages the project data 22 sent from the programming support device 30. Specifically, the version management unit 21 manages the execution module Mx and the program P sent from the programming support device 30.
- the version management unit 21 manages the compile flag 23 and the version information 25.
- the version management unit 21 When the version management unit 21 receives the project data 22 from the programming support device 30, the version management unit 21 stores the project data 22 in the storage unit 29. Therefore, when the program P is edited by the programming support device 30 to become a new version of the program P, the new version of the program P is stored in the storage unit 29.
- the storage unit 29 stores the project data 22 in accordance with instructions from the version management unit 21. Similarly to the project data 22 stored in the storage unit 39, the project data 22 stored in the storage unit 29 includes a compile flag 23, a program P, and an execution module Mx. The storage unit 29 stores version information 25.
- the storage unit 29 may store a plurality of project data 22. Each project data 22 may include a plurality of programs P.
- the version management unit 21 may be disposed in the programming support device 30 or may be disposed other than the programming support device 30 and the management device 20.
- the version management unit 21 updates the compile flag 23 when the program P is edited by the programming support device 30 to become a new version. If the program P is not compiled after being edited, the version management unit 21 sets the compilation flag 23 to be uncompiled, and if the program P is compiled after being edited, the version management unit 21 sets the compilation flag 23 to be compiled. In the present embodiment, as will be described later, when the execution module Mx is written in the PLC 10, the compile flag 23 is set to be compiled. Therefore, the compile flag 23 indicates whether or not the execution module Mx is written in the PLC 10. It can be said that this is a flag indicating.
- the version management unit 21 edits the version information 25 based on the program P sent from the programming support device 30 and the version of the program P.
- the version information 25 is information managed by the version management unit 21.
- the program P and the version of the program P are associated with each other. For example, when the program Pv1 which is an example of the program P is the first version and the program Pv2 which is an example of the program P is the second version, the version information 25 corresponds to the information indicating the program Pv1 and the first version.
- the program Pv2 is associated with information indicating the second version.
- the version management unit 21 associates the new version with the program P and registers it in the version information 25.
- FIG. 2 is a diagram for explaining information stored at a timing when the management apparatus according to the embodiment starts managing the project data.
- FIG. 2 illustrates a case where a program Pv1 that is an example of the program P and an execution module M1 that is an example of the execution module Mx are created.
- the programming support unit 31 When the programming support unit 31 creates the first version of the program Pv1, the programming support unit 31 compiles the program Pv1 to create an execution module M1 that is an execution module of the first version. Then, the programming support unit 31 transmits the created execution module M1 to the PLC 10 and writes it in the PLC 10. At this time, the programming support unit 31 creates project data 22 including the created program Pv1 and the execution module M1, and transmits the created project data 22 to the management apparatus 20. Thereby, PLC10 starts control of an industrial machine using the execution module M1, and the management apparatus 20 memorize
- the storage unit 29 stores the project data 22 including the compile flag 23 set as compiled, the program Pv1, and the execution module M1.
- the version management unit 21 registers information identifying the program Pv1 and a version number indicating the version of the program Pv1 in the version information 25. This version number is specified by the user. For example, when “ver.1” is designated as the version of the program Pv1, the version management unit 21 includes information for identifying the first version of the program Pv1 and “ver.1” indicating the first version. Are registered in the version information 25 in association with each other. An example of information for identifying the program Pv1 is the name of the program Pv1.
- the programming support unit 31 reads out the program Pv1 from the management device 20 in accordance with an instruction from the user and stores it in the storage unit 39. Then, the programming support unit 31 edits the program Pv1 in accordance with an instruction from the user. In this case, there are a case where the user only edits the program Pv1 and does not reflect it in the PLC 10, and a case where the user wants to reflect the program Pv1 in the PLC 10 after editing the program Pv1.
- the first version of the program Pv1 is compiled, the first version of the execution module M1 is obtained, and when the second version of the program Pv2 is compiled, the second version of the execution module M2 (not shown) is obtained.
- the program Pv3 is compiled, the third version of the execution module M3 is obtained.
- FIG. 3 is a flowchart illustrating a processing procedure when the program is edited but not written to the PLC in the program management system according to the embodiment.
- the programming support unit 31 of the programming support device 30 reads the program Pv1, the compile flag 23, and the execution module M1 from the management device 20 in accordance with an instruction from the user AA.
- Obtain (step S10).
- the program Pv1, the compile flag 23, and the execution module M1 are stored in the storage unit 39.
- the programming support unit 31 of the programming support device 30 edits the program Pv1 in accordance with an instruction from the user AA to create a new version of the program Pv2 (step S20).
- the programming support unit 31 creates the program Pv2 with the same file name as the program Pv1, and updates the version number. For example, when the user AA specifies “ver.2” as the version of the program Pv2, the programming support unit 31 associates the program Pv2 with “ver.2”.
- the programming support unit 31 of the programming support device 30 transmits the program Pv2 associated with “ver. 2” to the version management unit 21 of the management device 20 (step S30). At this time, the programming support unit 31 designates the project data 22 corresponding to the read program Pv1, and transmits the program Pv2 to the version management unit 21.
- the version management unit 21 of the management apparatus 20 includes the program Pv2 in the designated project data 22. That is, the storage unit 29 of the management device 20 stores the program Pv2. Furthermore, since the execution module M2 corresponding to the program Pv2 has not been sent in the management device 20, the version management unit 21 of the management device 20 changes the compile flag 23 of the program Pv2 to uncompiled (step S40). Also, the version management unit 21 associates information for identifying the program Pv2 with “ver.2” indicating the version of the program Pv2, and registers the information in the version information 25.
- the programming support unit 31 may compile the program Pv2 in accordance with an instruction from the user AA, thereby creating an execution module M2 corresponding to the program Pv2. Even in this case, the programming support unit 31 does not transmit the execution module M2 to the PLC 10 or the management apparatus 20 when there is no instruction for writing the execution module M2 to the PLC 10 from the user AA. Thereby, the identity of the execution module M1 in the PLC 10 and the execution module M1 managed by the management device 20 can be maintained. If writing during execution is not performed, the acquisition of the compile flag 23 and the execution module M1 may be omitted in step S10.
- FIG. 4 is a diagram for explaining information stored in the management apparatus according to the embodiment after the process of FIG. 3 is executed.
- the version management unit 21 of the management device 20 stores the program Pv2 in the storage unit 29.
- the version management unit 21 changes the file stored with the file name of the program Pv1 to the contents of the program Pv2. Therefore, in the storage unit 29, the content of the program Pv1 is changed to the content of the program Pv2 while maintaining the file name.
- the program Pv1 may be stored in an area different from the area where the program Pv2 is stored in the storage unit 29.
- the version management unit 21 may store the difference between the program Pv1 and the program Pv2 in the storage unit 29 instead of the program Pv2.
- the version management unit 21 rewrites the compile flag 23 of the program Pv2 from compiled to uncompiled. Further, the execution module M1 is not updated. Accordingly, the storage unit 29 stores the project data 22 including the compile flag 23 indicating uncompiled, the program Pv2, and the execution module M1.
- the version management unit 21 registers information identifying the program Pv2 and the version number indicating the version of the program Pv2 in the version information 25. This version number is specified by the user. For example, when “ver.2” is designated as the version of the program Pv2, the version management unit 21 associates information for identifying the second version of the program Pv2 with “ver.2” indicating the second version. And registered in the version information 25.
- FIG. 5 is a flowchart showing a processing procedure when the program is edited and written in the PLC in the program management system according to the embodiment.
- the user BB who is the second user may edit the program Pv2 with the programming support device 30 used by the user AA, or edit the program Pv2 with a programming support device different from the programming support device 30 used by the user AA. May be.
- a case where the user BB edits the program Pv2 with the programming support device 30 used by the user AA will be described.
- the processes in steps S110 to S170 described below are processes executed by the programming support apparatus 30, and the process in step S180 is a process executed by the management apparatus 20.
- the programming support unit 31 of the programming support device 30 reads and acquires the program Pv2, the compile flag 23, and the execution module M1 from the management device 20 in accordance with an instruction from the user BB (step S110). .
- the program Pv2, the compile flag 23, and the execution module M1 are stored in the storage unit 39.
- the programming support unit 31 of the programming support device 30 edits the program Pv2 according to the instruction of the user BB and creates the program Pv3 (step S120). Furthermore, when the programming support unit 31 of the programming support device 30 receives an instruction to write the program Pv3 to the PLC 10 from the user BB (step S130), whether or not the program Pv2 acquired from the management device 20 is the latest version of the program. Is determined (step S140).
- the reason for determining whether or not the program Pv2 acquired from the management apparatus 20 is the latest version of the program will be described.
- the program editing may be performed by another user CC while the user BB is editing the program.
- the user CC may create the program Pv4 from the program Pv2 while the user BB is creating the program Pv3 from the program Pv2. If the program Pv4 is registered in the storage unit 29 before the program Pv3 is registered in the storage unit 29, the program Pv4 becomes the latest version program, and the program Pv2 is not the latest version.
- the programming support unit 31 determines whether or not the program Pv2 acquired from the management apparatus 20 is the latest version program before writing the program Pv3 into the PLC 10.
- step S140 When the program Pv2 acquired from the management device 20 is not the latest version program (No in step S140), the program Pv3 is edited from a program that is not the latest version, and therefore the programming support unit 31 of the programming support device 30 is used. Determines that writing to the PLC 10 is not possible (step S150). Thus, the programming support unit 31 does not create the execution module M2 when the program Pv2 is not the latest version of the program.
- step S140 when the program Pv2 acquired from the management device 20 is the latest version of the program (step S140, Yes), the programming support unit 31 of the programming support device 30 acquires the execution module M1 in the PLC 10 and the management device 20. It is confirmed whether or not the execution module M1 is the same (step S155).
- the programming support unit 31 determines the identity of the execution module M1, for example, by comparing the hash values of the binary data of the execution module M1. In this case, the programming support unit 31 calculates the first hash value from the binary data of the execution module M1 in the PLC 10, and from this, the binary of the execution module M1 acquired from the management device 20 when attempting to perform the write during execution. A second hash value is calculated from the data. Then, the programming support unit 31 compares the calculated first hash value with the second hash value. Based on the comparison result, the programming support unit 31 determines whether or not the execution module M1 in the PLC 10 is the same as the execution module M1 acquired from the management apparatus 20 when an ongoing write is to be performed. Determine.
- the programming support unit 31 determines the identity of the execution module M1 by comparing the first hash value and the second hash value, the programming support unit 31 uses the second hash instead of the execution module M1.
- the value may be transmitted to the management device 20. That is, the programming support unit 31 may transmit information unique to the execution module M1 to the management device 20 instead of the execution module M1. Thereby, since the programming support part 31 can acquire the information specific to the execution module M1 from the management apparatus 20, the execution module M1 in the PLC 10 and the execution module M1 managed by the management apparatus 20 are the same. It can be confirmed whether or not.
- the information unique to the execution module M1 may be the execution module M1 itself.
- the programming support unit 31 may compare the binary data of the execution module M1 by any method, not limited to the method described above.
- step S155 If the execution module M1 in the PLC 10 and the execution module M1 acquired from the management device 20 are not the same (No in step S155), there is a possibility that some abnormality has occurred, so the programming support unit of the programming support device 30 31 determines that writing to the PLC 10 is not possible (step S150). In this case, the programming support unit 31 does not create the execution module M2. Thus, the programming support unit 31 does not create the execution module M2 when the execution module M1 in the PLC 10 and the execution module M1 acquired from the management apparatus 20 are not the same.
- step S155 When the execution module M1 in the PLC 10 and the execution module M1 acquired from the management device 20 are the same (step S155, Yes), the programming support unit 31 of the programming support device 30 sets the program Pv3 that is the edited program. By executing the compilation, an execution module M3 corresponding to the program Pv3 is created (step S156). As described above, when the program Pv2 is the latest version program and the execution module M1 in the PLC 10 is the same as the execution module M1 acquired from the management device 20, the programming support unit 31 executes the execution module M3. Create
- the programming support unit 31 calculates a difference between the edited program Pv3 and the program Pv1 corresponding to the execution module M1 being executed by the PLC 10, and compiles the difference.
- an execution module M3 corresponding to the difference program Pv3 is created. That is, since the compile flag 23 of the program Pv2 is not compiled here, the programming support unit 31 uses the sum of the difference between the program Pv3 and the program Pv2 and the difference between the program Pv2 and the program Pv1 to execute the module M3.
- the programming support unit 31 of the programming support device 30 transmits the created execution module M3 to the PLC 10 and writes it in the PLC 10 (step S160).
- the PLC 10 is operating using the execution module M1 corresponding to the program Pv2 before editing. Even in this case, the PLC 10 writes the execution module M3 during execution by applying the differential execution module M3. Since the PLC 10 loops the execution module M1, the difference execution module M3 is applied from the head of the next loop.
- the programming support unit 31 of the programming support device 30 transmits the created program Pv3 and the created execution module M3 to the management device 20 (step S170).
- the programming support unit 31 transmits the program Pv3 and the execution module M3 to the management device 20 when writing the execution module M3 into the PLC 10.
- the version management unit 21 of the management apparatus 20 stores the program Pv3 from the programming support unit 31 in the storage unit 29 as the latest version program.
- the version management unit 21 of the management device 20 stores the execution module M3 from the programming support unit 31 in the storage unit 29 as the latest execution module M3.
- step S180 the version flag of the program Pv3 is changed to compiled (step S180).
- the processing in steps S170 and S180 is processing for preventing a divergence between the program Pv3 stored in the management apparatus 20 and the program Pv3 corresponding to the execution module M3 written in the PLC 10.
- the execution module Mx being executed by the PLC 10 and the execution module Mx being managed by the management apparatus 20 are the same, so that the process of step S155 may be omitted, but the same In order to confirm the property, it is preferable to execute the process of step S155.
- FIG. 6 is a diagram for explaining information stored in the management apparatus according to the embodiment after the process of FIG. 5 is executed.
- the version management unit 21 of the management apparatus 20 stores the program Pv3 in the storage unit 29.
- the version management unit 21 changes the file stored with the file name of the program Pv2 to the contents of the program Pv3. Therefore, in the storage unit 29, the contents of the program Pv2 are changed to the contents of the program Pv3 while maintaining the file name.
- the program Pv2 may be stored in an area different from the area where the program Pv3 is stored in the storage unit 29.
- the version management unit 21 may store the difference between the program Pv2 and the program Pv3 in the storage unit 29 instead of the program Pv3.
- the version management unit 21 rewrites the compilation flag 23 of the program Pv3 from uncompiled to compiled. Also, the version management unit 21 stores the execution module M3 in the storage unit 29. Specifically, the version management unit 21 changes the file stored with the file name of the execution module M1 to the contents of the execution module M3. Therefore, in the storage unit 29, the contents of the execution module M1 are changed to the contents of the execution module M3 while maintaining the file name. As a result, the storage unit 29 stores the project data 22 including the compile flag 23 indicating completion of compilation, the program Pv3, and the execution module M3.
- the version management unit 21 registers information for identifying the program Pv3 and a version number indicating the version of the program Pv3 in the version information 25. This version number is specified by the user. For example, when “ver.3” is designated as the version of the program Pv3, the version management unit 21 associates information for identifying the third version of the program Pv3 with “ver.3” indicating the third version. And registered in the version information 25.
- the program Pv3 is created from the program Pv1.
- the program Pv1 is a first version program
- the program Pv3 is a second version program.
- the execution module M1 is a first version execution module
- the execution module M3 is a second version execution module.
- the programming support unit 31 transmits the execution module M3 to the PLC 10
- the programming module 31 transmits the execution module M3 and the edited program Pv3 to the management apparatus 20.
- the version management unit 21 of the management device 20 stores the difference execution module M3 and the edited program Pv3 in the storage unit 29, and further compiles the compile flag 23 corresponding to the edited program Pv3. Set to.
- the program management system 1 can match the execution module Mx in the PLC 10 with the execution module Mx acquired from the management device 20. Moreover, since the programming support apparatus 30 has transmitted the execution module M1 to the management apparatus 20, when creating the execution module M3, the execution module M1 can be acquired from the management apparatus 20 instead of from the PLC 10. Since the management device 20 has a higher processing capability and faster communication speed than the PLC 10, the programming support device 30 acquires the execution module M1 from the management device 20 rather than acquiring the execution module M1 from the PLC 10. The execution module M1 can be acquired.
- the compile flag 23 may be set by the programming support unit 31.
- the programming support unit 31 transmits the set compile flag 23 to the management device 20.
- the management apparatus 20 stores the compile flag 23 sent from the programming support unit 31.
- FIG. 7 is a diagram illustrating a hardware configuration that implements the programming support apparatus according to the embodiment.
- the programming support device 30 is realized by hardware 100 including a display device 101, an input device 102, a processor 103, a memory 104, and a communication device 105.
- the display device 101 is a device that displays information, and is exemplified by a liquid crystal display, but is not limited thereto.
- the input device 102 is a device for inputting various types of information including characters to the programming support unit 31, and examples thereof include a keyboard, a mouse, a pointing device, and a touch panel, but are not limited thereto.
- the input device 102 is used when receiving various operations by the user. That is, the input device 102 is used when the programming support unit 31 receives an instruction from the user.
- the communication device 105 performs communication with the management device 20 and with the PLC 10.
- the communication device 105 receives various data such as the compile flag 23, the program P, and the execution module Mx from the management device 20, and transmits various data such as the program P and the execution module Mx created by the programming support unit 31 to the management device 20.
- the communication device 105 transmits the execution module Mx created by the programming support unit 31 to the PLC 10 and receives binary data of the execution module Mx stored in the PLC 10 from the PLC 10.
- the function of the programming support unit 31 included in the programming support device 30 is realized by the processor 103 and the memory 104.
- the processor 103 is also referred to as a CPU (Central Processing Unit), a processing device, an arithmetic device, a microprocessor, a microcomputer, or a DSP (Digital Signal Processor).
- the storage unit 39 is realized by the memory 104.
- the memory 104 includes a RAM (Random Access Memory), a ROM (Read Only Memory), and the like.
- the function of the programming support unit 31 is realized by software, firmware, or a combination of software and firmware.
- Software and firmware are described as programs and stored in the memory 104.
- the processor 103 implements the function of the programming support unit 31 by reading and executing the program stored in the memory 104. This program can be said to cause a computer to execute the procedure executed by the programming support unit 31.
- the management device 20 can also be realized by the hardware 100 having the same configuration as the programming support device 30.
- the program management system 1 manages the execution module Mx, even when a plurality of users edit the program P at the time of program development, it is easy to write to the PLC 10 during execution. Can be realized.
- the execution module Mx managed by the management device 20 is always the same as the execution module Mx at the time of writing to the PLC 10, so that the program management system 1 performs the in-execution writing while performing version management of the execution module Mx. Is possible.
- the program management system 1 may have a plurality of PLCs 10. In this case, the management device 20 manages the execution module Mx for each PLC 10.
- the management apparatus 20 can write the common execution module Mx to the plurality of PLCs 10 by managing the common execution module Mx for the plurality of PLCs 10.
- the management apparatus 20 stores a program Pv2, an execution module M1, and a compile flag 23 indicating uncompiled.
- the management device 20 stores the program Pv3, the execution module M3, and the compile flag 23 set to be compiled.
- the management apparatus 20 can store the latest program and can manage whether or not the latest program has been compiled. As a result, when the programming support device 30 reads, edits, and compiles the program stored in the management device 20, writing during execution to the PLC 10 is less likely to be prohibited. Further, an operation in which the execution module M2 created by the programming support device 30 is not reflected on the PLC 10 is also possible. Therefore, the program can be developed efficiently.
- the configuration described in the above embodiment shows an example of the contents of the present invention, and can be combined with another known technique, and can be combined with other configurations without departing from the gist of the present invention. It is also possible to omit or change the part.
Abstract
Description
図1は、本発明の実施の形態にかかるプログラム管理システムの構成を示す図である。プログラム管理システム1は、プログラムPをコンパイルすることによって作成した実行モジュールMxを管理するとともに、新たに作成された実行モジュールMxを用いてPLC10に実行中書き込みを行うシステムである。プログラム管理システム1は、PLC10で実行中の実行モジュールMxのバージョンと、これから実行中書き込みを実施しようとした際に読み出してきた実行モジュールMxのバージョンとを一致させるよう、実行モジュールMxを管理する。 Embodiment.
FIG. 1 is a diagram showing a configuration of a program management system according to an embodiment of the present invention. The
Claims (9)
- 第1バージョンのプログラムを用いたコンパイルが行われることによって作成された第1バージョンの実行モジュールで被制御機器を制御する制御装置に接続されるとともに、前記第1バージョンのプログラムを編集して第2バージョンのプログラムを作成し、コンパイルによって、前記第1バージョンのプログラムと前記第2バージョンのプログラムとの差分に対応する第2バージョンの実行モジュールを作成するプログラミング支援装置と、
前記制御装置で実行中の実行モジュールと、最新バージョンのプログラムと、前記最新バージョンのプログラムがコンパイル済みであるか否かを示すコンパイル情報と、を管理する管理装置と、
を備え、
前記プログラミング支援装置は、
前記第1バージョンの実行モジュールを実行中の前記制御装置に対して前記第2バージョンの実行モジュールを書き込む場合には、前記管理装置に前記第2バージョンのプログラムと、前記第2バージョンの実行モジュールに固有の情報とを送信し、前記第1バージョンの実行モジュールを実行中の前記制御装置に対して前記第2バージョンの実行モジュールを書き込まない場合には、前記管理装置に前記第2バージョンのプログラムを送信し、
前記管理装置は、前記第2バージョンのプログラムおよび前記第2バージョンの実行モジュールに固有の情報を受信した場合には、前記第2バージョンのプログラムを前記最新バージョンのプログラムとして管理し、前記第2バージョンの実行モジュールを前記制御装置で実行中の実行モジュールとして管理し、前記コンパイル情報をコンパイル済みであることを示す情報に設定し、前記第2バージョンの実行モジュールに固有の情報を受信せず前記第2バージョンのプログラムを受信した場合には、前記第2バージョンのプログラムを前記最新バージョンのプログラムとして管理し、前記第1バージョンの実行モジュールを前記制御装置で実行中の実行モジュールとして管理し、前記コンパイル情報をコンパイル済みでないことを示す情報に設定する、
ことを特徴とするプログラム管理システム。 The first version of the execution module created by compiling using the first version of the program is connected to a control device that controls the controlled device, and the second version is edited by editing the first version of the program. A programming support device that creates a version program and creates a second version execution module corresponding to the difference between the first version program and the second version program by compiling;
A management device that manages an execution module being executed in the control device, a latest version of the program, and compile information indicating whether or not the latest version of the program has been compiled;
With
The programming support device includes:
When writing the second version of the execution module to the control device that is executing the first version of the execution module, the second version of the program and the second version of the execution module are stored in the management device. When the second version of the execution module is not written to the control device that is executing the first version of the execution module, the second version of the program is stored in the management device. Send
When the management device receives information specific to the second version program and the second version execution module, the management device manages the second version program as the latest version program, and The execution module is managed as an execution module being executed by the control device, the compile information is set to information indicating that it has been compiled, and the second version of the execution module does not receive information unique to the second version of the execution module. When a two-version program is received, the second version program is managed as the latest version program, the first version execution module is managed as an execution module being executed by the control device, and the compilation Information indicating that the information has not been compiled To set up,
A program management system characterized by that. - 前記プログラミング支援装置は、前記第2バージョンのプログラムを編集して作成した第3バージョンのプログラムをコンパイルする際に、前記コンパイル情報がコンパイル済みであることを示す場合には、前記第2バージョンのプログラムおよび前記第3バージョンのプログラムを用いたコンパイルによって第3バージョンの実行モジュールを作成し、前記コンパイル情報がコンパイル済みでないことを示す場合には、前記第1バージョンのプログラム、前記第2バージョンのプログラムおよび前記第3バージョンのプログラムを用いたコンパイルによって前記第3バージョンの実行モジュールを作成する、
ことを特徴とする請求項1に記載のプログラム管理システム。 When the programming support apparatus compiles the third version program created by editing the second version program, if the compilation information indicates that it has been compiled, the second version program When the third version of the execution module is created by compilation using the third version of the program and the compilation information indicates that the program has not been compiled, the first version of the program, the second version of the program, and Creating an execution module of the third version by compiling with the third version of the program;
The program management system according to claim 1. - 前記プログラミング支援装置は、前記第2バージョンの実行モジュールを作成する前に、前記第1バージョンのプログラムが前記最新バージョンのプログラムであるか否かを判定し、前記最新バージョンのプログラムである場合には、前記第2バージョンの実行モジュールを作成し、前記最新バージョンのプログラムでない場合には、前記第2バージョンの実行モジュールを作成しない、
ことを特徴とする請求項1または2に記載のプログラム管理システム。 The programming support apparatus determines whether or not the first version program is the latest version program before creating the second version execution module, and if the first version program is the latest version program, The second version of the execution module is created, and if the program is not the latest version of the program, the second version of the execution module is not created.
The program management system according to claim 1 or 2, wherein - 前記プログラミング支援装置は、前記第2バージョンの実行モジュールを作成する前に、前記管理装置で管理されている第1バージョンの実行モジュールと、前記制御装置で実行されている第1バージョンの実行モジュールとが同じであるか否かを判定し、同じである場合には、前記第2バージョンの実行モジュールを作成し、同じでない場合には、前記第2バージョンの実行モジュールを作成しない、
ことを特徴とする請求項1から3のいずれか1つに記載のプログラム管理システム。 The programming support apparatus includes a first version execution module managed by the management apparatus and a first version execution module executed by the control apparatus before creating the second version execution module. Are determined to be the same, if they are the same, the second version of the execution module is created, and if not, the second version of the execution module is not created.
The program management system according to any one of claims 1 to 3. - 前記プログラミング支援装置は、複数の前記制御装置に接続され、
前記管理装置は、複数の前記制御装置に対して共通の、前記第2バージョンのプログラム、前記第2バージョンの実行モジュール、および前記コンパイル情報を管理する、
ことを特徴とする請求項1から4のいずれか1つに記載のプログラム管理システム。 The programming support device is connected to a plurality of the control devices,
The management device manages the second version of the program, the second version of the execution module, and the compilation information that are common to the plurality of control devices.
The program management system according to claim 1, wherein: - 前記コンパイル情報は、前記管理装置または前記プログラミング支援装置によって設定され、前記管理装置で管理される、
ことを特徴とする請求項1から5のいずれか1つに記載のプログラム管理システム。 The compile information is set by the management device or the programming support device and managed by the management device.
The program management system according to any one of claims 1 to 5, wherein: - 第1バージョンのプログラムを用いたコンパイルが行われることによって作成された第1バージョンの実行モジュールで被制御機器を制御する制御装置に接続されるとともに、前記第1バージョンのプログラムを編集して第2バージョンのプログラムを作成し、コンパイルによって、前記第1バージョンのプログラムと前記第2バージョンのプログラムとの差分に対応する第2バージョンの実行モジュールを作成するプログラミング支援部を備え、
前記プログラミング支援部は、
前記制御装置で実行中の実行モジュールと、最新バージョンのプログラムと、前記最新バージョンのプログラムがコンパイル済みであるか否かを示すコンパイル情報と、を管理する管理装置に接続され、
前記第1バージョンの実行モジュールを実行中の前記制御装置に対して前記第2バージョンの実行モジュールを書き込む場合には、前記管理装置に前記第2バージョンのプログラムと、前記第2バージョンの実行モジュールに固有の情報とを送信し、前記第1バージョンの実行モジュールを実行中の前記制御装置に対して前記第2バージョンの実行モジュールを書き込まない場合には、前記管理装置に前記第2バージョンのプログラムを送信する、
ことを特徴とするプログラミング支援装置。 The first version of the execution module created by compiling using the first version of the program is connected to a control device that controls the controlled device, and the second version is edited by editing the first version of the program. A programming support unit for creating a version program and creating a second version execution module corresponding to a difference between the first version program and the second version program by compiling;
The programming support unit
Connected to a management device that manages an execution module being executed in the control device, a latest version of the program, and compile information indicating whether or not the latest version of the program has been compiled;
When writing the second version of the execution module to the control device that is executing the first version of the execution module, the second version of the program and the second version of the execution module are stored in the management device. When the second version of the execution module is not written to the control device that is executing the first version of the execution module, the second version of the program is stored in the management device. Send,
A programming support apparatus characterized by that. - 第1バージョンのプログラムを用いたコンパイルが行われることによって作成された第1バージョンの実行モジュールで制御装置が被制御機器を制御する制御ステップと、
前記第1バージョンのプログラムを編集して第2バージョンのプログラムを作成するプログラム編集ステップと、
コンパイルによって、前記第1バージョンのプログラムと前記第2バージョンのプログラムとの差分に対応する第2バージョンの実行モジュールを作成する実行モジュール作成ステップと、
前記制御装置で実行中の実行モジュールと、最新バージョンのプログラムと、前記最新バージョンのプログラムがコンパイル済みであるか否かを示すコンパイル情報と、を管理する管理ステップと、
を含み、
前記第1バージョンの実行モジュールを実行中の前記制御装置に対して前記第2バージョンの実行モジュールを書き込む場合には、前記第2バージョンのプログラムを前記最新バージョンのプログラムとして管理し、前記第2バージョンのプログラムに固有の情報を用いて前記第2バージョンの実行モジュールを前記制御装置で実行中の実行モジュールとして管理し、前記コンパイル情報をコンパイル済みであることを示す情報に設定し、
前記第1バージョンの実行モジュールを実行中の前記制御装置に対して前記第2バージョンの実行モジュールを書き込まない場合には、前記第2バージョンのプログラムを前記最新バージョンのプログラムとして管理し、前記第1バージョンの実行モジュールを前記制御装置で実行中の実行モジュールとして管理し、前記コンパイル情報をコンパイル済みでないことを示す情報に設定する、
ことを特徴とするプログラム管理方法。 A control step in which the control device controls the controlled device by the execution module of the first version created by compiling using the first version of the program;
A program editing step of editing the first version of the program to create a second version of the program;
An execution module creating step of creating a second version execution module corresponding to a difference between the first version program and the second version program by compiling;
A management step for managing an execution module being executed in the control device, a latest version of the program, and compile information indicating whether or not the latest version of the program has been compiled;
Including
When writing the second version of the execution module to the control device that is executing the first version of the execution module, the second version of the program is managed as the latest version of the program. Managing the second version of the execution module as an execution module being executed by the control device using information unique to the program, and setting the compile information to information indicating that it has been compiled,
When the second version of the execution module is not written to the control device that is executing the first version of the execution module, the second version of the program is managed as the latest version of the program. Managing an execution module of a version as an execution module being executed in the control device, and setting the compile information to information indicating that it has not been compiled,
And a program management method. - 第1バージョンのプログラムを用いたコンパイルが行われることによって作成された第1バージョンの実行モジュールで制御装置が被制御機器を制御している際に、前記第1バージョンのプログラムを編集して第2バージョンのプログラムを作成し、コンパイルによって、前記第1バージョンのプログラムと前記第2バージョンのプログラムとの差分に対応する第2バージョンの実行モジュールを作成する作成ステップと、
前記第1バージョンの実行モジュールを実行中の前記制御装置に対して前記第2バージョンの実行モジュールを書き込む場合には、前記制御装置で実行中の実行モジュールと、最新バージョンのプログラムと、前記最新バージョンのプログラムがコンパイル済みであるか否かを示すコンパイル情報と、を管理する管理装置に、前記第2バージョンのプログラムおよび前記第2バージョンの実行モジュールに固有の情報を送信し、前記第1バージョンの実行モジュールを実行中の前記制御装置に対して前記第2バージョンの実行モジュールを書き込まない場合には、前記管理装置に前記第2バージョンのプログラムを送信する送信ステップと、
をコンピュータに実行させる、
ことを特徴とするプログラミング支援プログラム。 When the control device controls the controlled device with the execution module of the first version created by compiling using the first version of the program, the second version is edited by editing the first version of the program. Creating a version program and creating a second version execution module corresponding to the difference between the first version program and the second version program by compiling;
When writing the execution module of the second version to the control device that is executing the execution module of the first version, the execution module being executed by the control device, the latest version of the program, and the latest version Information that is specific to the second version of the program and the second version of the execution module is transmitted to a management device that manages whether or not the program of the first version has been compiled. A transmission step of transmitting the second version of the program to the management device when not writing the second version of the execution module to the control device executing the execution module;
To run on a computer,
A programming support program characterized by that.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020207033266A KR102225850B1 (en) | 2018-05-29 | 2018-05-29 | Program management system, programming support device, program management method and programming support program |
JP2018563933A JP6541902B1 (en) | 2018-05-29 | 2018-05-29 | Program management system, programming support apparatus, program management method, and programming support program |
CN201880093762.7A CN112204479B (en) | 2018-05-29 | 2018-05-29 | Program management system, program support device, program management method, and program support program |
PCT/JP2018/020538 WO2019229845A1 (en) | 2018-05-29 | 2018-05-29 | Program management system, programming assistance device, program management method, and programming assistance program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/020538 WO2019229845A1 (en) | 2018-05-29 | 2018-05-29 | Program management system, programming assistance device, program management method, and programming assistance program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019229845A1 true WO2019229845A1 (en) | 2019-12-05 |
Family
ID=67212125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/020538 WO2019229845A1 (en) | 2018-05-29 | 2018-05-29 | Program management system, programming assistance device, program management method, and programming assistance program |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6541902B1 (en) |
KR (1) | KR102225850B1 (en) |
CN (1) | CN112204479B (en) |
WO (1) | WO2019229845A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022239549A1 (en) | 2021-05-14 | 2022-11-17 | オムロン株式会社 | Version management method, version management program, and version management system |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113009873A (en) * | 2021-02-03 | 2021-06-22 | 深圳市显控科技股份有限公司 | Method for compiling and downloading PLC ladder diagram on line, PLC and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000010787A (en) * | 1998-06-24 | 2000-01-14 | Nec Corp | Program down-loading device and its method |
JP2013168031A (en) * | 2012-02-15 | 2013-08-29 | Fuji Electric Co Ltd | Programmable controller system, support device thereof, and program |
JP2016001376A (en) * | 2014-06-11 | 2016-01-07 | 富士電機株式会社 | Programmable controller system, and support device of the same |
JP6305667B1 (en) * | 2017-05-22 | 2018-04-04 | 三菱電機株式会社 | Control device and editing device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4865634B2 (en) * | 2007-05-14 | 2012-02-01 | 株式会社キーエンス | Program editing support apparatus, computer program, program editing support method, and PLC system |
-
2018
- 2018-05-29 CN CN201880093762.7A patent/CN112204479B/en active Active
- 2018-05-29 JP JP2018563933A patent/JP6541902B1/en active Active
- 2018-05-29 WO PCT/JP2018/020538 patent/WO2019229845A1/en active Application Filing
- 2018-05-29 KR KR1020207033266A patent/KR102225850B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000010787A (en) * | 1998-06-24 | 2000-01-14 | Nec Corp | Program down-loading device and its method |
JP2013168031A (en) * | 2012-02-15 | 2013-08-29 | Fuji Electric Co Ltd | Programmable controller system, support device thereof, and program |
JP2016001376A (en) * | 2014-06-11 | 2016-01-07 | 富士電機株式会社 | Programmable controller system, and support device of the same |
JP6305667B1 (en) * | 2017-05-22 | 2018-04-04 | 三菱電機株式会社 | Control device and editing device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022239549A1 (en) | 2021-05-14 | 2022-11-17 | オムロン株式会社 | Version management method, version management program, and version management system |
Also Published As
Publication number | Publication date |
---|---|
JPWO2019229845A1 (en) | 2020-06-25 |
CN112204479B (en) | 2021-12-07 |
JP6541902B1 (en) | 2019-07-10 |
KR20200140382A (en) | 2020-12-15 |
CN112204479A (en) | 2021-01-08 |
KR102225850B1 (en) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4865634B2 (en) | Program editing support apparatus, computer program, program editing support method, and PLC system | |
JP5039428B2 (en) | Programmable controller and PLC system | |
US20180210415A1 (en) | Support device, method, and recording medium whereon support program is stored | |
JP6786984B2 (en) | Program processing equipment and programs | |
WO2015136970A1 (en) | Control apparatus and control system | |
WO2019229845A1 (en) | Program management system, programming assistance device, program management method, and programming assistance program | |
JP6969460B2 (en) | Program development support system, program development support method and program development support program | |
CN111542790B (en) | Method for processing software items | |
CN102473103B (en) | The application program of controlling run is edited to carry out real-time scene figure | |
JP2009157533A (en) | Programmable controller system | |
JP5849592B2 (en) | Programmable controller system, programming device thereof, programmable controller, program, and debugging method | |
JP2016001376A (en) | Programmable controller system, and support device of the same | |
JP5051377B2 (en) | Operation specification management method for program development support device | |
JP6299095B2 (en) | Shared data definition support system, its master device, local terminal, program | |
JP6205934B2 (en) | Programmable controller system, its support device, program | |
JP6520241B2 (en) | Control system, its management server device, support device | |
JP7067273B2 (en) | Support equipment, control systems, and development support programs | |
JP6455096B2 (en) | Control system, its support device, programmable control device | |
JP6119452B2 (en) | Programmable controller system, its support device, programmable controller, program | |
JP2009098963A (en) | Automatic module generation system | |
JP7151227B2 (en) | Development system and support equipment | |
JP2009157534A (en) | Programming support system, its programmable controller support device, and programmable indicator support device | |
WO2022269793A1 (en) | Control device and address management method | |
WO2020208793A1 (en) | Data generation device, data transfer method, and data transfer program | |
JP2004272629A (en) | Device for programmable controller, and programmable updating method and program starting method for the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2018563933 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18920335 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 20207033266 Country of ref document: KR Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18920335 Country of ref document: EP Kind code of ref document: A1 |