Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR CONTROLLER REDUNDANCY AND CONTROLLER NETWORK REDUNDANCY WITH ETHERNET/IP I/O
Document Type and Number:
WIPO Patent Application WO/2016/018693
Kind Code:
A2
Abstract:
An apparatus includes a first controller (104a, 104b, 202, 304, 306) having at least one interface (120) and at least one processing device (116). The at least one interface is configured to communicate with a second controller (104a, 104b, 202, 304, 306) and with a controlled network (350) having multiple EtherNet/IP-compatible input/output (I/O) modules (206, 208, 360) and multiple EtherNet/IP-compatible controlled devices (210, 212, 362). The at least one processing device is configured to detect a fault associated with the second controller while the second controller is in communication with at least one of the I/O modules and at least one of the controlled devices. The at least one processing device is also configured, upon detection of the fault associated with the second controller, to resume the communication with the at least one I/O module and the at least one controlled device without the at least one I/O module updating the at least one controlled device to a failsafe condition.

Inventors:
BALE SUNIL (US)
ATUKURI SRINIVAS (US)
FELIX JOSEPH (US)
Application Number:
PCT/US2015/041512
Publication Date:
February 04, 2016
Filing Date:
July 22, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HONEYWELL INT INC (US)
International Classes:
H04L49/111
Other References:
See references of EP 3175591A4
Attorney, Agent or Firm:
BEATUS, Carrie et al. (Patent Services M/S AB/2B101 Columbia Road, P. O. Box 224, Morristown NJ, US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. An apparatus comprising:

a first controller (104a, 104b, 202, 304, 306) comprising:

at least one interface (120) configured to communicate with a second controller (104a, 104b, 202, 304, 306) and with a controlled network (350) comprising multiple EtherNet/IP-compatible input/output (I/O) modules (206, 208, 360) and multiple EtherNet/IP-compatible controlled devices (210, 212, 362); and

at least one processing device (116) configured to:

detect a fault associated with the second controller while the second controller is in communication with at least one of the I/O modules and at least one of the controlled devices; and

upon detection of the fault associated with the second controller, resume the communication with the at least one I/O module and the at least one controlled device without the at least one I/O module updating the at least one controlled device to a failsafe condition.

2. The apparatus of Claim 1 , wherein:

the at least one interface comprises first and second interfaces (120) configured to communicate over a first controller network (308, 310) and a second controller network (308, 310); and

the at least one processing device is further configured to:

detect a fault associated with the first controller network while the first controller is in communication with the at least one I/O module and the at least one controlled device over the first controller network; and

upon detection of the fault associated with the first controller network, switch the communication with the at least one I/O module and the at least one controlled device to the second controller network without the at least one I/O module updating the at least one controlled device to the failsafe condition.

3. The apparatus of Claim 2, wherein the at least one interface further comprises a third interface (120) configured to communicate with the second controller.

4. The apparatus of Claim 3, wherein the third interface is configured to connect to a wired Ethernet connection (316) that directly couples the first controller to the second controller and that transports controller status information between the first controller and the second controller.

5. The apparatus of Claim 2, wherein each of the first and second interfaces is configured to communicably connect to at least one switch (204, 330, 332) that routes communications between the first controller and the controlled network.

6. The apparatus of Claim 1 , wherein the at least one processing device is configured to resume the communication with the at least one I/O module and the at least one controlled device without the at least one I/O module setting an operating parameter of the at least one controlled device to a failsafe value.

7. A method comprising:

detecting (403), at a first controller (104a, 104b, 202, 304, 306) configured to communicate with a second controller (104a, 104b, 202, 304, 306), a fault associated with the second controller while the second controller is in communication with at least one of multiple EtherNet/IP-compatible input/output (I/O) modules (206, 208, 360) and at least one of multiple EtherNet/IP-compatible controlled devices (210, 212, 362) in a controlled network (350); and

upon detection of the fault associated with the second controller, resuming (405) the communication with the at least one I/O module and the at least one controlled device at the first controller without the at least one I/O module updating the at least one controlled device to a failsafe condition.

8. The method of Claim 7, wherein:

the first controller is configured to communicate over a first controller network (308, 310) and a second controller network (308, 310); and

the method further comprises:

detecting (407) a fault associated with the first controller network while the first controller is in communication with the at least one I/O module and the at least one controlled device over the first controller network; and

upon detection of the fault associated with the first controller network, switching (409) the communication with the at least one I/O module and the at least one controlled device to the second controller network without the at least one I/O module updating the at least one controlled device to the failsafe condition.

9. The method of Claim 8, further comprising:

communicating directly with the second controller over a direct connection (316), wherein communicating directly with the second controller comprises receiving controller status information from the second controller over a wired Ethernet connection (316) that directly couples the first controller to the second controller, and

wherein communicating directly with the second controller further comprises receiving information identifying the at least one I/O module and the at least one controlled device and what data was exchanged with the at least one I/O module and the at least one controlled device.

10. A non-transitory computer readable medium encoded with computer- executable instructions that when executed cause at least one processing device ( 116) to : detect, at a first controller (104a, 104b, 202, 304, 306) configured to communicate with a second controller (104a, 104b, 202, 304, 306), a fault associated with the second controller while the second controller is in communication with at least one of multiple EmerNet/ff -compatible input/output (I/O) modules (206, 208, 360) and at least one of multiple EtherNet/IP-compatible controlled devices (210, 212, 362) in a controlled network (350); and

upon detection of the fault associated with the second controller, resume the communication with the at least one I/O module and the at least one controlled device at the first controller without the at least one I/O module updating the at least one controlled device to a failsafe condition.

Description:
SYSTEM AND METHOD FOR CONTROLLER REDUNDANCY AND CONTROLLER NETWORK REDUNDANCY WITH ETHERNET/IP I/O

TECHNICAL FIELD

[0001] This disclosure relates generally to automation and control systems. More specifically, this disclosure relates to a system and method for controller redundancy and controller network redundancy with EtherNet/IP I/O.

BACKGROUND

[0002] Ethernet Industrial Protocol (EtherNet/IP) is a communication protocol used in industrial automation for process control. EtherNet/IP is an application layer protocol used for communication between industrial control systems and their components, such as programmable automation controllers, programmable logic controllers, and input/output (I/O) systems. In some respects, EtherNet/IP is similar to the Simple Network Management Protocol (SNMP). Various vendors manufacture EtherNet/IP I/O devices or provide control systems with controllers that can work with EtherNet/IP. The Open DeviceNet Vendors Association (ODVA) provides management of the EtherNet/IP protocol and assures multi-vendor system interoperability by requiring adherence to established standards.

SUMMARY

[0003] This disclosure provides a system and method for controller redundancy and controller network redundancy with EtherNet/IP I/O.

[0004] In a first embodiment, an apparatus includes a first controller having at least one interface and at least one processing device. The at least one interface is configured to communicate with a second controller and with a controlled network having multiple EtherNet/IP-compatible input/output (I/O) modules and multiple EtherNet/IP-compatible controlled devices. The at least one processing device is configured to detect a fault associated with the second controller while the second controller is in communication with at least one of the I/O modules and at least one of the controlled devices. The at least one processing device is also configured, upon detection of the fault associated with the second controller, to resume the communication with the at least one I/O module and the at least one controlled device without the at least one I/O module updating the at least one controlled device to a failsafe condition.

[0005] In a second embodiment, a method includes detecting, at a first controller configured to communicate with a second controller, a fault associated with the second controller while the second controller is in communication with at least one of multiple EtherNet/IP-compatible input/output (I/O) modules and at least one of multiple EtherNet/IP-compatible controlled devices in a controlled network. The method also includes, upon detection of the fault associated with the second controller, resuming the communication with the at least one I/O module and the at least one controlled device at the first controller without the at least one I/O module updating the at least one controlled device to a failsafe condition.

[0006] In a third embodiment, a non-transitory computer readable medium is encoded with computer-executable instructions that when executed cause at least one processing device to detect, at a first controller configured to communicate with a second controller, a fault associated with the second controller while the second controller is in communication with at least one of multiple EtherNet/IP-compatible input/output (I/O) modules and at least one of multiple EtherNet/IP-compatible controlled devices in a controlled network. The non-transitory computer readable medium is also encoded with computer-executable instructions that when executed cause at least one processing device to, upon detection of the fault associated with the second controller, resume the communication with the at least one I/O module and the at least one controlled device at the first controller without the at least one I/O module updating the at least one controlled device to a failsafe condition.

[0007] Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008] For a more complete understanding of this disclosure, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:

