I have a friend, Emily, who knows all about muscles. More than that, she knows how to figure out which muscles in your body are sloughing off and not pulling their weight! And what’s more, she can then magically tweak them to wake them from their slumber and start working again. I call Emily the Muscle Magician.
What’s interesting to me about this is that she doesn’t think she has special knowledge. Because she lives muscle-mania all day long, she assumes that everyone knows what she knows. I remind her that she’s the Muscle Magician because what she does is magic to the rest of us.
I think we are all like that. We all have very special expertise but believe that our special expertise isn’t so special and wouldn’t be valuable to someone else. I know that I am like that. I think that the stuff I know (Ethernet networks, enterprise communication, industrial protocols, and the rest) is simple, straightforward and not especially valuable.
I realized again that this wasn’t true when I was asked about the difference between EtherNet/IP, CIP, and TCP/IP. I think of that as just basic knowledge, like me asking Emily what a bicep does. Our knowledge in our chosen fields is self-evident to us but we have to remember that not everyone lives in those domains and most people just don’t know what we know.
So today I am going to address what to some is a confusing question: Just what is the difference between TCP/IP, CIP and EtherNet/IP?” Let’s look at them individually.
TCP/IP – A TCP/IP protocol suite is the collection of communication protocols needed to communicate over Ethernet. The three most important components of the TCP/IP protocol suite are IP, TCP and UDP.
- IP – IP is the Internet Protocol. It is responsible for moving a packet from Point A to Point B. IP knows nothing about TCP, CIP or EtherNet/IP. It simply moves the data packets provided to it by TCP, UDP and other protocols in a TCP/IP suite.
- TCP – TCP is an acronym for Transmission Control Protocol. It is a connection-oriented protocol that is responsible for managing the connection between a client and a server (Scanner and Adapter for EtherNet/IP fans). Among its many duties is fragmenting data packets that don’t meet size constraints and validating that messages reach their destination.
- UDP – (That’s short for User Datagram Protocol). It’s a connectionless protocol used for “send and forget” messages. Where TCP ensures that messages reach their destination, UDP just fires them off with no concern that they arrive at their destination.
Neither IP, TCP nor UDP knows anything about EtherNet/IP or CIP.
CIP – The Common Industrial Protocol (CIP) is a mechanism for organizing and sharing data in industrial devices. CIP is the core technology behind CompoNet, EtherNet/IP, DeviceNet and ControlNet. CIP organizes data as objects with data elements called attributes. CIP defines two classes of objects: required objects and application objects. Required objects are present in every CIP device. The identity object, for example, organizes identity data (vendor, catalog #, revision number, etc.) as attributes that can be accessed by the external world using a CIP read attribute message. CIP organizes application data into objects that reflect how the device vendor wants to expose the application data. CIP specifies both the object structure of a device and the messaging used to access that device. CIP defines two message types: asynchronous messages (explicit) and synchronous messages (implicit).
EtherNet/IP – EtherNet/IP is the implementation of CIP over Ethernet just as DeviceNet is the implementation of CIP over (Controller Area Network) (CAN). In EtherNet/IP, CIP objects are accessed using explicit messaging over a TCP connection and Implicit messaging over a UDP connection.
Explicit messages, which read and write attributes of objects, are transferred over a TCP connection to ensure that these types of messages arrive at their destination. Changing operational setpoints requires a connection so that the sender is certain that the new data arrived. Implicit messages, which transfer I/O data between a scanner and an adapter, are transferred over a UDP connection. These messages are cyclic and if one fails to arrive, another will be transmitted on the next cycle (usually 10 ms).
No one has ever called me the “Protocol Magician”, but I hope this description of the relationship between these three important entities provides a clear picture of EtherNet/IP and its component parts in the TCP/IP software suite.