Engineering device, object data generation method, and program

By storing virtual data formats in engineering equipment and generating object data, the time-consuming problem of building the database data format of the control system is solved, and a faster module enablement process is achieved.

JP2025062343APending Publication Date: 2025-04-14MITSUBISHI HEAVY IND LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023171343
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-10-02
Publication Date
2025-04-14

AI Technical Summary

Technical Problem

The prior art requires a lot of manpower and time costs when building data formats in control system databases, especially when the module types are diverse and time-consuming, resulting in the data format being unable to be built in time, affecting the installation and use of modules.

Method used

Engineering equipment that stores virtual data formats, by generating object data, simplifies the data format construction process and reduces dependence on defining data acquisition time.

Benefits of technology

Effectively reduces the time from obtaining defined data to enabling it in the control system, and improves the efficiency and flexibility of engineering equipment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025062343000001_ABST
    Figure 2025062343000001_ABST
Patent Text Reader

Abstract

To provide an engineering device, an object data generation method, and a program which shorten time required for a module corresponding to relevant definition data from acquisition of the definition data until the module becomes usable in a control system.SOLUTION: There are provided: a storage unit which stores a virtual data format in which pieces of definition data for defining modules to be installed in a control system can be used in a first kind of module being given as previously determined common format data; and an object data generation unit which, when the installed module is the first kind of module, keeps a storage area in which a content of the virtual data format is reflected in the storage unit on the basis of the virtual data format, writes items, in the kept storage area, indicated by the definition data, following the data format indicated by the definition data of the installed module and generates object data by writing module names of the installed modules.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to an engineering device, an object data generation method, and a program. [Background technology]

[0002] A control system used to control a plant is equipped with many modules, such as IO (Input Output) modules that connect to field devices, such as sensors and actuators, of the plant. In order to operate these modules normally, it is necessary to set mounting position data indicating the position where each module is mounted and property data that defines the operating state of each module in the control system. Here, the property data is, for example, a parameter that determines the behavior of the IO module when the module is an IO module. When setting the mounting position data and property data in the control system, for example, an engineering device is used (see, for example, Patent Document 1).

[0003] Using an engineering device, mounting position data and property data of a newly added module are set in the control system, for example, as follows. The engineering device has a database that stores data related to the most recent system configuration of the control system. The engineering device displays on a screen an image showing the system configuration of the control system in a tree structure based on the data stored in the database. In this tree structure, a child node is added to a location corresponding to the position where the newly added module will be mounted. Mounting position data of the newly added module is generated according to the position of the added child node.

[0004] Next, a data format including a plurality of items that are predetermined according to the functions and specifications of the newly added module is selected and assigned to the added child node. Property data is set for each of the items indicated in the assigned data format. As a result, when the data stored in the database of the engineering device is updated, the contents of the updated database are reflected in the data related to the system configuration of the control system. This makes it possible to operate the newly added module normally in the control system. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2013-142933 A Summary of the Invention [Problem to be solved by the invention]

[0006] However, the above data format differs depending on the type of module. In order to make it possible to select a data format corresponding to a certain module in an engineering device, it is necessary to obtain definition data that defines the data format in advance and to build the data format in advance in a database based on the obtained definition data. Since the data format indicated by the definition data generally has a complex hierarchical structure, building the data format in the database requires a certain degree of manpower and time costs.

[0007] For modules where the timing at which definition data can be obtained precedes the timing of product shipment and the time difference between the two timings is sufficiently long, construction of the data format for the database can be completed by the time shipment of the module begins. In contrast, for modules where the time difference between the two timings is short, the data format is often not constructed in the database at the time of product shipment. Also, even for modules where the time difference between the two timings is sufficient, if many such modules are shipped in a short period of time, the data format for some of the modules is often not constructed in the database at the time of product shipment.

[0008] If a data format is not established in the database, it will be impossible to select a data format corresponding to the module in the engineering device, resulting in the problem that the module cannot be installed in and used in the control system.

[0009] The present disclosure has been made to solve the above-mentioned problems, and aims to provide an engineering device, an object data generation method, and a program that shorten the time from obtaining definition data to making a module corresponding to the definition data available in a control system. [Means for solving the problem]

[0010] In order to solve the above problems, the engineering device disclosed herein includes a memory unit that stores a virtual data format that is commonly used for a first type of module, in which definition data defining a module to be mounted in a control system is provided as data in a predetermined common format, and when the mounted module is the first type of module, a memory area in the memory unit where the contents of the virtual data format are reflected based on the virtual data format, and an object data generation unit that writes items indicated in the definition data of the mounted module in accordance with the data format indicated by the definition data into the secured memory area, and writes the module name of the mounted module to generate object data.

[0011] The object data generation method of the present disclosure includes the steps of: storing in a memory unit a virtual data format that is commonly used for a first type of module, in which definition data defining a module to be mounted in a control system is given as data in a predetermined common format; and, if the mounted module is the first type of module, reserving a memory area in the memory unit in which the contents of the virtual data format are reflected based on the virtual data format, writing items indicated in the definition data of the mounted module in accordance with the data format indicated by the definition data into the reserved memory area, and writing the module name of the mounted module to generate object data.

[0012] The program of the present disclosure causes a computer to execute the steps of: storing in a memory unit a virtual data format that is commonly used for a first type of module, in which definition data defining a module mounted in a control system is given as data in a predetermined common format; and, if the mounted module is the first type of module, reserving a memory area in the memory unit based on the virtual data format in which the contents of the virtual data format are reflected, writing items indicated in the definition data of the mounted module in accordance with the data format indicated by the definition data into the reserved memory area, and writing the module name of the mounted module to generate object data. Effect of the Invention

[0013] According to the engineering device, object data generation method, and program disclosed herein, it is possible to reduce the time from obtaining definition data to making a module corresponding to the definition data available in a control system. [Brief description of the drawings]

[0014] [Figure 1] 1 is a block diagram illustrating a configuration example of a plant system according to an embodiment of the present disclosure. [Diagram 2] FIG. 1 is a block diagram showing a configuration example of an engineering device according to an embodiment of the present disclosure. [Diagram 3] FIG. 2 is a diagram illustrating an example of an individual class and object data generated from the individual class according to an embodiment of the present disclosure. [Figure 4] FIG. 1 illustrates an example of a virtual class according to an embodiment of the present disclosure. [Diagram 5] 13 is a diagram illustrating an example of a table configuration of a virtual class using module name table according to an embodiment of the present disclosure. FIG. [Figure 6] 11 is a diagram illustrating an example of definition data of an exception IO module according to an embodiment of the present disclosure. FIG. [Figure 7]10 is a flowchart illustrating an example of an operation of an engineering device according to an embodiment of the present disclosure. [Figure 8] FIG. 1 is a diagram showing a configuration example (part 1) of a control system configuration screen according to an embodiment of the present disclosure. [Figure 9] FIG. 13 is a diagram showing a second example of a configuration of a control system configuration screen according to an embodiment of the present disclosure. [Figure 10] FIG. 13 is a diagram illustrating a configuration example of a new object creation screen according to an embodiment of the present disclosure. [Figure 11] FIG. 13 is a diagram illustrating a configuration example of a property setting screen according to an embodiment of the present disclosure. [Figure 12] FIG. 13 is a diagram illustrating an example of object data generated from a virtual class according to an embodiment of the present disclosure. [Figure 13] FIG. 13 is a diagram showing a third example of a configuration of a control system configuration screen according to an embodiment of the present disclosure. [Figure 14] FIG. 1 is a schematic block diagram illustrating a configuration of a computer according to at least one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] Hereinafter, an engineering apparatus, an object data generation method, and a program according to an embodiment of the present disclosure will be described with reference to the drawings. Note that the same or corresponding components in the drawings are designated by the same reference numerals and descriptions thereof will be omitted as appropriate.

[0016] (Overall composition) Fig. 1 is a block diagram showing the overall configuration of a plant system 1. The plant system 1 includes a plant 160, a control system 100, and an engineering device 10. The plant 160 is, for example, a power plant or a factory, and Fig. 1 shows sensors 161, 163 and an actuator 162 that are field devices provided in the plant 160. The sensors 161, 163 measure, for example, the temperature and pressure in piping provided in the plant 160. The actuator 162 opens and closes, for example, a valve inserted in piping provided in the plant.

[0017] The control system 100 includes a control device 110, a gateway device 120, a ring network 130, and an IO node 140. The control device 110 includes communication modules 111 and 112, and a CPU (Central Processing Unit) module 115. The communication module 111 is connected to an engineering device 10 via, for example, a LAN (Local Area Network) or the like, and transmits and receives data to and from the engineering device 10. The communication module 112 is connected to a gateway device 120 via a communication cable, and transmits and receives data to and from the gateway device 120. The CPU module 115 is a control microcomputer including, for example, a CPU, a RAM (Random Access Memory), a ROM (Read Only Memory), and the like, and is connected to each of the communication modules 111 and 112. The CPU module 115 performs arithmetic processing such as calculating the drive amount of an actuator 162 based on, for example, numerical values ​​indicating temperature, pressure, and the like measured by sensors 161 and 163.