[0009] FIGURES 1 and 2 illustrate an example process control system in accordance with this disclosure;

[0010] FIGURE 3 illustrates additional details of an example EtherNet/IP process control system configured for controller redundancy and controller network redundancy in accordance with this disclosure; and

[0011] FIGURE 4 illustrates an example method for operating an EtherNet/IP process control system in accordance with this disclosure.

DETAILED DESCRIPTION

[0012] FIGURES 1 through 4, discussed below, and the various embodiments used to describe the principles of the present invention in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the invention. Those skilled in the art will understand that the principles of the invention may be implemented in any type of suitably arranged device or system.

[0013] Some process control systems, such as EXPERION by HONEYWELL, are configured to support the EtherNet/IP communication protocol. In general, most EtherNet/IP systems do not provide any kind of network or controller redundancy that is particularly suited for the EtherNet/IP protocol. If a fault occurs in these systems at either the controller level or the controller network level, an I/O shed can occur at one or more controlled devices of the system. More particularly, when a fault occurs in an EtherNet/IP system without suitable redundancy provisions, the connection to one or more controlled devices can be lost, and the lost connection may cause the controlled devices to shed their I/O. For example, if an output device in an EtherNet/IP system loses connection to the controller that controls the output device, the output device may enter a failsafe operating state that is different than its previous operating state. In an industrial plant environment, this can cause an interruption in one or more processes while the plant is running. In such situations, maintenance workers or engineers have to identify the cause of the problem (the fault that caused the lost connection) and then bring the system back to a running state. This can lead to significant financial and temporal losses at the plant.

