Skip to main content

HART-IP — 4-20mA + Digital Communication

HART (Highway Addressable Remote Transducer) is an industrial instrumentation standard that carries digital information on top of a 4-20mA analog signal. This gateway communicates over HART-IP (TCP/UDP), which wraps HART in Ethernet.

It is most commonly used for pressure, flow, temperature, and level transmitters in process industries such as chemicals, refining, power generation, and water/wastewater.


Registration Form Inputs

FieldWhat to enterExample
IP addressHART-IP gateway / multiplexer IP192.168.0.110
PortHART-IP port5094 (standard)
Response timeout (request-timeout)Response wait (ms)5000
Polling address (polling-address)HART device address (0–63)0 (point-to-point) / 115 (multidrop)
Multidrop environments

If several transmitters are multidropped behind a single HART-IP gateway, the cleanest approach is to assign a different polling address to each device and register each as a separate connection.


PLC Address Notation for Tags

HART retrieves values via commands. Commonly used commands:

HART commandMeaning
Cmd 0Device identification (manufacturer/model/tag — metadata)
Cmd 1Primary Variable (PV) — most frequently used
Cmd 2mA value of the PV
Cmd 3All four dynamic variables at once (PV, SV, TV, QV)
Cmd 13Device tag / unit / upper and lower limits

In the gateway, enter them in the cmd:<number>:<field> format.

NotationMeaning
cmd:1:PVPrimary Variable (pressure, flow, etc.)
cmd:3:PVPV only, from the Cmd 3 response
cmd:3:SVSecondary Variable
cmd:3:TVTertiary Variable
cmd:3:QVQuaternary Variable
cmd:2:CURRENTActual mA of the 4-20mA loop
cmd:13:TAGDevice tag (string)
cmd:13:UNITUnit code
Is the PV pressure or flow?

In HART, the variable itself (what the 4-20mA signal represents) is determined by the device configuration. The gateway simply retrieves "PV", so identify the physical quantity either from the transmitter's format helper (Cmd 13 unit) or by stating it explicitly in the tag name.


Data Format Matching

HART valueData formatFormat helper
PV / SV / TV / QV (Float)FloatREAL
mA (Cmd 2)FloatREAL
Device tag / unit nameStringSTR[8], etc.
Status code / Field Device StatusInteger(leave empty)

HART transmits floating-point values as IEEE 754 32-bit big-endian. The gateway decodes them automatically, so you only need to specify REAL.


Write Support

HART write commands are risky (they change the transmitter's range, unit, damping, or zero point), so use them with care.

CommandMeaning
Cmd 6Change polling address
Cmd 17Device message (32 characters)
Cmd 18Device tag / descriptor / date
Cmd 35Change PV upper / lower limits (range)

Write notation example: cmd:18:TAG — values are sent as strings.


Common Problems and Solutions

SymptomPossible causeSolution
"No response from device"Only the HART gateway responds; the device does notCheck the multidrop polling address (0 vs 1–15)
Cmd 1 value stuck at 0Transmitter is in fail-safe modeInspect the 4-20mA loop for an open circuit or short
"Cmd 3 not supported"Older HART device (below rev 5)Use Cmd 1 only. SV/TV/QV are unavailable
Unit code appears as a numberHART units are an enum (1=°C, 32=Pa, …)Convert to human-readable units with a formula or mapping table

Real-World Mapping Examples by Device

Rosemount 3051 (Pressure Transmitter)

The most widely used differential/gauge pressure transmitter. Maps the 4-20mA PV to pressure (kPa, bar, psi, etc.).

Tag nameAddressFormatNotes
Pressure (PV)cmd:1:PVFloatREAL
mAcmd:2:CURRENTFloatREAL — for loop inspection
Device tagcmd:13:TAGStringe.g., TT-201
Unit codecmd:13:UNITInteger1=in H2O, 7=kPa, 13=bar
Device statuscmd:48:STATUSIntegerSelf-test result

Endress+Hauser Promass 80 (Coriolis Flowmeter)

Tag nameAddressFormatNotes
Flow (PV)cmd:3:PVFloatkg/h
Density (SV)cmd:3:SVFloatkg/m³
Temperature (TV)cmd:3:TVFloat°C
Totalized flow (QV)cmd:3:QVFloatkg

Yokogawa EJX910A (Multivariable Transmitter)

Tag nameAddressFormatNotes
Differential pressurecmd:3:PVFloatkPa
Static pressurecmd:3:SVFloatkPa abs
Process temperaturecmd:3:TVFloat°C
Compensated flowcmd:3:QVFloat(calculated inside the device)

Common Operating Patterns

Pattern 1. Large multidrop segment (8 transmitters on one gateway)

Tag nameAddressNotes
TT-101 PVcmd:1:PV(register as a separate connection with polling address 1)
TT-102 PVcmd:1:PV(register as a separate connection with polling address 2)

Register a separate OPC entry in PlantPulse for each polling address 1–15 (same host:port, only the polling-address differs).

Pattern 2. Automatic unit display

Also collect cmd:13:UNIT (unit enum) and convert it to mapTable(unit) = "kPa" / "bar" / ... at the display layer. When the transmitter's unit changes, the displayed unit follows automatically without editing the PlantPulse registration.

Pattern 3. Loop break detection

If cmd:2:CURRENT (mA) falls below 4 or exceeds 20, suspect fail-safe mode or an open loop. Add this to your alarm rules.


Next Steps