[0018] The gateway device 120 performs a protocol conversion process to convert one protocol applied to communication with the communication module 112 and the other protocol applied to the ring network 130 into the other protocol. The gateway device 120 relays data transmitted and received between the IO node 140 and the control device 110 by performing the protocol conversion process.

[0019] The ring network 130 is a communication network with a circular connection. In FIG. 1, as an example, the gateway device 120 and one IO node 140 are connected, but it is possible to connect a plurality of IO nodes 140 to the ring network 130. In this case, the control device 110 and the plurality of IO nodes 140 transmit and receive data via the ring network 130 and the gateway device 120.

[0020] The IO node 140 includes a communication module 141, interfaces 142-1 to 142-8, and slots 143-1 to 143-8. The communication module 141 is connected to the ring network 130, and transmits and receives data to and from the control device 110 via the ring network 130 and the gateway device 120.

[0021] Various field devices such as sensors 161, 163 and actuator 162 are connected to the interfaces 142-1 to 142-8 via communication cables. Various IO modules such as IO modules 151, 152, and 153 can be inserted and removed into the slots 143-1 to 143-8. In Fig. 1, as an example, the IO module 151 is inserted into the slot 143-1, the IO module 152 is inserted into the slot 143-2, the IO module 153 is inserted into the slot 143-3, and the remaining slots 143-4 to 143-8 are left empty.

[0022] The interfaces 142-1 to 142-8 are provided in one-to-one correspondence with the slots 143-1 to 143-8 having the same branch numbers as the interfaces 142-1 to 142-8. Although eight interfaces 142-1 to 142-8 and eight slots 143-1 to 143-8 are shown in Fig. 1 as an example, the number of interfaces may be less than eight or may be greater than eight.

[0023] Lines are wired on the back surface of the IO node 140 to electrically connect the interfaces 142-1 to 142-8, which are in one-to-one correspondence, to the slots 143-1 to 143-8. Lines are also wired on the back surface of the IO node 140 to electrically connect each of the slots 143-1 to 143-8 to the communication module 141. Therefore, for example, when the IO module 151 is inserted into the slot 143-1, the IO module 151 and the sensor 161 are connected via the interface 142-1, and the IO module 151 and the communication module 141 are connected.

[0024] Hereinafter, when referring to any one of various IO modules including IO modules 151, 152, 153, etc., the IO module 150 is referred to as an IO module. There are various types of IO modules 150. For example, the IO module 151 takes in an analog current signal output by a sensor 161, converts the taken in analog current signal into a digital signal, and transmits the digital signal to the CPU module 115 via the communication module 141. The IO module 152 receives a digital signal transmitted by the CPU module 115 via the communication module 141, converts the received digital signal into an analog current signal, and outputs the analog current signal to the actuator 162. In addition, among the IO modules 150, there are IO modules that take in an analog current signal, convert it into a digital signal, and output it, just like the IO module 151, but can take in an analog current signal in a current value range different from that of the IO module 151.

[0025] In addition to differences in types in terms of different functions, such as between IO modules 151 and 152, and differences in types in terms of different specifications, such as the range of current values ​​that can be taken in, as described above, there are also differences in types in terms of different manufacturers. For example, assume that IO modules 151 and 152 are IO modules manufactured by company A, and IO module 153 is an IO module manufactured by company B, which is different from company A. In this case, even if IO module 153 has the same functions and specifications as IO module 151, IO module 151 and IO module 153 are different types of IO modules because they are manufactured by different manufacturers.

[0026] (Engineering Equipment Configuration) 2 is a block diagram showing a configuration example of the engineering device 10. The engineering device 10 can be configured using, for example, a computer such as a server, a personal computer, or a microcomputer, and peripheral devices of the computer, and includes a database unit 11, an object data generating unit 12, a definition data storage unit 13, an operation unit 14, a display unit 15, a display processing unit 16, an output unit 17, and a definition data import unit 18 as a functional configuration configured by a combination of hardware of the computer or the like and software such as a program executed by the computer.

[0027] The database unit 11 is a storage medium in which a database such as a relational database is constructed, and data can be recorded and searched by externally accessing the database unit 11 using a database language such as SQL (Structured Query Language). The database unit 11 stores system configuration data indicating the system configuration of the control system 100. In the database unit 11, a data format used to define the IO module 150 mounted in the control system 100 is constructed.

[0028] In order to operate the IO module 150 normally, it is necessary to record mounting position data indicating the position where the IO module 150 is mounted in the control system 100 and property data defining the operating state of the IO module 150 in the database unit 11 and make them part of the system configuration data of the control system 100. In addition to recording them in the database unit 11, it is also necessary to make them searchable. For this reason, it is necessary to generate a table in the database unit 11 for storing mounting position data and parameter data, define items that serve as search indexes in the generated table, and define the type of data (hereinafter, referred to as data type) to be recorded corresponding to each item. Here, the data type is information indicating the type of data to be recorded, such as character type or integer type, and the size of the data to be recorded.

[0029] In other words, the data format used to define the IO module 150 constructed in the database unit 11 refers to the table structure, the items contained in the table, and the data types corresponding to each of the items, and this data format is hereinafter referred to as a class.

[0030] Since the data format of the property data differs for each type of IO module 150, a class is defined for each type of IO module 150. Definition data provided by the manufacturer of each IO module 150 is used to define this class.

[0031] The timing of providing the definition data varies, and the definition data may be provided before the product is shipped or at the time of product shipment. Here, it is assumed that an operator who operates the control system 100 adopts the IO module 150 manufactured by company A as an IO module that is normally used (hereinafter, also referred to as a normal IO module). Furthermore, it is assumed that an agreement has been made between the operator and company A that company A will provide the operator with definition data for the normal IO module a predetermined period before the time of product shipment by company A. Here, it is assumed that the predetermined period is a period that is sufficient to build a class in the database unit 11 based on the definition data.

[0032] In response to this, the operator has decided that the IO module 150 manufactured by company B is an IO module to be used exceptionally (hereinafter also referred to as an exceptional IO module). Furthermore, there is no agreement between the operator and company B as with company A, and it is unclear whether the definition data for the exceptional IO module manufactured by company B can be obtained before product shipment. In the latest case, the operator will obtain the definition data at the timing of product shipment. Company A may be the company to which the operator belongs, in which case company A will be the operator's own company and company B will be another company from the operator's perspective.

[0033] Due to the difference in the timing of obtaining the definition data for the above-mentioned normal IO modules and exception IO modules, there are the following differences between the normal IO modules and the exception IO modules in the classes constructed in the database unit 11. Note that, in the following, as an example, the explanation will be given assuming that IO modules 151 and 152 are IO modules manufactured by company A, and IO module 153 is an IO module manufactured by company B.

[0034] (Usually a class in the IO module) For normal IO modules manufactured by company A, individual classes (hereinafter referred to as individual classes) are constructed in database unit 11 based on the definition data of each normal IO module before the normal IO module is shipped.

[0035] FIG. 3(a) is a diagram showing a configuration example of an individual class 30-1 of an IO module 151 which is a normal IO module. The individual class 30-1 has items of "Class ID (Identification)", "Class Name", "Property", and "Mounting Position". The module name of the IO module 151 is written in the section for recording data of the item "Class Name" in the second line. FIG. 3(a) shows an example in which "AI-01 AI ch.8 4-20mA manufactured by A" is written as the module name of the IO module 151. Here, "AI" is an abbreviation for analog input. "01" is a number that is assigned so that each AI-type IO module 150 manufactured by A has a different number. "ch.8" indicates that the number of channels of the IO module 151 is 8 channels. "4-20mA" indicates that the range of analog current values ​​that the IO module 151 can take in is in the range of 4mA to 20mA.

[0036] In the section for recording the data of the "Class ID" item on the first line, a class ID that can identify each class is written. Figure 3(a) shows an example in which part of the module name, "AI-01, made by Company A," is written as the class ID.

[0037] The "Properties" item includes the items of "Fail-time operation", "Communication timeout time (ms (milliseconds)", "Upper signal range limit (mA (milliampere)", and "Lower signal range limit (mA)" as sub-items, and further includes data types corresponding to each of the sub-items. Note that in FIG. 3(a), the items of "Upper signal range limit (mA)" and "Lower signal range limit (mA)" are omitted and only one channel is shown, but the IO module 151 actually has eight channels. Therefore, the items of "Upper signal range limit (mA)" and "Lower signal range limit (mA)" corresponding to each of the eight channels and the data types corresponding to each item are included in the individual class 30-1. Also, in FIG. 3(a) and other figures, specific data types are not shown, but are shown as "(data type)", but in reality, the "(data type)" portion shows the data type corresponding to each of the items, such as "character type" or "integer type".

