The present disclosure relates to industrial control systems and more particularly to industrial control systems having a controller and input/output modules that communicate over a module bus.
Industrial control systems, such as distributed control systems, often include one or more controllers that utilize input signals from field devices, such as flow meters, to provide control output signals to final control elements, such as valves, in order to control a process or one or more sub-processes. Such control systems are typically module-based and include one or more controller modules and a plurality of input/output (I/O) modules through which the controller module receives and sends input and output signals from and to the field, respectively. The I/O modules communicate with the controller module(s) over one or more module buses. In conventional control systems, when there is a communication failure on the module bus, it is typically not known whether the communication failure was caused by a failure of the module bus or one of the modules. Detecting the source of the communication failure requires extensive testing.
The present disclosure is directed to a control system having error detection.
In one aspect of the present disclosure, a process control system includes a module bus and a controller module connected to communicate over the module bus. The controller module is programmed to perform operations for controlling the process using data transmitted over the module bus. The control system further includes a plurality of I/O modules connected to communicate with the controller module over the module bus. Each I/O module includes a microprocessor with memory and a driver for sending information to the module bus. The driver has a high side connected to a voltage source and a low side connected to ground. A sense circuit detects current on the high side of the driver. The microprocessor is operable to execute computer-executable instructions stored in the memory to perform an I/O module error detection method that determines whether the current on the high side of the driver measured by the sense circuit is outside a predetermined high range and, if so, determines that the driver has failed.
In another aspect of the disclosure, a process control system includes a controller module connected to communicate over first and second module buses. The controller module is programmed to perform operations for controlling the process using data transmitted over the module bus. The control system further includes a plurality of I/O modules connected to communicate with the controller module over the first and second module buses. The controller module and each of the I/O modules include a microprocessor with memory and a driver for sending information to the first module bus. The driver has a high side connected to a voltage source and a low side connected to ground. A power sense circuit detects current on the high side of the driver and a ground sense circuit for detecting current on the low side of the driver. The microprocessor is operable to execute computer-executable instructions stored in the memory to perform a module error detection method that includes determining whether a communication error has occurred on the first module bus. If a communication error has occurred on the first module bus, a determination is made whether the current on the high side of the driver measured by the power sense circuit is outside a predetermined high range and whether the current on the low side of the driver measured by the ground sense circuit is outside a predetermined low range. If either the current on the high side of the driver is determined to be outside the predetermined high range or the current on the low side of the driver is determined to be outside the predetermined low range, a determination is made that the driver has failed.
In still another aspect of the disclosure, there is a method of detecting errors in a process control system having a plurality of modules connected to communicate over first and second module buses. Each module has a driver for sending information to the first module bus. The driver has a high side connected to a voltage source and a low side connected to ground. In accordance with the method, a determination is made in each of the modules whether a communication error has occurred on the first module bus. The current is measured on the high side of the driver in each of the modules where a communication error has been determined to have occurred. The current is also measured on the low side of the driver in each of the modules where a communication error has been determined to have occurred. The measured current on the high side of the driver in each of the modules where a high side measurement has been made is compared to a predetermined high range, and the measured current on the low side of the driver in each of the modules where a low side measurement has been made is compared to a predetermined low range. The driver in one of the modules is determined to have failed if either the current on the high side of the driver is outside the predetermined high range or the current on the low side of the driver is outside the predetermined low range.
The features, aspects, and advantages of the present disclosure will become better understood with regard to the following description, appended claims, and accompanying drawings where:
It should be noted that in the detailed description that follows, identical components have the same reference numerals, regardless of whether they are shown in different embodiments of the present disclosure. It should also be noted that in order to be more clear and concise, the drawings may not necessarily be to scale and certain features of an embodiment may be shown in somewhat schematic form.
Referring now to
The controller assembly 12 communicates with the I/O assemblies 14 over one or more module buses 22. Typically, a pair of redundant module buses 22a,b are utilized to increase the integrity of the control system 10. Communication among the modules takes place over both of the module buses 22a,b. However, the modules only use data from the primary bus 22a if it is operating properly. If the primary module bus 22a fails, the modules then use the data from the secondary module bus 22b. Each module bus 22 includes a clock line 24 and a data line 26. The data line 26 carries data between the controller assembly 12 and the I/O assemblies 14, while the clock line 24 provides synchronization between the controller assembly 12 and the I/O assemblies 14. The message structure and communication protocol utilized by the controller assembly 12 and the I/O assemblies 14 to communicate over the module buses 22a,b include one or more features for ensuring data integrity, such as a cyclical redundancy check (CRC) feature and/or a checksum feature. For example each message sent over the module buses 22a,b may contain a CRC code, which is based on the remainder of a polynomial division of the message's data block. When the message is received, the receiving device either compares the CRC code of the message with one freshly calculated from the data block, or equivalently, performs a CRC on the whole message and compares the resulting check value with an expected residue constant. If the check values do not match, then the message is determined to contain an error.
Each I/O assembly 14 handles a plurality of inputs and/or a plurality of outputs. A typical control system has a plurality of I/O assemblies 14 handling inputs and/or outputs. The inputs may be analog inputs, digital inputs, thermocouple inputs or RTD inputs. The outputs may be analog outputs or digital outputs. The inputs and outputs (I/O) are typically powered by the sensors and control elements in the field. However, digital outputs may be powered by the I/O assembly 14, such as when the digital outputs are used to energize relay coils.
Each I/O assembly 14 comprises an I/O module 30 releasably mounted to an I/O base 32. Each I/O module 30 includes an outer housing enclosing one or more circuit boards. The circuit board(s) of each I/O module 30 includes a microprocessor 34 with memory and a plurality of communication circuits 36 for communicating over the module buses 22a,b. Conditioning circuitry on the circuit board(s) processes field inputs received from sensors in the field or control outputs received from the controller assembly 12, depending on whether the I/O module 30 handles inputs and/or outputs. More specifically, the conditioning circuitry converts between field signals (e.g., analog 4-20 mA, digital 24 VDC etc.) and digital bus signals, such as by using analog-to-digital and/or digital-to-analog converters. The conditioning circuitry also conditions the signals received from or going to the field, such as by using switches, filters and multiplexers, and isolates the field signals from the controller assembly 12.
The controller assembly 12 includes a pair of redundant controller modules 50 releasably mounted to a controller base 52. Each of the controller modules 50 has a construction similar to each I/O module 30 and includes one or more circuit boards mounted inside an outer housing. The circuit board(s) in each controller module 50 includes a microprocessor 33 with memory and a plurality of the communication circuits 36 for communicating over the module buses 22a,b. The memory stores control programs that may be executed by the microprocessor 33 of each controller module 50. The control programs in each controller module 50 include one or more control loops, such as PID loops, which work on one or more field inputs to generate control outputs. The field inputs and control outputs are routed to and from the controller assembly 12 through the I/O assemblies 14 via the module buses 22a,b. Each controller module 50 is programmed with and can execute the same control programs; however, only one of the controller modules 50 (the primary) executes the control programs to control the industrial process at any one time. If the primary controller module 50 fails, the other controller module 50 (the secondary) automatically takes over and executes the control programs to control the industrial process.
The controller base 52 has a plurality of Ethernet jacks 54 that are adapted to receive plugs of Ethernet cables 55, respectively. The Ethernet jacks 54 are connected to Ethernet foreign device interfaces 56 in the controller modules 50. In this manner, the controller modules 50 can communicate with other devices over Ethernet cables 55 plugged into the Ethernet jacks. More specifically, the controller modules 50 can communicate with other controller modules 50 (in other nodes) similarly connected to the Ethernet cables 55, and/or with an operator workstation 58 connected to the Ethernet cables 55. The controllers 50 may use a protocol, such as Modbus TCP, to communicate with other devices connected to the Ethernet cables. The operator workstation 58 may have a graphical user interface (GUI) that displays information from the controller modules 50.
As described above, each I/O module 30 and each controller module 50 includes a plurality of communication circuits 36 for communicating over the module buses 22a,b. More specifically, each I/O module 30 and each controller module 50 has four communication circuits 36, two for each module bus 22, with one being used for the clock line 24 and the other being used for the data line 26 of the module bus 22. Each communication circuit 36 is substantially the same. Thus, for purposes of brevity, only one communication circuit 36 will be shown and described, it being understood that the schematic representation and description apply to the other communication circuits 36 as well.
Referring now to
The power sense circuit 44 is operable to sense the current of the high side of the driver 60, which is connected to a power source 64, such a 3 Volt DC power supply. The power sense circuit 44 may simply comprise a single resistor. Alternately, the power sense circuit 44 may comprise a differential amplifier connected across a main resistor 68. The differential amplifier includes an operational amplifier 70 and resistors 70, 72, 74, 76. An output of the differential amplifier is connected to a gain resistor 78. The differential amplifier 66 and the gain resistor 78 operate to increase the voltage differential across the main resistor 68 to provide a larger range of acceptable operating values. In this manner, an error value (outside the range) is more distinguishable, thereby reducing the number of false error indications. The output from the power sense circuit 44 is an analog signal representative of the current of the high side of the driver 60. This analog signal is fed to an analog-to-digital converter (ADC) 80 that converts the analog signal to a digital signal, which is then fed to the microprocessor 33 or 34.
The ground sense circuit 46 is operable to sense the current of the low side of the driver 60. The ground sense circuit 46 may simply comprise a single resistor. Alternately, the ground sense circuit 46 may comprise a single-ended amplifier connected between gain resistors 84, 86. The single-ended amplifier comprises an operational amplifier 82 with a negative feedback circuit having resistors 90, 92. The single-ended amplifier 82 and gain resistors 84, 86 operate to increase the voltage differential between the low side of the driver 60 and ground to provide a larger range of acceptable operating values. In this manner, an error value (outside the range) is more distinguishable, thereby reducing the number of false error indications. The output from the ground sense circuit 46 is an analog signal representative of the current of the low side of the driver 60. This analog signal is fed to the analog-to-digital converter (ADC) 80 that converts the analog signal to a digital signal, which is then fed to the microprocessor 33 or 34.
The microprocessor 33 in each controller module 50 receives from each of the communications circuits 36 in the controller module 50 the high side current signal generated by the power sense circuit 44 and the low side current signal generated by the ground sense circuit 46. Similarly, the microprocessor 34 in each I/O module 30 receives from each of the communications circuits 36 in the I/O module 30 the high side current signal generated by the power sense circuit 44 and the low side current signal generated by the ground sense circuit 46. Thus, each microprocessor 33, 34 receives more than eight current signals.
The eight current signals are used by a module error detection program 100 in each I/O module 30 to determine whether one of the drivers 60 of the I/O module 30 has failed (e.g., shorted). In each I/O module 30, the error detection program 100 is stored in memory and executed by the microprocessor 34. With reference now to
If the affected driver 60 has a high side current outside the high range (such as 7 mA or 15 mA) or a low side current outside the low range (such as 1 ma or 5 mA), it is determined that the affected driver 60 has failed. In step 130, the program 100 determines whether any of the drivers 60 has a high side current or a low side current that is out of range. If one or more of the drivers 60 has a current out of range, the program 100 energizes a red LED 110 on the I/O module 30 in step 132 to provide a visual indication of the error. In addition, the program 100 in step 134 transmits an error message to the primary controller module 50a over the module bus 22a,b that does not have the communication error. The error message includes the address of the I/O module 30 and informs the primary controller module 50a that a communication error was detected and that one of the drivers 60 has been determined to have failed. The error message may also identify the line (clock or data), whose driver 60 has failed. If in step 130, the program 100 determines that none of the drivers 60 has a high side current or a low side current that is out of range, the error detection program 100 in step 136 transmits a status message to the primary controller module 50a over the module bus 22a,b that does not have the communication error. The status message includes the address of the I/O module 30 and informs the primary controller module 50a that a communication error was detected, but none of the drivers 60 in the I/O module 30 have been determined to have failed.
Each controller module 50 also has a module error detection program stored in memory. However, only the primary controller module 50a executes the program (with its microprocessor 33) to determine whether one of its drivers 60 has failed. The module error detection program in each controller module 50 is the same as the error detection program 100 utilized in the I/O modules 30, except it does not include steps 134 and 136.
In addition to its module error detection program, each controller module 50 also has a system error detection program 150 stored in memory. However, only the primary controller module 50a executes the system error detection program 150 (with its microprocessor 33). Referring now to
If in step 152, the program 150 determines that a communication error on a particular bus 22a,b has occurred, the program 150 proceeds to step 158 to determine whether it has received an error message from one of the I/O modules 30 or if the module detection program of the primary controller module 50a has determined that one of its drivers 60 has failed. If no error message has been received and the module detection program of the primary controller module 50a has determined that none of its drivers 60 have failed, then the program 150 proceeds to step 160, where the program 150 determines whether any status messages have been received. If one or more status messages have been received, the program 150 determines that the particular bus 22a,b itself may have failed and sends a notification of this error in step 162 to the operator workstation 58, where it may be displayed on the GUI. If, in step 160, no status messages have been received, the program 150 determines that one of the receivers 62 of the primary controller module 50a may have failed. In step 164, the primary controller module 50a sends a notification of this error to the operator workstation 58, where it may be displayed on the GUI.
If in step 158, the program 150 determines it has received one or more error messages from the I/O modules 30 or the controller's own module detection program has determined that one or more of its drivers 60 have failed, then the program 150 proceeds to step 168, where the program 150 determines the module(s) having a failed driver 60. In step 170, the primary controller module 50a sends an error message identifying the module(s) having a failed driver 60 to the operator workstation 58, where it may be displayed on the GUI.
It is to be understood that the description of the foregoing exemplary embodiment(s) is (are) intended to be only illustrative, rather than exhaustive, of the present disclosure. Those of ordinary skill will be able to make certain additions, deletions, and/or modifications to the embodiment(s) of the disclosed subject matter without departing from the spirit of the disclosure or the scope of the appended claims. For example, each receiver 62 in the controller modules 50 and the I/O modules 30 may be provided with a power sense circuit 44 and a ground sense circuit 46 for detecting current on the high and lows sides of the receiver 62, respectively. However, it has been determined that doing so is typically not needed because most communication errors are caused by a failure of a driver. Thus, a typical control system provided in accordance with this disclosure does not include sense circuits for the receivers in its modules.
Number | Date | Country | |
---|---|---|---|
62180896 | Jun 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US16/37837 | Jun 2016 | US |
Child | 15845442 | US |