[0014] To resolve these issues, embodiments of this disclosure provide an EtherNet/IP network that includes controller redundancy or controller network redundancy features. Such features may be used in conjunction with a wide variety of controllers, such as the EXPERION C300 controller by HONEYWELL. The embodiments of this disclosure are described with respect to an industrial plant's process control system. However, this disclosure is not limited to industrial plant environments. The principles disclosed here are applicable to other environments and industries, as well.

[0015] FIGURES 1 and 2 illustrate an example process control system 100 in accordance with this disclosure. As shown in FIGURE 1 , the system 100 includes one or more process elements 102a-102b. The process elements 102a-102b represent components in a process or production system that may perform any of a wide variety of functions. For example, the process elements 102a- 102b could represent equipment used to manufacture chemical, pharmaceutical, paper, or petrochemical products. Each of the process elements 102a- 102b includes any suitable structure for performing one or more functions in a process or production system, such as a sensor or actuator.

[0016] Two controllers 104a- 104b are coupled to the process elements 102a- 102b. The controllers 104a- 104b control the operation of the process elements 102a- 102b . For example, the controllers 104a- 104b could receive measurements from sensors and generate control signals for actuators in order to control the production of chemical, pharmaceutical, paper, petrochemical, or other products. Each controller 104a- 104b includes any suitable structure for controlling one or more of the process elements 102a- 102b.

[0017] Two servers 106a- 106b are coupled to the controllers 104a- 104b. The servers 106a- 106b perform various functions to support the operation and control of the controllers 104a- 104b and the process elements 102a- 102b. For example, the servers 106a- 106b could log information collected or generated by the controllers 104a- 104b, such as status information related to the operation of the process elements 102a- 102b. The servers 106a- 106b could also execute applications that control the operation of the controllers 104a- 104b, thereby controlling the operation of the process elements 102a- 102b. In addition, the servers 106a- 106b could provide secure access to the controllers 104a- 104b. Each of the servers 106a- 106b includes any suitable structure for providing access to or control of the controllers 104a- 104b.

[0018] One or more operator stations 108a-108b are coupled to the servers 106a- 106b, and one or more operator stations 108c are coupled to the controllers 104a-l 04b. The operator stations 108a- 108b represent computing or communication devices providing user access to the servers 106a- 106b, which could then provide user access to the controllers 104a- 104b and the process elements 102a-102b. The operator stations 108c represent computing or communication devices providing direct user access to the controllers 104a- 104b. As particular examples, the operator stations 108a-108c could allow users to review the operational history of the process elements 102a- 102b using information collected by the controllers 104a-104b and/or the servers 106a-106b. The operator stations 108a- 108c could also allow the users to adjust the operation of the process elements 102a-102b, controllers 104a-104b, or servers 106a-106b. Each of the operator stations 108a- 108c includes any suitable structure for supporting user access and control of the system 100.

