Believe it or not, I am not the most tech-savvy guy. My friends in high school and college used to poke fun of me for it. Most of them are computer scientists now working in a variety of industries (and yet I work for an industrial technology company—funny how life works). I remember the time my friend, Ben, tried to explain the concept of Ethernet to me. Needless to say, I just wasn’t getting it. I basically gathered that it was internet in a wire and that was good enough for me. Never in a million years did I think that I would be tasked with writing a blog on EtherNet/IP, otherwise, I may have paid better attention. But here we are—two whole weeks into my tenure at Real Time Automation. Here are four things that every beginner should know about EtherNet/IP, told by a beginner.
A Brief History
During the 1980s, it was becoming more and more difficult for industrial networks to keep up with the increasing quantities of data that needed to be communicated between machines. DH+ and Modbus RTU just weren’t doing the trick. Automation speeds were rapidly increasing, and factories needed something with a little more bandwidth. As a result, DeviceNet, a brand new network protocol capable of linking 64 field devices at high speeds, was created. While the folks in the factories began to implement DeviceNet, their peers in the corporate offices began to use Ethernet to connect the devices in their offices. Come the close of the century, the Common Industrial Protocol (CIP) was adapted to both TCP and UDP; thus, forming our dear friend, EtherNet/IP.
#1 Internet Protocols
EtherNet/IP utilizes two different internet protocols: User Datagram Protocol (UDP) and Transmission Control Protocol (TCP). UDP is a connectionless “fire and forget” connection service that does not acknowledge packet delivery. UDP is the preferred method for small data transfers in situations where lost packets are not necessarily consequential. To better understand this, imagine you are playing an online multiplayer video game like Call of Duty. Player movements must continuously be synced with game updates very quickly—there is little time for delivery acknowledgment. A flow meter would also use UDP to measure flow rate. If one packet is not received, another one is being sent right behind it carrying the same exact data.
TCP, on the other hand, is a send and response protocol that ensures a reliable connection between devices. To understand this, consider how a PLC must communicate with a temperature sensor. If a machine begins to overheat, it is crucial that packets are not lost. By having insurance that the message was received, the PLC can then take action to prevent damage or extended downtime.
#2 EtherNet/IP and the Common Industrial Protocol
EtherNet/IP, like CompoNet and DeviceNet, utilizes Common Industrial Protocol (CIP). The CIP is a data representation, connection management and messaging protocol which has universal applications over many transport and physical layers. In simpler terms, you can think of CIP as a blueprint for how devices interact and represent data. That being said, EtherNet/IP is the implementation of CIP over Ethernet. CIP also defines how devices connect to one another by grouping data into common attributes called objects. These objects get grouped into classes by similar characteristics. Actual implementation of a class is referred to as an instance.
#3 Scanners and Adapters
Just as Modbus TCP clients give commands to Modbus TCP server devices (or Modbus RTU masters command Modbus RTU slave devices), EtherNet/IP scanner devices send output data to end-devices and then collect their input. These end-point devices that collect the scanner’s output are called adapters. What separates EtherNet/IP from other industrial automation protocols is that adapters can accept connections from more than one scanner. With other protocols, such as Modbus RTU, slave devices can only connect to one master device. A scanner device can connect to and access the data of any number of adapters. However, only one scanner can control the outputs of an adapter. Other scanners can monitor the output of an adapter. Adapters support two types of messages: explicit and implicit messages. Explicit messages are service-oriented request and response communications. Implicit messages, on the other hand, are cyclical outputs sent to adapters requesting information. Implicit messages are exclusive to UDP, while explicit messages are exclusive to TCP.
All devices on an EtherNet/IP network present their data to the network as a series of data values called attributes grouped with other similar data values into sets of attributes called Objects. There are two different kinds of objects: Required Objects and Application Objects. Required Objects are those that every device needs. They include the Connection Object, Router Object, TCP Object, Identity Object, and an EtherNet/IP Object. Each of these objects is nothing more than a collection of common data. For instance, the Identity Object includes information like the serial number, vendor ID, date of manufacture, etc. Application Objects are organizations of data particular to a certain device. Consider a flow meter. Within this device, you will likely find a Flow Object that measures the flow rate of whatever substance is being used. You might also find a Temperature Object that that collects data about the temperature of the substance. This object model is defined in the CIP and allows for data to flow seamlessly between EtherNet/IP devices.
I reached out to Ben recently and told him that I had written a blog about EtherNet/IP. He didn’t even know what that was! I guess the student has officially become the master. Checkmate, Ben. You may be able to build a computer from scratch, but I will always know more about EtherNet/IP.
For a deeper look into EtherNet/IP, I recommend giving The Everyman’s Guide to EtherNet/IP a read. It’s a fantastic beginner’s guide to understanding this industrial protocol.