Disclosed embodiments relate to the synchronization of data received from input and output modules for redundant process controllers in process control systems.
The failure of an industrial control system can lead to costly downtime. There is expense involved in restarting a process along with the actual production losses resulting from such a failure. If the process is designed to operate without supervisory or service personnel, all of the components in the process control system generally need to be fault-tolerant. A fault-tolerant industrial process control system may employ a 1:1 redundancy system to synchronize the data in respective memories of a primary process controller and a secondary process controller. These memories are maintained in an identical fashion in both a primary memory associated with a primary process controller and a secondary memory associated with a redundant secondary process controller.
The process controllers can comprise a Programmable Logic Controller (PLC) which includes various components that work together to bring information received from the field devices through input/output modules (IOs) that provide analog inputs (AIs) and digital inputs (DIs), evaluate that information along with other information including statuses, maintenance overrides, loop faults, channel faults and fault reaction, and then send control information back out to the IOs as analog outputs (AOs) and digital inputs (DOs) for controlling various controllable field devices such as actuators. These basic PLC components comprise a power supply, central processing unit (CPU) or other processor (e.g., microcontroller) that is referred to herein generally as a ‘process controller’, co-processor or co-controller modules, and IOs that are generally separate from the process controller.
In a known redundant control system there are a plurality of IO channels which can be digital or analog. These IO channels can be non-redundant meaning each process controller is physically connected to a shared IO, or can be configured redundant meaning each process controller is connected to a dedicated IO which separately process the field values received from field devices such as sensors. The IO's processing of field value data received from sensors includes converting these measured analog data signals into logic signals referred to as “scan values” which can also be received as digital signals when the sensor includes an Analog-to-Digital (ADC) converter, that along with override flags and values written via the supervisory computers as well as output status values also from the IO are used as inputs for the process controller. The process controller performs calculations using these inputs to generate control values as AOs and DOs. AIs, for example, may be sensor values such as temperature or pressure in form of electrical current (general 4-20 ma) or electrical voltage (generally 1-5 V). DIs, for example, may be valve open/close information or switch on/off status that have only 2 possible status, ON or OFF. AOs for example may be for driving a proportional valve, and DOs for example may be for driving open/close valves, lamps, horns or beacons.
In the case of redundant IOs, the scan values received by the process controllers that comprise AI, DI, as well as output status values also received from the IOs do not have to be equal for the respective process controllers that may be due to hardware and timing differences. However when used in an industrial application each process controller needs to use time-synchronized scan values so that both of the redundant process controllers agree on the received scan values so that they agree on their calculated DO and AO values because otherwise the respective controller applications can take a different control path. The process controllers evaluate the scan values, and other variables such as output status, and override values and flags received from the supervisory computers, as it executes a stored computer program. The process controller then generates DO and AO as control signals, and sends these control signals to the IO(s) to update the status of these outputs.
Regarding the outputs, in the known redundant control system the process controllers connects to redundant IO modules so that there are two separate IO modules that each convert the control signals which can be DO and AO received from the process controller into digital or analog values that can be used to control field devices such as actuators. The calculated output values generated by the process controllers comprising DO and AO are also be synchronized as the redundant IO channels of the respective process controllers are tied together and the redundant IO channels must have the same output state/value. Besides the needed data synchronization between the redundant process controllers, a plurality of statuses generally need to also be synchronized including maintenance overrides, loop faults, channel faults, and fault reaction.
This Summary is provided to introduce a brief selection of disclosed concepts in a simplified form that are further described below in the Detailed Description including the drawings provided. This Summary is not intended to limit the claimed subject matter's scope.
Disclosed process variable (PV) data synchronization and calculation between process controllers is implemented by process controllers that utilize only logic gates (e.g., AND, OR, or XOR gates) for performing the logical operations and calculations from the input scan data and output status values received from their IO, and override values and flags from the supervisory computer performed without any conditional branching. “No conditional branching” as used herein means for each data channel the logical operation is performed by the process controller independent of state or condition (e.g., a state or condition may be for example a software structure IF (condition is true) THEN do ELSE do), which is enabled by organizing the data in the processor's associated memory in a particular way that is described herein. As used herein, “memory organization” refers the location and organization of the bits and bytes in the processor's memory which enables the above described data and status synchronization using only logic gates that are exclusive of any conditional branching for synchronizing the scan values, output status, override flags and override values, and calculating and synchronizing DO, and AO.
The PV is the measured value of the process output, such as the temperature of a fluid exiting a tank, where the value of the PV is transmitted as a sensor signal from a sensor to the process controllers via the IOs which generates scan data comprising AI and DI, and output status. Disclosed data synchronization between process controllers makes the time for the process controllers to perform the calculations deterministic and always essentially the same so that they stay on the same control cycle.
The disclosed data synchronization and calculation between process controller arrangement provides better performance, a deterministic throughput, and can be represented as electronic schematic format which enables implementation with discrete electronics or PLDs. Disclosed process data synchronization and calculation between redundant process controller embodiments can generally be applied to any method or system architecture where multiple input values are available and need to be synchronized between redundant processor controllers.
Disclosed embodiments are described with reference to the attached figures, wherein like reference numerals, are used throughout the figures to designate similar or equivalent elements. The figures are not drawn to scale and they are provided merely to illustrate aspects disclosed herein. Several disclosed aspects are described below with reference to example applications for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide a full understanding of the embodiments disclosed herein.
Also, the terms “coupled to” or “couples with” (and the like) as used herein without further qualification are intended to describe either an indirect or direct electrical connection. Thus, if a first device “couples” to a second device, that connection can be through a direct electrical connection where there are only parasitics in the pathway, or through an indirect electrical connection via intervening items including other devices and connections. For indirect coupling, the intervening item generally does not modify the information of a signal but may adjust its current level, voltage level, and/or power level.
A redundancy link 135 is for sharing data between CP1 and CP2. The redundancy link 135 does not perform any calculations. The distributed data shared between the CPs includes a plurality of channel configurations comprising DO, DI, AI and AO.
A redundant IO module 160 comprises a first IO module (IOM) 150 and a second IOM 155 that are between the process controller 140 and field devices comprising sensors 112 and actuators 113 which are coupled to processing equipment 114. The first IOM 150 and a second IOM 155 are shown receiving a channel (ch) shown as ch17 input from the sensors 112 and transmitting a ch shown as a ch2 output (AO or DO received from their CP) to the sensors 112 and to the actuators 113.
The link 170 shown between the first IOM 150 and a second IOM 155 is the redundancy link between these redundant IOM. The IOMs 150 and 155 generate what is termed ‘scan values’ (AI and DI) and output status values from the data received from the field devices 112, 113 which is used by the process controller during ‘scan times’. During a scan cycle by process controllers CP1 and CP2, as with other process controllers, there are 5 main steps, comprising reading the scan values, output status, as well as the override values and override flags from the supervisory computer, executing the program, processing communication requests, executing controller diagnostics, and using the scan values from the IO(s) along with output status, override flags and override values from the supervisory computer for calculating and writing outputs comprising AOs and DOs.
A first connection leg (shown as LegA) is shown connecting CP1 to the first IOM 150, and a second connection leg (shown as LegB) is shown connecting CP2 to the second IOM 155. In operation CP1 receives scan values and output status values from first IOM 150 over LegA and CP2 receives the scan values output status values from second IOM 155 over LegB. The legs can be wireless, or wired legs such as utilizing Ethernet.
As described above, the data synchronization and calculations performed by CP1 and CP2 has no conditional branching. An example of conditional branching is an IF (condition is true) THEN do ELSE do, so that for each channel the logical operation and calculation is performed by the process controllers CP1 and CP2 independent of state or condition (states such as used with IF (condition is true) THEN do ELSE do. After distribution of synchronized AI and DI data generated by one process controller over the redundancy link 135 this synchronized AI, DI data is stored in the other process controller's memory 121 or 131 which is enabled by disclosed memory organization. Memory organization performed by the process controllers, CP1 and CP2 takes care of gathering all the property information (properties comprising scan values, output status values, override flags and override values) and putting it into memory before sending it over the redundancy link 135 as one block or multiple blocks of data.
As noted above in operation the processor 120 receives scanned data values and output status values from the input 311 of its IOM over LegA and processor 120 receives the scanned values output status values from the input 321 of its IOM over LegB. Disclosed processors as well their associated IOs can all be combined in the same process controller module as shown in
The IOMs 150 including IOM 1.1 and IOM 2.1 are connected by Leg A to CP1, and IOMs 155 including IOM 1.2 and IOM 2.2 are connected by Leg B to CP2. The redundant process controller 140 performs some checks on the property data including scan data values (AI and DI) and output status values received from the IOMs 150, 155, and also performs logic calculations on the property data received to generate synchronized AI and DI, and calculates synchronized output control values AO and DO. Disclosed PV synchronization and calculation as described above provides synchronization, checking and the necessary fault reaction that the redundant process controller 140 performs. The input values and output values are scanned and controlled by the IOMs 150 and 155. The IO modules 150, 155 periodically provide the scan values and output status values to the redundant process controller 140 and the redundant process controller 140 sends the synchronized output values (AO and DO) to the IOMs 150, 155.
In operation, during each control cycle CP1 receives the property data including scan values and output status values from the IO modules 1.1 and 2.1 over LegA. CP2 receives the property data including scan values and output status values from IO module 1.2 and 2.2 over LegB. CP1 and CP2 exchange all the data comprising scan values (AI and DI), output status values, and override values, and override flags over the redundancy link 135 so that both CP1 and CP2 have the values from both Leg A and Leg B. CP1 and CP2 will each perform synchronization and calculations with an all logic implementation, and CP1 and CP2 will each generate output values AO and DO. Due to the synchronization and calculation it is guaranteed that CP1 and CP2 will receive the same input values (scan values, output status, override flags and override values) at essentially the same time (to be in the same control cycle) and calculate and then transmit the same output values AO and DO.
Disclosed embodiments are further illustrated by the following specific Examples, which should not be construed as limiting the scope or content of this Disclosure in any way. The input channel being redundant or non-redundant is handled by disclosed logic by setting to logical ‘1’ when the channel is redundant, and by setting to logical ‘0’ when the channel is non-redundant. Output status values disclosed above are shown in
Note 1: the “Store: actual output status invalid LegX” 510 in the upper-left of
Note 2: As pre-processing in case of redundant configurations with one CP inactive (e.g. powered down) the active CP will copy its own values to its data buffers (see memory 121 and memory 131 in
Note 3: For labels 6, 7 and 13 open loop is not mentioned in
Label 1, 2: Comparing (XOR) the ‘actual output value’ LegX with ‘scan value’ LegX asserts that the output value did not change since the last update. As the scan value is read from the IO module a difference is either caused by a random IO module hardware fault or a random process controller hardware fault. Being an XOR gate, when the actual output value (referred to with ‘actual output value’ LegX) and the expected (referred to with ‘scan value’ LegX) are equal the output of the XOR gate is low.
Label 3: Comparing (XOR) the ‘scan values’ of both legs in a redundant configuration asserts that redundant scan values have an identical value. To reduce the number of checks the filtering for redundancy and channel health can be designed as overall post-check, where if a channel is faulty or not redundant the compare errors are suppressed. As the compare is between CP memory cells, a difference is caused by a random CP hardware fault. When both scan values are equal the output of the XOR gate is low.
Label 4: Comparing (XOR) the ‘actual output values’ of both legs in a redundant configuration asserts that redundant outputs have an identical value. To reduce the number of checks the filtering for redundancy and channel health is designed as overall post-check: if a channel is faulty or not redundant the compare errors are suppressed. As the compare is between CP memory cells a difference is caused by a random CP hardware fault.
Label 3, 4, 5, 6, 7, 8, 10, 11: Compares difference for a redundant channel Store the output compare fault LegA 515 and the output compare fault LegB 520.
Label 12, 13, 14, 15, 16, 17, 18, 19: are application values with a fault reaction applied.
Label 16: Comparing the ‘application values’ calculated by redundant CPs asserts that both CPs calculated identical output values. As redundant CP are always running identical firmware and application any difference is caused by either a random CP hardware fault or an input synchronization fault (software).
Label 20, 21, 22: Application value with an override value applied.
Labels 23, 24, 25, 26: Application value with On-line modification (OLM) applied. In a redundant configuration both CP1 and CP2 always execute the On-Line Modification (OLM) which allows one to change one or more channels from for example DI to AI or to add a new channel without losing the values from the previously configured channels. This allows no-break process control) simultaneously. The OLM flags are synchronized before use. Label 26 is the input which is stored as store actual output value LegX 525.
Note 1: Compare timer functionality; if the two legs have a different channel status then both use the previous channel status for the duration of one control cycle.
Label 1: Comparing the ‘Scan values’ of both legs in a redundant configuration asserts that redundant scan values have an identical value.
Label 1, 2, 3, 4, 5: Compare differences for a redundant channel. Start a compare timer.
Label 9, 10: Use previous value LegX when there is difference between Legs.
Label 2, 6, 7, 8, 11, 12, 13, 14, 15, 16: At least one healthy channel which has a valid scan value, so scan value is passed for LegX.
Label 17, 18, 19, 20, 21, 22, 23, 37, 38: Determines if a fault reaction must be applied for LegX.
Label 37: Indicates that channel LegA is healthy and there is no open and no short. Outcome of this logical function is used as input elsewhere in
Label 38: Indicates that channel LegB is healthy and there is no open and no short. Outcome of this logical function is used as input elsewhere in
Label 24, 25, 26, 27: Applies a fault reaction for LegA. Although three fault reactions can be configured, only one fault reaction can be active:
Note 1: Compare timer functionality; if the two legs have a different channel status then both shall use the previous channel status for the duration of one application cycle.
Note 2: For labels 2, 3 and 17 open loop and short circuit are not mentioned in
Label 1: Comparing the ‘Scan values’ of both legs in a redundant configuration asserts that redundant scan values have a value within a band.
Label 1, 2, 3, 4, 5: Compare difference for a redundant channel. Start compare timer.
Label 6, 7: Use previous value LegX when there is difference between Legs.
Label 2, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16: When both redundant channels are healthy take the average of the two scan values (label 10). When there is one healthy channel take the scan value for LegX (label 15 and 16).
Label 17, 18, 19, 20, 21, 22, 23: Determine if fault reaction must be applied for LegX.
Label 24, 25, 26, 27: Applies fault reaction for LegA. Three fault reactions can be configured, only one fault reaction can be active:
Note 1: the “Store: actual output status invalid LegX” in the upper-left of the
Note 2: For labels 5, 6 and 13 open loop is not mentioned in this
Label 1, 2: Comparing (XOR) the ‘actual output value’ with ‘scan value’ asserts that the output value did not change since the last update. As the scan value is read from the IO module a difference is either caused by a random IO module hardware fault or a random CPM hardware fault. When both scan values are equal the output of the logic gate is low.
Label 3: Comparing (XOR) the ‘Scan values’ of both legs in a redundant configuration asserts that redundant scan values have an identical value. To reduce the number of checks the filtering for redundancy and channel health is designed as overall post-check: if a channel is faulty or not redundant the compare errors are suppressed. As the compare is between CP memory cells a difference is caused by a random CP hardware fault. When both scan values are equal the output of the logic gate is low.
Label 4: Comparing (XOR) the ‘actual output values’ of both legs in a redundant configuration asserts that redundant outputs have an identical value. To reduce the number of checks the filtering for redundancy and channel health is designed as overall post-check: if a channel is faulty or not redundant the compare errors are suppressed. As the compare is between CP memory cells a difference is caused by a random CP hardware fault.
Label 3, 4, 5, 6, 7, 8, 10, 11: Compare difference for a redundant channel Store output compare fault.
Label 12, 13, 14, 15, 16, 17, 18, 19: Application value with fault reaction applied.
Label 20, 21, 22: Unscaled application value with override applied.
Label 23, 24, 25, 26: Unscaled application value with OLM applied. The store function box 540 shown described above is also included in
One having ordinary skill in the relevant art, however, will readily recognize that the disclosed embodiments can be practiced without one or more of the specific details or with other methods. In other instances, well-known structures or operations are not shown in detail to avoid obscuring aspects disclosed herein. Disclosed embodiments are not limited by the illustrated ordering of acts or events, as some acts may occur in different orders and/or concurrently with other acts or events. Furthermore, not all illustrated acts or events are required to implement a methodology in accordance with this Disclosure.
While various disclosed embodiments have been described above, it should be understood that they have been presented by way of example only, and not as a limitation. Numerous changes to the disclosed embodiments can be made in accordance with the Disclosure herein without departing from the spirit or scope of this Disclosure. Thus, the breadth and scope of this Disclosure should not be limited by any of the above-described embodiments. Rather, the scope of this Disclosure should be defined in accordance with the following claims and their equivalents.
This application claims the benefit of Provisional Application Ser. No. 62/520,912 entitled “PROCESS DATA SYNCHRONIZATION BETWEEN REDUNDANT PROCESS CONTROLLERS”, filed on Jun. 16, 2017, which is herein incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62520912 | Jun 2017 | US |