Modbus RTUとModbus TCPはファンクションコードとデータモデルを共有していますが、トランスポートのフレーミングは異なります。RTUはシリアル回線でよく使用され、そのメッセージにはアドレスとCRCが含まれます。TCPはTCP/IP上で伝送され、RTUのCRCフィールドを付加せずにMBAPヘッダーを使用します。両者を接続するには通常、Modbus変換を処理できるゲートウェイが必要であり、一般的なインターフェースアダプターだけでは対応できません。
共通するのは「何を要求するか」、異なるのは「どのように届けるか」
Modbusのファンクションコードは、コイルの読み取り、レジスタの読み取り、書き込みなどの操作を表し、データ部分はアドレス、数量、内容を示します。ファンクションコードとデータで、プロトコルデータユニット(PDU)を構成します。同じ要求をシリアル回線またはTCP接続に送る場合、それぞれ異なるトランスポート関連のフィールドが付加されます。
RS485は主に電気的インターフェースを定義しており、Modbus RTUと同じものではありません。Ethernetは主にリンク上の伝送を担い、これもModbus TCPと同じものではありません。デバイスにRS485ポートやRJ45ポートがあるというだけでは、インターフェース条件の一部しか分かりません。対応するアプリケーションプロトコルを引き続き確認する必要があります。

メッセージ構造の違いが接続に与える影響
RTUメッセージは、デバイスアドレス、ファンクションコード、データ、CRCチェックで構成されると要約できます。シリアル回線では、メッセージ境界の識別にタイミング規則も使用します。TCPメッセージは、MBAPヘッダーとPDUで構成されます。MBAPにはトランザクション識別子、プロトコル識別子、長さ、ユニット識別子などの情報が含まれ、要求と応答の識別および対応付けに使用されます。
Modbus TCPにRTUのCRCフィールドがないからといって、ネットワーク全体に誤り検出がないわけではありません。TCP/IPと下位リンクには、それぞれ独自の仕組みがあります。一方、RTUのCRCは主にメッセージの誤りを検査するものであり、本人認証や暗号化ではありません。いずれの基本モードについても、ネットワークセキュリティ保護を標準で備えていると見なすべきではありません。

シリアルバスとTCPの並行処理は単純には置き換えられない
一般的なシリアルModbusでは、1つのクライアントが要求を開始し、サーバーが応答する方式を採用し、同一バス上のアクセスを調整します。複数のマスターが調整なしに同時送信することはできません。TCPサーバーは複数の接続を受け付ける場合がありますが、許容される接続数、同時要求数、処理速度はデバイスの実装によって決まります。
TCPゲートウェイの接続先が共有シリアルバスのままであれば、複数のTCP要求は通常、キューで待つ必要があります。ネットワークポートの速度を上げても、計測器の応答が直ちに速くなるわけではありません。シリアル通信のボーレート、メッセージ長、スレーブの処理、タイムアウトは、いずれもポーリング周期全体に影響します。優先度の高い操作に対しては、アクセス間隔の設計も必要です。
レジスタ読み取りの例
ホストソフトウェアが計測器から保持レジスタを2つ読み取る場合、対象デバイス、ファンクションコード、開始アドレス、数量を指定する必要があります。計測器の資料では40001のような慣用的な番号を使用する一方、メッセージのアドレスはオフセット表現を使用する場合があり、ソフトウェアでの入力方法も同じとは限りません。1つずれることを防ぐため、マニュアルとソフトウェアの規則を照合してください。
16ビットのレジスタを2つ受信しても、それらが1つの正しい浮動小数点数であると直ちに判断することはできません。バイト順、レジスタのワード順、符号付き数の扱い、スケーリング係数、単位は、メーカーによって定義される場合があります。通信の成功とデータ解釈の正しさは別々の確認事項です。既知の測定値を使って検証するのが望ましい方法です。
一般的なシリアルサーバーだけでは不十分な場合がある理由
透過型シリアルサーバーは、シリアルのバイト列をTCPデータストリームに格納するだけの場合があり、必ずしもMBAPの解析、RTUアドレスとCRCの生成、トランザクションの対応付けを行うわけではありません。この種の製品は、明確に定義された透過伝送方式では使用できますが、当然にModbusプロトコルゲートウェイであるとは見なせません。購入時には、単に「シリアルからネットワークポートへ」と記載するのではなく、TCPからRTUへの変換が必要であることを明示してください。
ゲートウェイについては、動作上の役割、ユニット識別子のマッピング、シリアル通信フォーマット、タイムアウト、ポーリング方式も確認する必要があります。TCP側のユニット識別子がシリアルデバイスをどのように指定するかは、ゲートウェイの実装に応じて設定する必要があります。直接接続のTCPデバイスでは運用上の慣例が異なる場合があり、すべてのデバイスを1つの規則で設定できるわけではありません。
障害は接続、メッセージ、業務の3つの層に分けられる
TCPが接続できない場合は、アドレス、ポート、経路、アクセス規則を確認します。接続は確立するもののタイムアウトする場合は、ゲートウェイのマッピング、シリアル通信パラメーター、端末の状態、キューの待ち状況を確認します。例外応答を受信した場合は、ファンクションコードとアドレス範囲を確認します。例外応答は、デバイスが特定の種類の問題を明示的に報告していることを意味し、まったく応答がない場合とは異なります。
RTU側では、配線、終端整合、アドレスの重複、電気的条件も確認する必要があります。A/Bという名称を、そのまま正負の定義と同一視しないでください。デバイスの資料に従って対応を確認してください。試験は単一デバイスと低頻度の読み取り専用要求から始め、徐々に負荷を増やすことが望まれます。許可なく稼働中のデバイスへのレジスタ書き込みを試さないでください。
基本的なModbusの導入では、アクセス元を制限し、必要に応じてネットワークを分割してファイアウォールを設置する必要があります。また、ポート502を公開ネットワークに直接公開してはいけません。Modbusのセキュリティ拡張やセキュリティゲートウェイを使用する場合も、互換性と証明書管理の確認が必要です。RTUとTCPのどちらを選ぶかは、既存の端末、データ規模、保守条件によって決まり、単純に「新しいか古いか」「上位か下位か」で順位付けするものではありません。
参考資料:Modbusアプリケーションプロトコル仕様;Modbusシリアル回線実装ガイド.
中国語の技術記事から翻訳。原文の初公開:2026-04-23。原文の最終改訂:2026-10-13T23:07:12+08:00。 中国語の原文を読む


