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

DNP3 — 電力 / Utility 標準

DNP3 (Distributed Network Protocol v3) は、電力会社 / 上下水道 / ガスなどの utility SCADA で最も広く使われているプロトコルです。RTU / IED と SCADA master 間の通信標準であり、時刻同期 (time-stamped events)信頼性のある報告 (unsolicited responses) が主な特徴です。


登録フォームの入力値

入力欄何を入力するか
IP アドレスRTU / IED の IP192.168.0.120
ポートDNP3 TCP ポート20000 (標準)
Master アドレス (master-address)ゲートウェイ (master) 自身のアドレス1
Outstation アドレス (outstation-address)相手 (slave) の DNP アドレス10
応答タイムアウト (request-timeout)応答待ち時間 (ms)5000
Unsolicited (enable-unsolicited)RTU からの自発送信 (push) を有効化 — ドライバが cache し read() 時に優先して返すall / 1 / 2 / 3 / 1,2 (既定は空欄 = 未使用)
両方のアドレスが一致しないと通信できません

DNP3 は master アドレス / outstation アドレスが 双方で一致 している必要があります。RTU 側の設定 (通常は ABB / SEL / GE の IED 設定ツール) で「Source Address」と「Destination Address」がゲートウェイの master/outstation と対になっているか確認してください。


タグの PLC アドレス表記

DNP3 は Group / Variation / Index でデータポイントを識別します。よく使われる group:

Group種類備考
1Binary Input (BI)遮断器・接点状態など
10Binary Output (BO)出力状態
20Counter積算カウンタ
30Analog Input (AI)電流・電圧・温度 — 最も一般的
40Analog Output (AO)出力 setpoint
41Analog Output Block (write 対象)setpoint 書き込み

ゲートウェイでは g<group>v<variation>.<index> または class<n> 形式で入力します。

表記意味
g30v1.5Analog Input, var 1 (32-bit + flag), index 5
g30v5.5Analog Input, var 5 (Float), index 5
g1v2.0Binary Input, var 2 (with flag), index 0
g20v1.0Counter, 32-bit, index 0
class0Class 0 polling (静的データの全スキャン)
class1Class 1 events (イベント性の変化)
Class 0 vs g30v1.x

プロジェクトの初期段階で「まずは全部取得してみたい」場合は、class0 で一括受信した後、必要なポイントだけを選んで g30v... で精密に登録するのが便利です。


データ形式のマッチング

Groupデータ形式形式補助
g1 (BI)Boolean(空欄)
g30v1 (AI 32-bit signed)IntegerDW
g30v2 (AI 16-bit signed)Integer(空欄)
g30v5 (AI float)FloatREAL
g30v6 (AI double)DoubleLREAL
g20v1 (Counter 32-bit)IntegerDW

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

DNP3 outstation の書き込み対象は通常 2 種類です。

表記意味
g41v1.5Analog Output Block 32-bit signed setpoint, index 5
g41v3.5Analog Output Block float setpoint, index 5
g12v1.0Control Relay Output Block (CROB) — 遮断器の trip/close など
CROB は危険です

g12 (CROB) は 遮断器 / リレーを直接動作 させます。運用環境では必ず select-before-operate 手順と権限の確認を行ってから使用してください。


よくある問題と対処

症状考えられる原因対処
「No reply」アドレスの不一致master / outstation アドレスを双方で確認
全ての値が 0 または staleunsolicited 未受信、link layer の問題class0 で明示的な polling を試す
「Object not found」誤った group/variationRTU の「DNP point map」ドキュメントを確認
時刻が大きくずれるDNP3 timestamp が UTC か ローカルかゲートウェイは UTC で受信。表示側で変換

Group / Variation の詳細表

DNP3 のデータモデルは「Group」の中に複数の「Variation」が含まれる構造です。同じ Group 30 (AI) でも 32-bit / 16-bit / float / double と複数の表現があるため、RTU がどの variation を公開しているかに合わせる必要があります。

GroupVar意味サイズ / 形式
11Binary Input — packed format (no flag)1 bit
12Binary Input with status (flag bit を含む)1 byte
21Binary Input Change — no timeevent
22Binary Input Change — absolute timeevent + 6-byte time
102Binary Output Status (with flag)1 byte
121CROB (Control Relay Output Block) — write 専用11 byte struct
201Counter — 32-bit4 byte
202Counter — 16-bit2 byte
301AI 32-bit signed (with flag)5 byte
302AI 16-bit signed (with flag)3 byte
303AI 32-bit signed (no flag)4 byte
305AI single-precision float (with flag)5 byte
306AI double-precision float (with flag)9 byte
321AI Change — no timeevent
327AI Change — single float, abs timeevent
401AO Status 32-bit signed (with flag)5 byte
411AO Block 32-bit signed (write 対象)5 byte
413AO Block float (write 対象)5 byte

よく使う運用パターン

パターン 1. 変電所 IED の基本測定値 (電流・電圧・電力)

ABB REC615 / SEL-451 / SEL-735 メータのような IED は、通常次のようにマッピングされます。

タグ名アドレスデータ形式形式補助
A 相電流g30v5.0FloatREAL
B 相電流g30v5.1FloatREAL
C 相電流g30v5.2FloatREAL
総有効電力g30v5.10FloatREAL
周波数g30v5.20FloatREAL
遮断器 1 位置g1v2.0Boolean(空欄)
遮断器 2 位置g1v2.1Boolean(空欄)

パターン 2. 積算カウンタ (kWh / ガス m³ など)

Counter (Group 20) は積算値です。表示側で差分を求めて「時間当たり使用量」に変換します。

タグ名アドレスデータ形式
積算有効電力 (kWh)g20v1.0Integer
積算無効電力 (kvarh)g20v1.1Integer

パターン 3. CROB による遮断器制御 (write)

g12v1.0 = "Pulse-On / Trip / Close" 명령 코드

CROB 1 byte control code:

意味
0x01Pulse-On
0x02Pulse-Off
0x03Latch-On
0x04Latch-Off
0x41Trip (保護動作)
0x81Close
select-before-operate

CROB は SBO (select → operate) 手順が必須の RTU が多くあります。PlantPulse 側から単発の write で命令を送っても RTU が reject する場合があります。このような環境では RTU 側で SBO 未使用モードを有効にするか、別途自動化スクリプトで 2 段階を実行してください。


参考 / 次のステップ

  • RTU メーカー (ABB, SEL, GE, Schneider) の「DNP3 device profile」PDF に group/variation/index のマッピングが全て記載されています。
  • IEEE 1815-2012 標準文書 (DNP3) が公式 spec です。
  • 高度な設定 — REST API の DNP3 自動化サンプルを参照してください。