Modbus TCP エネルギーメーターの統合:レジスタとテスト
ローカル監視のための Modbus TCP エネルギーメーター統合
Modbus TCP を使用すると、ローカルアプリケーションが IAMMETER Wi-Fi エネルギーメーターから電気測定値を直接読み取ることができます。
以下の用途に適しています。
- PLC および SCADA システム
- Home Assistant および Node-RED
- ローカルエネルギー管理システム(EMS)
- ビル管理システム(BMS)
- 1秒単位の監視と自動化
- IAMMETER-Cloud なしで動作する必要があるアプリケーション
IAMMETER energy meter
│
│ Wi-Fi / LAN
│ Modbus TCP
▼
Home Assistant, Node-RED, PLC, SCADA or custom EMS
クライアントが各リクエストを開始します。メーターは、電圧、電流、有効電力、買電電力量、売電電力量、力率、周波数、その他の対応する測定値のレジスタ値を返します。
Modbus TCP はローカルポーリングインターフェースです。メーターがブローカーにデータを送信する必要がある場合は、MQTT を使用してください。顧客のサーバーにデータをアップロードする場合は、IAMMETER のデータを独自のサーバーで受信する を参照してください。
1. Modbus TCP を使用する理由
クラウドポーリングや定期的なメーターアップロードと比較して、Modbus TCP には以下の利点があります。
- ローカルネットワークを介した直接アクセス
- データ経路が IAMMETER-Cloud に依存しない
- 標準的なレジスタベースのインターフェース
- 対応アプリケーション向けの1秒ポーリング
- 双方向のエネルギー監視のための符号付き有効電力値
- 一般的な自動化ツールや産業用ツールとの互換性
代表的な用途は次のとおりです。
- リアルタイムの系統電力を使用した負荷制御
- 太陽光発電量、系統との売買電力量、回路負荷のローカルでの読み取り
- Home Assistant へのエネルギーメーターの追加
- Node-RED での測定値の収集
- 電力データの PLC、SCADA、EMS、BMS への統合
2. 対応している IAMMETER メーター
現在の IAMMETER エネルギーメーターモデルは、Modbus TCP を含む利用可能な Home Assistant およびオープン統合モードに対応しています。製造中止となった WEM3162 は、このガイドの対象外です。
モデル間の主な違いは、測定チャンネルの数と目的です。
- 単チャンネルメーターは Phase A レジスタブロックを公開します
- 双チャンネルまたはスプリットフェーズメーターは、該当するチャンネルブロックを使用します
- 三相メーターは Phase A、B、C の各ブロックを公開します
- 対応メーターは、合計値やオプションの無効電力量も公開する場合があります
プロジェクトで使用する正確なモデルとファームウェアに対して、レジスタ応答を必ず検証してください。
WEM3046T と WEM3046TE
WEM3046T および WEM3046TE は、外部変流器の 5 A 二次出力を測定します。
したがって、一次側の電流、電力、電力量の値には、該当する外部 CT 比を使用する必要があります。このスケーリング要件は、メーターの 5 A CT 入力設計によるものであり、Modbus TCP やプラットフォーム固有の動作ではありません。
これらのモデルを統合する場所では、CT 比の処理を文書化し、テストしてください。
3. 接続パラメータ
公式の IAMMETER Modbus Poll サンプルでは、次のパラメータを使用します。
| パラメータ | 設定例 |
|---|---|
| Connection | Modbus TCP/IP |
| Host | メーターのローカル IP アドレス |
| TCP port | 502 |
| Device / Unit ID | 1 |
| Function code | 03 — Read Holding Registers |
| Response timeout | 1000 ms(サンプル内) |

ホストにはメーターの LAN IP アドレスを使用します。ルーターでアドレスを予約すると、DHCP アドレスの変更後に統合が切断されるのを防げます。
上記の値は公式サンプルで示されているパラメータです。本番ソフトウェアにハードコードする前に、実際のファームウェアとサイト構成を確認してください。
4. Modbus Poll によるクイックテスト
完全なプラットフォームを構成する前に接続を確認するには、次の手順を実行します。
- コンピューターと IAMMETER メーターを同じ LAN に接続します
- メーターのローカル IP アドレスを確認します
- ポート
502への Modbus TCP/IP 接続を作成します - Device ID を
1に設定します - Function Code
03を選択します - アドレス
0から始まるホールディングレジスタを要求します - 返された生の値を下記のスケーリング規則と比較します