[0038] The "Installation Position" item includes the items "Net", "Node", and "Slot" as sub-items, and further includes data types corresponding to each of the sub-items. Here, the data corresponding to the "Net" item is identification data for identifying one ring network 130 provided for one CPU module 115. The data corresponding to the "Node" item is identification data for identifying the IO node 140 connected to the ring network 130 indicated by the "Net" item. The data corresponding to the "Slot" item is identification data for indicating into which of the slots 143-1 to 143-8 of the IO node 140 indicated by the "Node" item the IO module 151 is inserted.

[0039] Among the contents shown in individual class 30-1, what can be obtained from the definition data of IO module 151 are the module name written in the section that records data of the "Class Name" item, the names of the items "Operation upon failure" and "Communication Timeout Time (ms)" which are sub-items of the "Properties" item, and the items "Upper limit of signal range (mA)" and "Lower limit of signal range (mA)" for eight channels, and the data type of each of the sub-items of the "Properties" item.

[0040] In the example of FIG. 3(a), the class ID written in the section recording data in the "class ID" item is made part of the module name of IO module 151. Therefore, in this case, the class ID is also data obtained from the definition data. However, any information may be adopted as the class ID as long as it is information capable of identifying each class, and if the class ID is not made part of the module name, the class ID is no longer obtained from the definition data. In addition, the module name written in the section recording data in the "class name" item may be changed to an arbitrary module name rather than using the module name presented by company A in the definition data as is, and in this case, the module name is no longer obtained from the definition data.

[0041] The "Mounting position" item is not data obtained from definition data, but is an item that is predetermined according to the configuration of the control system 100, and is an item of a data format that is common to all classes. Therefore, when the operator of the engineering device 10 constructs the individual class 30-1 in the database unit 11, the "Mounting item" item portion is constructed according to the sub-items of the "Mounting position" item that are predetermined, and the definition of the data type of each of the sub-items.

[0042] The data format of the "Properties" item of the individual class 30-1 shown in Fig. 3(a) is shown as an example. Generally, regardless of whether it is a normal IO module or an exceptional IO module, the data format indicated by the definition data of each IO module 150 is not a simple data format that can be indicated by one table, as in the "Properties" item shown in Fig. 3(a), but a complex hierarchical data format consisting of a combination of multiple tables. In the following description, an individual class corresponding to any one of the normal IO modules is referred to as an individual class 30.

[0043] (Class in the ExceptionIO module) As described above, it is unclear whether definition data will be available before product shipment for the exception IO modules manufactured by company B. Therefore, individual classes corresponding to each exception IO module are not created in database unit 11, but virtual classes commonly used by the exception IO modules are created.

[0044] FIG. 4 is a diagram showing an example of the configuration of the virtual class 40. The virtual class 40 has the items of "class ID", "class name", "property", and "mounting position" like the individual class 30-1. However, for the item of "property", only a partition is provided, and no item or data type is written. The partitions provided in the item of "property" may have any number and structure as long as they are partitions that can contain at least the data format indicated by the definition data of any exception IO module. A partition that can contain at least the data format indicated by the definition data of any exception IO module is a partition that has a number and structure that can write items included in the definition data of any exception IO module, the data type of each item, and data of a size according to the data type of each item, and the size of each partition is a partition that can write any item included in the definition data of any exception IO module, the data type corresponding to the arbitrary item, or data corresponding to the arbitrary item.

[0045] In the section for recording data in the "class ID" field, a predetermined class ID of virtual class 40 is written. FIG. 4 shows an example in which the character string "virtual class" is written as the class ID of virtual class 40. In the section for recording data in the "class name" field, a predetermined initial class name of virtual class 40 is written. FIG. 4 shows an example in which the character string "virtual class initial name" is written as the initial class name of virtual class 40. The "mounting position" field has the same data format as individual class 30-1.

[0046] The database unit 11 stores a virtual class use module name table 50 shown in Fig. 5. The virtual class use module name table 50 stores the module names of each of the exceptional IO modules.

[0047] Returning to Fig. 2, the object data generation unit 12 generates object data in the database unit 11 based on the individual class 30 or the virtual class 40 constructed in the database unit 11. Here, as an example of object data, object data generated based on the individual class 30-1 shown in Fig. 3(a) will be described.

[0048] When the object data generation unit 12 generates object data based on the individual class 30-1, it secures a memory area in the database unit 11, which is a memory area into which each of the items, class IDs, module names, and data types shown in the individual class 30-1 can be written and which includes a section for recording data of a size determined by each of the data types shown in the individual class 30-1. The memory area secured in the database unit 11 by the object data generation unit 12 becomes the memory area for the object data 30-1-1 shown in FIG. 3(b).

[0049] In order to reflect the contents of the individual class 30-1 in the secured storage area, the object data generation unit 12 transfers each of the items, class IDs, module names, and data types shown in the individual class 30-1 to the secured storage area within the database unit 11. As a result, the object data 30-1-1 is generated in a state in which the property data and mounting position data are not included. Here, it is assumed that the object data 30-1-1 is object data corresponding to the IO module 151 inserted into the slot 143-1 of the IO node 140, and the IO module 151 is used as, for example, a pressure sensor. In this case, the object data generation unit 12 is provided with the property data for the case in which the IO module 151 is used as a pressure sensor.

[0050] The object data generator 12 writes each of the given property data into a section for recording data of the items "Failure action", "Communication timeout time (ms)", "Signal range upper limit (mA)", and "Signal range lower limit (mA)" of the corresponding object data 30-1-1. Fig. 3(b) shows an example in which "0 input", "30", "20", and "4" are written as property data corresponding to each of the items "Failure action", "Communication timeout time (ms)", "Signal range upper limit (mA)", and "Signal range lower limit (mA)".

[0051] The object data generating unit 12 is provided with mounting position data where the IO module 151 is inserted. The mounting position data includes identification data corresponding to each of the items "Net", "Node", and "Slot". Here, it is assumed that the identification data corresponding to the ring network 130 is "1", the identification data corresponding to the IO node 140 is "32", and the identification data corresponding to the slot 143-1 where the IO module 151 is inserted is "1". In this case, the object data generating unit 12 writes each of the identification data included in the provided mounting position data into a section in which the data of the items "Net", "Node", and "Slot" of the object data 30-1-1 corresponding to each of the identification data are recorded. As a result, the object data 30-1-1 shown in FIG. 3(b), which is the object data corresponding to the IO module 151 inserted into the slot 143-1 of the IO node 140 in FIG. 1, is generated in the database unit 11.

[0052] In response to this, for example, assume that an IO module 151 used as a temperature sensor is inserted into an empty slot 143-5 of the IO node 140. In this case, the object data generating unit 12 secures a storage area in the database unit 11 in the same procedure as for the object data 30-1-1, and generates the object data 30-1-2 shown in Fig. 3(c) by reflecting the contents of the individual class 30-1 in the secured storage area. The object data generating unit 12 is provided with property data and mounting position data for when the IO module 151 is used as a temperature sensor.

[0053] The object data generating unit 12 writes each of the property data when the given IO module 151 is used as a temperature sensor into a section for recording data of the items "operation at the time of failure", "communication timeout time (ms)", "upper limit of signal range (mA)", and "lower limit of signal range (mA)" of the corresponding object data 30-1-2. Fig. 3(c) shows an example in which "maintain", "30", "20", and "4" are written as property data corresponding to each of the items "operation at the time of failure", "communication timeout time (ms)", "upper limit of signal range (mA)", and "lower limit of signal range (mA)".

[0054] The object data generating unit 12 writes each of the data included in the given mounting position data into the sections for recording the data of the items "Net", "Node", and "Slot" of the corresponding object data 30-1-2. It is assumed that the identification data corresponding to the slot 143-5 is "5". As a result, the object data 30-1-2 shown in FIG. 3(c), which is the object data corresponding to the IO module 151 inserted into the slot 143-5 of the IO node 140, is generated in the database unit 11.

[0055] In other words, object data is data that corresponds one-to-one to each IO module 150 actually installed in the control system 100, and even if the IO modules 150 are of the same type, different object data will be generated if they have different uses or are installed in different locations.

[0056] Returning to Fig. 2, the definition data storage unit 13 stores definition data for each of the exception IO modules manufactured by company B. Fig. 6 is a diagram showing an example of definition data 60 for IO module 153, which is one of the exception IO modules manufactured by company B. As described above, there is no agreement between the operator who operates the control system 100 and company B that allows the operator to obtain definition data in advance, as with company A, but there is an agreement with company B that allows the operator to provide the definition data in text data of a common format.

