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.
CIP Object Model of 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
  • Get_Attribute_Single – get attribute 1
  • Get_Attributes_All – get attribute 1
Connection Manager Object (6, 6
hex
)
1
  • Get_Attribute_Single – get attributes 1…8
  • Set Attribute – reset attributes 1…8 to 0
  • Get_Attributes_All – get attributes 1…8
  • Set Attributes All – reset attributes 1…8 to 0
  • Forward Open and Forward Close for Class 3 connections
Extended HART Process Device (952, 3B8
hex
)
1

Object-specific Services of Extended HART Process Device

The following table defines additional object-specific services of the extended HART process device.
Object-specific Services of 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 to CIP Type Mapping Overrides
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 higher
CMD#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
Have questions or feedback about this documentation? Please submit your feedback here.
Normal