[0019] In this example, at least one of the operator stations 108b is remote from the servers 106a-106b. The remote station is coupled to the servers 106a-106b through a network 110. The network 110 facilitates communication between various components in the system 100. For example, the network 110 may communicate Internet Protocol (IP) packets, frame relay frames, Asynchronous Transfer Mode (ATM) cells, or other information between network addresses. The network 110 may include one or more local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of a global network such as the Internet, or any other communication system or systems at one or more locations.

[0020] In this example, the system 100 includes two additional servers 112a- 112b. The servers 112a-l 12b execute various applications to control the overall operation of the system 100. For example, the system 100 could be used in a processing or production plant or other facility, and the servers 112a- 112b could execute applications used to control the plant or other facility. As particular examples, the servers 112a- 112b could execute applications such as enterprise resource planning (ERP), rnanufacturing execution system (MES), or any other or additional plant or process control applications. Each of the servers 112a- 112b includes any suitable structure for controlling the overall operation of the system 100.

[0021] In some embodiments, each of the controllers 104a- 104b includes one or more processing devices 116, such as one or more microprocessors, microcontrollers, digital signals processors, field programmable gate arrays, application specific integrated circuits, or discrete logic devices. Each of the controllers 104a- 104b also includes one or more memories 118 storing instructions and data used, collected, or generated by the processing device(s) 116, such as a random access memory or a Flash or other read-only memory. In addition, each of the controllers 104a- 104b includes one or more interfaces 120 facilitating communication over one or more networks or communication links. In particular embodiments, each of the controllers 104a- 104b includes three interfaces 120, two for communicating over a redundant pair of networks and a third for communicating with the other controller.

[0022] As shown in FIGURE 1, the system 100 includes various redundant networks 114a-114b and single networks 116a-l 16c that support communication between components in the system 100. Each of these networks 114a- 114b, 116a- 116c represents any network or combination of networks facilitating communication between components in the system 100. The networks 114a-l 14b, 116a-l 16c could, for example, represent Ethernet networks.

[0023] In one aspect of operation, the system 100 manages one or multiple processes for producing or processing one or more products (or parts thereof). As particular examples, the controllers 104a- 104b and the servers 106a- 106b could manage one or multiple processes used to produce chemical, pharmaceutical, paper, or petrochemical products using the process elements 102a- 102b. The system 100 may implement a procedural automation mechanism that helps to automate the production processes. For example, the procedural automation mechanism may determine when certain tasks in a production process can be performed and which process elements 102a- 102b are used during those tasks.

[0024] In accordance with this disclosure, various components of the system 100 support an EtherNet/IP communication protocol. For example, the controllers 104a- 104b may represent EtherNet/IP controllers, the process elements 102a- 102b may represent EtherNet/IP devices, and the networks 114a- 114b and 116a- 116c may represent EtherNet/IP networks. The controllers 104a- 104b and one or more of the networks 114a- 114b, 116a-l 16c may be configured with controller redundancy or controller network redundancy to provide failover support without causing an input/output shed. Additional details regarding this functionality are provided below.

[0025] FIGURE 2 illustrates an example portion of an EtherNet/IP process control system 200, which may be used in conjunction with the system 100 of FIGURE 1. In an EtherNet/IP network-based system, a controller communicates instructions and data to one or more I/O modules and controlled devices (also referred to as "field devices") for controlling one or more processes. Any failure in the communication between the controller and the controlled devices can cause a loss of control over the processes in which the controlled devices operate. As shown in FIGURE 2, a controller 202 is connected through a switch 204 to an input I/O module 206 and an output I/O module 208. The input I/O module 206 is connected to an input field device 210, such as a sensor. The output I/O module 208 is connected to an output field device 212, such as a motor. The controller 202 is configured to control the devices 206-212.

[0026] In normal operation, the controller 202 receives input data associated with operation of the input device 210 (the sensor), such as by periodically scanning data from the input I/O module 206. The controller 202 performs processing on the input data and, based on the processed input data, controls the output device 212 (the motor) by transmitting data or signals to the output I/O module 208. The output I/O module 208 can, in turn, drive appropriate voltage, current, or other signals to the output device 212.

[0027] The output I/O module 208 may expect to regularly receive control signals from the controller 202. If the output I/O module 208 fails to receive a signal from the controller 202 at an expected time, a timeout clock may be started to measure the amount of time that elapses with no signal from the controller. If a predetermined period of time elapses without recovery of the signal from the controller 202, the output I/O module 208 can determine that a fault condition has occurred.