スクリーンショットでは、テスト用に 500 ms の表示スキャンレートを使用しています。通常の使用では、IAMMETER のドキュメントは、最速のクライアント設定を本番のポーリング間隔として扱うのではなく、1秒ポーリングを推奨しています。
接続に失敗した場合は、以下を確認してください。
- メーターとクライアントが同じ到達可能なネットワーク上にあること
- メーターの IP アドレス
- TCP ポート 502 とファイアウォールの規則
- Device ID とファンクションコード
- 別のアプリケーションが目的のポーリングワークフローを既に制御していないかどうか
- メーターのファームウェアバージョン
5. レジスタのデータ型とスケーリング
IAMMETER は16ビットのホールディングレジスタを使用します。
16ビット値
電圧、電流、力率、周波数は1つのレジスタを使用します。
| 測定値 | 生データ型 | 換算 |
|---|---|---|
| Voltage | Unsigned 16-bit | V = raw / 100 |
| Current | Unsigned 16-bit | A = raw / 100 |
| Power factor | Unsigned 16-bit | PF = raw / 1000 |
| Frequency | Unsigned 16-bit | Hz = raw / 100 |
32ビット値
有効電力、積算電力量、無効電力値は連続する2つのレジスタを使用します。
公式の Modbus Poll サンプルでは、上位の16ビットワードが先に表示されます。ワードを次のように結合します。
raw32 = (register[n] << 16) | register[n + 1]
有効電力と無効電力は符号付き32ビット値として解釈します。積算電力量のパルスカウンタは符号なし32ビット値として解釈します。
| 測定値 | 生データ型 | 換算 |
|---|---|---|
| Active power | Signed 32-bit | W = raw32 |
| Import/forward energy | Unsigned 32-bit | kWh = raw32 / 800 |
| Export/reverse energy | Unsigned 32-bit | kWh = raw32 / 800 |
| Reactive power | Signed 32-bit | var = raw32 |
| Inductive/capacitive reactive energy | Unsigned 32-bit | kvarh = raw32 / 1000 |
符号付き有効電力により、統合側で逆方向の電力方向を区別できます。試運転時には、CT の向きとアプリケーションの配線に対して符号の規則を確認してください。
6. 主要な Modbus レジスタマップ
以下のレジスタアドレスは10進数のオフセットです。クライアントは Function Code 03 を使用してください。
Phase A
| アドレス | 長さ | 測定値 | 換算 |
|---|---|---|---|
| 0 | 1 | 電圧 | 符号なし、/100 V |
| 1 | 1 | 電流 | 符号なし、/100 A |
| 2 | 2 | 有効電力 | 符号付き、W |
| 4 | 2 | 買電(正方向)電力量 | 符号なし、/800 kWh |
| 6 | 2 | 売電(逆方向)電力量 | 符号なし、/800 kWh |
| 8 | 1 | 力率 | 符号なし、/1000 |
| 9 | 1 | レガシーマップのモデル識別子 | 現在のモデルカタログの唯一の根拠として使用しないでください |
Phase B
| アドレス | 長さ | 測定値 | 換算 |
|---|---|---|---|
| 10 | 1 | 電圧 | 符号なし、/100 V |
| 11 | 1 | 電流 | 符号なし、/100 A |
| 12 | 2 | 有効電力 | 符号付き、W |
| 14 | 2 | 買電(正方向)電力量 | 符号なし、/800 kWh |
| 16 | 2 | 売電(逆方向)電力量 | 符号なし、/800 kWh |
| 18 | 1 | 力率 | 符号なし、/1000 |
| 19 | 1 | 予約 | 未使用 |
Phase C
| アドレス | 長さ | 測定値 | 換算 |
|---|---|---|---|
| 20 | 1 | 電圧 | 符号なし、/100 V |
| 21 | 1 | 電流 | 符号なし、/100 A |
| 22 | 2 | 有効電力 | 符号付き、W |
| 24 | 2 | 買電(正方向)電力量 | 符号なし、/800 kWh |
| 26 | 2 | 売電(逆方向)電力量 | 符号なし、/800 kWh |
| 28 | 1 | 力率 | 符号なし、/1000 |
| 29 | 1 | 予約 | 未使用 |
周波数と合計値
| アドレス | 長さ | 測定値 | 換算 |
|---|---|---|---|
| 30 | 1 | 周波数 | 符号なし、/100 Hz |
| 31 | 1 | 予約 | 未使用 |
| 32 | 2 | 合計有効電力 | 符号付き、W |
| 34 | 2 | 合計買電(正方向)電力量 | 符号なし、/800 kWh |
| 36 | 2 | 合計売電(逆方向)電力量 | 符号なし、/800 kWh |
合計レジスタは、マルチチャンネルメーターに最も関連します。単チャンネルの統合では、該当する Phase A の値を使用し、返された合計値を検証してください。
7. オプションの無効電力レジスタ
無効電力レジスタは、該当するメーターとファームウェアで無効電力測定がサポートされ、有効になっている場合にのみ使用できます。
| アドレス | 長さ | 測定値 | 換算 |
|---|---|---|---|
| 38 | 2 | Phase A 無効電力 | 符号付き、var |
| 40 | 2 | Phase A 誘導性無効電力量 | 符号なし、/1000 kvarh |
| 42 | 2 | Phase A 容量性無効電力量 | 符号なし、/1000 kvarh |
| 44 | 2 | Phase B 無効電力 | 符号付き、var |
| 46 | 2 | Phase B 誘導性無効電力量 | 符号なし、/1000 kvarh |
| 48 | 2 | Phase B 容量性無効電力量 | 符号なし、/1000 kvarh |
| 50 | 2 | Phase C 無効電力 | 符号付き、var |
| 52 | 2 | Phase C 誘導性無効電力量 | 符号なし、/1000 kvarh |
| 54 | 2 | Phase C 容量性無効電力量 | 符号なし、/1000 kvarh |
これらの値がすべての設置環境で有効であるとは想定しないでください。モデル、ファームウェア、無効電力測定の設定を確認してください。
8. デバイス情報レジスタ
| アドレス | 長さ | 説明 |
|---|---|---|
| 56 | 8 | デバイスのシリアル番号 |
| 64 | 1 | 稼働時間(秒) |
シリアル番号やその他のデバイス識別子は運用データとして扱ってください。スクリーンショット、ログ、公開されたサンプルに未サニタイズの値を公開することは避けてください。
9. 統合の例
Home Assistant
Modbus TCP は、高速なローカル読み取りと自動化を必要とするユーザー向けの IAMMETER Home Assistant オプションです。
メインの HA エントリとして IAMMETER Home Assistant 統合ガイド を使用してください。このガイドでは、メーター側の構成と Home Assistant の構成を分離し、現在の Modbus 実装方法へのリンクを提供しています。
動画:
Node-RED
Node-RED は、ホールディングレジスタをポーリングし、生の値を正規化して、測定値を自動化フロー、データベース、ダッシュボードに転送できます。
PLC、SCADA、EMS、BMS
産業用または商業用の統合では、次のことを行ってください。
- 使用したレジスタマップのバージョンを文書化します
- 正しい符号付き/符号なし変換を適用します
- バイトオーダーとワードオーダーを検証します
- CT の向きと CT 比を確認します
- タイムアウトと再試行の動作を定義します
- 最後に成功したポーリングを監視します
- サポートされていないポーリングレートを避けます
- ネットワークの中断と復旧をテストします
カスタムソフトウェア
カスタム Modbus TCP クライアントは、以下を分離する必要があります。
- 接続と再試行のロジック
- レジスタの読み取り
- 16ビットおよび32ビットのデコード
- メーターモデルとチャンネルのマッピング
- 必要な場合の CT 比の正規化
- ストレージとアプリケーションのロジック
10. Modbus TCP か、それとも別の IAMMETER インターフェースか?
| 要件 | 推奨インターフェース |
|---|---|
| 1秒のローカルポーリング | Modbus TCP |
| LAN 上でのシンプルな JSON 取得 | Local HTTP API |
| 複数のコンシューマーへのデータ配信 | MQTT |
| 顧客の Web サービスへのメーターアップロード | HTTP/HTTPS |
| カスタムソケットサーバーへのメーターアップロード | TCP/TLS |
| 既製のプラットフォーム比較 | Open-source integration guide |
関連ガイド:
- IAMMETER ローカル API とオープンインターフェース
- オープンソースのエネルギー監視プラットフォーム
- 独自のエネルギー監視システムを開発する
- インターネットやクラウドなしで IAMMETER を使用する
11. ファームウェア
Modbus TCP は、もはや当初の 2022 年リリースプロセスで説明された実験的なアップグレードではありません。現在の導入では、メーターモデルで利用可能な最新のファームウェアを使用してください。
レジスタマップとポーリング動作を検証するために使用したファームウェアバージョンを記録してください。
12. レガシーリリース情報
この記事は、Modbus TCP サポートがファームウェアアップグレードを通じて導入されたときに最初に公開されました。
以前の手順では、ファームウェア 75.68 をアップグレードの前提条件として参照し、フィードバックシステムを通じてアップグレードをリクエストするようユーザーに求めていました。このプロセスは歴史的な文脈としてのみここに残されており、新しい導入には使用しないでください。
当初のリリースリソース:
最終更新日:2026年7月16日