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 (マルチドロップ) |
1 台の 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. マルチドロップ多点構成 (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 自動化サンプル