CIP Object Model of HART Device
The information in this chapter provides guidelines for communicating with ControlLogix
5580 controllers that use CIP.
Object Model of HART Device
The following table defines the CIP objects for each HART device.
Object Class | Number of Instances | Supported Services |
|---|---|---|
Identity (1, 1 hex ) | 1 | See CIP Specification Volume 7B. |
Message Router (2, 2 hex ) | 1 |
|
Connection Manager Object (6, 6 hex ) | 1 |
|
Object-specific Services of Extended HART Process Device
The following table defines additional object-specific services of the extended HART
process device.
Service Code (Hex) | Class | Instance | Service Name | Service Description |
|---|---|---|---|---|
0x4B | 3B8 hex | 1 | Execute_Command_HART_Types | Defined in HART Process Device object, Chapter 5 of CIP
Specification Volume 7B. |
0x4C | 3B8 hex | 1 | Execute_Command_CIP_Types | Executes the specified HART command. The Command Request and
Response Data Bytes are specified in CIP types. |
0x4E | 3B8 hex | 1 | Get_HART_Device_Information | Returns a copy of cached Device Configuration Information
read previously from the HART device. Data that is returned
by this service are relatively static – identity, tag,
dynamic variable device, variable code, unit, and so on. |
Execute_Command_CIP_Types Service (0x4C)
Service 4C of Extended HART Process Device follows the definition of Service 4C of
HART Process Device Object in CIP Specification, Volume 7B with some exceptions.
The following table defines the exceptions that override some of the HART to CIP Type
mapping defined in CIP Specification, Volume 7B.
HART Type | HART Type Definition | CIP Type |
|---|---|---|
Latin-1 | 67 (43) followed by USINT specifying number of characters | Logix String (1)(2) |
Packed | 68 (44) followed by USINT specifying number of characters | Logix Str1 (1)(2) |
(1) Logix STRING consists of two members: Logix STRING.LEN
(DINT) and Logix STRING.DATA (Array of SINT). The value of
the LEN member is the index of the first DATA member with a
value of 0. If there is no DATA member with a value of 0,
the LEN member value is set to the size of the DATA
array. (2) Footnote (1) applies to the unpacked version of the
string. | ||
GET_HART_DEVICE_INFORMATION Service (0x4E)
The following table defines the parameters of successful Get response.
Bytes Offset in Response | Name | Data Type | Parameter Description |
|---|---|---|---|
0 | ExpandedDeviceType | USINT | CMD#0, Bytes 1…2 |
2 | Preamble | USINT | CMD#0, Byte 3 |
3 | UnivCmdCode | USINT | CMD#0, Byte 4 |
4 | TransSpecRev | USINT | CMD#0, Byte 5 |
5 | SoftwareRevision | USINT | CMD#0, Byte 6 |
6 | HardwareRevision | USINT | CMD#0, Byte 7 |
7 | Flags | USINT | CMD#0, Byte 8 |
8 | DeviceIDNumber | BYTE | CMD#0, Bytes 9…11 (3 bytes) Device ID number plus a byte of pad (value 0), in
little-endian format. |
12 | MinPreambles | UDINT | CMD#0, Byte 12 (0 if UnivCmdCode is 5) |
13 | MaxDeviceVariables | USINT | CMD#0, Byte 13 (0 if UnivCmdCode is 5) |
14 | ConfigChangeCounter | USINT | CMD#0, Bytes 14…15 (0 if UnivCmdCode is 5) |
16 | ExtendedFieldDeviceStatus | BYTE | CMD#0, Byte 16 (0 if UnivCmdCode is 5) |
17 | Pad 1 for alignment | Octet | The value is 0. |
18 | ManufacturerIDCode | UINT | CMD#0, Bytes 17…18 if UnivCmdCode is 7 or higherCMD#0, Byte 1 cast to a UINT if UnivCmdCode is 5 or
6 |
20 | PrivateLabelDistCode | UINT | CMD#0, Bytes 19…20 (0 if UnivCmdCode is 5 or 6) |
22 | DeviceProfile | USINT | CMD#0, Byte 21 (0 if UnivCmdCode is 5 or 6) |
23 | Pad 2 for alignment | Octet | The value is 0. |
24 | TagSize | UDINT | Number of characters in TagString . Always 8 bytes.
NOTE:
TagSize and TagString can be represented
in Studio 5000 Logix Designer application as a String
data type (with max length 8). |
28 | TagString | USINT[8] (8 bytes unpacked ASCII) | CMD#13, Bytes 0…5 (1) |
36 | DescriptorSize | UDINT | Number of characters in DescriptorString . Always 8
bytes.
NOTE:
DescriptorSize and DescriptorString
combine to form a Logix String data type. |
40 | DescriptorString | USINT[16] (16 bytes unpacked ASCII) | CMD#13, Bytes 6…17 |
56 | DateDay | USINT | CMD#13, Byte 18 (2) |
57 | DateMonth | USINT | CMD#13, Byte 19 |
58 | DateYear | UINT | CMD#13, Byte 20 (+ 1900) |
60 | LongTagSize | UDINT | Number of characters in LongTagString . Either 0 bytes
or 32 bytes.
NOTE:
LongTagSize and LongTagString can be
represented in Studio 5000 Logix Designer application as
a String data type (with max length 32). This value is 0
when the HART Device does not support CMD#20. |
64 | LongTagString | USINT[32] (32 bytes unpacked ASCII) | CMD#20, Bytes 0…31 |
96 | FinalAssemblyNumber | UDINT | CMD#16, Bytes 0…2 (3 bytes) plus a pad byte (value 0) for
32-bit alignment, in little-endian format. Namely, CIP
representation, not HART representation. This value normally identifies the materials and electronics
that comprise the device. |
100 | MessageSize | UDINT | Number of characters in MessageString. Always 32 bytes. Some
can be spaces and other special characters. This and the following field combine to form a standard Logix
String data type. |
104 | MessageString | USINT[32] (32 bytes unpacked ASCII) | CMD#12, Byte 0…23, unpacked to normal ASCII
representation |
136 | PVCode | USINT | CMD#50, Byte 0, 0xff if not supported. PV assignment code |
137 | SVCode | USINT | CMD#50, Byte 1, 0xff if not supported. SV assignment code |
138 | TVCode | USINT | CMD#50, Byte 2, 0xff if not supported. TV assignment code |
139 | QVCode | USINT | CMD#50, Byte 3, 0xff if not supported. QV assignment code |
140 | PVUnits | USINT | CMD#3, Byte 4 |
141 | SVUnits | USINT | CMD#3, Byte 9, 0 if not present |
142 | TVUnits | USINT | CMD#3, Byte 14, 0 if not present |
143 | QVUnits | USINT | CMD#3, Byte 19, 0 if not present |
144 | TransferFunction | USINT | CMD#15, Byte 1 |
145 | RangeUnits | USINT | CMD#15, Byte 2 |
146 | Pad 3 for alignment | Octet [2] | The value is 0. |
148 | PVUpperRange | REAL | CMD#15, Bytes 3…6 |
152 | PVLowerRange | REAL | CMD#15, Bytes 7…10 |
156 | DampingValue | REAL | CMD#15, Bytes 11…14 |
160 | WriteProtectCode | USINT | CMD#15, Byte 15 |
161 | Pad 4 for alignment | Octet [3] | The value is 0. |
(1) HART native representation packs ASCII characters into 6
bits each. This is an expanded representation, suitable for
direct display on ASCII devices. (2) A Date code that is used by the master for record keeping
(For example, Last Or Next Calibration Date). | |||
Provide Feedback