[0057] This common format is a data format in which the file name is the module name, and sub-items of the "Properties" item and the data types corresponding to the sub-items are alternately separated by commas in the file, as shown in Fig. 6. The IO module 153 has 16 channels as shown in the file name, and each port can be set to upper and lower limits of communication data in addition to upper and lower limits of signal range. Therefore, the definition data 60 is data including 16 items of "Signal range upper limit (mA)", "Signal range lower limit (mA)", "Communication data upper limit (byte)", and "Communication range lower limit (byte)" and the data types corresponding to each item.

[0058] 6 is an example of definition data 60 that can be represented by one table, but in the case of a data format that can be represented by multiple tables, for example, the definition data 60 may be multiple files divided for each table. In this case, for example, each file contains contents that specify the data format of the definition data 60, such as a table name and data showing the relationship between the tables.

[0059] 2, the operation unit 14 includes input devices such as a mouse and a keyboard, and receives operations from the operator of the engineering device 10. The display unit 15 is, for example, a liquid crystal display, and displays data output by the display processing unit 16.

[0060] The display processing unit 16 receives various instruction signals from the operation unit 14, reads data corresponding to each instruction signal from the database unit 11 and displays it on the display unit 15, or outputs an instruction signal for generating object data to the object data generating unit 12. The output unit 17 is connected to the communication module 111 of the control device 110 via a LAN or the like. The output unit 17 reads system configuration data of the control system 100 from the database unit 11 and transmits the read system configuration data to the control device 110. The definition data import unit 18 imports definition data 60 supplied from the outside, writes the file name of the imported definition data 60 in the virtual class usage module name table 50 of the database unit 11, and writes the imported definition data 60 in the definition data storage unit 13.

[0061] (Example of engineering equipment operation) Fig. 7 is a flowchart showing an example of the operation of the engineering device 10. Before the process of the flowchart shown in Fig. 7 is started, the control system 100 is assumed to have the following configuration. The IO module 151 is inserted into the slot 143-1 of the IO node 140 of the control system 100, the IO module 152 is inserted into the slot 143-2, and the other slots 143-3 to 143-8 are assumed to be empty. In addition, it is assumed that object data for these two IO modules 151 and 152 have already been generated in the database unit 11, and that the corresponding property data and mounting position data have been written into each of the generated object data.

[0062] Also, it is assumed that the definition data 60 of the IO module 153 has been obtained, and the obtained definition data 60 has been supplied to the definition data import unit 18. Therefore, the definition data storage unit 13 is in a state in which it can store the definition data 60. The virtual class use module name table 50 of the database unit 11 is in a state in which it can store the module name of the IO module 153, “AI ch.16 4-20mA made by company B”, which is indicated in the file name of the definition data 60.

[0063] In the configuration of the control system 100 described above, the IO module 153, which is an exceptional IO module, is inserted into the empty slot 143-3, and the engineering device 10 starts the process shown in FIG.

[0064] When the engineering device 10 is started, the display processing unit 16 of the engineering device 10 displays a menu screen showing various processes as options on the display unit 15. The operator performs an operation on the operation unit 14 to select an option for a process that displays the system configuration data of the control system 100 in a tree structure on the menu screen.

[0065] When the operation unit 14 receives the operation, it outputs an operation instruction signal to the display processing unit 16. When the display processing unit 16 receives the operation instruction signal, it detects that an option for a process of displaying the system configuration data of the control system 100 in a tree structure has been selected by the operation unit 14 on the menu screen. The display processing unit 16 reads out the system configuration data of the control system 100 from the database unit 11. The display processing unit 16 generates a control system configuration screen 200 of FIG. 8 that displays the read system configuration data in a tree structure. The display processing unit 16 displays the generated control system configuration screen 200 on the display unit 15 (S1).

[0066] 8, a root node 201 including the character string "control system" indicates the control system 100. As a child node of the root node 201, a child node 202 including the character string "CPU module (Net:1)" indicating the CPU module 115 is displayed. As child nodes of the child node 202, a "control operation block configuration" and a "hardware configuration" are displayed, and as a child node of the "hardware configuration", a child node 203 including the character string "IO node (Node:32)" indicating the IO node 140 is displayed.

[0067] The child node 203 has eight child nodes corresponding to the slots 143-1 to 143-8 of the IO node 140. When the slots 143-1 to 143-8 are all free, the eight child nodes are indicated by the names "Slot1" to "Slot8", and the branch numbers of the codes for the slots 143-1 to 143-8 correspond to the numbers following the character string "Slot".

[0068] As described above, here, the IO module 151 is inserted into the slot 143-1 corresponding to "Slot1", and the IO module 152 is inserted into the slot 143-2 corresponding to "Slot2", and the object data corresponding to each is generated. Therefore, at the position of the child node 211 corresponding to the slot 143-1, a character string "AI-01 AI ch.8 4-20mA made by A", which is the module name of the IO module 151, is displayed instead of "Slot1". At the position of the child node 212 corresponding to the slot 143-2, a character string "AO-01 AO ch.8 4-20mA made by A", which is the module name of the IO module 152, is displayed instead of "Slot2". Here, AO is an abbreviation for analog output.

[0069] The operator performs an operation on the operation unit 14 to select an area on the control system configuration screen 200 where the child node 220 including the character string “Slot3” corresponding to the slot 143-3 into which the IO module 153 is inserted is displayed. When the operation unit 14 receives the operation, it outputs an operation instruction signal to the display processing unit 16. When the display processing unit 16 receives the operation instruction signal, it detects the child node 220 present in the area selected by the operation unit 14. The display processing unit 16 generates a selection screen 221 by linking information indicating the detected child node 220. The display processing unit 16 displays the generated selection screen 221 near the area where the child node 220 is displayed, as shown in FIG. 9. The selection screen 221 includes three options, “New Creation”, “Properties”, and “Delete”. Here, the operator performs an operation on the operation unit 14 to select the option “New Creation”. When the operation unit 14 receives the operation, it outputs an operation instruction signal to the display processing unit 16.

[0070] When the display processing unit 16 receives the operation instruction signal while displaying the selection screen 221 linked to the information indicating the child node 220 on the display unit 15, the display processing unit 16 detects that the option selected by the operation unit 14 on the selection screen 221 is the option of "New Creation". When the display processing unit 16 detects that the option is the "New Creation", the display processing unit 16 detects "3" as the identification data corresponding to "Slot" from the information indicating the child node 220 linked to the selection screen 221 being displayed. The display processing unit 16 detects the identification data "32" corresponding to "Node" and the identification data "1" corresponding to "Net" from the child nodes 203 and 202 existing on the path from the child node 220 to the root node 201. The display processing unit 16 generates the mounting position data "Net:1, Node:32, Slot:3" from the three detected identification data (S2).

[0071] When the display processing unit 16 generates the mounting position data, it detects the class IDs stored corresponding to the "class ID" item and the module names stored corresponding to the "class name" item of all individual classes 30 from the database unit 11. The display processing unit 16 associates each of the detected module names with the corresponding class ID, and generates combinations of module names and class IDs.

[0072] The display processing unit 16 reads out all the module names stored in the virtual class using module name table 50 in the database unit 11, and associates the "virtual class" which is the class ID of the virtual class 40 with each of the read module names.

[0073] The display processing unit 16 generates a new object creation screen 250 of Fig. 10 which shows, in a list, combinations of module names and class IDs generated for all individual classes 30, and module names associated with "virtual class" as the class ID. The display processing unit 16 displays the new object creation screen 250 on the display unit 15 (S3). Fig. 10 shows, as an example, an example of the new object creation screen 250 which shows combinations of six module names and class IDs detected from the individual classes 30 corresponding to normal IO modules indicated by reference numeral 251, and a combination of two module names corresponding to exception IO modules indicated by reference numeral 252 and "virtual class", which is the class ID of the virtual class 40.

[0074] The operator performs an operation on the operation unit 14 to select "AI made by company B AI ch.16 4-20mA" which is the module name corresponding to the IO module 153 and is indicated by the reference symbol 253 on the new object creation screen 250. Upon receiving this operation, the operation unit 14 outputs an operation instruction signal to the display processing unit 16. Upon receiving this operation instruction signal, the display processing unit 16 detects "AI made by company B AI ch.16 4-20mA" which is the module name selected by the operation unit 14 on the new object creation screen 250.

[0075] The operator operates operation unit 14 to select button 255 including the character string "Next" on new object creation screen 250. Upon receiving this operation, operation unit 14 outputs an operation instruction signal to display processing unit 16. Upon receiving this operation instruction signal, display processing unit 16 detects that button 255 has been selected by operation unit 14 on new object creation screen 250, and erases new object creation screen 250 from display unit 15 (S4).

[0076] The display processing unit 16 outputs the mounting position data generated in the process of S2 and the module name detected in the process of S4 to the object data generating unit 12. The object data generating unit 12 takes in the mounting position data and the module name output by the display processing unit 16. The object data generating unit 12 determines whether the taken-in module name is the module name of the IO module 150 that uses the virtual class 40, based on whether the taken-in module name is stored in the virtual class using module name table 50 of the database unit 11 (S5).

