Modbusとは?
Modbus(モドバス)は、制御機器や計測機器などの間でデータをやり取りするための通信プロトコルです。空調・計装設備では、電力計、インバータ、PLC、DDCなどの接続に利用されます。
例えば、電力計が計測した電力量をDDCや中央監視システムへ送る構成があります。Modbusは、このような機器間でデータを読み書きするための共通ルールです。
Modbusの主な用途
- 電力計から電力量や電流値を取得する
- インバータから周波数や運転状態を取得する
- 対応する機器の設定値を読み書きする
- PLCやDDCと計測機器を連携する
- 取得した情報を中央監視システムに表示する
実際に取得・変更できるデータは、接続する機器の仕様によって異なります。
Modbus RTUとModbus TCPの違い
Modbusには複数の通信方式があり、代表的なものがModbus RTUとModbus TCPです。
| 項目 | Modbus RTU | Modbus TCP |
|---|---|---|
| 主な通信経路 | シリアル通信(RS-485など) | TCP/IPネットワーク |
| 機器の識別 | スレーブアドレスなど | IPアドレス、Unit Identifierなど |
| 主な設定 | 通信速度、パリティ、アドレスなど | IPアドレス、ポート番号など |
| 使用例 | 計測機器とDDCの接続 | 電力計と監視システムのLAN接続 |
Modbus RTUでは、通信速度やパリティなどの設定を接続機器間で合わせる必要があります。Modbus TCPでは、一般的にTCPポート502を使用しますが、実際の設定は機器の仕様を確認してください。
Modbus RTUとModbus TCPは通信経路が異なるため、両者を接続する場合は対応するゲートウェイなどが必要になることがあります。
Modbus通信の基本的な仕組み
Modbusでは、データを要求する側と、その要求に応答する側が通信します。従来はマスター・スレーブという名称が使われてきましたが、現在はクライアント・サーバーという表現も使われます。
例えば、DDCが電力計に対して電力量のデータを要求すると、電力計が指定されたデータを返します。
- DDCが電力計にデータの読み取りを要求する
- 電力計が要求内容を確認する
- 電力計が指定されたデータを返す
- DDCが受信したデータを計測値として扱う
- 必要に応じて中央監視システムへ表示する
Modbus通信そのものが設備を自動制御するわけではありません。取得したデータを使ってどのように制御するかは、DDCやPLCなどの制御プログラムによって決まります。
Modbusのレジスタとは?
Modbusでは、機器が持つデータをレジスタやコイルなどの領域を通じて扱います。どのアドレスにどの情報が割り当てられているかは、機器のレジスタマップで確認します。
| データ領域 | 主な用途 |
|---|---|
| Coils | ON/OFFなどの1ビット情報(読み書き可能) |
| Discrete Inputs | ON/OFFなどの1ビット情報(読み取り専用) |
| Input Registers | 計測値などの16ビットデータ(読み取り専用) |
| Holding Registers | 設定値や計測値などの16ビットデータ(読み書きに対応する領域) |
Holding Registersに分類されていても、実際に書き込みできるかどうかは機器の仕様や制限によります。
レジスタ番号で注意すること
Modbusの接続設定では、機器の仕様書に記載されたレジスタ番号と、通信ソフトやDDCで入力するアドレスが一致しない場合があります。
例えば、仕様書に「40001」と記載されているデータを、接続先の設定画面では「0」または「1」と入力する場合があります。これは、レジスタ番号の表記方法と、実際の通信で使用するアドレスの扱い方が異なるためです。
ただし、すべての機器で同じ変換方法が使われるわけではありません。接続先の設定仕様と機器のレジスタマップを照合する必要があります。
データ形式とスケーリング
Modbusのレジスタは基本的に16ビット単位で扱われますが、実際の計測値は整数、符号付き整数、32ビット値、浮動小数点数など、さまざまな形式で表現されます。
例えば、温度25.3℃を整数253として格納し、受信側で0.1を掛けて25.3℃として表示する機器があります。
また、32ビット値を複数のレジスタで扱う場合は、ワードの並び順などにも注意が必要です。
| 症状 | 考えられる確認項目 |
|---|---|
| 温度が253℃と表示される | スケーリング係数 |
| 計測値が極端に大きい | データ形式、ワード順序 |
| マイナス値が大きな正数になる | 符号付き・符号なしの設定 |
| 値が取得できない | レジスタアドレス、機能コード、読み取り点数 |
データ形式や倍率は機器によって異なるため、必ずメーカーの通信仕様書を確認します。
ModbusとBACnetの違い
| 項目 | Modbus | BACnet |
|---|---|---|
| 主な利用分野 | 計測機器、産業機器、制御機器など | 建物設備の自動制御・監視 |
| データの扱い | レジスタやコイルを中心に扱う | オブジェクトやプロパティを使って扱う |
| 利用例 | 電力計からのデータ取得 | DDCと中央監視の連携 |
どちらも空調・計装設備で利用されます。採用する方式は、機器の対応状況やシステム構成によって異なります。
BACnetとは?も参照してください。
Modbus通信ができないときの確認ポイント
Modbus RTUの場合
- 通信速度が一致しているか
- パリティ、データビット、ストップビットの設定が適切か
- 機器アドレスが正しいか、重複していないか
- RS-485の配線や極性、終端抵抗が適切か
- 通信対象のレジスタや機能コードが正しいか
Modbus TCPの場合
- IPアドレスやサブネットの設定が適切か
- TCPポート番号が正しいか
- ネットワーク上で通信が遮断されていないか
- Unit Identifierなどの設定が機器仕様に合っているか
- 必要なレジスタが公開されているか
通信できているのに数値が正しく表示されない場合は、レジスタ番号、データ形式、スケーリングの設定も確認します。
よくある質問
Modbusはメーカーが違っても接続できますか?
双方が対応する通信方式を使用していれば接続できる場合があります。ただし、レジスタの割り当てやデータ形式などは機器ごとに異なるため、個別の設定が必要です。
Modbus RTUとModbus TCPは直接接続できますか?
通信経路やフレーム形式が異なるため、一般的には対応するゲートウェイなどを介して接続します。
Modbusで設備を遠隔操作できますか?
機器が書き込み機能に対応し、必要な制御条件が整っていれば可能な場合があります。ただし、設備の安全性や運用ルールを確認する必要があります。

