Supported device types and versions
HART protocol is not directly implemented in D2000 yet. To communicate with a HART device it is possible to use one of the HART/Modbus converters by Papouch (www.papouch.com):
- HART RS - HART to Modbus RTU converter (RS485 interface)
- HART ETH - HART to Modbus TCP converter (ethernet interface)
A HART communication with an Endress + Hauser Proline t-mass A 150 heat flow meter has been deployed into production. The device communicated using a HART protocol version 6 with the HART ETH converter, on the D2000 side using the MODBUS Client protocol on the TCP/IP-TCP line. Following commands were implemented:
- HART command 0 - read a unique identifier - a 5-character command whose only parameter is a short device identifier (0-15). The device response includes, inter alia, data about the supported version of HART protocol, Manufacturer ID, Manufacturer Device Type, and a 3-byte Device Identification Number.
By combining the Manufacturer ID + Manufacturer Device Type + Device Identification Number, a 5-byte Unique Identifier is created, which is used in version 5 for all other commands. Using a Unique Identifier protects against communication with a wrong device (which can occur when HART loops are connected and daisy-chained).
- HART command 1 - read the primary variable - reads one value (32-bit real number) from the device. A Unique Identifier (obtained by command 0) must be used to address the device.
- HART command 3 - read the current and four dynamic variables - reads the value of the current and four preconfigured dynamic variables (32-bit real numbers) as well as their units from the device. A Unique Identifier (obtained by command 0) must be used to address the device.
The flow meter sent values of the mass flow rate, the total flow volume, and the temperature of the measured gas.
The HART ETH converter from Papouch works as follows:
- Using the MODBUS protocol, it is possible to write the HART packet that we want to send, to the converter (to the registers starting at address 52). Writing can be done with one or more Modbus write operations by the function 16 - Write Multiple Registers. According to the manufacturer's documentation, the packet begins with a start byte and does not contain an introductory preamble (3 or more 0xFF characters for synchronization of the parties).
- Subsequently, HART communication is triggered by writing the value 0x0100 to the converter's register 50. The converter will send the HART packet and wait for the answer.
- It is necessary to read the value of the register 50 until it is changed from 0x0100 to 0x0200 (successful HART communication) or 0x0000 (error/timeout).
- If the communication was successful, the HART device response can be read from the registers at address 308 and above. This response must be parsed and interpreted.
Composition of HART commands, parsing of HART responses, and reading values into user variables was programmed by the means of ESL language.
If interested in this protocol and the relevant ESL scripts, please contact the D2000 development department.
- HART Protocol Specifications - FieldComm Group https://fieldcommgroup.org/hart-specifications
You can read blogs about HART protocol (for now, in Slovak language only): Communication - HART, Modbus and a Parrot
- Ver. 1.0 - August 21st, 2017 - Document creation.