It is important in many industrial applications to detect faults quickly. One such fault is losing communication to EtherNet/IP I/O. EtherNet/IP supports a variable timeout value, which is expressed in terms of Requested Packet Intervals (RPIs). For example, the ControlLogix establishes its EtherNet/IP I/O connections with a timeout of 32 RPIs. Therefore, an RPI of 5.0 ms will have a timeout of 32 x 5.0 ms or 160 ms.
When either device in an I/O connection does not receive a packet from the other device for the timeout interval, it closes the connection and typically indicates this condition to the main program. The method of indicating this condition depends on the actual device. This topic describes the methods used by the RMC and ControlLogix.
Handling Broken I/O Connections in the RMC
The following conditions are defined as a broken connection in the RMC ENET:
The controlling connection is broken due to a timeout. This will occur when the cable is disconnected, when excessive collisions cause the connection to timeout, or when the client is powered off or reset.
The controlling client intentionally closes the connection. This can happen when an I/O connection is removed, when a new program is downloaded to the client, or when the connection is reconfigured to have a different RPI or data size.
Although not strictly a broken connection, the condition of the controlling client switching from Run to Program mode also triggers this handling.
Note: All of these conditions only apply to the controlling client and its connection. No broken connection actions will be done when an Input Only connection is broken.
The action taken when any of these conditions occur is selectable by the Broken Connection Action byte of the Configuration Data described in Controlling the RMC over EtherNet/IP I/O. If this byte is omitted, the connection will behave as though the Broken Connection Action byte was specified as -1. The following values define the recovery action taken:
Value |
Action |
-1 |
Every axis without the Continue bit set in its Configuration word is halted and its event step sequence stops if it was running. All such axes will receive the Halt (H) command unless they are in open loop, in which case they will receive the Disable Drive Output (K) command. For more flexibility, use Broken Connection Action values of 0 to 31 as described below. |
0 to 15 |
The Simulate Rising Edge ({ ) command is issued to axis 0 with a command value equal to the value of the Broken Connection Action byte (0 to 15). This allows the user to define an event sequence to run on any or all of the axes. Therefore, event sequences can be stopped and other special recovery sequences can be run. Review the Simulate Rising Edge command and the Input-to-Event table for details. |
16 to 31 |
Same as 0 to 15, except that the Simulate Falling Edge (}) command is issued with a command value equal to the value of the Broken Connection Action byte minus sixteen (0 to 15). |
Handling Broken I/O Connections in the ControlLogix
The ControlLogix has two methods of handling a broken connection with an EtherNet/IP device such as the RMC:
In the Module Properties dialog box for the RMC, on the Connection tab, the Major Fault On Controller If Connection Fails In Run Mode check box can be checked to fault the ControlLogix when the EtherNet/IP connection to the RMC is broken.
The Get System Value (GSV) block can be used to read the status of the connection in ladder logic. The following ladder logic demonstrates this:
The core of this ladder segment is reading the EntryStatus and FaultCode attributes from the RMC MODULE object using the GSV blocks. The MODULE objects are internal to the ControlLogix and represent external modules. In the Instance Name field of the GSV blocks, type the name you selected for the particular RMC module.
If the connection to the module is running, then the high four bits of the EntryStatus will be equal to 4 and the FaultCode will be equal to 0. This is described in the RSLogix 5000 online help's "Accessing the MODULE Object" topic.
The above ladder masks off the low 12 bits of the EntryStatus using an AND block, and then sets the RMCConnFault coil to indicate whether or not the connection is faulted.
Copyright (c) 1997-2015 by Delta Computer Systems, Inc.