Most people who work in an office associate the term “Ethernet” with the physical cable behind their desk. This cable connects their office PC to the printers and servers of the local network and the infinite web sites on the Internet. This cable is only the physical part of Ethernet, the media carrying Ethernet messages to your PC. On this wire is a whole series of communication protocols such as IP, the Internet Protocol; TCP, the Transport Control Protocol; and various Microsoft protocols such as NetBEUI. This suite of protocols works well for the office environment. It allows users to share files, access printers, send email, search the Internet and perform all the other communications used in the office environment.
The needs of the factory floor are much different with some very special requirements. Instead of accessing files and printers, factory floor controllers must access data embedded in drive systems, operator workstations and I/O devices. Instead of letting a user wait while a task is being performed, factory floor data communications needs are real-time or very close to real time. Terminating the fill operation on a bottle requires much more time-precise communications than accessing the next page of an Internet site.
Traditionally, Ethernet had only limited acceptance in Industrial Automation. Until recently the expense, lack of intelligent switches and routers and the domination of large vendors with proprietary protocols prevented the wide acceptance of Ethernet on the factory floor. Now with prices falling, PCs with inherent Ethernet capability moving in droves onto the factory floor and intelligent switches and routers, Ethernet is gaining acceptance. Only the lack of a widely accepted, flexible application layer targeted to Industrial Automation has prevented its complete acceptance.
I’m often asked what is EtherNet/IP or can you give me an EtherNet/IP quick introduction. Here’s the top 6.5 things you need to know about EtherNet/IP. (Note: David Letterman has his Top Ten. I’m only 65% as good as David Letterman).
Ethernet/IP is the application layer protocol that can meet this challenge. Four independent groups have joined forces to develop and promote EIP as a public domain Ethernet application layer for Industrial Automation. These groups include the ODVA, the Industrial Open Ethernet Association (IOANA), Control Net International (CI) and the Industrial Ethernet Association (IEA). The goals of this effort illustrate how EIP provides a wide-ranging, comprehensive, certifiable standard suitable to a wide variety of automation devices:
The Common Industrial Protocol (CIP) is a communications protocol for transferring automation data between two devices. In the CIP Protocol, every network device represents itself as a series of objects. Each object is simply a grouping of the related data values in a device. For example, every CIP device is required to make an Identity object available to the network. The identity object contains related identity data values called attributes. Attributes for the identity object include the vendor ID, date of manufacture, device serial number and other identity data. CIP does not specify at all how this object data is implemented, only what data values or attributes must be supported and that these attributes must be available to other CIP devices.
The Identity object is an example of a required object. There are three types of objects defined by the CIP protocol:
Required objects are required by the specification to be included in every CIP device. These objects include the Identity object, a Message Router object and a Network object.
A. The identity object contains related identity data values called attributes. Attributes for the identity object include the vendor ID, date of manufacturer, device serial number and other identity data.
B. The Message Router object is an object which routes explicit request messages from object to object in a device.
C. A Network object contains the physical connection data for the object. For a CIP device on DeviceNet the network object contains the MacID and other data describing the interface to the CAN network. For EIP devices, the network object contains the IP address and other data describing the interface to the Ethernet port on the device.
Common CIP Objects
|IDENTITY OBJECT CLASS 0x01
|The Identify object provides the Identifying information for the CIP Node and includes the vendor id, the product code, the software revision information, the serial number and the product name among other items. The Identify object is a required object and there is usually only a single instance.
|MESSAGE ROUTER OBJECT CLASS 0x02
|The Message Router object provides a mechanism for external devices to access objects in a CIP device. Messages sent over Explicit connections are directed to the target object by the Message Router object.9
|CONNECTION OBJECT CLASS 0x05
|The Connection object is where the characteristics of a connection are maintained in a CIP device. An instance of the Connection object is generated for every connection. That instance identifies the connection as Explicit or Implicit, sets the packet rate on Implicit connections and holds other descriptive information on the connection. A connection object is removed when the connection is closed.
|ASSEMBLY OBJECT CLASS 0x04
|The Assembly object provides the interface to CIP devices communicating with a device over an Implicit connection. Instances of an Assembly object organize the data that is exchanged with external devices. An Input Assembly instance organizes the data that is transferred to external devices. An Output Assembly instance organizes the data that is transferred from external devices. Multiple Assembly instances may be defined, and an external device can choose (by Instance ID) which Assembly instance to use in the transfer. An Explicit Message Only device has no Assembly instances.
|PARAMETER OBJECT CLASS 0x0F
|A Parameter object provides a standard mechanism for a CIP device to make its configuration parameters publicly available to external devices. It provides complete identifying information for the configuration parameters of a CIP device.
|NETWORK SPECIFIC LINK CLASS 0xNN
|The network specific Link object provides the information on the specific link (DeviceNet, EtherNet/IP, ControlNet) used to implement the CIP device. The object specifies attributes that describe the link, such as the node addresses and data rates. See the Chapter on EtherNet/IP operation over CIP for more details on the Link object for EtherNet/IP.
|APPLICATION OBJECT CLASS IDs 0x64 to 0Xc7
|Application objects organize the specific data and services of a device. Vendors building CIP devices can choose to implement no application objects, one application object with all the data for a device or any number of application objects.
Application objects are the objects that define the data encapsulated by the device. These objects are specific to the device type and function. For example, a Motor object on a Drive System has attributes describing the frequency, current rating and motor size. An Analog Input object on an I/O device has attributes that define the type, resolution and current value for the analog input.
These application layer objects are predefined for a large number of common device types. All CIP devices with the same device type (Drive Systems, Motion Control, Valve Transducer…etc) must contain the identical series of application objects. The series of application objects for a particular device type is known as the device profile. A large number of profiles for many device types have been defined. Supporting a device profile allows a user to easily understand and switch from a vendor of one device type to another vendor with that same device type.
A device vendor can also group Application Layer Objects into assembly objects. These super objects contain attributes of one or more Application Layer Objects. Assembly objects form a convenient package for transporting data between devices. For example, a vendor of a Temperature Controller with multiple temperature loops may define assemblies for each of the temperature loops and an assembly with data from both temperature loops. The user can than pick the assembly that is most suited for the application and how often to access each assembly. For example, one temperature assembly may be configured to report every time it changes state while the second may be configured to report every one-second regardless of a change in state.
Assemblies are usually predefined by the vendor but CIP also defines a mechanism in which the user can dynamically create an assembly from application layer object attributes.
Objects not found in the profile for a device class are termed Vendor Specific. These objects are included by the vendor as additional features of the device. The CIP protocol provides access to these vendor extension objects in exactly the same method as either application or required objects. This data is strictly of the vendors choosing and is organized in whatever method makes sense to the device vendor. In addition to specifying how device data is represented to the network, the CIP protocol specifies a number of different ways in which that data can be accessed such as cyclic, polled and change-of-state.
The advantages of the CIP protocol layer over Ether are numerous. The consistent device access means that a single configuration tool can configure CIP devices on different networks from a single access point without using vendor specific software. The classification of all devices as objects decreases the training and startup required when new devices are brought online. EtherNet/IP provides improved response time and greater data throughput than DeviceNet and ControlNet. EtherNet/IP links devices from the sensor bus level to the control level to the enterprise level with a consistent application layer interface.
There are numerous application layer competitors to EtherNet/IP including Modbus/TCP from Groupe Schneider, Profinet from Siemens, and EtherCAT from Beckhoff. Unfortunately space prevents a detailed review of each of these products. However, none of these competitors can provide the vendor support, flexibility and total architecture support offered by the implementation of CIP over Ethernet.
EtherNet/IP implementation is not without challenges. Two of the most important challenges to the first time user include training and network configuration. One common problem is the lack of trained staff who understand both the IT fundamentals and the automation network. A collaborative effort between the IT and Automation staffs is required to successfully implement the first Ethernet/IP system. A second challenge is proper network configuration. Planning your Ethernet factory automation infrastructure is essential. Careful identification of all your control loops, choosing the correct routers, switches and paths and documenting your network properly are requisites for a communications network which meets your production goals and requires little ongoing maintenance.
Detractors of Ethernet applications on the factory floor often cite the lack of inherent determinism in Ethernet communications to keep it out of automation applications. While true in the past, recent developments in intelligent switches have largely eliminated this argument. These switches create separate collision domains that offer the determinism required of almost all but the most demanding of automation applications.