[0028] In the event of a fault condition, the output I/O module 208 may close the connection with the controller 202, and an output shed may occur. In an output shed, the output I/O module 208 updates the output device 212 to a failsafe condition. In the failsafe condition, one or more parameters of the output device 212 are updated from a current value to a failsafe value. For example, if the output device 212 is a motor, the motor speed may be reduced from a current operating speed to a slower failsafe speed or even stopped. The parameters associated with the failsafe condition may be pre- configured with the output I/O module 208 or may be user-configurable.

[0029] While the failsafe mode may help to protect the output device 212 or associated system from damage, the overall process in which the output device 212 operates is still interrupted. In an industrial plant environment, maintenance workers or engineers have to identify the cause of the interruption and then bring the system back to a running state. In a large industrial setting, this can lead to significant financial and time losses.

[0030] To solve this problem, embodiments of this disclosure provide an EtherNet/IP-based process control system that includes controller redundancy and controller network redundancy. These mechanisms can be used in order to reduce or avoid a system failure and a corresponding I/O shed.

[0031] Although FIGURES 1 and 2 illustrate one example of a process control system 100, various changes may be made to FIGURES 1 and 2. For example, a process control system could include any number of process elements, controllers, servers, operator stations, and networks. Also, the makeup and arrangement of the system 100 is for illustration only. Components could be added, omitted, combined, or placed in any other configuration according to particular needs. Further, while described as being used to produce or process certain types of products, the system 100 could be used in any other manner.

[0032] FIGURE 3 illustrates additional details of an example EtherNet/EP process control system 300 configured for controller redundancy and controller network redundancy in accordance with this disclosure. The system 300 may represent or be used in conjunction with the system 100 of FIGURE 1 or the system 200 of FIGURE 2.

[0033] As shown in FIGURE 3, the system 300 includes a controller system 302 that includes a primary controller 304 and a secondary controller 306. Each controller 304-306 represents any suitable EtherNet/ff -compatible controller for controlling one or more devices in an EtherNet/ΊΡ network. In some embodiments, each controller 304-306 may be an EXPERION C300 controller. Each controller 304-306 is connected to a primary controller network 308 and a secondary controller network 310. Firewalls 312- 314 placed between the controllers 304-306 and other portions of the process control system 300 provide a level of security over the incoming and outgoing traffic of the controllers 304-306.

[0034] The primary controller 304 is directly coupled to the secondary controller 306 via a wired connection or cable 316. The cable 316 allows direct communication between the controllers 304-306. In accordance with this disclosure, the controllers 304- 306 are able to share, through the cable 316, status information regarding the operating condition or "health" of each controller 304-306 and each controller network 308-310 (or any other status information that may be used to determine when a fault condition has occurred or is about to occur). This is described in greater detail below.

[0035] The controller system 302 also includes at least one server 318 coupled to the controllers 304-306. The server 318 may represent one or more of the servers 106a- 106b, 112a- 112b of FIGURE 1. In some embodiments, the server 318 may be an EXPERION PKS server. The process control system 300 also includes two operator stations 320. The operator stations 320 may represent one or more of the operator stations 108a- 108c of FIGURE 1. In some embodiments, the operator stations 320 may be EXPERION PKS workstations. The server 318 and operator stations 320 are configured to initially provide or update programming logic to the controllers 304-306 and monitor and maintain the controllers 304-306, controller system 302, and process control system 300. Although one server 318 and two operator stations 320 are shown in FIGURE 3, other numbers of servers 318 and operator stations 320 are possible.

[0036] The controller system 302 is coupled to a controlled network 350 via a pair of switches 330-332. The switches 330-332 route information and signals between the controller system 302 and the controlled network 350. Each switch 330-332 may represent any suitable switch for use in an EtherNet/IP network.

[0037] The controlled network 350 includes a number of controlled devices that are controlled by one or more of the controllers 304-306. The controlled network 350 also includes other equipment or devices that may not be directly controlled by the controllers 304-306 but are part of the operations of the controlled network 350. In this example, the controlled network 350 includes one or more firewalls 352, one or more switches 354, one or more PF drives 356, one or more network supervisors 358, one or more input or output I/O modules 360, one or more controlled devices 362, and one or more operator stations 364. Certain devices among the controlled network 350 may be organized into one or more sub-networks. Example sub-networks may be configured as rings, as stars, linearly, or in any other suitable network configuration. For example, as shown in FIGURE 3, some of the network supervisors 358, I/O modules 360, and controlled devices 362 may be configured as a ring network.