[0077] Here, the module name "AI ch.16 4-20mA manufactured by company B" that the object data generation unit 12 imports is stored in the virtual class using module name table 50. Therefore, the object data generation unit 12 determines that the imported module name is the module name of the IO module 150 that uses the virtual class 40, that is, the exceptional IO module (S5, Yes). In this case, the object data generation unit 12 secures the following storage areas in the database unit 11 according to the virtual class 40 stored in the database unit 11:

[0078] The object data generating unit 12 reserves a storage area in the database unit 11, which is a storage area capable of writing the contents shown in the virtual class 40 and data of a size determined by the data type of each of "Net", "Node", and "Slot", and is a section storage area provided in the "Property" item. The storage area reserved in the database unit 11 becomes the storage area of ​​the object data 40-1 shown in Fig. 12 corresponding to the IO module 153 inserted into the slot 143-3 of the IO node 140 of the control system 100 (S6).

[0079] In order to reflect the contents of virtual class 40 in the secured memory area, object data generation unit 12 transcribes the items "class ID", "class name", "property", "mounting position", "Net", "Node", and "Slot" of virtual class 40, "virtual class" which is the class ID, "virtual class initial name" which is the initial name of the class name of virtual class 40, and the data types of "Net", "Node", and "Slot" into the secured memory area within database unit 11. Object data generation unit 12 rewrites "virtual class initial name", which is data corresponding to the item "class name", to the imported module name "AI made by company B AI ch.16 4-20mA" (S7).

[0080] The object data generating unit 12 reads out the definition data 60 corresponding to the imported module name "AI ch.16 4-20mA manufactured by company B" from the definition data storage unit 13. The object data generating unit 12 generates the object data 40-1 by reflecting the read out definition data 60 in the secured storage area. That is, the object data generating unit 12 writes the items and data type indicated in the definition data 60 in the section provided in the "Property" item in the secured storage area according to the data format indicated by the definition data 60. As a result, the object data 40-1 is generated in a state in which the property data and the mounting position data are not included (S8).

[0081] The object data generation unit 12 writes each of the three numerical values ​​indicated in "Net: 1, Node: 32, Slot: 3", which is the mounting position data acquired in the processing of S5, into sections that record data for the "Net", "Node", and "Slot" items of the corresponding object data 40-1 (S11).

[0082] The object data generating unit 12 outputs an instruction signal for displaying a property setting screen including information for identifying the object data 40-1 to the display processing unit 16. Here, the information for identifying the object data 40-1 is, for example, the class ID "virtual class", the class name "AI ch.16 4-20mA manufactured by B company", and the mounting position data included in the object data 40-1.

[0083] When the display processing unit 16 receives the instruction signal, it reads out each of the sub-items included in the "Property" item of the object data 40-1 and the data type corresponding to each of the sub-items from the database unit 11 based on the information identifying the object data 40-1 included in the instruction signal. The display processing unit 16 generates a property setting screen 260 of FIG. 11 showing the read sub-items and data types. The display processing unit 16 displays the generated property setting screen 260 on the display unit 15.

[0084] In the property setting screen 260 displayed on the display unit 15, property data for each of the items "Timeout (ms)", "Fail action", "Upper limit of signal range (mA)", "Lower limit of signal range (mA)", "Upper limit of communication data (bytes)", and "Lower limit of communication data (bytes)" for 16 channels is set by the operator's operation on the operation unit 14. For example, a case where property data for the item "Timeout (ms)" is set will be described. When the operator performs an operation on the operation unit 14 to select the section 261 in the first row corresponding to the item "Timeout (ms)" in the column of the item "Data", the display processing unit 16 makes the section 261 ready for input. When the operator performs an operation on the operation unit 14 to write the property data "30" corresponding to the item "Timeout (ms)" in the section 261 that has become ready for input, the display processing unit 16 displays the written property data "30" in the section 261.

[0085] When the operator completes setting the property data, the operator operates the operation unit 14 to select the button 265 including the character string "Complete" on the property setting screen 260. Upon receiving this operation, the operation unit 14 outputs an operation instruction signal to the display processing unit 16. Upon receiving the operation instruction signal, the display processing unit 16 detects that the button 265 has been selected by the operation unit 14 on the property setting screen 260. The display processing unit 16 outputs an instruction signal to the object data generation unit 12 to instruct writing of property data including data associating each of the property data displayed on the property setting screen 260 with the corresponding item and information identifying the object data 40-1. The display processing unit 16 erases the property setting screen 260 from the display unit 15.

[0086] When the object data generation unit 12 receives an instruction signal output by the display processing unit 16 instructing to write property data, the object data generation unit 12 detects the object data 40-1 in the database unit 11 based on the information identifying the object data 40-1 included in the instruction signal. The object data generation unit 12 writes each of the property data included in the instruction signal into a section for recording data of the item of the object data 40-1 that matches the item associated with each of the property data (S12).

[0087] As a result, the object data 40-1 stored in the database unit 11 has the contents shown in Fig. 12. Note that in Fig. 12, the items "Signal range upper limit (mA)", "Signal range lower limit (mA)", "Communication data upper limit (bytes)", and "Communication data lower limit (bytes)" are omitted and only one channel is shown, but the IO module 151 actually has 16 channels. Therefore, the object data 40-1 includes the items "Signal range upper limit (mA)", "Signal range lower limit (mA)", "Communication data upper limit (bytes)", and "Communication data lower limit (bytes)" corresponding to each of the 16 channels, and the property data corresponding to each item.

[0088] The object data generating unit 12 outputs an instruction signal to the display processing unit 16 to update the control system configuration screen 200 displayed on the display unit 15. When the display processing unit 16 receives the instruction signal, it reads out the system configuration data of the control system 100 from the database unit 11. The display processing unit 16 regenerates an image of the tree structure portion included in the control system configuration screen 200 from the read out system configuration data. The display processing unit 16 replaces the image of the tree structure portion of the control system configuration screen 200 displayed on the display unit 15 with the image of the regenerated tree structure portion. As a result, the control system configuration screen 200 becomes as shown in FIG. 13, and the display of the child node 220 changes from "Slot3" to "AI ch.16 4-20mA manufactured by B", which is the module name of the IO module 153 (S13).

[0089] The operator operates operation unit 14 to select an option for processing to set other data for the system configuration data on the menu screen displayed on display unit 15. Upon receiving this operation, operation unit 14 outputs an operation instruction signal to display processing unit 16. Upon receiving this operation instruction signal, display processing unit 16 detects that an option for processing to set other data has been selected on the menu screen by operation unit 14. Display processing unit 16 generates a screen for setting other data and displays it on display unit 15.

[0090] On the screen for setting other data, the operator performs an operation on the operation unit 14 to set other data. As a result, the display processing unit 16 receives an operation instruction signal for each operation from the operation unit 14, and updates the system configuration data of the control system 100 stored in the database unit 11 based on the other data set on the screen for setting other data. When the update of the system configuration data is completed, the display processing unit 16 erases the screen for setting other data from the display unit 15 (S14). Here, the other data is, for example, data indicating a calculation process such as calculating the drive amount of the actuator 162 based on a numerical value measured by the sensor 163 captured by the newly added IO module 153 and a numerical value measured by the sensor 161 captured by the IO module 151.

[0091] The operator performs an operation on the operation unit 14 to select an option for processing to output system configuration data to the control device 110 on the menu screen displayed on the display unit 15. Upon receiving the operation, the operation unit 14 outputs an operation instruction signal to the display processing unit 16. Upon receiving the operation instruction signal, the display processing unit 16 detects that an option for processing to output system configuration data to the control device 110 has been selected by the operation unit 14 on the menu screen. The display processing unit 16 outputs an instruction signal to the output unit 17 to cause the control device 110 to output the system configuration data of the control system 100 stored in the database unit 11. Upon receiving the instruction signal, the output unit 17 reads out the system configuration data of the control system 100 from the database unit 11, and transmits the read system configuration data to the communication module 111 of the control device 110 (S15).

[0092] The communication module 111 outputs the system configuration data transmitted by the output unit 17 to the CPU module 115. The CPU module 115 takes in the system configuration data output by the communication module 111 and replaces the system configuration data of the control system 100 stored in an internal storage area with the taken-in system configuration data. This allows the IO module 153 inserted into the slot 143-3 of the IO node 140 to operate normally.

[0093] In the above-mentioned process of S5, the object data generating unit 12 judges that the imported module name is not the IO module 150 that uses the virtual class 40 (S5, No) in the following cases: That is, the imported module name is not stored in the virtual class using module name table 50 of the database unit 11, and the IO module 150 corresponding to the module name is a normal IO module.

