PUB00070_Recommended-Functionality-for-EIP-Devices-v10
PUB00070_Recommended-Functionality-for-EIP-Devices-v10
Version 10 PR001
November 28, 2018
PUB00070R10
Published by
1 Introduction
1.1 Scope of Document
The purpose of this document is to recommend functionality related to the EtherNet/IP protocol
implementation in EtherNet/IP devices. The recommendations are a result of work generated by
the ongoing series of EtherNet/IP Implementors Workshops. The recommendations are being
made to help ensure interoperability between devices and provide a minimum level of capability
required for user applications.
It should be understood that a device may be compliant to the EtherNet/IP specification yet not
meet the minimum recommendations described in this document for the type of device. Such a
device is a valid EtherNet/IP device; however, the vendor will not be able to state that the device
meets the workshop recommendations.
Explicit Message Server Device This section explains the functionality that is
recommended for explicit message server devices over
and above the Common Device section.
Explicit Message Client Device This section explains the functionality that is
recommended for explicit message client devices.
2.1 CIP
1. The device shall, at a minimum, provide support for:
a) 3 concurrent Encapsulation sessions.
b) 6 concurrent Transport Class 3 Explicit Messaging connections.
c) More than 1 Transport Class 3 connection per Encapsulation session.
Rationale: A server should be able to handle requests from 3 client nodes, 2 continuous and 1
transitory (e.g. controller, HMI, and commissioning tool). Some clients may require more
than 1 CIP Class 3 connection on a given Encapsulation session.
2. The device shall support both unconnected and connected messaging concurrently in an
Encapsulation session.
3. Use of Device Type Code 0x00 has been deprecated. New generic devices shall report the
keyable Generic Device Type Code (0x2B).
4. Transport Class 3 connections shall support priorities Low and High. This applies to Class 3
servers only.
2. The device shall follow the recommendations put forth in the ODVA document
Recommended IP Addressing Methods for EtherNet/IP Devices, Version 1.0, June 10, 2003
(PUB00028). In summary, this document specifies the following features in regards to IP
addressing:
a) The device shall by default issue BOOTP or DHCP requests at initial power up “out-
of-box” (from the vendor).
b) The device shall facilitate enabling and disabling BOOTP or DHCP via the TCP/IP
Object (Class 0xF5).
c) The device shall allow its IP address (and other IP parameters) to be set using the
TCP/IP Object. This requirement does not prohibit the device from supporting other
means of setting these parameters.
d) The device shall allow the user to make a valid IP address persistently stored in non-
volatile memory, via attributes and services of the TCP/IP Object.
3. The device shall reserve, at a minimum, 3 concurrent TCP connections for CIP. If other
protocols (HTTP, FTP, etc.) are supported, the number of concurrent TCP connections
supported should account for these protocols in addition to the connections reserved for CIP.
4. The device shall provide support for UDP requests. The List Identity command is typically
transmitted as a UDP broadcast by network tools.
5. The device shall cease sending BootP/DHCP requests once an IP address has been obtained
from the BootP/DHCP server and has been successfully applied. It is understood that a
DHCP-configured device will attempt to renew its IP address at some point, but this
requirement is for the initial requests.
6. The device shall not issue BootP/DHCP requests when configured to use a static IP address
as indicated by the Startup Configuration bits being set to zero in the Configuration Control
Attribute of the TCP/IP Object.
3. The device shall provide auto negotiation of duplex and data rate with a configurable manual
override. Auto Negotiation plus Manual Override provides support for the widest possible
range of network infrastructure devices, e.g. switches. The device shall store the link settings
(e.g. Auto-Negotiate, Fixed Speed & Duplex) in non-volatile memory such that they are
persistent through a cycle of power to the device.
4. The device shall follow the recommendations put forth in the ODVA document
Recommended IP Addressing Methods for EtherNet/IP Devices, Version 1.0, June 10, 2003
(PUB00028). In summary, this document specifies the following features in regards to
Ethernet and Physical Layer:
a) For 100Base-T devices, the device shall allow the user to select auto-negotiation or
manual setting of duplex mode and port speed, per the Ethernet Link Object
b) The Ethernet MAC address shall be visible on the device (e.g., on a label). Note that
the address may be hidden after the device is installed.
5. It is recommended that the device physical layer conform to the EtherNet/IP Industrial
Conformance Level. Note that this recommendation does not apply to PC-based or transitory
devices. This includes:
a) The latest EtherNet/IP industrial physical layer as specified in Volume 2,
Performance Levels (e.g. section 8.7 in Ed. 1.20,).
b) EtherNet/IP specific LED, or equivalent, indicators (Module Status, Network Status)
as specified in Volume 2, Indicators (e.g. section 9.4 in Ed. 1.20).
6. It is recommended that the device have LED, or equivalent, indication for Ethernet Link
Status, Transmit and Receive. It is recommended that LED behavior on all future
development follow the behavior described below.
a) Devices with a single indicator:
2.5 Performance
3.2 CIP
No addition to Common Device Recommendations.
3.6 Performance
No addition to Common Device Recommendations.
4.2 CIP
1. The device shall meet the minimum requirements defined in the CIP and EtherNet/IP
specifications for a messaging client, which includes certain explicit server functionality such
as Identity object support.
2. The device shall support the initiation of both connected and unconnected explicit messaging.
4.6 Performance
No addition to Common Device Recommendations.
There are several references in this section to "rack-based" devices. For the purpose of this
document, a rack-based device is one that conforms to the Modular description in Volume 1 of
the CIP specification (e.g., section 7-3.7 Modular EDS File Requirements in Ed. 3.19).
5.2 CIP
1. The device shall support all CIP recommendations described in the Common Device
Recommendations section 2.1.
2. The device shall accept, at a minimum, 2 simultaneous Transport Class 1 I/O connections, in
the combinations outlined in 3.d) below. (Rationale: 1 Exclusive Owner or Input Only
connection for a controller and 1 Input Only or Listen Only connection for a monitoring
device, each connected to the same TO connection point.)
a) The device shall support the Class 1 and Class 3 connection requirements
simultaneously, i.e. the device must support 8 simultaneous connections (2 Class 1 +
6 Class 3)
e) The device shall support an Exclusive Owner connection if the device has output
data.
f) The device shall support a Listen Only or Input Only connection supporting more
than 1 listener if the device has input data. Note that this is necessary regardless of
whether the device has output data or not.
g) The device shall provide a "heartbeat" connection path to be used for connection
pairs where application data is only flowing in one direction. Note: Connections to
the heartbeat connect path are configured with 0 data length and do not include a 32-
bit Real-Time Header (Run/Idle Header).
h) The device shall support Electronic Keys in the Forward_Open connection path. The
device shall also support a Null key segment and no key segment.
i) The device shall support the 32-bit Real-Time Header (Run/Idle Header) in the OT
connection data. Note that the device may also support other connection data formats
as well.
j) The device shall support priorities High and Scheduled.
4. The device shall accept a Configuration path as part of the Forward_Open request. This is
not a requirement for rack-based devices.
Devices that support the data segment for configuration data shall accept Forward_Opens
with all 3 types of data segments: None, Null, or Non-Null. Devices that choose not to
support the data segment for configuration data shall still specify and accept a Configuration
path. This unused configuration path may be the same as the “heartbeat” path associated with
the I/O connection(s).
Devices not requiring configuration data shall only accept Forward_Opens with Null or No
data segments; Forward_Open requests containing Non-Null data segments shall be rejected.
A device shall retain its configuration even if all connections are terminated. Devices may
lose their configuration on a reset.
Rationale: It is stated in Vol 1, 3-6.2 that “If no data segment is specified the existing
configuration continues to be used.” The device may require configuration data with the
Forward_Open after initial power up. However, until the device is reset, the device must
accept Forward_Opens with no configuration data, in which case it would continue to use the
existing configuration.
5. The device shall support the Assembly object. Assembly object instances shall be used to
specify connection paths for Transport Class 1 connections. Path segments in the
Forward_Open shall use the compressed format in the following order: Configuration
instance, Consumed Data connection point, Produced Data connection point, and data
segment if present. This is not a requirement for rack-based devices.
6. The device shall provide access to configuration parameters/attributes via Explicit Messaging
(e.g. web-only access is not acceptable). Note that it is not necessary to utilize the Parameter
Object. This does not apply to rack-based, technology enabler devices, or devices with user-
defined I/O data content (e.g. EtherNet/IP to other network gateway, target connections of a
PLC).
7. The device shall provide access to its I/O Data attribute(s) via unconnected and/or connected
(Class3) explicit messaging, e.g. Assembly object, instance attribute 3. Write requests to
Output data shall be rejected when the assembly is linked to an active I/O connection and
succeed when the connection is not active. Explicit messaging-based access to I/O Data
attribute(s) is not a requirement for rack-based devices. The I/O Data attributes shall not
include the 32-bit Real-Time Header (Run/Idle Header).
8. The device shall not report the deprecated extended status codes of the Connection Manager
object as specified in Volume 1, Connection Manager Object Instance Error Codes (e.g.
section 3-5.6 in Ed. 3.19).
2. The format of the I/O connection data shall be detailed in the EDS [Assem] section. This
does not apply to rack-based, technology enabler, or explicit messaging-only devices, or
devices with user-defined I/O data content (e.g. EtherNet/IP to other network gateway, target
connections of a PLC).
3. The EDS file shall include the [Connection Manager] section. This will allow easy
configuration of connections from scanners supporting the Connection Configuration object.
4. If the device supports configuration data with the Fwd_Open, the format of the configuration
data shall be detailed in the EDS [Assem] section and associated parameters shall be defined
in the [Param] section.
5.6 Performance
1. The device shall support all Performance recommendations described in the Common Device
Recommendations section 2.5.
2. The device shall conform to the following I/O performance measures under no background
traffic for 60 seconds:
Mean measured packet interval (MPI) with respect to reported API < ±10%
3. The device shall conform to the following I/O performance measures under a steady-state
amount of background traffic for 30 seconds:
The EtherNet/IP Connected Class 1 I/O only applies to the test cases where IGMP is
disabled, representative of the use of unmanaged switches.
4. The device shall conform to the following I/O performance measures under a burst of
background traffic during the same steady-state amount of background traffic:
Return to within this percentage of the mean MPI with respect to < ±10%
reported API within the test period
The burst of background traffic will consist of the following 240 ARP Request packets in a
60 ms period, for an effective rate of 4000 packets/s.
6.2 CIP
1. The device shall support all CIP recommendations described in the Common Device
Recommendations section 2.1.
2. The device shall support, at a minimum, origination of 8 Transport Class 1 I/O connections.
Although the actual number of connections supported is application specific, support for 64
or more is recommended.
4. The device shall be able to deliver a device Configuration Assembly (of ≤ 400 bytes) as part
of Forward_Open/Large_Forward_Open.
5. The device shall provide access to I/O data collected as a result of its “scan list” via Explicit
Messaging, e.g. Assembly object instance attribute 3. The I/O data collected shall not
include the 32-bit Real-Time Headers (Run/Idle Header).
6. It is recommended that the Connection Configuration object be supported. This will provide
a standard means of configuring the scanner.
7. It is recommended that the device accept (be a target of), at a minimum, 2 Transport Class 1
I/O connections. If this functionality is supported, the connections shall support the
Transport Class 1 connection features defined for the Adapter class device (section 5.2, items
2-5).
8. It is recommended that the device support the Extended Symbolic path segment in the
Forward_Open as an originator and a target. This would provide interoperable peer-to-peer
communication with current EtherNet/IP scanners.
2. If the device accepts Transport Class 1 connections from other devices, the EDS file shall
include the [Connection Manager] section. This will allow easy configuration of connections
from scanners supporting the Connection Configuration object.
6.6 Performance
1. The device shall support all Performance recommendations described in the Common Device
Recommendations section 2.5.
2. If the device supports Adapter functionality, then the device shall support all the Performance
recommendations described in the Adapter Device Recommendations section 5.6.
6.4
2.2 5.2-2 & 1. Clarified that device must support 2/8/2012 Darren Klug
PR001 5.2-3 multiple, unicast connections for
the same connection point.
2. Added requirement that Generic
2.1 devices report Device Type 0x2B.
3. Clarified that config rules apply
to f_open-based config.
5.2-4 4. Clarified that a device may
require a f_open with a non-null
data segmentfor unowned targets.
5.2-4 5. Added proposals to require TaCL
and recommend that deprecated
f_open extended status codes no
longer be used.
2.1 6. Removed reference to June 2006
IPv4 Address Conflict Detection
for EtherNet/IP Devices
document.
2.6 7. Updated spec references.
3 PR001 2.1, 5.2, 1. Moved Target Connection List 2/23/2012 Darren Klug
6.2 recommendation to Adapter and
Scanner sections (vs. Common).
2. Moved updated status code
2.1, 5.2 recommendation to Adapter
section (vs. Common).
3. Reversed item 4 in Rev 2.2
5.2-4 PR001. Clarified that a device
shall retain its configuration even
if all connections are terminated.
4. Cleaned up formatting.
Througho
ut
3 PR002 5.2 1. Clarified combinations of 3/2/2012 Darren Klug
multicast and unicast connections
required.
Througho 2. Replaced “->” with “”
ut
3 PR003 5.2 Further clarifications to mc/uc 5/23/2012 Darren Klug
required cnxn combos.
3 PR004 5.2 A few more tweaks based on internal 5/24/2012 Darren Klug
RA feedback. Changed support for
CoS from recommendation to
requirement.
3 PR005 Througho 1. Changed spec reference format 6/4/2012 Darren Klug
ut (so updates are not required every
time spec is updated).
2. Clarified that Device Type 0x00
has been deprecated.
This table
9 2.3, item Removed Half Duplex requirement 4/20/2018 Perry Green X X
1
10 1.3 Remove sentence with document 11/28/2018 Perry Green X X
version in it.