メインコンテンツまでスキップ

HART-IP (4-20mA + デジタル)

HART (Highway Addressable Remote Transducer) は、4-20mA のアナログ信号にデジタル情報を重畳して伝送する産業計測の標準です。このゲートウェイは、HART をイーサネットでラップした HART-IP (TCP/UDP) で通信します。

化学 / 石油精製 / 発電 / 上下水道などのプロセス産業で、圧力・流量・温度・レベルトランスミッタに最も広く使われています。


登録フォームの入力値​

入力欄何を入力するか例
IP アドレスHART-IP ゲートウェイ / マルチプレクサの IP192.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 11次変数 (Primary Variable, PV) — 最もよく使う
Cmd 2PV の mA 値
Cmd 3動的変数 4種 (PV, SV, TV, QV) を一度に
Cmd 13デバイスタグ / 単位 / 上限・下限

ゲートウェイでは cmd:<number>:<field> 形式で入力します。

表記意味
cmd:1:PV1次変数 (圧力・流量など)
cmd:3:PVCmd 3 応答から PV のみ
cmd:3:SV2次変数 (Secondary Variable)
cmd:3:TV3次変数
cmd:3:QV4次変数
cmd:2:CURRENT4-20mA の実際の mA
cmd:13:TAGデバイスタグ (文字列)
cmd:13:UNIT単位コード
PV は圧力か、流量か?

HART では変数自体 (4-20mA が何を意味するか) はデバイス設定で決まります。ゲートウェイは単に「PV」を取得するだけなので、その PV がどの物理量かを示すには、トランスミッタのフォーマット補助 (Cmd 13 unit) またはユーザーがタグ名で明示します。


データ形式のマッチング​

HART の値データ形式形式補助
PV / SV / TV / QV (Float)FloatREAL
mA (Cmd 2)FloatREAL
デバイスタグ / 単位名StringSTR[8] など
ステータスコード / Field Device StatusInteger(空欄)

HART は IEEE 754 32-bit ビッグエンディアンで実数を送信します。ゲートウェイが自動デコードするため、ユーザーは REAL のみを指定すれば良いです。


書き込み (Write) サポート​

HART の書き込みコマンドは危険 (トランスミッタのレンジ / 単位 / ダンピング / ゼロ点 を変更するもの) なので、慎重に使用してください。

コマンド意味
Cmd 6ポーリングアドレス変更
Cmd 17デバイスメッセージ (32文字)
Cmd 18デバイスタグ / ディスクリプタ / 日付
Cmd 35PV の上限 / 下限 (レンジ) 変更

書き込み表記例: 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:PVFloatREAL
mAcmd:2:CURRENTFloatREAL — ライン点検用
デバイスタグcmd:13:TAGStringTT-201 など
単位コードcmd:13:UNITInteger1=in H2O, 7=kPa, 13=bar
デバイスステータスcmd:48:STATUSIntegerself-test 結果

Endress+Hauser Promass 80 (コリオリ流量計)​

タグ名アドレス形式備考
流量 (PV)cmd:3:PVFloatkg/h
密度 (SV)cmd:3:SVFloatkg/m³
温度 (TV)cmd:3:TVFloat°C
積算流量 (QV)cmd:3:QVFloatkg

Yokogawa EJX910A (多変量トランスミッタ)​

タグ名アドレス形式備考
差圧cmd:3:PVFloatkPa
静圧cmd:3:SVFloatkPa abs
プロセス温度cmd:3:TVFloat°C
補正後流量cmd:3:QVFloat(デバイス内部計算)

よく使う運用パターン​

パターン 1. 複数マルチドロップ (1ゲートウェイに 8 トランスミッタ)​

タグ名アドレス備考
TT-101 PVcmd:1:PV(ポーリングアドレス 1 で別接続として登録)
TT-102 PVcmd: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 または断線の疑い。アラームルールに追加してください。


次のステップ​