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 | 1次変数 (Primary Variable, PV) — 最もよく使う |
| Cmd 2 | PV の mA 値 |
| Cmd 3 | 動的変数 4種 (PV, SV, TV, QV) を一度に |
| Cmd 13 | デバイスタグ / 単位 / 上限・下限 |
ゲートウェイでは cmd:<number>:<field> 形式で入力します。
| 表記 | 意味 |
|---|---|
cmd:1:PV | 1次変数 (圧力・流量など) |
cmd:3:PV | Cmd 3 応答から PV のみ |
cmd:3:SV | 2次変数 (Secondary Variable) |
cmd:3:TV | 3次変数 |
cmd:3:QV | 4次変数 |
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 自動化例