Technology
Modbus TCP
(Modbus TCP)
Modbus TCPとは、Ethernet上でPLC、計測器、インバーター、リモートI/O、産業用コンピュータなどのデータを読み書きする通信方式です。Modbusのデータ構造をTCP/IP通信へ載せて使用します。
比較的シンプルな仕様で、異なるメーカーの機器間でも利用しやすいため、電力計測、温度監視、流量監視、設備データ収集などで広く使われています。
ハカルプラスでは、接続機器のModbus仕様、アドレス、データ型、更新周期を確認し、PLCや産業用コンピュータによるModbus TCP通信を検討します。
Modbus TCPの基本
Modbus TCPでは、要求を送る側が接続先へ読出し・書込み命令を送り、接続先が結果を応答します。
一般に、通信を開始する側をクライアント、要求へ応答する側をサーバーと呼びます。従来の資料ではマスター・スレーブと表現される場合もあります。
Ethernetを利用する通信
Modbus TCPは、一般的なEthernet配線やスイッチングハブを利用できます。
IPアドレスを設定し、TCPポート番号502を使用するのが一般的です。社内LANと設備ネットワークを共用する場合は、通信負荷とセキュリティを考慮します。
主な接続機器
- PLC
- 電力計・電力量計
- 温度調節計・記録計
- インバーター・モーター保護機器
- リモートI/O
- 計量コントローラ
- 産業用コンピュータ・IoTゲートウェイ
データ領域
Modbusでは、デジタル信号や数値データを複数の領域として扱います。
- コイル:読書き可能な1ビットデータ
- ディスクリート入力:読出し専用の1ビットデータ
- 入力レジスタ:読出し専用の16ビットデータ
- 保持レジスタ:読書き可能な16ビットデータ
機器によって、どの値をどの領域へ割り当てるかが異なります。
ファンクションコード
読出し・書込みの種類を示す番号をファンクションコードと呼びます。
保持レジスタ読出し、複数レジスタ書込み、コイル読出しなど、操作ごとにコードが定められています。接続機器が対応する機能を確認します。
アドレス表記
Modbusのアドレスは、資料によって0始まりと1始まりの表記が混在することがあります。
説明書に「40001」と記載されていても、通信要求ではアドレス0を指定する場合があります。1点ずれた値を読まないよう、実機と通信仕様書で確認します。
16ビットレジスタ
Modbusの基本レジスタは16ビットです。
整数値は1レジスタで扱えますが、32ビット整数や浮動小数点数は複数レジスタを組み合わせます。符号の有無、小数点位置、倍率も確認します。
32ビットデータ
電力量、積算値、浮動小数点値などでは、2レジスタを使用することがあります。
上位ワードと下位ワードの並び順がメーカーによって異なるため、ワードオーダーを確認します。バイトの並び順も合わせて確認します。
倍率と小数点
温度253を25.3℃として扱うなど、整数値へ倍率を持たせる機器があります。
受信側で0.1倍、0.01倍などの換算を行います。単位と倍率を誤ると、表示や制御値が大きくずれます。
Unit ID
Modbus TCPでは、Ethernet上の機器をIPアドレスで識別しますが、ゲートウェイの先にあるシリアル機器を識別するためにUnit IDを使用する場合があります。
直接接続機器でも特定値を必要とする製品があるため、説明書を確認します。
ポーリング通信
クライアントは、必要なデータを一定周期で繰り返し読み出します。これをポーリングと呼びます。
周期を短くすると更新は速くなりますが、接続機器とネットワークの負荷が増えます。計測値の変化速度と必要な応答時間から設定します。
複数データの一括読出し
隣接するレジスタをまとめて読み出すと、通信回数を減らせます。
ただし、機器が対応する最大点数を超えないようにします。必要のない広い範囲を毎回読むと負荷が増える場合があります。
書込み制御
Modbus TCPでは、設定値や運転指令を書き込める機器があります。
誤書込みによる設備動作を防ぐため、書込み先、範囲、権限を制限します。安全機能や非常停止を通信だけに依存させないことも重要です。
通信タイムアウト
要求に対して一定時間内に応答がない場合はタイムアウトとします。
タイムアウト時間が短すぎると一時的な遅延で異常となり、長すぎると故障検出が遅れます。再試行回数と異常判定条件を設定します。
通信断時の動作
通信が途絶えた場合に、最後に受信した値を保持するか、無効値として扱うかを決めます。
制御へ使用する値では、古い値のまま運転を続けると危険な場合があります。データの更新時刻や通信正常フラグを併せて管理します。
複数クライアント接続
機器によって、同時に接続できるクライアント数が限られています。
PLC、監視パソコン、保守ツールが同時接続すると上限を超える場合があります。接続数と切断処理を確認します。
IPアドレス管理
同じネットワーク上でIPアドレスが重複すると通信できません。
設備番号とIPアドレスの対応表を作成し、固定IP、サブネットマスク、ゲートウェイを管理します。機器交換時にも設定を引き継ぎます。
ネットワーク分離
設備制御ネットワークと事務系ネットワークを分離すると、不要な通信や障害の影響を抑えられます。
VLAN、ルーター、ファイアウォールなどを用い、必要な通信だけを許可します。
セキュリティ
一般的なModbus TCPには、通信内容の暗号化や強い認証が標準で備わっていない場合があります。
外部ネットワークへ直接公開せず、アクセス制御、VPN、ファイアウォール、ネットワーク分離を行います。
通信診断
要求回数、正常応答、タイムアウト、例外応答を記録すると、通信品質を確認できます。
パケット解析ツールを使用すると、要求アドレス、ファンクションコード、応答内容を確認できます。
異常時の確認
接続できない場合は、IPアドレス、サブネット、ポート番号、接続数、ケーブルを確認します。
値が正しくない場合は、アドレスずれ、ワード順、符号、倍率を点検します。時々通信が切れる場合は、ネットワーク負荷、タイムアウト、ハブ、電源を確認します。
ハカルプラスの対応
ハカルプラスでは、PLC、計測器、インバーターなどのModbusマップを確認し、必要データと通信周期を整理します。
アドレス変換、データ型変換、通信異常監視、上位データベースへの保存まで含むModbus TCP通信を検討します。
よくある質問
Q. 異なるメーカーの機器同士でも接続できますか?
A. 両機器がModbus TCPへ対応し、アドレス、データ型、動作仕様が一致すれば接続できます。
Q. レジスタ番号が一つずれるのはなぜですか?
A. 説明書の表記が1始まり、通信要求が0始まりになっている場合があるためです。
Q. 32ビットの電力量も読み取れますか?
A. 複数レジスタを組み合わせて読み取れますが、ワード順とデータ型の確認が必要です。
Q. Modbus TCPで設備を遠隔操作できますか?
A. 書込み対応機器では可能ですが、権限、安全回路、通信断時の動作を検討する必要があります。
Q. 通信が切れた場合に警報を出せますか?
A. 応答タイムアウトや連続失敗回数を監視し、通信異常として表示・記録できます。
関連ワード
同じカテゴリの『ハカル技術辞典』を見る