[0094] In this case, the object data generation unit 12 detects an individual class 30 that includes the name of the module to be processed in the "class name" field from the database unit 11. The object data generation unit 12 secures a storage area for object data in the database unit 11 based on the detected individual class 30 (S9). The object data generation unit 12 generates object data in the secured storage area within the database unit 11 by reflecting the contents of the detected individual class 30 (S10). Thereafter, the processing from S11 onwards is performed. Note that the child node 211 corresponding to the IO module 151 inserted into the slot 143-1 shown in FIG. 8 and the child node 212 corresponding to the IO module 152 inserted into the slot 143-2 are displayed after the processing of S9 and S10.

[0095] After the control system configuration screen 200 shown in Fig. 13 is displayed by the process of S13 described above, the operator may add or modify property data by performing the following operation. That is, the operator performs an operation on the operation unit 14 to display the selection screen 221 shown in the process of S2 on the display unit 15 for the control system configuration screen 200 shown in Fig. 13. In the selection screen 221 displayed by this operation, the operator performs an operation on the operation unit 14 to select an option for "Properties", whereby the property setting screen 260 shown in Fig. 11 is displayed again on the display unit 15. In the displayed property setting screen 260, the operator can add or modify property data.

[0096] (Action and effect) In the engineering device 10 according to the above embodiment, a virtual class 40 is constructed in advance in the database unit 11. Then, when definition data 60 of an exception IO module is acquired, the acquired definition data 60 is supplied to the definition data acquisition unit 18, and the module name of the exception IO module given as the file name of the definition data 60 is written in the virtual class use module name table 50 of the database unit 11, and the definition data 60 is written in the definition data storage unit 13. This makes it possible to select the exception IO module in the engineering device 10 in the same way as the normal IO module, and to generate object data of the exception IO module in the database unit 11 by using the virtual class 40.

[0097] Since the virtual class 40 can be constructed in advance in the database unit 11, when the definition data 60 of the exception IO module is obtained, the only work required to make the exception IO module selectable in the engineering device 10 is to supply the definition data 60 to the definition data import unit 18. The time required for this work is very short compared to the time required to construct the individual class 30 in the database unit 11 based on the definition data 60. Therefore, by using the engineering device 10, it is possible to shorten the time from obtaining the definition data to making the IO module 150 corresponding to the definition data available in the control system 100.

[0098] Even if the IO modules 150 are manufactured by company A, if many are shipped in a short period of time, it takes time to build the individual classes 30 for the database unit 11, so it is expected that the construction of the individual classes 30 for some of the IO modules 150 will not be completed by the time of product shipment. Even in such a case, if it is possible to obtain definition data in a common format similar to the definition data 60 shown in Fig. 6 from company A, it is possible to treat the IO modules 150 of company A for which definition data in a common format can be obtained as exceptional IO modules and use the virtual class 40 to make these IO modules 150 selectable in the engineering device 10 before product shipment.

[0099] (Another configuration example of the embodiment) Although the embodiment of the present disclosure has been described in detail above with reference to the drawings, the specific configuration is not limited to this embodiment, and designs within the scope of the gist of the present disclosure are also included.

[0100] (Example of a configuration using virtual classes in any module) In the above embodiment, an example is shown in which the virtual class 40 is applied to the IO module 150 mounted on the control system 100. On the other hand, if any module other than the IO module 150, for example, the CPU module 115, can be replaced with another type of CPU module and definition data in a common format for the other type of CPU module can be obtained, the other type of CPU module may be treated as an exceptional CPU module and the exceptional CPU module may be made selectable in the engineering device 10 using the virtual class 40. For any module used in the control system 100, such as the communication modules 111, 112, and 141 other than the CPU module 115, if there is another type of module that can be replaced and definition data in a common format can be obtained, the virtual class 40 may be used to make the module selectable in the engineering device 10.

[0101] (Example of configuration for transferring module configuration data from other engineering equipment) As described above, when the virtual class 40 is used to make any module selectable in the engineering device 10, the following becomes possible, for example. In the following description, data formed by a plurality of object data among the system configuration data generated in the database unit 11 by the engineering device 10 is referred to as module configuration data. It is assumed that the module configuration data of the control system 100 is generated by another engineering device that generates module configuration data in a format different from that generated by the engineering device 10. Here, it is assumed that the other engineering device is replaced with the engineering device 10. In this case, the other engineering device performs a process of selecting and reading data corresponding to each module from the module configuration data generated by itself.

[0102] The data corresponding to each of the read modules includes data corresponding to the property data and the mounting position data in addition to the module name and items. Hereinafter, the property data and the data corresponding to the mounting position data are referred to as setting data. The other engineering device converts the data corresponding to each of the modules into definition data of text data in a common format in which the three items "(item name)", "(data type)", and "(setting data)" are repeated, separated by commas, in addition to the format of the definition data 60 shown in FIG. 6. Since the definition data includes the mounting position data, the content "Net, (data type), (setting data), Node, (data type), (setting data), Slot, (data type), (setting data)" is included at the end. In addition, the file name of the definition data generated by the conversion is generated to be the module name, like the definition data 60.

[0103] The definition data for each module generated as described above is supplied to the definition data import unit 18 of the engineering device 10. The definition data import unit 18 writes the supplied definition data into the definition data storage unit 13, and writes the file name of the definition data into the virtual class using module name table 50 of the database unit 11. Upon completion of writing, the definition data import unit 18 outputs an object data generation instruction signal including the file name of the written definition data to the object data generation unit 12.

[0104] When the object data generating unit 12 receives an object data generation instruction signal from the definition data import unit 18, it reads out the file name of the definition data included in the object data generation instruction signal. The object data generating unit 12 performs the processes of S6 to S8 in Fig. 7 for each read file name, i.e., module name, and also performs the process of writing setting data, i.e., property data and mounting position data, into the generated object data in the process of S8. Thereafter, the processes from S13 onwards are performed.

[0105] As long as an operation is performed in the other engineering device to start the process of selecting and reading out the data of each module from the module configuration data, the subsequent processes can be performed without human intervention by the other engineering device and the engineering device 10. Therefore, it becomes possible to transfer the module configuration data generated in the other engineering device to the engineering device 10 without human intervention.

[0106] Here, it is assumed that the engineering device mainly used is not the engineering device 10 but another engineering device. In this case, when a new module is added in the other engineering device, data of the added module is converted into definition data without human intervention and is supplied to the definition data import unit 18 of the engineering device 10. When the definition data is supplied to the definition data import unit 18, the object data generating unit 12 of the engineering device 10 generates object data including property data and mounting position data corresponding to the added module in the database unit 11. In this case, the engineering device 10 performs the process of S13 after generating the object data, but does not perform the processes of S14 and S15 so as not to cause the object data to compete with the system configuration data generated by the other engineering device. This allows the module configuration data to be stored in duplicate in the two engineering devices, so that either of the two engineering devices can refer to the most recent module configuration data.

[0107] (Example of configuration when replacing a module) For example, assume a situation in which, in response to the discontinuation of production of IO module 151 manufactured by company A, IO module 151 mounted on control system 100 is replaced with IO module 153 manufactured by company B which, like IO module 151, receives an analog current signal, converts it to a digital signal, and outputs it. The operator of engineering device 10 is aware of the correspondence between the property data of IO module 151 and the property data of IO module 153, and creates a conversion table for converting the property data of IO module 151 into the property data of IO module 153, and stores the conversion table in database unit 11.

[0108] In this case, for example, a conversion table is defined so that items such as "communication data upper limit (bytes)" and "communication data lower limit (bytes)" that do not exist in the property data of IO module 151 but exist in the property data of IO module 153 are assigned predetermined values. Conversely, when there is an item that exists in the property data of IO module 151 but does not exist in the property data of IO module 153, if there is no problem in not using the data of that item, the conversion table is defined so that the data is discarded so that it is not included after conversion. However, it is preferable to replace IO module 151 with IO module 150 that can take over all of the property data of IO module 151.

[0109] The object data generating unit 12 performs the following process for each piece of object data corresponding to each of the IO modules 151 mounted in the control system 100 and stored in the database unit 11, in accordance with operations by an operator via the operation unit 14 and the display processing unit 16. That is, the object data generating unit 12 uses a conversion table stored in the database unit 11 to convert the object data into definition data in a common format corresponding to the IO module 153.

[0110] Here, since the object data before conversion includes property data and mounting position data, the definition data after conversion also includes property data and mounting position data. Therefore, the format of the definition data is text data in a common format in which three items, "(item name)", "(data type)", and "(setting data)", are repeated, separated by commas, as in the case of "(configuration example of transferring module configuration data from another engineering device)" described above. Mounting position data is included at the end of the definition data in the format of "Net, (data type), (setting data), Node, (data type), (setting data), Slot, (data type), (setting data)". Each of the "(setting data)" is the property data corresponding to each item, or the mounting position data.

