DATA PROCESSING DEVICE, DATA PROCESSING METHOD, AND COMPUTER READABLE MEDIUM
20200235958 ยท 2020-07-23
Assignee
Inventors
Cpc classification
G06F11/1658
PHYSICS
G06F11/20
PHYSICS
G06F11/2048
PHYSICS
International classification
Abstract
A process data management unit receives operand data, which is iteratively transmitted from PIO units and for which a sequence number is set, from the PIO units, carries out operations for the received operand data, and transmits results of the operations to the PIO units. A sequence number management unit calculates the sequence number of the operand data, for which the process data management unit is to subsequently carry out the operations, as a next sequence number, each time the process data management unit carries out the operations, and notifies a standby controller of the calculated next sequence number through the control network. A tracking data management unit transmits tracking data through the control network to the standby controller, in case where a current controller is temporarily provided with a transmission right for the tracking data.
Claims
1-5. (canceled)
6. A data processing device that is connected to a backup device through a first network connected to a higher-level device and that is connected to equipment through a second network different from the first network, the data processing device comprising: processing circuitry to: receive operand data, which is iteratively transmitted from the equipment and for which a sequence number is set, from the equipment through the second network, carry out operations for the received operand data, and transmit results of the operations through the second network to the equipment; calculate the sequence number of the operand data, for which the operations are to be subsequently carried out, as a next sequence number, each time the operation s are carried out and notify the backup device of the calculated next sequence number through the first network; and in case where the data processing device is temporarily provided with a transmission right for tracking data for notification of the results of the operations and an internal state of the data processing device, transmit the tracking data through the first network to the backup device.
7. The data processing device according to claim 6, wherein in case where the data processing device is temporarily provided with the transmission right, the processing circuitry determines whether the tracking data has been transmitted to the backup device in the past or not, and in case where the tracking data has not been transmitted to the backup device, the processing circuitry transmits the tracking data through the first network to the backup device.
8. The data processing device according to claim 6, wherein in case where the data processing device is temporarily provided with the transmission right, the processing circuitry transmits the tracking data for notification of latest results of the operations and a current internal state of the data processing device, through the first network to the backup device.
9. A data processing method by a computer that is connected to a backup device through a first network connected to a higher-level device and that is connected to equipment through a second network different from the first network, the data processing method comprising: receiving operand data, which is iteratively transmitted from the equipment and for which a sequence number is set, from the equipment through the second network, carrying out operations for the received operand data, and transmitting results of the operations through the second network to the equipment; calculating the sequence number of the operand data, for which the operations are to be subsequently carried out, as a next sequence number, each time the operations are carried out, and notifying the backup device of the calculated next sequence number through the first network; and in case where the computer is temporarily provided with a transmission right for tracking data for notification of the results of the operations and an internal state of the computer, transmitting the tracking data through the first network to the backup device.
10. A non-transitory computer readable medium storing a data processing program that causes a computer, which is connected to a backup device through a first network connected to a higher-level device and which is connected to equipment through a second network different from the first network, to execute: operation management processing of receiving operand data, which is iteratively transmitted from the equipment and for which a sequence number is set, from the equipment through the second network, carrying out operations for the received operand data, and transmitting results of the operations through the second network to the equipment; sequence number management processing of calculating the sequence number of the operand data, for which the operations of the operation management processing are to be subsequently carried out, as a next sequence number, each time the operations of the operation management processing are carried out, and notifying the backup device of the calculated next sequence number through the first network; and tracking data management processing, in case where the computer is temporarily provided with a transmission right for tracking data for notification of the results of the operations of the operation management processing and an internal state of the computer, of transmitting the tracking data through the first network to the backup device.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
DESCRIPTION OF EMBODIMENTS
Embodiment 1
Description on Configurations
[0050]
[0051] The control network 101, the HMI 102, an I/O network 103, the input/output terminal 104a, the input/output terminal 104b, the input/output terminal 104c, the PIO unit 106a, the PIO unit 106b, the PIO unit 106c, and the plant 109 are the same as illustrated in
[0052] A controller 11a and a controller 11b are connected through the control network 101 to the HMI 102. The HMI 102 corresponds to a higher-level device. The control network 101 corresponds to a first network.
[0053] The controller 11a and the controller 11b are connected through the I/O network 103 to the PIO units 106a, 106b, and 106c. The PIO units 106a, 106b, and 106c each correspond to the equipment. The 110 network 103 corresponds to a second network.
[0054] The controller 11 a carries out operations based on data (a state of the plant 109) received from the PIO units 106 and on instructions received from the HMI 102 and periodically transmits data indicating results of the operations to the PIO units 106. The controller 11a transmits the state of the plant 109 to the HMI 102. The controller 11b stands by while the controller 11a acts normally and supersedes the controller 11a when an abnormality occurs in the controller 11a. The controller 11a may be referred to as a current controller 11 and the controller 11b may be referred to as a standby controller 11. In the drawings, the controller 11a may be described as CURRENT and the controller 11b may be described as STANDBY.
[0055] The controller 11a corresponds to the data processing device. Actions that are carried out by the controller 11a correspond to the data processing method.
[0056] The controller 11b backs up the controller 11a and corresponds to the backup device.
[0057] Hereinbelow, the controller 11a and the controller 11b may be collectively referred to as controllers 11 when the controller 11a and the controller 11b do not have to be distinguished.
[0058]
[0059] The controller 11 is a computer.
[0060] The controller 11 includes a processor 201, a memory 202, a ROM (Read Only Memory) 203, a PIO interface 204, and a control network interface 205, as hardware.
[0061] Programs that fulfil functions of a control unit 303 that will be described later are stored in the ROM 203.
[0062] The programs that fulfil the functions of the control unit 303 are loaded from the ROM 203 onto the memory 202 and are executed by the processor 201.
[0063] The PIO interface 204 is an interface with the I/O network 103. The PIO interface 204 receives process data from the PIO units 106 and transmits process data for the PIO units 106 to the PIO units 106.
[0064] The control network interface 205 is an interface with the control network 101. The control network interface 205 of the controller 11a transmits a message for notification of a sequence number of the process data to the controller 11b and transmits tracking data to the controller 11b. The control network interface 205 of the controller 11b receives the message for the notification of the sequence number from the controller 11a and receives the tracking data from the controller 11a.
[0065]
[0066] A reception unit 301 receives data from the control network 101 or the I/O network 103.
[0067] A transmission unit 302 transmits data to the control network 101 or the I/O network 103.
[0068] More specifically, the reception unit 301 of the current controller 11 receives the process data from the PIO units 106 through the I/O network 103. The reception unit 301 of the controller 11a receives the instructions from the HMI 102 through the control network 101. The transmission unit 302 of the controller 11a transmits the message for the notification of the sequence number and the tracking data through the control network 101 to the controller 11b.
[0069] The reception unit 301 of the controller 11b receives the process data from the PIO units 106 through the I/O network 103. The reception unit 301 of the controller 11b receives the instructions from the HMI 102 through the control network 101. The reception unit 301 of the controller 11b receives the message for the notification of the sequence number and the tracking data from the controller 11a through the control network 101.
[0070] The reception unit 301 and the transmission unit 302 are implemented by the PIO interface 204 and the control network interface 205.
[0071] The control unit 303 controls actions of the controller 11.
[0072] The control unit 303 is composed of a process data management unit 304, a time measurement unit 305, a sequence number management unit 306, and a tracking data management unit 307.
[0073] In the current controller 11, the process data management unit 304 receives the process data (example of operand data), which is iteratively transmitted from the PIO units 106 and for which a sequence number is set, from the PIO units 106 through the I/O network 103 and the reception unit 301. The process data management unit 304 carries out operations for the received process data and transmit results of the operations through the transmission unit 302 and the I/O network 103 to the PIO units 106.
[0074] In the standby controller 11, the process data management unit 304 selects the process data to be used in the operations, based on a next sequence number (to be described later) notified from the current controller 11. Then the operations for the selected process data are carried out. In the standby controller 11, the process data management unit 304 does not transmit the results of the operations.
[0075] The process data management unit 304 of the current controller 11 corresponds to the operation management unit. Processing that is carried out by the process data management unit 304 of the current controller 11 corresponds to the operation management processing.
[0076] In the current controller 11, the time measurement unit 305 measures time t.sub.d that will be described later.
[0077] In the current controller 11, the sequence number management unit 306 calculates a sequence number of the process data, for which the process data management unit 304 is to subsequently carry out operations, as the next sequence number, each time the process data management unit 304 carries out the operations. Then the sequence number management unit 306 notifies the standby controller 11 of the calculated next sequence number through the transmission unit 302 and the control network 101.
[0078] In the standby controller 11, the sequence number management unit 306 stores the next sequence number notified from the current controller 11, in a storage unit 308.
[0079] Processing that is carried out by the sequence number management unit 306 of the current controller 11 corresponds to the sequence number management processing.
[0080] In the current controller 11, the tracking data management unit 307 transmits the tracking data through the transmission unit 302 and the control network 101 to the standby controller 11, in case where the current controller 11 is temporarily provided with a transmission right for the tracking data. The tracking data is data for notification of the results of the operations by the process data management unit 304 and an internal state of the current controller 11.
[0081] More specifically, in case where the current controller 11 is temporarily provided with the transmission right, the tracking data management unit 307 of the current controller 11 determines whether the tracking data has been transmitted to the standby controller 11 in the past or not. In case where the tracking data has not been transmitted to the standby controller 11, the tracking data for notification of latest results of the operations by the process data management unit 304 and the current internal state of the current controller 11 is transmitted to the standby controller 11.
[0082] In the standby controller 11, the tracking data management unit 307 receives the tracking data through the control network 101 and the reception unit 301 and stores the received tracking data in the storage unit 308. In the standby controller 11, the tracking data management unit 307 carries out an update of the results of the operations and an update of the internal state of the standby controller 11, based on the tracking data.
[0083] Processing that is carried out by the tracking data management unit 307 of the current controller 11 corresponds to the tracking data management processing.
[0084] Functions of the process data management unit 304, the time measurement unit 305, the sequence number management unit 306, and the tracking data management unit 307 are implemented by programs, for instance. The programs that fulfil the functions of the process data management unit 304, the time measurement unit 305, the sequence number management unit 306, and the tracking data management unit 307 are executed by the processor 201. The programs that fulfil the functions of the process data management unit 304, the time measurement unit 305, the sequence number management unit 306, and the tracking data management unit 307 correspond to the data processing programs.
[0085] The storage unit 308 stores the received process data, the results of the operations by the process data management unit 304, measurement time given by the time measurement unit 305, the next sequence number, the tracking data, and the like.
[0086] The storage unit 308 is implemented by the memory 202.
Description on Actions
[0087] Actions according to the present embodiment will next be described with use of
[0088] In the present embodiment, a concept of the transmission right for the tracking data is introduced.
[0089] The current controller 11 is temporarily provided with the transmission right for the tracking data. The current controller 11 is capable of transmitting the tracking data only while the current controller 11 is provided with the transmission right for the tracking data. When the transmission right for the tracking data is not provided, the current controller 11 is incapable of transmitting the tracking data. That is, the current controller 11 then skips the tracking data transmission processing.
[0090] Only one transmission right exists on the control network 101 at the same time. It is assumed that one node determined arbitrarily in advance has the first transmission right in the system. It is assumed hereinbelow that the HMI 102 has the first transmission right.
[0091] After the system is activated, the HMI 102 selects one current controller 11 from among a plurality of current controllers 11 and transmits the transmission right for the tracking data to the selected current controller 11.
[0092] In
[0093] At time t.sub.400, the reception unit 301 of the controller 11a receives PD #1.
[0094] In the controller 11a, the time measurement unit 305 measures the time t.sub.d from reception of PD #1 at the time t.sub.400 to actual use of PD #1 at time t.sub.401.
[0095] At the time t.sub.401, the process data management unit 304 of the controller 11a carries out the process data acquisition processing as with the conventional controller 100a illustrated in
[0096] In the controller 11a, at time t.sub.413 after the transmission of the process data, the sequence number management unit 306 calculates a next sequence number P.sub.next. The next sequence number P.sub.next is a sequence number of the process data for which the process data management unit 304 is to subsequently carry out operations, as previously described.
[0097] Specifically, the sequence number management unit 306 calculates the next sequence number P.sub.next in accordance with expression 1. In expression 1, P.sub.last denotes the sequence number of the process data used in last operations. Besides, t.sub.c denotes the control period, t.sub.p denotes the process data period, and t.sub.d denotes the time measured by the time measurement unit 305.
[0098] Then the sequence number management unit 306 notifies the controller 11b of the next sequence number P.sub.next through the transmission unit 302 and the control network 101.
[0099] In an example of
[0102] After transmitting the tracking data, the controller 11a returns the transmission right for the tracking data to the HMI 102.
[0103] Though the controller 11b receives PD #5 at time t.sub.403, the controller 11b discards PD #5 because PD #5 is greater than PD #4 that is the next sequence number notified from the controller 11a.
[0104] Above actions remove necessity for communication of the tracking data because the process data used in the operations in the controller 11b is the same as that in the controller 11a after the actions.
[0105] An example of actions of the controller 11a will next be described with reference to a flowchart of
[0106] In step S100, the reception unit 301 receives the process data transmitted from the PIO units 106, through the I/O network 103. The process data management unit 304 stores the process data in the storage unit 308.
[0107] Simultaneously with step S100, the time measurement unit 305 starts measurement of the time span t.sub.d.
[0108] In step S110, subsequently, the process data management unit 304 acquires the process data from the storage unit 308 and carries out operations with use of the process data. Simultaneously with step S110, the time measurement unit 305 stops the measurement of the time span t.sub.d.
[0109] In step S120, subsequently, the transmission unit 302 transmits from the I/O network 103, to the PIO units 106, the process data for notification of results of the operations.
[0110] In step S130, subsequently, the sequence number management unit 306 calculates the next sequence number P .sub.next in accordance with above-mentioned expression 1 and the transmission unit 302 notifies the controller 11b of the next sequence number P.sub.next through the control network 101.
[0111] In step S140, subsequently, the tracking data management unit 307 determines whether the controller 11a is provided with the transmission right for the tracking data or not.
[0112] In case where the controller 11a is provided with the transmission right for the tracking data, the tracking data management unit 307 determines whether or not the tracking data has been transmitted to the controller 11b since the system was activated.
[0113] In case where the tracking data has not been transmitted to the controller 11b, the transmission unit 302 transmits the tracking data through the control network 101 to the controller 11b.
[0114] In step S170, finally, the transmission unit 302 returns the transmission right for the tracking data to the HMI 102.
[0115] An example of actions of the controller 11b will next be described with reference to a flowchart of
[0116] When the reception unit 301 receives the tracking data in step S200, the tracking data management unit 307 updates the internal state of the controller 11b and the results of the operations in accordance with the tracking data in step S210. The tracking data management unit 307 stores the internal state and the results of the operations that have been updated, in the storage unit 308.
[0117] When notification of the next sequence number P.sub.next is given by the controller 11a in step S220, the sequence number management unit 306 stores the next sequence number P.sub.next in the storage unit 308 in step S230.
[0118] When the reception unit 301 receives the process data in step S240, the process data management unit 304 stores the process data in the storage unit 308 in step S250.
[0119] In step S260, subsequently, the process data management unit 304 determines whether the sequence number of the process data received in step S240 coincides with the next sequence number P.sub.next or not.
[0120] In case where the sequence number of the process data received in step S240 does not coincide with the next sequence number P.sub.next, the process data management unit 304 discards the process data in step S270.
[0121] On the other hand, in case where the sequence number of the process data received in step S240 coincides with the next sequence number P.sub.next, the process data management unit 304 carries out operations with use of the process data. Then the process data management unit 304 stores results of the operations in the storage unit 308.
Description on Effects of Embodiment
[0122] In the present embodiment, as described above, the current controller 11 transmits the tracking data to the standby controller 11 only when being provided with the transmission right for the tracking data. Thus the situation in which the network band is oppressed by the transmission of the tracking data can be avoided.
[0123] In case where a technique described in the present embodiment is not used, the tracking data is transmitted from the current controller to the standby controller in each control period t.sub.c. In case where the technique described in the present embodiment is not used, therefore, a band required for the communication of the tracking data between a pair of the current controller and the standby controller has a value obtained by multiplication of the number of repetitions n.sub.p of the control period t.sub.c by a data size d.sub.t of the tracking data. On conditions of n.sub.p=50 (times) and the data size d.sub.t=240 Mbps, for instance, the band required for the communication of the tracking data is 12 Gbps. Costs of the control network 101 are increased in case where the technique described for the present embodiment is not used, because methods (such as 10GBASE-T) for realizing the communication over 1 Gbp are becoming widespread but are still expensive. In the present embodiment, the tracking data is transmitted only one time between one pair of the current controller and the standby controller. Accordingly, the band required for the communication of the tracking data between one pair of the current controller and the standby controller 11 is limited to the data size d.sub.t (240 Mbps) of the tracking data.
[0124] According to the present embodiment, therefore, the control network 101 may be configured with 1000BASE-T that is widespread and inexpensive.
[0125] In the present embodiment, the standby controller 11 is notified of the next sequence number each time the operations with use of the process data are carried out by the process data management unit 304 of the current controller 11. As a result, the standby controller 11 may continue the operations with use of the same process data that is used in the current controller 11 even though the number of the transmissions of the tracking data is decreased.
[0126] According to the present embodiment, integration of the tracking bus with the control network makes it possible to connect a plurality of standby controllers 11 to one current controller 11. Therefore, the system that is more reliable may be constructed.
Description on hardware configuration
[0127] Finally, supplementary description on the hardware configuration of the controller 11 will be given.
[0128] The processor 201 illustrated in
[0129] The processor 201 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or the like.
[0130] The memory 202 illustrated in
[0131] A flash memory or an HDD (Hard Disk Drive) may be used in place of the ROM 23.
[0132] The PIO interface 204 and the control network interface 205 that are illustrated in
[0133] Each of the PIO interface 204 and the control network interface 205 is a communication chip or an NIC (Network Interface Card), for instance.
[0134] An OS (Operating System) is also stored in the ROM 203.
[0135] At least a portion of the OS is executed by the processor 201.
[0136] While executing at least the portion of the OS, the processor 201 executes the programs that fulfil the functions of the process data management unit 304, the time measurement unit 305, the sequence number management unit 306, and the tracking data management unit 307 (which will be collectively referred to as the units, hereinbelow).
[0137] The processor 201 executes the OS, so that task management, memory management, file management, communication control, and the like are carried out.
[0138] The controller 11 may include a plurality of processors that substitute for the processor 201. Execution of the programs that fulfil the functions of the units is shared by the plurality of processors. Each of the processors is an IC that carries out processing as with the processor 201.
[0139] Information, data, signal values, variable values, and the like that indicate results of processing in the units are stored in at least any of the memory 202 and a register and a cache memory in the processor 201.
[0140] The programs that fulfil the functions of the units may be stored in a portable storage medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (a registered trademark) disk, or a DVD.
[0141] The units may be read as circuits, steps, procedures, or processing.
[0142] The controller 11 may be implemented by an electronic circuit such as a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
[0143] In this case, the units are each implemented as a portion of the electronic circuit. The processor and the electronic circuits may be collectively referred to as processing circuitry.
REFERENCE SIGNS LIST
[0144] 11: controller; 100: controller; 101: control network; 102: HMI; 103: I/O network; 104: input/output terminal; 105: tracking bus; 106: PIO unit; 109: plant; 201: processor; 202: memory; 203: ROM; 204: PIO interface; 205: control network interface; 301: reception unit; 302: transmission unit; 303: control unit; 304: process data management unit; 305: time measurement unit; 306: sequence number management unit; 307: tracking data management unit; 308: storage unit