[0038] In accordance with this disclosure, the system 300 is configured for both controller redundancy and controller network redundancy in order to avoid a system failure and a corresponding I/O shed. Controller redundancy is provided in the system 300 by the primary controller 304 and the secondary controller 306. In one aspect of operation, the primary controller 304 is usually the active controller of the system 300, and the secondary controller 306 is usually passive. The primary controller 304 sends and receives signals to and from the controlled network 350 through the switches 330-332. Thus, in normal operating conditions, the primary controller 304 provides control over the controlled network 350 and the associated controlled devices 362.

[0039] While the primary controller 304 provides control over the controlled network 350, the primary controller 304 is in communication with the secondary controller 306 via exchanges of signals through the cable 316. As the primary controller 304 executes controller operations, controller operation information and other status information regarding the operating condition or "health" of the primary controller 304 can be synchronized across the cable 316 to the secondary controller 306. Such information may include which I/O modules 360 or controlled devices 362 the primary controller 304 most recently communicated with and what operating values or data was exchanged with these I/O modules 360 or controlled devices 362.

[0040] If the operation of the primary controller 304 fails in some manner, such as due to a power failure or hardware failure, a fault condition occurs at the primary controller 304. In the event of a fault condition at the primary controller 304, the secondary controller 306 take over the control functions of the primary controller 304. At that point, the secondary controller 306 (operating in the primary mode) continues to control one or more components in the EtherNet/IP controlled network 350 without resulting in a connection loss to any I/O modules 360 or controlled devices 362 and without resulting in an I/O shed.

[0041] In order to avoid a connection loss and I/O shed, the secondary controller 306 detects the fault condition at the primary controller 304 and resumes control operations for the controlled network 350 quickly. In this way, the I/O modules 360 and controlled devices 362 do not detect an interruption or fault at the primary controller 304, which would result in an I/O shed. In other words, the secondary controller 306 is configured to detect the fault condition at the primary controller 304 and take over control in a seamless manner so that the devices of the controlled network 350 still believe that they are in communication with the primary controller 304.

[0042] Controller network redundancy is provided in the system 300 by the primary controller network 308 and the secondary controller network 310. The primary controller 304 and the secondary controller 306 are each coupled to at least two network cables, where each cable is associated with one of the controller networks 308-310. Specifically, the primary controller 304 is coupled to a cable 308a associated with the primary controller network 308 and to a cable 310a associated with the secondary controller network 310. Similarly, the secondary controller 306 is coupled to a cable 308b associated with the primary controller network 308 and to a cable 310b associated with the secondary controller network 310. In some embodiments the cables 308a-308b and 310a-310b are Ethernet cables, and each controller 304-306 includes a plurality of Ethernet connection points or jacks to which the associated cables are connected.

[0043] In one aspect of operation, the primary controller network 308 is usually the active controller network through which communications between the primary controller 304 or secondary controller 306 and the controlled network 350 occurs. Communications to the controlled network 350 pass through the primary controller network 308, through one or both switches 330-332, and to a destination device in the controlled network 350. The reverse path is followed for communications from the controlled network 350. In contrast, the secondary controller network 310 is usually passive. That is, during normal operations, the secondary controller network 310 does not carry the main signal transmissions associated with control of the controlled network 350, although the secondary controller network 310 may carry ancillary signal transmissions (such as those related to detection of fault conditions) during normal operations.

[0044] While the primary controller 304 or secondary controller 306 provides control over the controlled network 350 via the primary controller network 308, the primary controller 304 or secondary controller 306 may continually detect and determine status information regarding the operating condition or "health" of the primary controller network 308. If the operation of the primary controller network 308 fails in some manner (such as due to a cable break), a fault condition occurs on the primary controller network 308. If the primary controller 304 or secondary controller 306 detects a fault condition on the primary controller network 308, the primary controller 304 or secondary controller 306 opens communication with the secondary controller network 310. At that point, I/O communication is resumed on the secondary controller network 310 without resulting in a connection loss to any I/O modules 360 or controlled devices 362 and without resulting in an I/O shed. In order to avoid a connection loss and I/O shed, the primary controller 304 or secondary controller 306 detects the fault condition in the primary controller network 308 and switches communications to the secondary controller network 310 quickly. As a result, the I/O modules 360 and controlled devices 362 do not detect any interruption or fault, which would result in an I/O shed.

