Modbus通信ゲートウェイの仕組み:RTUからTCPへの変換、アドレスマッピング、タイムアウトのトラブルシューティング
閲覧数: 88 +1FCTELEによるオリジナル記事著者:FCTELE技術チーム
概要Modbusゲートウェイは、TCP経由でシリアルバイトを送信する以外に何を行いますか?
対応するゲートウェイは、該当するModbusのフレーム形式を解釈し、ネットワーク要求をシリアル機器および応答に対応付けます。TCP接続の識別情報、トランザクションフィールド、シリアル局アドレスは、それぞれ異なる役割を持ちます。設定されたマッピング、対応コマンド、バス上で順次処理する際のタイミングを確認してください。ネットワークセッションが正常でも、目的のレジスタが読み取られたことや、タイムアウトした書き込みが実行されなかったことの証明にはなりません。
3つの仕組みと検証の適用範囲信号の流れを追い、実際のサービスを検証する
01適切なフレーム形式に変換する
RTUとTCPでは、フレーム形式とトランザクションのコンテキストが異なります。
02要求を機器に対応付ける
ネットワークセッションとシリアル局アドレスは、異なる対象を識別します。
03シリアル通信の折り返し時間を見込む
共有する1本のシリアル経路では、要求と応答に必要な時間に限界があります。
スワイプして3つの図を比較 →
概念を説明するための図であり、実測波形、設置配線図、特定製品の内部構成を示すものではありません。- 01
適切なフレーム形式に変換する透過トンネリングではなく、必要な変換に対応していることを確認してください。
- 02
要求を機器に対応付けるゲートウェイの実際のユニットとチャネルの対応付けを確認してください。
- 03
シリアル通信の折り返し時間を見込むシリアル伝送、機器の処理、キューでの待機時間を含めてください。
選定・検証チェックリスト確認項目と関連ガイドを展開する
Modbusゲートウェイは、要求をある伝送方式から別の方式に変換し、要求と応答の対応関係を管理します。一般的なModbus TCPからRTUへのゲートウェイは、単にバイトを転送するだけでなく、TCPメッセージヘッダー、シリアルアドレス、チェックサムも処理します。また、温度や圧力などの工学量の単位を自動的に理解するわけではありません。レジスタの解釈は、引き続き機器の資料とアプリケーションによって決まります。
まずプロトコルと物理インターフェースを区別する
RS485は電気的な伝送条件を規定し、Modbusはアプリケーションの要求と応答を規定します。同じRS485ポートでも、必ずしもModbusを使用するとは限りません。Modbus RTUはシリアルバスでよく使用され、Modbus TCPはTCP接続を使用します。透過型シリアルサーバーはRTUバイトを転送できますが、標準的なModbus TCPクライアントに対応していることを意味するわけではありません。購入時には、シリアルポートとネットワークポートの有無だけでなく、ゲートウェイのプロトコル変換方向、役割、同時処理能力、対応機能を明確にしてください。
変換するのは外側の形式とトランザクションの対応関係
RTUフレームには機器アドレス、ファンクション、データが含まれ、シリアルフレームのチェックサムが使用されます。一方、TCP方式はMBAPヘッダーを使用し、トランザクション識別子、長さ、ユニット識別子などの情報を格納します。ゲートウェイは要求を解析して対象のシリアルフレームを構成し、応答を受信した後、対応するネットワークトランザクションの応答を返します。単にRTUチェックサムのバイトをTCPメッセージの末尾に付加するわけではありません。ファンクションコードとレジスタの意味はアプリケーションの内容であり、マッピングや変換が必要かどうかは、機器の機能と設定によって異なります。
RTUとTCPでは外側の形式が異なるため、ゲートウェイはアドレス、チェックサム、トランザクションの対応関係を正しく処理する必要があります。
アドレスが正しくても、レジスタの表記規則を確認する必要がある
シリアル機器のアドレスは重複させてはならず、ネットワークのユニット識別子とシリアルアドレスの対応は、ゲートウェイに合わせて設定する必要があります。資料に記載されたレジスタの表示番号とメッセージ内のオフセットでは、表記方法が異なる場合があります。機器の例や実測で確認し、単一の番号を機械的に転記しないでください。32ビットのデータが2つのレジスタにまたがる場合は、ワード順序、スケーリング、符号付き/符号なしの解釈も関係することがあります。応答は受信できても値が不自然な場合、光ファイバーやネットワークケーブルの断線ではなく、こうした解釈の不一致が原因であることがよくあります。
ネットワークの同時処理数はシリアル側の処理能力に制約される
複数のネットワーククライアントが同時にアクセスする場合、ゲートウェイはトランザクションをキューに入れ、対応付ける必要があります。同じ半二重シリアルポートで、無条件に複数の要求を同時送信することはできません。ポーリング周期には、シリアル送信、機器の処理、応答の返送、キューでの待機時間を含める必要があります。タイムアウトが短すぎると再試行が大量発生し、長すぎると障害の発見が遅れます。ブロードキャスト、例外応答、非対応機能も明示的に処理し、正常値を含まない応答をすべて切断と見なさないでください。
ネットワーク要求がシリアルポートに入った後は、送信と待機を調整する必要があります。同時接続数とシリアル側の同時実行数は同じではありません。
既知の値を使って受け入れ試験スクリプトを作成する
まず単一の機器から既知の値を読み取り、生バイト、工学量、単位を確認してから、複数アドレスと同時アクセスを試験します。読み取り動作を確認した後、書き込み操作は、安全性が確保され、承認された機器の状態で実施する必要があります。シリアルパラメーター、マッピングテーブル、例外コード、タイムアウト記録を保存してください。切断からの復旧、アドレス重複、応答の遅い機器を試験し、ある機器の応答が別の要求に誤って割り当てられないことを確認します。ゲートウェイ自体がネットワークセキュリティのすべてを提供するわけではありません。アクセスの入口を制限する必要があります。
例:接続は正常だが、読み取った温度が正しくない
まず温度レジスタの公式な説明を探し、ファンクションコード、オフセット、レジスタ数、バイト順序またはワード順序、スケーリングを確認してください。ソフトウェアの表示番号はメッセージ内のオフセットと異なる場合があり、ゲートウェイのアドレスマッピングによって要求が別の機器に届く場合もあります。ゲートウェイのログで実際の要求と返された生の値を調べ、アドレスとデータの解釈を個別に確認してから、設定を調整してください。ネットワークがオンラインであるという理由だけでプロトコル解析を省略したり、値の誤りをすべてシリアル通信への干渉のせいにしたりしないでください。RTU/ASCIIおよび異なるマスター/スレーブの役割については、製品が明示的に対応するモードを確認し、一方向の変換に対応しているからといって、任意の双方向変換ができると考えないでください。
原理の参考資料:公式技術資料。本記事の構成図は、特定の製品仕様を示すものではありません。選定時には、対象モデルのマニュアルを確認してください。
中国語の技術記事から翻訳。原文初公開:2021-12-15。原文最終改訂:2026-10-13T20:58:17+08:00。 中国語の原文を読む
実務上のよくある質問
TCPペイロード内のRTUチェックサムが、Modbus TCPサーバーで通用しないのはなぜですか?
サーバーが想定しているのは、指定されたModbus TCPのフレーム形式であり、任意のRTUカプセル化ではありません。どのソケット経路でも変換されると思い込まず、対応するゲートウェイまたはアプリケーションモードに合わせてください。
到達可能なゲートウェイのIPから、どの下流計測器が応答したかを特定できますか?
いいえ。マッピングと返されたプロトコル内容によって、目的の端末を特定する必要があります。ネットワーク接続を受け入れる前に、局アドレスの指定、チャネルの選択、既知の値を確認してください。
同時接続するTCPクライアントを増やすと、ゲートウェイの応答時間が悪化することがあるのはなぜですか?
各クライアントの要求が、1本のシリアルバスのキューに入ることがあります。ネットワークセッションごとに独立したシリアル帯域が確保されると期待せず、対応するスケジューリングとアプリケーションのタイムアウトを確認してください。
出典と適用範囲
これらの補足は一般的な仕組みを説明するものです。対応機能、接続の詳細、受入判定基準は、実際の機器、ソフトウェア、運用条件に合わせて検証する必要があります。図は測定結果や認証の証拠ではありません。