Skip to content

Explicit Communication

Explicit communication can be used in the EtherNet/IP Device Service. This form of messaging functions as a Client-Server relationship where the Client and Server will send and receive messages asynchronously. This works best for non-real-time messaging where communication is not time critical.

Explicit Device Profile

Explicit communication over EtherNet/IP requires specific attributes to be set within resources in the device profile.

To create a device resource for explicit messaging, the following attributes are required:

Attribute Description Valid Values
type The type identifier telling the device service that this is an EM resource EM
objClass CIP object class number 0 to 65536
instID CIP object instance ID 0 to 65536
attrID CIP attribute ID (only required depending on service code used) 0 to 65535
serviceCode CIP service command code 0 to 31

The serviceCode determines whether the attrID attribute is required, as some service code commands are not attribute-specific. The table below lists attribute and data type requirements for the current service codes supported:

Service Code Command Call Type Description Required Attributes Device Resource Properties
Get Attributes All Get Retrieves all attributes for the specified object class and instance ID

When invoking this command for the Identity object, the String data type can parse the received data and label each element

The Uint8Array data type splits all data in the message into separate bytes
  • objClass: Any
  • instID: Any
  • serviceCode: 1
  • Edge Xpert data type: String, Uint8Array
  • readWrite: R
Get Attribute Single Get Retrieves a single attribute value
  • objClass: Any
  • instID: Any
  • attrID: Any
  • serviceCode: 14
  • Edge Xpert data type: Any
  • readWrite: R
Set Attribute Single Put Writes to a single attribute value
  • objClass: Any
  • instID: Any
  • attrID: Any
  • serviceCode: 16
  • Edge Xpert data type: Any
  • readWrite: W
Reset Put Resets the device
Only supported by the identity object class
  • objClass: 1
  • instID: 1
  • serviceCode: 5
  • UInt8 or Bool
  • readWrite: W
Generic Get/Put Using the Uint8Array, any service code can be used
  • objClass: Any
  • instID: Any
  • attrID: Any
  • serviceCode: Any in the range 0 to 49
  • Edge Xpert data type: Uint8Array
  • readWrite: As supported by the service code

Explicit Protocol Properties

ExplicitConnected Protocol Properties

The following ExplicitConnected protocol properties are required if an explicit connection type is set to "connected". In order to keep an explicit connection alive, an explicit request will be periodically made to a resource.

Property Description Valid Values
DeviceResource When using explicit communication, a request must be made to the device at a configured interval to keep the connection alive

Allows you to choose the device resource from a profile to use as the periodic request
Explicit device resource name that uses the service code of either:
  • Get Attribute Single (0x0E)
  • Get Attribute All (0x01)
SaveValue Defines whether the received data is pushed to Edge Xpert on each periodic request

Set to true to push the received data to Edge Xpert
  • true
  • false
RPI The interval at which the periodic request is sent to keep the class 3 connection alive Interval in milliseconds