Program conversion device
The program conversion device addresses controller migration inefficiencies by converting old programs to new programs and generating interface information, enabling automated control data transfer and reducing downtime.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- TMEIC CORP (100 00)
- Filing Date
- 2024-12-25
- Publication Date
- 2026-07-07
AI Technical Summary
Controller migration in plant control systems often requires manual resetting of control data due to changes in control state, leading to increased downtime and inefficiency.
A program conversion device that converts old programs for old controllers into new programs for new controllers, generating interface information and second control data to maintain compatibility and automate the transfer of control data, reducing the need for manual resets.
Efficiently migrates controllers by automatically transferring control data, minimizing downtime and streamlining the migration process.
Smart Images

Figure 2026112500000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a program conversion device that converts a program (old program) installed in a currently operating controller (old controller) into a form executable by a controller with different specifications (new controller) for system updates and the like in a plant control system.
Background Art
[0002] Patent Document 1 discloses a program conversion device that converts a program for a PLC (Programmable Logic Controller). When the program conversion device wants to use the processing function of the program (old program) of an old PLC with a new PLC, it converts the old program into a program (new program) that operates on the new PLC. Specifically, the program conversion device corrects the old program using the internal variable data type of the FB (Function Block) determined based on the old program. Then, the program conversion device converts the corrected old program into a new program.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0004] Consider a scenario where a currently operating controller (old controller) is migrated to a new controller due to a system update or other reasons. In this case, for the new controller to stably control the target system, it is desirable that the controllers be compatible before and after the migration. Therefore, the old program for the old controller is converted into a program (new program) that can run on the new controller.
[0005] Consider the case where a program is executed by a controller. In this case, during program execution, the controller reads control data (e.g., control parameters, input / output data, control calculation results) related to the control state of the controlled object, and performs control on the controlled object based on this control data. As the control state of the controlled object changes while it is operating, the control data also changes. Therefore, even if the new program is compatible with the old program, the control data will be different before and after the migration, making it impossible to stably control the controlled object controlled by the new controller. In this case, it was necessary to manually reset the initial value of the control data after the migration back to the control data corresponding to the final control state of the controlled object before the migration. This increased the time required for the controller migration work and could potentially affect the production line due to system downtime.
[0006] One objective of this disclosure is to provide a program conversion device that can efficiently perform controller migration work. [Means for solving the problem]
[0007] One aspect of this disclosure relates to a program conversion device that converts an old program for an old controller into a new program for a new controller. The program conversion device comprises one or more processors, one or more memories that store the old program, first control data relating to the control state of a controlled object connected to the old controller, and change specification information for the controller. Based on the change specification information, one or more processors convert the old program into a new program and generate interface information for the new controller to access the controlled object. Furthermore, based on the first control data and the interface information, one or more processors generate second control data relating to the control state of the controlled object when the new controller is connected to the controlled object. In addition, one or more processors output the new program and the second control data to the new controller. [Effects of the Invention]
[0008] According to this disclosure, based on the change specification information of the controller, the old program is converted to a new program, and interface information for the new controller to access the controlled object is generated. Furthermore, based on the first control data and the interface information, second control data relating to the control state of the controlled object when the new controller is connected to the controlled object is generated. In addition, the new program and the second control data are output to the new controller. As a result, the control data from before the migration can be carried over to the post-migration state, and it becomes unnecessary to manually reset the initial value of the post-migration control data to the control data corresponding to the final control state of the controlled object before the migration. Therefore, the time required for the controller migration work can be shortened, and the controller migration work can be performed efficiently. [Brief explanation of the drawing]
[0009] [Figure 1] This is a diagram illustrating the overview of a plant control system according to an embodiment. [Figure 2] This is a block diagram showing an example configuration of a program conversion device according to an embodiment. [Figure 3] This is a block diagram showing an example of the function of a program conversion device according to an embodiment. [Figure 4] This is an explanatory diagram showing a specific example of interface information according to the embodiment. [Figure 5] This is an explanatory diagram showing a specific example of the second control data according to the embodiment. [Modes for carrying out the invention]
[0010] A program conversion device according to an embodiment of this disclosure will be described with reference to the attached drawings. In addition, elements common to each figure are denoted by the same reference numerals, and redundant explanations are omitted.
[0011] 1. Overview Figure 1 is a diagram illustrating the outline of a plant control system 1 according to an embodiment. The plant control system 1 controls the controlled object 4 using a controller 2. The plant control system 1 includes a controller 2, a controlled object 4, and a program conversion device 10. The controller 2 is a device that controls the controlled object 4. Examples of the controller 2 include a PLC (Programmable Logic Controller), a DCS (Distributed Control System), etc. The controlled object 4 is, for example, equipment or facilities installed in a plant.
[0012] Controller 2 includes the old controller 2A and the new controller 2B. The old controller 2A is the controller to be replaced due to aging or other reasons, i.e., the controller before the migration. The old controller 2A includes the processor 11A and the memory 12A. The various information stored in the memory 12A includes the old program PROG_O and the first control data 21. Note that the old PLC is an example of the old controller 2A, and the new PLC is an example of the new controller 2B.
[0013] The old program PROG_O is a program that enables the control of the controlled object 4 using the old controller 2A. The old program PROG_O is generated, for example, by the program conversion device 10. The first control data 21 is data relating to the control state of the controlled object 4. The first control data 21 includes, for example, control parameter values for controlling the controlled object 4, input / output data of the controlled object 4, and calculation results for controlling the controlled object 4. The control parameters may be, for example, the gain, time constant, threshold of the transfer function of various control signals. The first control data 21 is recorded in memory 12A automatically at regular intervals, or recorded in memory 12A irregularly by an operator or the like. The functions of the old controller 2A are realized through the cooperation of the processor 11A that executes the old program PROG_O and the first control data 21.
[0014] The new controller 2B is the controller newly connected to the controlled object 4, i.e., the controller after the transition. The new controller 2B includes a processor 11B and memory 12B. The various information stored in memory 12B includes the new program PROG_N and the second control data 22.
[0015] The new program PROG_N is a program that enables the control of the controlled object 4 using the new controller 2B. The new program PROG_N is generated, for example, by the program conversion device 10. The second control data 22 is data relating to the control state of the controlled object 4. The second control data 22 includes, for example, control parameter values for controlling the controlled object 4, input / output data of the controlled object 4, and calculation results for controlling the controlled object 4. The second control data 22 is automatically recorded in memory 12B at regular intervals, or is updated irregularly by an operator and recorded in memory 12B. The functions of the new controller 2B are realized through the cooperation of the processor 11B that executes the new program PROG_N and the second control data 22.
[0016] The program conversion device 10 is a device that converts the old program PROG_O for the old controller 2A to the new program PROG_N for the new controller 2B. When the controller 2 migration work is performed, the program conversion device 10 is connected to at least one of the old controller 2A and the new controller 2B. On the other hand, when the controller 2 migration work is not performed, the program conversion device 10 is not connected to either the old controller 2A or the new controller 2B.
[0017] Now, let's consider the case of migrating from the old controller 2A to the new controller 2B. Generally, this migration occurs after the old controller 2A has been in use for a long period. At the time of the controller migration, controllers with the same specifications as the old controller 2A are depleted, so the new controller 2B is configured with different specifications. In this case, the old program PROG_O, which was installed on the old controller 2A, cannot be directly migrated to the new controller 2B.
[0018] According to this embodiment, the program conversion device 10 converts the old program PROG_O into a new program PROG_N based on the change specification information of the controller 2. Thereby, the old program PROG_O installed in the old controller 2A can be transferred to the new controller 2B. Therefore, the program conversion device 10 can generate a new program PROG_N that is compatible with the old program PROG_O. Note that the change specification information of the controller 2 is generated based on the specifications of the old controller 2A and the new controller 2B. In order to generate the change specification information of the controller 2, various function information of the old controller 2A and the new controller 2B is input to the program conversion device 10. As the various function information, for example, information on the program languages of the old controller 2A and the new controller 2B, setting information on various functions for operating the old controller 2A and the new controller 2B (e.g., setting information on the validity / invalidity of each function, etc.), address map information of the old controller 2A and the new controller 2B (e.g., address information shared on the memory where the controller 2 and the control target 4 can access each other, etc.), I / O settings of the old controller 2A and the new controller 2B, communication setting information with the control target 4 or a higher-level device (not shown), model information of the old controller 2A and the new controller 2B, and performance information based on the model information (operation speed such as CPU and clock, machine cycle information, I / O response speed, data communication specification), etc. are included.
[0019] Furthermore, in the program conversion device 10, at the time of transfer from the old controller 2A to the new controller 2B, second control data 22 that can inherit the control state of the control target 4 before the transfer after the transfer is generated. Thereby, before and after the transfer of the controller 2, the control data before the transfer (first control data 21) can be inherited after the transfer, and the operation of manually returning the initial value of the control data after the transfer (second control data 22) to the control data (first control data 21) corresponding to the final state of the control of the control target 4 before the transfer becomes unnecessary. Therefore, the time required for the transfer operation of the controller 2 can be shortened, and the transfer operation of the controller 2 can be efficiently performed.
[0020] The old program PROG_O and the new program PROG_N are generated by compiling source code using a development environment (tool). Therefore, the conversion from the old program PROG_O to the new program PROG_N described above is actually performed at the source code level. That is, the new program PROG_N is generated by compiling the new source code obtained by converting the old source code in the development environment. It is assumed that the development environment for the old program PROG_O and the development environment for the new program PROG_N are different. In this case, the respective development environments are installed in the program conversion device 10.
[0021] 2. Specific Example of Program Conversion Device 2-1. Configuration Example FIG. 2 is a block diagram showing a configuration example of the program conversion device 10 according to the embodiment. The program conversion device 10 is not limited to one. For example, the program conversion device 10 may have a configuration consisting of a plurality. Therefore, the program conversion device 10 includes one or more processors 100 (hereinafter simply referred to as the processor 100), one or more memories 110 (hereinafter simply referred to as the memory 110), and one or more communication devices 120 (hereinafter simply referred to as the communication device 120). The program conversion device 10 is, for example, a computer. The processor 100 executes various processes. Examples of the processor 100 include a CPU (Central Processing Unit). The memory 110 stores various information necessary for the processes by the processor 100. Examples of the memory 110 include a volatile memory, a non-volatile memory, an HDD (Hard Disk Drive), an SSD (Solid State Drive), and the like.
[0022] The controller migration program (not shown) is a computer program executed by the processor 100. The execution of the controller migration program by the processor 100 may realize various functions of the program conversion device 10. The controller migration program is stored in memory 110. Alternatively, the controller migration program may be recorded on a computer-readable storage medium.
[0023] The various information stored in memory 110 includes the old program PROG_O, the first control data 21, and the change specification information 30 for controller 2. Details of the various information are as described above.
[0024] The communication device 120 is a device that enables communication between the old controller 2A and the new controller 2B via wired or wireless means. The communication device 120 has the function of, for example, reading the source code of the old program PROG_O, which was created in the development environment of the old program PROG_O, from the development environment of the old program PROG_O and storing it in memory 110. As another example, the communication device 120 has the function of reading the source code of the old program PROG_O, which is recorded on another storage medium (HDD, CD-ROM, USB memory, etc.), from the development environment of the old program PROG_O and storing it in memory 110.
[0025] 2-2. Examples of Functions Figure 3 is a block diagram showing an example of the functions of a program conversion device 10 (processor 100) according to an embodiment. The processor 100 includes a code conversion unit 200, an interface generation unit 210, and a control data generation unit 220.
[0026] The code conversion unit 200 converts the old program PROG_O to the new program PROG_N based on the change specification information 30 of the controller 2. Then, the code conversion unit 200 compiles the converted new program PROG_N (source code level) and transmits it to the new controller 2B via the communication device 120.
[0027] The interface generation unit 210 generates interface information 40 for the new controller 2B to access the controlled object 4 based on the change specification information 30 of the controller 2. The details of the interface information 40 will be explained below with reference to Figure 4.
[0028] Figure 4 is an explanatory diagram showing a specific example of interface information 40 according to the embodiment. Interface information 40 is composed of a communication interface information unit 40a, which is associated with an old communication interface information unit 40aO and a new communication interface information unit 40aN, as shown in Figure 4(a), for example. The old communication interface information unit 40aO consists of a variable name for data to be communicated between the new controller 2B and the controlled object 4, and address information corresponding to that variable name used in the old program PROG_O. The new communication interface information unit 40aN consists of address information corresponding to that variable name used in the new program PROG_N. In the example shown in Figure 4(a), if the variable name is "variable X1", "AO1" is assigned as the address information used in the old program PROG_O. On the other hand, in the new program PROG_N, due to the specifications constraints of the new controller 2B, "AO1" cannot be used, and "AN1" is assigned as the address value accessible between the new controller 2B and the controlled object 4. In this case, in the new program PROG_N, "AO1" is replaced with "AN1," which enables the communication of data corresponding to "variable X1" between the new controller 2B and the controlled object 4.
[0029] The interface information 40 consists of a hardware connection information unit 40b, which is associated with an old hardware connection information unit 40bO and a new hardware connection information unit 40bN, as shown in Figure 4(b), for example. The old hardware connection information unit 40bO includes I / O setting information for signals connecting the controlled object 4 and the old controller 2A as hardware connection information. The I / O setting information consists of the I / O unit number and terminal number of the old controller 2A for the control signal. The new hardware connection information unit 40bN includes I / O setting information for the same signals connecting the controlled object 4 and the new controller 2B. The I / O setting information consists of the I / O unit number and terminal number of the new controller 2B for the control signal.
[0030] In the example shown in Figure 4(b), when the signal name is "Sig1", the I / O unit number used in the old controller 2A is "UO1", and the terminal number assigned is "TO1". On the other hand, in the new program PROG_N, due to the specifications of the new controller 2B, the I / O unit number "UO1" and terminal number "TO1" cannot be used for the signal name "Sig1". The I / O unit number that can be connected between the new controller 2B and the controlled device 4 is "UN1", and the terminal number assigned is "TN1". In this case, the new program PROG_N replaces the I / O unit number corresponding to "Sig1" from "UO1" to "UN1", and replaces the terminal number corresponding to "Sig1" from "TO1" to "TN1". This makes it possible to send and receive the signal corresponding to the signal name "Sig1" between the new controller 2B and the controlled device 4.
[0031] As another example, as shown in Figure 4(c), the interface information 40 is composed of a control information unit 40c, which associates addresses and values between the old controller 2A and the new controller 2B. This control information unit 40cO is composed of a first control information unit 40cO corresponding to the old controller 2A and a second control information unit 40cN corresponding to the new controller 2B. The first control information unit 40cO consists of a signal name (e.g., parameter), which is information about the first control information of the old controller 2A, a value, which is the first control information, and the storage address of that value. The second control information unit 40cN consists of a parameter, which is information about the second control information of the new controller 2B, a value, which is the second control information, and the storage address of that value. Strictly speaking, the value corresponding to the parameter in the second control information unit 40cN, which is information about the second control information of the new controller 2B, represents the second control data 22, but here it is written separately from the second control data 22 for clarity.
[0032] In the example shown in Figure 4(c), when the parameter is "P1", the storage address corresponding to the value of parameter "P1" in the old controller 2A is "APO1", and its value is the latest value (final value), "VP1". On the other hand, in the new controller 2B, the storage address corresponding to the value of parameter "P1" is "APN1", and its value is the same as the latest value (data corresponding to the final state) of the old controller 2A, "VP1". In this case, in the new program PROG_N, the storage address for the value corresponding to parameter "P1" is replaced with "APN1". Furthermore, its value becomes the same as the latest value (final value) of the old controller 2A, "VP1". As a result, after migrating to the new controller 2B, the controlled object 4 can be controlled with the latest parameter.
[0033] The control data generation unit 220 generates second control data 22 relating to the control state of the controlled object 4 based on the first control data 21 and interface information 40. The control data generation unit 220 then transmits the generated second control data 22 to the new controller 2B via the communication device 120. For example, the values stored at the addresses corresponding to each parameter in the first control information unit 40cO in Figure 4(c) are examples of the first control data 21, and the values stored at the addresses corresponding to each parameter in the second control information unit 40cN are examples of the second control data 22. The second control data 22 is stored at a different address than the first control data 21, but the second control data 22 itself is the same as the first control data 21. However, it is not limited to this. For example, the second control data 22 may be the same value as the first control data 21 multiplied by or added to or subtracted by a predetermined coefficient.
[0034] Specifically, as shown in Figure 5, the control data generation unit 220, in generating the second control data 22, obtains data corresponding to the final control state of the controlled object 4 included in the first control data 21 from a specified address on the old controller 2A. The control data generation unit 220 then sets the initial value of the second control data 22 to the data corresponding to the final control state of the controlled object 4 obtained from the first control data 21. The control data generation unit 220 then writes this data to a specified address on the new controller 2B. This allows for the automatic transfer from the first control data 21 to the second control data 22 before and after the controller 2 migration. Consequently, the time required for the controller 2 migration can be reduced, and the controller 2 migration can be performed efficiently.
[0035] Furthermore, the signal names and their storage address information for the old communication interface information unit 40aO in Figure 4(a), the old hardware connection information unit 40bO in Figure 4(b), and the first control information unit 40cO in Figure 4(c) can be generated within the program conversion device 10 based on the old program PROG_O. In addition, the new communication interface information unit 40aN in Figure 4(a) and the new hardware connection information unit 40bN in Figure 4(b) may be input, for example, via an HMI (keyboard) provided in the program conversion device 10. As another example, if the old communication interface information unit 40aO and the old hardware connection information unit 40bO are output in CSV format or the like from another storage medium or another computer, the other computer may have the program conversion device 10 read the communication interface information unit 40a and hardware connection information unit 40b, which are obtained by adding the new communication interface information unit 40aN and the new hardware connection information unit 40bN to the old communication interface information unit 40aO and the old hardware connection information unit 40bO.
[0036] As another example, the program conversion device 10 reads the final state value (first control data 21) corresponding to the signal name of the first control information unit 40cO from the old controller 2A, and generates the second control information unit 40cN corresponding to the first control information unit 40cO using the new program PROG_N. This allows for the automatic transfer from the first control data 21 to the second control data 22 before and after the controller 2 migration. Therefore, the time required for the controller 2 migration can be reduced, and the controller 2 migration can be performed efficiently.
[0037] The program conversion device 10 may have a function to output the new program PROG_N, interface information 40, the first control data 21 downloaded from the old controller 2A, and the second control data 22 to an external storage medium (USB memory) or another computer. The program conversion device 10 may also be equipped with a display or the like to show a comparison of the old program PROG_O and the new program PROG_N, or it may display the interface information 40 in a tabular format as shown in Figure 4, or it may display the first control data 21 and the second control data 22 in a format that allows for comparison. This makes it possible to perform the controller 2 migration work efficiently. [Explanation of Symbols]
[0038] 1...Plant control system, 2...Controller, 2A...Old controller, 2B...New controller, 4...Controlled object, 10...Program conversion device, 11A,11B...Processor, 12A,12B...Memory, 21...First control data, 22...Second control data, 30...Changed specification information, 40...Interface information, 40a...Communication interface information unit, 40aO...Old communication interface information unit, 40aN...New communication interface information unit, 40b...Hardware connection information unit, 40bO...Old hardware connection information unit, 40bN...New hardware connection information unit, 40c...Control information unit, 40cO...First control information unit, 40cN...Second control information unit, 100...Processor, 110...Memory, 120...Communication device, 200...Code conversion unit, 210...Interface generation unit, 220...Control data generation unit, PROG_O...Old program, PROG_N...New program
Claims
1. A program conversion device that converts old programs for old controllers into new programs for new controllers, One or more processors, One or more memories that store the old program, first control data relating to the control state of a controlled object connected to the old controller, and change specification information for the controller, Equipped with, The one or more processors described above are: Based on the aforementioned change specification information, the old program is converted to the new program. Based on the aforementioned modified specification information, the new controller generates interface information for accessing the controlled object. Based on the first control data and the interface information, second control data relating to the control state of the controlled object when the new controller is connected to the controlled object is generated. The new controller outputs the new program and the second control data. A program conversion device characterized by the following features.
2. A program conversion device according to claim 1, The process for generating the second control data is as follows: The process includes setting the initial value of the second control data to data corresponding to the final state of the control of the controlled object included in the first control data. A program conversion device characterized by the following features.
3. A program conversion device according to claim 1, The interface information includes information relating the variable name of the data used for communication between the new controller and the controlled object, the address information corresponding to the variable name used in the old program, and the address information corresponding to the variable name used in the new program. A program conversion device characterized by the following features.
4. A program conversion device according to claim 1, The aforementioned old controller is an old PLC, The aforementioned new controller is a new PLC. A program conversion device characterized by the following features.