[0111] The object data generating unit 12 is given in advance by an operator the module name of the replaced IO module 153, "AI made by company B AI ch.16 4-20mA". The object data generating unit 12 performs the processes of S6 and S7 in Fig. 7, and in the process of S7, rewrites the "virtual class initial name", which is data corresponding to the item "class name" in the secured memory area, to the given "AI made by company B AI ch.16 4-20mA". Thereafter, the object data generating unit 12 performs the process of S8, and in the process of S8, also performs the process of writing property data and mounting position data into the generated object data.

[0112] When the object data generation unit 12 completes the above processing for the object data of all IO modules 151, it deletes the object data corresponding to each of the IO modules 151 mounted in the control system 100 from the database unit 11. After the IO module 151 mounted in the IO node 140 in the control system 100 is replaced with the IO module 153, the processing of S15 in Fig. 7 is performed, so that the replaced IO module 153 operates normally.

[0113] (Another example of a virtual class configuration (part 1)) In the above embodiment, it was explained that in the "Properties" item of virtual class 40 shown in Figure 4, it is necessary to provide a partition having a number and structure capable of writing items included in the definition data of any exception IO module, the data type for each item, and data of a size according to the data type for each item, and the size of each partition is large enough to write any item included in the definition data of any exception IO module, the data type corresponding to any item, or data corresponding to any item.

[0114] In contrast to this, the "Properties" item of the virtual class 40 may be provided with partitions of the number and structure in which items included in the definition data of any exception IO module and the data type of each item can be written, and the size of each partition is such that any item included in the definition data of any exception IO module and any data type corresponding to any item can be written. In other words, the "Properties" item of the virtual class 40 may not be provided with partitions in advance for recording data.

[0115] In this case, when the object data generating unit 12 secures a storage area for the object data in the process of S6 in Fig. 7, it refers to each "(data type)" included in the definition data 60 and secures the storage area so that it includes a section for recording data of a size determined by each "(data type)". In this way, it becomes possible to reduce the storage area allocated to the virtual class 40 in the database unit 11.

[0116] (Another example of a virtual class configuration (part 2)) As in the above embodiment, instead of providing partitions in advance in the "Properties" item of the virtual class 40, when generating object data of the virtual class 40, numerical values ​​indicating the number, structure, and size of partitions to be generated in the "Properties" item may be preset in the virtual class 40. In this way, when the object data generating unit 12 secures a storage area for the object data according to the virtual class 40 in the process of S6 in FIG. 7, the object data generating unit 12 may refer to the numerical values ​​indicating the number, structure, and size of partitions to be generated in the "Properties" item shown in the virtual class 40, secure a storage area in which partitions of a predetermined number, structure, and size can be generated in the "Properties" item of the object data, and generate the partitions of the "Properties" item in the secured storage area. In this way, it is possible to reduce the storage area to be allocated to the virtual class 40 in the database unit 11.

[0117] It is also possible to determine the number, structure, and size of partitions to be generated in the "Properties" item of virtual class 40 without considering the partitions in which data will be recorded. In this case, in the process of S6, object data generation unit 12 will reference each of the "(data types)" in definition data 60 and secure a memory area to include partitions in which data of a size determined by each of the "(data types)" will be recorded.

[0118] (Another configuration example regarding the virtual class usage module name table) In the above embodiment, the database unit 11 stores the virtual class use module name table 50 shown in Fig. 5. However, the database unit 11 may have the following configuration without storing the virtual class use module name table 50. In the engineering device 10, the display processing unit 16 and the definition data storage unit 13 are connected. In the process of S3 in Fig. 7, the display processing unit 16 reads out the module name shown as the file name of the definition data 60 stored in the definition data storage unit 13, instead of reading out the module name from the virtual class use module name table 50.

[0119] 7, instead of determining whether the imported module name is stored in the virtual class using module name table 50 of the database unit 11, the object data generation unit 12 determines whether the imported module name matches any of the module names shown as file names of the definition data 60 stored in the definition data storage unit 13. In this case, the case where the object data generation unit 12 determines that the imported module name matches any of the module names corresponds to the "Yes" case of the S5 process, and the case where the object data generation unit 12 determines that the imported module name does not match any of the module names corresponds to the "No" case of the S5 process.

[0120] Also, instead of referring to definition data storage unit 13 and performing the process of S5 as described above, object data generation unit 12 may refer to individual class 30 stored in database unit 11 and perform the process of S5. That is, in the process of S5, object data generation unit 12 determines whether or not the imported module name matches any of the module names shown in the "class name" item of individual class 30 stored in database unit 11. In this case, the case where object data generation unit 12 determines that the imported module name matches any of the module names corresponds to the "No" case of the process of S5, and the case where object data generation unit 12 determines that the imported module name does not match any of the module names corresponds to the "Yes" case of the process of S5.

[0121] (Other configuration examples) In the above embodiment, the definition data 60 in a common format corresponding to the exception IO module is text data, as shown in Fig. 6. By making it text data, it can be visually confirmed, so that the operator of the control system 100 and company B can easily confirm the conditions of the data corresponding to each item while referring to the definition data 60. However, as long as the common format allows the object data generating unit 12 to read out the individual data included in any definition data 60, that is, the name of the item and the data type, any format may be used, and data other than text data may be used.

[0122] In the above embodiment, the data formats of the individual class 30, the virtual class 40, and the definition data 60 include "(data type)". In contrast, the data formats of the individual class 30, the virtual class 40, and the definition data 60 may not include "(data type)". If "(data type)" is not included in the individual class 30, for example, the data format of the individual class 30 needs to be a data format in which a partition for recording data of a size capable of writing data corresponding to each item is provided in advance so that the object data generating unit 12 can secure a memory area including a partition for recording data in the process of S9 in FIG. 7.

[0123] On the other hand, even if "(data type)" is not included in virtual class 40, as described above, virtual class 40 has partitions in which data corresponding to each item is recorded, so that the processing of S6 in FIG. 7 can secure memory space for the partitions in which the items and data are written.

[0124] In the above embodiment, an example is shown in which the class ID of the exception IO module using the virtual class 40 is displayed as "virtual class" on the new object creation screen 250 shown in FIG. 10. In contrast, in order not to display to the operator the existence of the virtual class 40, the display processing unit 16 may perform the following process. That is, in the process of S3 in FIG. 7, the display processing unit 16 may associate a part of the read module name instead of associating the "virtual class" which is the class ID of the virtual class 40, every time the module name stored in the virtual class use module name table 50 of the database unit 11 is read. For example, when the display processing unit 16 reads "AI AI ch.16 4-20mA made by company B" as the module name from the virtual class use module name table 50, the display processing unit 16 may associate the part of the module name, "AI AI made by company B", with the read module name. By doing this, on the new object creation screen 250, "AI AI ch.16 4-20mA made by company B" is displayed in the "Module name (class name)" column, and "AI AI made by company B" is displayed in the corresponding "Class ID" column, preventing any display that would suggest to the operator the existence of virtual class 40.

[0125] (Computer Configuration) FIG. 14 is a schematic block diagram showing a configuration of a computer according to at least one embodiment. The computer 90 includes a processor 91, a main memory 92, a storage 93, and an interface 94. The above-mentioned engineering device 10 is implemented in the computer 90. The operations of the above-mentioned processing units, i.e., the database unit 11, the object data generating unit 12, the display processing unit 16, the output unit 17, and the definition data import unit 18, and the operations of the software part of the operation unit 14 are stored in the storage 93 in the form of a program. The processor 91 reads the program from the storage 93, expands it in the main memory 92, and executes the above-mentioned processing according to the program. The processor 91 also secures a storage area corresponding to the above-mentioned database unit 11 and the definition data storage unit 13 in the main memory 92 or the storage 93 according to the program. The hardware part of the operation unit 14 (the input device included in the operation unit 14) and the display unit 15 are connected via the interface 94. Therefore, the hardware portion of the operation unit 14 and the display unit 15 may or may not be components of the computer 90, that is, components of the engineering device 10 as described above.

[0126] The program may be for realizing a part of the functions to be performed by the computer 90. For example, the program may be for realizing the functions by combining with other programs already stored in the storage 93 or by combining with other programs implemented in other devices. In other embodiments, the computer may include a custom LSI (Large Scale Integrated Circuit) such as a PLD (Programmable Logic Device) in addition to or instead of the above configuration. Examples of PLDs include PAL (Programmable Array Logic), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), and FPGA (Field Programmable Gate Array). In this case, some or all of the functions to be realized by the processor may be realized by the integrated circuit.

[0127] Examples of the storage 93 include a hard disk drive (HDD), a solid state drive (SSD), a magnetic disk, a magneto-optical disk, a compact disc read only memory (CD-ROM), a digital versatile disc read only memory (DVD-ROM), and a semiconductor memory. The storage 93 may be an internal medium directly connected to the bus of the computer 90, or an external medium connected to the computer 90 via an interface 94 or a communication line. In addition, when the program is distributed to the computer 90 via a communication line, the computer 90 that receives the program may load the program into the main memory 92 and execute the above-mentioned process. In at least one embodiment, the storage 93 is a non-transitory tangible storage medium.

