EtherNet/IP: Implicit vs. Explicit Messaging
EtherNet/IP is younger than you and me, but still approaching maturity as it just reached its 15th birthday. Over the years, it has grown into an impressive industrial Ethernet communication network for connecting automation equipment, processes and machines. Keys to its success are the network and transport layers where explicit and implicit messaging takes place; here’s how to use these features to optimize your EtherNet/IP networks.
Please refer to the Table and Diagram below for clarification as we discuss explicit and implicit messaging.
With explicit messaging, the controller is called the client and the field devices are called servers. With implicit messaging, the controller is called the I/O Scanner and the field devices are called I/O Adapters.
It is important to select a controller that can support explicit messaging as a client or server, and implicit (real I/O) messaging as a scanner or adapter.
Which Messaging Mode is Best For You?
The selection of explicit or implicit messaging often depends on the choice of field devices, as each may support only one messaging mode. A controller, on the other hand, generally supports both modes as a client, server, scanner or adapter.
If your application requires large amounts of data, explicit messaging is the preferred choice because bandwidth is saved, as data is only requested when necessary.
For high speed, real-time applications, implicit messaging is the way to go. Think of the “i” in implicit as the “I” in I/O messaging, which of course requires high speed as I/O is generally used for real-time control.
Explicit messaging requires programming in the controller for setup. You need to request the data, add handshaking, acknowledge the data, and move the data where it’s needed in the controller.
Real-time implicit messaging can be quickly configured. Just set the controller up as a scanner to receive data, and configure the connection to a remote EtherNet/IP device by filling in the blanks in the controller programming software. This configuration is basically just defining what the data is and where it will be in the controller data table. Once configured, the data just shows up in the controller memory with no handshaking required.
For outgoing commands from the controller to field devices, just write to local memory and the data is automatically sent to the device. The data is transferred at the rate you specify, typically in the 5ms to 20ms range.
Explicit Messaging Details
Within EtherNet/IP, the explicit message connection can be thought of as a client/server relationship. The client, such as the PLC controller, asks or requests the information from a server, such as a VFD field device, and the server sends the requested information back to the controller.
Because the client requests the information from the server via TCP/IP services, the request has all the information needed to respond explicitly to the message. The Client basically says, “Server, I need this information, formatted exactly as specified in this message, please send it.” The server responds with a message containing the formatted information, perhaps confirmation that the VFD speed set point has changed, to let the controller know everything is OK.
This configuring and monitoring ability, common to explicit messaging, works well for non-real time messaging as the client (controller) can send a message request anytime, and the server (field device) can respond when it’s available. Explicit messaging is typically used for client/server communication which isn’t time critical.
Implicit Messaging Details
EtherNet/IP uses implicit messaging, sometimes called I/O messaging, for time-critical applications such as real-time control. Implicit messaging is often referred to as I/O messaging because it’s frequently used for communication between a controller and remote I/O. It’s a much more efficient communication connection than explicit messaging as both the client and server ends are pre-configured to know implicitly or exactly what to expect in terms of communication.
Real-time, implicit messaging basically copies data with minimal additional information built into the message. Each end of the communication link doesn’t need to be told much about what the information is for as the data has been predefined. The meaning of the data is “implied” or “implicit” so there is no extra baggage because both ends already know exactly what each bit and byte mean.
There are two forms of messaging connections used with EtherNet/IP: unconnected and connected. Unconnected messaging is typically used for explicit messages. Connected messaging uses features built into each device and configured in advance for real-time I/O messaging, and it’s commonly used with implicit messaging.
Not all controllers with EtherNet/IP support both explicit and implicit messaging, be sure to verify that the messaging capabilities of your controller match those required by your application.