HART-IP — 4-20mA + 数字通信
HART (Highway Addressable Remote Transducer) 是在 4-20mA 模拟信号上叠加传输数字信息的工业仪表标准。本网关通过将 HART 封装于以太网之上的 HART-IP (TCP/UDP) 进行通信。
它最常用于化工、炼油、发电、供排水等流程工业的压力、流量、温度、液位变送器。
注册表单填写项
| 输入项 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | HART-IP 网关 / 多路复用器 IP | 192.168.0.110 |
| 端口 | HART-IP 端口 | 5094 (标准) |
| 响应超时 (request-timeout) | 响应等待时间 (ms) | 5000 |
| 轮询地址 (polling-address) | HART 设备地址 (0~63) | 0 (point-to-point) / 1~15 (多点挂接) |
如果一个 HART-IP 网关后面以多点挂接方式连接了多台变送器,最清晰的做法是为每台设备指定不同的轮询地址,并分别注册为独立连接。
标签的 PLC 地址表示法
HART 通过命令 (Command) 获取数值。常用命令:
| HART 命令 | 含义 |
|---|---|
| Cmd 0 | 设备识别 (制造商/型号/标签 — 用于元数据) |
| Cmd 1 | 一次变量 (Primary Variable, PV) — 使用最多 |
| Cmd 2 | PV 的 mA 值 |
| Cmd 3 | 一次性读取 4 个动态变量 (PV, SV, TV, QV) |
| Cmd 13 | 设备标签 / 单位 / 上下限 |
在网关中按 cmd:<number>:<field> 格式输入。
| 表示法 | 含义 |
|---|---|
cmd:1:PV | 一次变量 (压力、流量等) |
cmd:3:PV | Cmd 3 响应中仅取 PV |
cmd:3:SV | 二次变量 (Secondary Variable) |
cmd:3:TV | 三次变量 |
cmd:3:QV | 四次变量 |
cmd:2:CURRENT | 4-20mA 的实际 mA 值 |
cmd:13:TAG | 设备标签 (字符串) |
cmd:13:UNIT | 单位代码 |
HART 的变量本身 (4-20mA 代表什么物理量) 由设备侧配置决定。网关只是取回 “PV”,因此该 PV 对应哪种物理量,可通过变送器的格式辅助 (Cmd 13 unit) 判断,或由用户在标签名称中注明。
数据格式匹配
| HART 的值 | 数据格式 | 格式辅助 |
|---|---|---|
| PV / SV / TV / QV (Float) | Float | REAL |
| mA (Cmd 2) | Float | REAL |
| 设备标签 / 单位名称 | String | STR[8] 等 |
| 状态代码 / Field Device Status | Integer | (留空) |
HART 以 IEEE 754 32-bit 大端格式传送浮点数。网关会自动解码,用户只需指定 REAL 即可。
写入 (Write) 支持
HART 的写入命令具有风险 (会更改变送器的量程 / 单位 / 阻尼 / 零点),请谨慎使用。
| 命令 | 含义 |
|---|---|
| Cmd 6 | 更改轮询地址 |
| Cmd 17 | 设备消息 (32 字符) |
| Cmd 18 | 设备标签 / 描述符 / 日期 |
| Cmd 35 | 更改 PV 的上限 / 下限 (量程) |
写入表示法示例:cmd:18:TAG,数值以字符串形式发送。
常见问题与解决
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| “No response from device” | 仅 HART 网关响应,设备无响应 | 确认多点挂接的轮询地址 (0 vs 1~15) |
| Cmd 1 数值固定为 0 | 变送器处于 fail-safe 模式 | 巡检 4-20mA 线路是否断线 / 短路 |
| “Cmd 3 not supported” | 老型号 HART 设备 (低于 rev 5) | 仅使用 Cmd 1。无法使用 SV/TV/QV |
| 单位代码显示为数字 | HART 单位为 enum (1=°C, 32=Pa, …) | 通过计算公式 / 映射表转换为易读单位 |
常用设备的实际映射示例
Rosemount 3051 (压力变送器)
应用最广泛的差压 / 表压变送器。将 4-20mA 的 PV 映射为压力 (kPa、bar、psi 等)。
| 标签名称 | 地址 | 格式 | 备注 |
|---|---|---|---|
| 压力 (PV) | cmd:1:PV | Float | REAL |
| mA | cmd:2:CURRENT | Float | REAL — 用于线路巡检 |
| 设备标签 | cmd:13:TAG | String | 如 TT-201 |
| 单位代码 | cmd:13:UNIT | Integer | 1=in H2O, 7=kPa, 13=bar |
| 设备状态 | cmd:48:STATUS | Integer | self-test 结果 |
Endress+Hauser Promass 80 (科氏力质量流量计)
| 标签名称 | 地址 | 格式 | 备注 |
|---|---|---|---|
| 流量 (PV) | cmd:3:PV | Float | kg/h |
| 密度 (SV) | cmd:3:SV | Float | kg/m³ |
| 温度 (TV) | cmd:3:TV | Float | °C |
| 累积流量 (QV) | cmd:3:QV | Float | kg |
Yokogawa EJX910A (多变量变送器)
| 标签名称 | 地址 | 格式 | 备注 |
|---|---|---|---|
| 差压 | cmd:3:PV | Float | kPa |
| 静压 | cmd:3:SV | Float | kPa abs |
| 过程温度 | cmd:3:TV | Float | °C |
| 补偿后流量 | cmd:3:QV | Float | (设备内部计算) |
常用运维模式
模式 1. 多点挂接 (一个网关下挂 8 台变送器)
| 标签名称 | 地址 | 备注 |
|---|---|---|
| TT-101 PV | cmd:1:PV | (以轮询地址 1 注册为独立连接) |
| TT-102 PV | cmd:1:PV | (以轮询地址 2 注册为独立连接) |
对轮询地址 1~15 分别在 PlantPulse 侧单独注册 OPC (host:port 相同,仅 polling-address 不同)。
模式 2. 单位自动显示
同时采集 cmd:13:UNIT (单位 enum),在展示端进行 mapTable(unit) = "kPa" / "bar" / ... 转换。变送器单位变更时,无需修改 PlantPulse 注册即可自动跟随显示单位。
模式 3. 线路断线检测
若 cmd:2:CURRENT (mA) 小于 4 或大于 20,则怀疑处于 fail-safe 状态或线路断线。可加入报警规则。
下一步
- 标签注册 中的 [数据格式] / [格式辅助] 匹配表
- 高级 — REST API 中的 HART-IP 自动化示例