[0045] In some embodiments, programming instructions are implemented in the application layer of the controllers 304-306 in order to provide the redundancy capability. The instructions can be specifically developed to be compatible with the EtherNet/IP protocol. For example, the secondary controller 306 may be programmed with instructions to detect all devices in the EtherNet/IP controlled network 350 that the primary controller 304 was in communication with at the time of a fault. The secondary controller 306 may also be programmed with instructions to resume communications with those devices in the event of a fault condition at the primary controller 304. Likewise, each controller 304-306 may be programmed with instructions to detect a fault in the primary controller network 308 and resume communications via the secondary controller network 310. Such instructions may be initially installed into the controllers 304-306 and later maintained by an engineer or system personnel using the server 318 or operator stations 320. Once the instructions are installed, the controllers 304-306 may operate and provide the redundancy capabilities independently without continual management or oversight by the operator stations 320 or server 318.

[0046] Although FIGURE 3 illustrates one example of an EtherNet/IP process control system 300 that provides controller redundancy and controller network redundancy, various changes may be made to FIGURE 3. For example, a process control system could include any number of process elements, controllers, servers, operator stations, and networks. Also, the makeup and arrangement of the process control system 300 is for illustration only. Components could be added, omitted, combined, or placed in any other configuration according to particular needs. For instance, while the operator stations 320 are shown as part of the controller system 302, the operator stations 320 may be considered outside of the controller system 302. Further, while described as being used to produce or process certain types of products, the process control system 300 could be used in any other manner.

[0047] FIGURE 4 illustrates an example method 400 for operating an EtherNet/IP process control system in accordance with this disclosure. The method 400 may be performed in association with the system 100 of FIGURE 1, the system 200 of FIGURE 2, or the system 300 of FIGURE 3. However, the method 400 could also be used with any other suitable system.

[0048] At step 401 , a primary controller in the EtherNet/IP system communicates with at least one I/O module and at least one controlled device over a primary controller network. At step 403, a secondary controller detects whether or not a fault associated with the primary controller occurs while the primary controller is in communication with the at least one I/O module and the at least one controlled device.

[0049] If a fault is detected at step 403, the method continues to step 405. At step 405, upon detection of the fault, the secondary controller resumes communication with the at least one I/O module and the at least one controlled device. The secondary controller takes over the communication quickly enough so that the at least one I/O module does not update the at least one controlled device to a failsafe condition.

[0050] If no fault is detected at step 403, the method continues to step 407. At step 407, the primary controller (or the secondary controller if the secondary controller is operating in the primary mode) detects whether or not a fault associated with the primary controller network occurs. If a fault is detected at step 407, the method continues to step 409. At step 409, upon detection of the fault, the primary controller or secondary controller switches communication with the at least one I/O module and the at least one controlled device to the secondary controller network. The switch to the secondary controller network occurs quickly enough so that the at least one I/O module does not update the at least one controlled device to a failsafe condition. If no fault is detected at step 407, the method returns to step 401, and the method repeats.

[0051] Although FIGURE 4 illustrates one example of a method 400 for operating an EtherNet/IP process control system, various changes may be made to FIGURE 4. For example, while shown as a series of steps, various steps shown in FIGURE 4 could overlap, occur in parallel, occur in a different order, or occur multiple times. Moreover, some steps could be combined or removed and additional steps could be added according to particular needs.

[0052] In some embodiments, various functions described above are implemented or supported by a computer program that is formed from computer readable program code and that is embodied in a computer readable medium. The phrase "computer readable program code" includes any type of computer code, including source code, object code, and executable code. The phrase "computer readable medium" includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory. A "non-transitory" computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable memory device.

[0053] It may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The terms "application" and '^program" refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer code (including source code, object code, or executable code). The terms "transmit," "receive," and "communicate," as well as derivatives thereof, encompass both direct and indirect communication. The terms "include" and "comprise," as well as derivatives thereof, mean inclusion without limitation. The term "or" is inclusive, meaning and/or. The phrase "associated with," as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, have a relationship to or with, or the like. The term "controller" means any device, system, or part thereof that controls at least one operation. A controller may be implemented in hardware or a combination of hardware and software/firmware. The functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. The phrase "at least one of," when used with a list of items, means that different combinations of one or more of the listed items may be used, and only one item in the list may be needed. For example, "at least one of: A, B, and C" includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C.

[0054] While this disclosure has described certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure, as defined by the following claims.