1. はじめに
Modbusは、マスター/スレーブまたはクライアント/サーバーアーキテクチャに基づくリクエスト/レスポンスプロトコルです。マスター/スレーブ関係では、通信はペアで行われます。デバイスはリクエストを開始し、応答を待機する必要があります。開始デバイス(マスターと呼ばれる)は、各相互作用を開始する役割を担います。通常、マスターデバイスはHMIまたはSCADAシステムであり、スレーブデバイスはセンサー、プログラマブルロジックコントローラ(PLC)、またはプログラマブルオートメーションコントローラ(PAC)です。標準的なModbusネットワークでは、1つのマスターデバイスと最大247台のスレーブデバイスが存在します。各スレーブデバイスには、1から247までの一意のスレーブデバイスアドレスが割り当てられます。2. Modbusプロトコルの詳細
現在、Modbusプロトコルは主にシリアル接続とイーサネット接続で使用されています。シリアル接続では、Modbus RTUとModbus ASCIIの2種類があり、データとプロトコルの詳細が若干異なります。イーサネット接続では、Modbus TCPが使用されます。
2.1 Modbusデータ転送モード
1) Modbus RTUはシリアル通信に使用され、プロトコル通信にはバイナリデータを使用します。RTUフォーマットは、データの信頼性を確保するために、エラーチェックメカニズムとして巡回冗長検査(CRC)を使用します。Modbus RTUはModbusの最も一般的な実装です。Modbus RTUメッセージは、文字間の休止なしに1つずつ連続的に送信する必要があります。Modbusメッセージはアイドル(サイレント)期間によって区切られます。
2) Modbus ASCII は、プロトコル通信に ASCII 文字を使用するシリアル通信にも使用されます。ASCII 形式では、水平冗長チェックサムが使用されます。Modbus ASCII メッセージは、ヘッダーとフッターとしてコロン (':') と末尾の改行 (CR/LF) によって識別されます。
3) Modbus TCP は、ポート 502 に接続して Modbus 上の TCP/IP ネットワーク通信に使用されます。TCP/IP はすでに基礎層でチェックサム保護を提供しているため、チェックサムを計算する必要はありません。
2.2 Modbus ASCII、RTU、TCPの違い
Modbus RTUとModbus ASCIIは同じプロトコルを使用します。唯一の違いは、送信バイトがRTUではバイナリで表現され、ASCIIでは読み取り可能なテキストで表現されることです。RTUメッセージにはテキスト開始フラグがなく、通信の受信者は「クワイエット」時間を使用して新しいメッセージの開始を判断しますが、ASCIIにはテキスト開始フラグがあります。バイナリメッセージはASCIIよりも短いため、理論上はRTUの方がASCIIよりも送受信が高速です。
Modbus TCPは、基本的にEthernet TCP/IP経由で送信されるModbus RTUプロトコルと理解できます。Modbusのデータ構造は、TCP/IPプロトコルのアプリケーション層を使用して定義されます。TCPプロトコルはデータの受信と送信の正確性を保証するために使用され、IPプロトコルはアドレスとルーティング情報を保持します。Modbus TCPコマンドはTCP/IPプロトコル経由で送信されます。Modbus RTUコマンドは送信用にパッケージ化されています。Modbus TCPの利点は、汎用的なEthernetデバイスを使用できることです。
3. JincanネットワークデバイスにおけるModBusアプリケーション
Jincan Network DTU、RTU、産業用ルーターデバイスは、ModBusプロトコルをサポートしてセンサーまたはデバイスのデータを収集し、5G/4G通信ネットワークを介してリモートサーバーにアップロードし、パススルーとプロトコル変換をサポートします。