EtherNet/IP CIP Path Decoder
Use this EtherNet/IP CIP Path Decoder to decode raw CIP EPATH bytes into Class, Instance, Attribute, Member and ANSI symbolic tag segments. Inspect segment sizes, integer values, symbolic names, padding and total path words.
Decoded Path Segments
-
-
What Is an EtherNet/IP CIP Path Decoder?
A CIP Path Decoder interprets the encoded path used by Common Industrial Protocol requests to identify an object or symbolic data item. EtherNet/IP transports CIP messages over Ethernet, while the EPATH inside a CIP request identifies where the requested service should be applied.
A path may identify an object by Class, Instance and Attribute, or it may use a symbolic segment to reference a controller tag by name.
This tool converts raw hexadecimal path bytes into those individual path segments and reports each segment’s format and value.
CIP EPATH Logical Segments
Logical segments are commonly used to identify CIP objects and members. Several compact 8-bit logical forms are especially common:
| Segment | 8-Bit Encoding | 16-Bit Encoding | Purpose |
|---|---|---|---|
| Class ID | 20 xx | 21 00 LL HH | Select CIP class |
| Instance ID | 24 xx | 25 00 LL HH | Select class instance |
| Member ID | 28 xx | 29 00 LL HH | Select array/structure member |
| Attribute ID | 30 xx | 31 00 LL HH | Select object attribute |
CIP Class Instance Attribute Example
Consider this EPATH:
The human-readable path is therefore:
8-Bit and 16-Bit Logical Segments
Small logical values can be encoded directly using the compact 8-bit form. Larger values require a 16-bit logical segment.
What Is CIP ANSI Extended Symbol Segment 0x91?
CIP supports symbolic paths for accessing data by name. Logix controllers
commonly use the ANSI Extended Symbol segment beginning with hexadecimal
91.
CIP Symbol Padding
EPATH data is word-oriented. An ANSI Extended Symbol segment with an odd number of characters therefore uses one zero pad byte after the symbol.
The padding byte is alignment only and is not part of the symbolic tag name.
CIP Member ID Segments
Member logical segments can identify an array element or structure member after a symbolic segment.
Why CIP 16-Bit Values Are Little-Endian
Multi-byte logical values in these EPATH segment formats are represented with the low-order byte first.
Reading the value as 0x3412 would reverse the intended byte order.
CIP Path Size in Words
Many CIP service requests contain a Request Path Size field immediately before the EPATH. That size is expressed in 16-bit words rather than raw bytes.
CIP EPATH vs EtherNet/IP Packet
CIP EPATH
Identifies the target object, instance, attribute, member or symbolic item inside a CIP request.
EtherNet/IP Packet
Can include encapsulation headers, commands, session information, CPF items and CIP request or response data.
This decoder intentionally analyzes the EPATH only. It is not a full Ethernet frame or EtherNet/IP encapsulation packet parser.
CIP Class ID
The Class ID identifies a CIP object class. A following Instance segment normally identifies one instance of that class.
CIP Instance ID
An Instance ID selects a particular instance within the previously identified class.
Larger instance values can use the corresponding 16-bit or 32-bit logical format.
CIP Attribute ID
Attribute segments identify a specific attribute of the selected object instance.
CIP 32-Bit Logical Segments
Logical segment formats can also carry 32-bit values. Their format selector changes from the compact 8-bit or 16-bit encoding, and the value occupies four little-endian bytes after the required pad.
The decoder recognizes the 32-bit logical format for Class, Instance, Member and Attribute segments when present.
Unknown CIP Path Segments
CIP EPATH supports more segment families than just the common logical and symbolic segments shown here, including port, network and data segments.
If this decoder encounters a segment it cannot safely determine the length of, it reports the remaining bytes as an unsupported segment instead of attempting to fabricate a field interpretation.
Common CIP Path Decoding Mistakes
Including Service Byte
The service code precedes the Request Path Size and is not itself an EPATH segment.
Including Path Size
The Request Path Size byte describes the EPATH size; it is normally outside the path bytes.
Ignoring Little-Endian Values
Multi-byte logical values store their low-order byte first.
Counting Symbol Padding
The zero pad after an odd-length 0x91 symbol is not part of the tag name.
Assuming Every Segment Is Logical
CIP also defines port, network, symbolic and data segment families.
Reading Path Size as Bytes
The Message Router Request Path Size is expressed in 16-bit words.
EtherNet/IP CIP Path Decoder FAQs
What is a CIP path?
What does 20 mean in a CIP path?
What does 24 mean in a CIP path?
What does 30 mean in a CIP path?
What does 28 mean in a CIP path?
What does 0x91 mean in a CIP path?
How is a CIP symbolic tag encoded?
Why does a CIP symbol sometimes end with 00?
Is the padding byte part of the tag name?
How is a 16-bit CIP logical value encoded?
What does 25 00 34 12 mean?
How is CIP Request Path Size calculated?
Does the path size include the service byte?
Can CIP use symbolic tag names?
How are array elements represented?
Does this decode full EtherNet/IP packets?
Are CIP paths always Class / Instance / Attribute?
Decode CIP Object and Symbolic Paths
Paste raw EPATH hexadecimal bytes to inspect Class, Instance, Attribute, Member and ANSI symbolic segments, verify word alignment and understand the path used by an EtherNet/IP CIP request.