Modbus(モドバス)とは | 意味や読み方など丁寧でわかりやすい用語解説
Modbus(モドバス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
モドバス (モドバス)
英語表記
Modbus (モドバス)
用語解説
Modbusは、産業用制御システムで広く利用される通信プロトコルである。主にPLC(プログラマブルロジックコントローラ)やDCS(分散制御システム)、RTU(遠隔端末装置)といった機器間でデータをやり取りするために設計された。1979年にModicon社(現在のSchneider Electric)によって開発され、そのシンプルさとオープン性から、現在に至るまで事実上の標準プロトコルとして世界中の様々な産業機器に搭載されている。工場やプラント、ビルディングオートメーション、エネルギー管理システムなど、物理的なデバイスの状態監視や制御を行う場面で不可欠な役割を果たす。
Modbusはマスター・スレーブ(あるいはクライアント・サーバー)アーキテクチャに基づいて動作する。一つのマスター機器が複数のスレーブ機器に対してデータ要求や書き込み命令を発行し、スレーブ機器はマスターからの要求に応答する形をとる。スレーブ機器はそれぞれ固有のアドレスを持ち、マスターは特定のスレーブをアドレスで指定して通信する。この一方向の通信モデルにより、システムの制御構造が単純化される。
Modbusで扱われるデータは、主に以下の4種類に分類される。これらは、産業機器の物理的な入力や出力、内部状態を表す。
- コイル(Coils): 1ビットのデジタル出力。例えば、モーターのオン/オフやランプの点灯/消灯といった制御信号に使われる。読み書きが可能。
- ディスクリート入力(Discrete Inputs): 1ビットのデジタル入力。例えば、スイッチの状態(オン/オフ)やセンサーの検出(有無)といった入力信号に使われる。読み取りのみ可能。
- 入力レジスタ(Input Registers): 16ビットのワード(符号なし整数)入力。温度センサーの値や流量計の測定値など、アナログ量の入力に使われる。読み取りのみ可能。
- 保持レジスタ(Holding Registers): 16ビットのワード(符号なし整数)出力、または設定値。制御対象の目標値(設定温度、速度)や、機器の内部状態を示す値などに使われる。読み書きが可能。 これらのデータタイプは、それぞれ特定のアドレス範囲を持つ。
マスター機器がスレーブ機器と通信する際には、「ファンクションコード」と呼ばれる指令を用いる。ファンクションコードは、マスターがスレーブに対してどのような操作を要求しているかを示す番号である。例えば、「コイルを読み取る」「保持レジスタに書き込む」といった具体的な指示をこのコードで伝える。スレーブは受け取ったファンクションコードに基づき、該当するデータを処理してマスターに応答を返す。エラーが発生した場合は、エラーコードを含む例外応答を返す仕組みも持つ。
Modbusプロトコルは、物理層やデータリンク層の通信方式によって主に3つの形式に分けられる。
- Modbus RTU (Remote Terminal Unit): 最も広く利用されるシリアル通信プロトコルであり、RS-232やRS-485といった物理層で利用される。データはバイナリ形式で送受信され、CRC(巡回冗長検査)を用いたエラーチェック機構を持つ。効率的で高速な通信が可能だが、イーサネットのようなネットワークインフラがない場所や、長距離・多点接続が必要な場面で特に有効である。データフレームは、スタートビット、データビット、パリティビット、ストップビットから構成され、連続するバイト間に特定の無通信時間(T3.5)を設けることでメッセージの区切りを識別する。
- Modbus ASCII: Modbus RTUと同様にシリアル通信で利用されるが、データがASCII文字形式で表現される点が異なる。これにより、人間が内容を読み取りやすくなるというメリットがある一方、バイナリ形式よりもデータ量が増え、通信効率が低下する。LRC(縦方向冗長検査)を用いたエラーチェックを行う。主に古いシステムやデバッグ用途で使われることが多い。
- Modbus TCP/IP: イーサネットネットワーク上でModbusプロトコルを使用するための方式である。TCP/IPスタックに乗るため、標準的なネットワーク機器やインフラ(スイッチ、ルーター)を介して通信できる。データフレームはModbus PDU(Protocol Data Unit)にMBAP(Modbus Application Protocol)ヘッダが付加され、TCPポート502を使用する。これにより、Modbus RTUやASCIIの制約だった距離や接続デバイス数の問題を解消し、より広範囲で高速なデータ転送が可能となる。PCベースのSCADA(監視制御およびデータ収集)システムやHMI(ヒューマンマシンインターフェース)との連携に広く用いられる。Modbus TCP/IPは、従来のシリアルModbusフレームをTCP/IPパケットでカプセル化するイメージで、通信の物理層をイーサネットに変えつつ、Modbusのデータモデルとファンクションコードをそのまま利用できる点が特徴である。
Modbusの最大のメリットは、そのシンプルさとオープン性にある。プロトコル仕様が公開されており、実装が容易であるため、多くのベンダーが自社製品にModbusを搭載している。これにより、異なるベンダーの機器間でも相互運用性が確保されやすい。また、リソースが限られたマイクロコントローラや組み込みシステムでも実装しやすく、長年の使用実績により安定性も高い。 しかし、いくつかのデメリットも存在する。最も懸念されるのはセキュリティである。Modbusは元々、閉じたネットワーク環境での利用を想定して設計されたため、認証や暗号化といったセキュリティ機能がほとんどない。そのため、公共のネットワークに接続する際はVPN(仮想プライベートネットワーク)やファイアウォールなどの追加的なセキュリティ対策が必須となる。また、データ転送速度が最新の産業用イーサネットプロトコルに比べて劣る場合があり、データ転送量が多いアプリケーションには不向きなことがある。さらに、Modbusはマスター・スレーブモデルのため、マスター機器の単一障害点が問題となる場合や、スレーブ機器からの自発的なデータ送信ができない(ポーリング方式)という制約もある。
Modbusは、その堅牢性と汎用性から、非常に多岐にわたる産業分野で利用されている。具体的には、工場における製造ラインのPLCとセンサー、アクチュエータ間のデータ通信、ビルディングオートメーションシステムにおけるHVAC(冷暖房空調)システムや照明制御、電力監視システムにおけるスマートメーターや保護リレーからのデータ収集、水処理プラントでのポンプやバルブの制御、太陽光発電システムにおけるインバータやバッテリーの監視などが挙げられる。これらのシステムでは、機器の運転状態の監視、設定値の変更、アラームの取得といった基本的なデータ交換がModbusによって行われる。