[0128] <Additional Notes> The engineering apparatus 10 according to the embodiment of the present disclosure can be understood, for example, as follows.

[0129] (1) The engineering device 10 according to the first aspect includes a storage unit (e.g., database unit 11) that stores a virtual data format (e.g., virtual class 40) commonly used for a first type of module (e.g., an exceptional IO module such as IO module 153) in which definition data defining a module (e.g., IO modules 151, 152, 153, etc.) mounted on a control system 100 is given as data in a predetermined common format, and an object data generating unit 12 that, when the mounted module is the first type of module, secures a storage area in the storage unit in which the contents of the virtual data format are reflected based on the virtual data format, writes items indicated in the definition data (e.g., definition data 60) of the mounted module according to a data format indicated by the definition data in the secured storage area, and writes a module name of the mounted module to generate object data (e.g., object data 40-1). According to this aspect and each of the following aspects, it is possible to reduce the time from obtaining definition data to making a module corresponding to the definition data available in the control system.

[0130] (2) The engineering device 10 according to a second aspect is the engineering device 10 of (1), wherein the virtual data format is predetermined to include at least the data format indicated by the definition data of any of the first type modules.

[0131] (3) The engineering device 10 according to a third aspect is the engineering device 10 according to (1) or (2), in which the storage unit stores an individual data format (e.g., individual class 30-1) of a second type module (e.g., a normal IO module such as IO modules 151, 152) different from the first type module, the individual data format of the second type module being determined by the definition data, in a state including a module name of the second type module and items indicated in the definition data, and the object data generation unit determines whether a given module name is a module name of the first type module or a module name of the second type module, and generates the object data of the second type module. If it is determined that the module name is a module name of a type of module, a storage area in which the contents of the individual data format are reflected in the storage unit based on the individual data format corresponding to the given module name is secured, and object data (e.g., object data 30-1-1, 30-1-2) is generated, and if it is determined that the module name is a first type of module, a storage area in which the contents of the virtual data format are reflected in the storage unit based on the virtual data format is secured, and items indicated in the definition data of the module corresponding to the given module name are written in the secured storage area according to the data format indicated by the definition data, and the given module name is written to generate object data. According to this aspect, if an operator of the engineering device 10 specifies only the module names of modules mounted in the control system 100, each object data can be generated without being aware of whether the module is a normally used module or an exceptionally used module that generates object data using a virtual data format.

[0132] (4) The engineering device 10 according to a fourth aspect is any one of the engineering devices 10 of (1) to (3), in which the definition data of the first type of module is provided as text data in the common format. According to this aspect, it becomes easy for a provider of the definition data and a user to confirm the contents of the definition data while referring to the definition data.

[0133] (5) The engineering device 10 according to a fifth aspect is any one of the engineering devices 10 of (1) to (4), in which the first type module is an IO module or a CPU module.

[0134] (6) An engineering device 10 according to a sixth aspect is any one of the engineering devices 10 of (1) to (5), wherein the object data generation unit writes into the object data setting data provided by an input operation by an operator of the device itself or provided by being included in the definition data of the first type of module, the setting data including property data defining the operating state of the module and mounting position data indicating the position at which the module is mounted in the control system.

[0135] (7) The engineering device 10 according to a seventh aspect is any one of the engineering devices 10 of (1) to (6), in which the definition data of the first type module is generated in a state including property data that defines an operating state of the module from module configuration data generated by another engineering device, and mounting position data that indicates a position where the module is mounted in the control system. According to this aspect, it becomes easy to transfer module configuration data from another engineering device to the engineering device 10, and to dually manage module configuration data by the other engineering device and the engineering device 10.

[0136] (8) An engineering device 10 according to an eighth aspect is the engineering device 10 of (3), in which, when the second type module is replaced with the first type module in the control system, the memory unit stores a conversion table indicating a correspondence between property data defining an operating state of the first type module and property data defining an operating state of the second type module, and the object data generation unit converts the object data of the second type module stored in the memory unit, the object data including the second type of property data and mounting position data indicating a position where the second type module is mounted in the control system, into definition data of the common format of the first type module based on the conversion table, secures a memory area in the memory unit where the contents of the virtual data format are reflected based on the virtual data format, writes the items indicated in the definition data, the property data, and the mounting position data in accordance with a data format indicated by the definition data, into the secured memory area, and writes a module name of the first type module to be replaced to generate object data. According to this aspect, when replacing a second type module with a first type module, if a conversion table is created, object data can be easily transferred using a virtual data format, thereby preventing human errors that occur when manually rewriting object data one by one. [Explanation of symbols]

[0137] 1. Plant systems 10. Engineering equipment 11. Database 12...Object data generation section 13...Definition data storage section 14...Operation unit 15...Display section 16...Display processing unit 17...Output section 100…Control system 110...Control device 111,112…Communication module 115…CPU module 120...Gateway device 130…Ring network 140…IO node 141...Communication module 142-1 to 142-8...Interface 143-1~143-8…Slot 151, 152, 153…IO Module 160…Plant 161,163…Sensor 162...Actuator

Claims

1. a storage unit that stores a virtual data format commonly used for a first type of module, the first type of module being provided as data in a predetermined common format, the definition data defining the module being mounted on the control system; an object data generating unit which, when the mounted module is the first type module, secures a storage area in the storage unit based on the virtual data format in which the contents of the virtual data format are reflected, writes items indicated in the definition data of the mounted module in accordance with the data format indicated by the definition data in the secured storage area, and writes a module name of the mounted module to generate object data; An engineering device comprising:

2. The virtual data format is predetermined to include at least a data format indicated by the definition data of any one of the first type modules. The engineering device of claim 1 .

3. the storage unit stores an individual data format of a second type module, which is a module of a different type from the first type module, and whose individual data format is defined by the definition data, in a state including a module name of the second type module and items indicated in the definition data; The object data generation unit determining whether a given module name is a module name of the first type module or a module name of the second type module; if it is determined that the module name is that of the second type module, a storage area is secured in the storage unit based on the individual data format corresponding to the given module name, in which the contents of the individual data format are reflected, and object data is generated; when it is determined that the given module name is the module name of the first type module, a storage area in which the contents of the virtual data format are reflected in the storage unit based on the virtual data format, items indicated in the definition data of the module corresponding to the given module name are written in the secured storage area according to the data format indicated by the definition data, and the given module name is written to generate object data. The engineering device of claim 1 .

4. The first type of module is an IO module or a CPU module. The engineering device of claim 1 .

5. the definition data of the first type module is provided as text data in the common format; The engineering device of claim 1 .

6. The object data generation unit writing setting data into the object data, the setting data being provided by an input operation by an operator of the device itself or being included in the definition data of the first type module, the setting data including property data defining an operating state of the module and mounting position data indicating a position where the module is mounted in the control system; The engineering device of claim 1 .

7. The definition data of the first type module is generated in a state including property data that defines an operating state of the module from module configuration data generated by another engineering device, and mounting position data that indicates a position where the module is mounted in the control system. The engineering device of claim 1 .

8. When the second type module is replaced with the first type module in the control system, the storage unit stores a conversion table indicating a correspondence relationship between property data defining an operation state of the first type module and property data defining an operation state of the second type module; the object data generation unit converts the object data of the second type module stored in the storage unit, the object data including the property data of the second type and mounting position data indicating a position at which the second type module is mounted in the control system, into definition data of the common format of the first type module based on the conversion table, secures a memory area in the storage unit in which the contents of the virtual data format are reflected based on the virtual data format, writes the items indicated in the definition data, the property data, and the mounting position data in accordance with a data format indicated by the definition data, into the secured memory area, and writes a module name of the first type module to be replaced, thereby generating object data.

4. The engineering device of claim 3.

9. a step of storing in a storage unit a virtual data format commonly used for a first type of module, the first type of module being provided as data in a predetermined common format, the virtual data format being defined as data that defines a module to be mounted on the control system; a step of reserving a memory area in the memory unit in which the contents of the virtual data format are reflected based on the virtual data format when the mounted module is the first type module, writing items indicated in the definition data of the mounted module in accordance with the data format indicated by the definition data into the reserved memory area, and writing a module name of the mounted module to generate object data; 13. A method for generating object data comprising:

10. a step of storing in a storage unit a virtual data format commonly used for a first type of module, the first type of module being provided as data in a predetermined common format, the virtual data format being defined as data that defines a module to be mounted on the control system; a step of reserving a memory area in the memory unit in which the contents of the virtual data format are reflected based on the virtual data format when the mounted module is the first type module, writing items indicated in the definition data of the mounted module in accordance with the data format indicated by the definition data into the reserved memory area, and writing a module name of the mounted module to generate object data; A program that causes a computer to execute the following.

Citation Information

Patent Citations

  • Engineering device

    JP2013142933A