Skip to content
RFrftools.io
Comms

Modbus RTU フレームタイミング計算ツール

Modbus RTU の文字時間、3.5 文字のフレーム間ギャップ、合計フレーム時間、最大フレームレートを計算します。

Loading calculator...

公式

Tchar=1+8+P+Sbaud_rate,T3.5=3.5×TcharT_{char} = \frac{1+8+P+S}{baud\_rate},\quad T_{3.5} = 3.5 \times T_{char}

参考: Modbus Application Protocol V1.1b3, Modbus.org

T_charキャラクタータイム (ms)
T_3.5フレーム間のギャップ (ms)
Pパリティビット (bits)
Sストップビット (bits)

仕組み

この計算機は、産業用通信システムのModbus RTUフレームタイミングパラメータを決定します。SCADA エンジニアと PLC プログラマーは、これを使用してマスター/スレーブのポーリング間隔とタイムアウト値を設定します。< 1.5 character times, and inter-frame gap >Modbus仕様(modbus.org、「MODBUSオーバーシリアル回線仕様および実装ガイドV1.02」)およびIEC 61158(産業用通信ネットワーク—フィールドバス仕様)によると、RTUフレーミングには正確な文字とフレーム間のタイミングが必要です。文字時間 = bits_per_char/baud_rate、文字間ギャップ = 3.5文字倍です。9600 ボーで、1 文字あたり 11 ビット (1 スタート + 8 データ + 1 パリティ+ 1 ストップ)、キャラクタ時間 = 1.146 ミリ秒、文字間の最大値 = 1.72 ミリ秒、フレーム間の最小値 = 4.01 ミリ秒。これらのタイミングに違反するとフレーム同期エラーが発生します。産業用 Modbus ネットワークの調査によると、通信障害の 23% はタイムアウト設定の誤りが原因であることが分かっています。ボーレートが 19200 を超える場合、過剰なアイドル時間を防ぐため、仕様ではフレーム間のギャップが 1.75 ms に固定されています。

計算例

ビルディングオートメーションシステムは、RS-485を介して32台のModbus RTUデバイスを19200ボーでポーリングし、デバイスあたり10個のレジスタを読み取ります。Modbus 仕様セクション 2.5.1.1 によると、1 文字あたりのビット数 = 1 (開始) + 8 (データ) + 1 (偶数パリティ) + 1 (ストップ) = 11 ビット。キャラクタータイム = 11/19200 = 0.573 ミリ秒リクエストフレーム:1 (アドレス) + 1 (関数) + 4 (データ) + 2 (CRC) = 8 文字 = 4.58 ミリ秒レスポンスフレーム (10 レジスタ): 1 + 1 + 1 + 20 + 2 = 25 文字 = 14.32 ミリ秒フレーム間のギャップ:3.5 x 0.573 ミリ秒 = 最小 2.01 ミリ秒ですが、仕様では 19200 ボーで最小 1.75 ミリ秒と規定されています。デバイスごとの合計ポーリング時間 = 4.58 + 2 + 14.32 + 2 = 22.9 ミリ秒。フルスキャン時間 = 32 x 22.9 ミリ秒 = 733 ミリ秒、1.36 Hz の更新レートが可能です。

実践的なヒント

  • Modbus 実装ガイドによると、マスタータイムアウトを t_turnaround + (max_response_bytes x char_time) + 50 ミリ秒の安全マージンに設定してください
  • ボーレートが19200を超えると、フレーム間のギャップは1.75ミリ秒に固定されます。3.5文字回計算しないでください(38400で0.9ミリ秒になります)
  • ブロードキャスト・アドレス0を複数のデバイスへの書き込みコマンドに同時に使用することで、同期出力のスキャン時間を最大 90% 短縮できます

よくある間違い

  • 応答タイムアウトをラウンドトリップ時間より低く設定する-伝搬遅延だけでも片道3.3 usである500メートルのRS-485ネットワークでは、100ミリ秒のタイムアウトが失敗する
  • Modbus仕様セクション2.5.1.1に従って固定された750usの代わりに、38400ボーで1.5文字のギャップを使用すると、フレームフラグメンテーションが5~ 10% 発生する
  • デバイスの応答速度よりもポーリングが速い-多くの PLC では、要求の受信から応答の送信まで 10 ~ 50 ミリ秒の処理時間が必要です

よくある質問

Modbus の仕様では、3.5 文字倍未満(または 19200 baud を 1.75 ms 上回る)のギャップがあると、フレーム連結が発生します。つまり、スレーブは前のフレームバッファに新しいデータを追加し、CRC エラーが発生します。研究によると、フレーム間のギャップが 2 文字倍未満の場合、100% のフレームが失敗することがわかっています。
キャラクタのタイムスケールは逆になります。9600 ボー = 1.146 ミリ秒、19200 = 0.573 ミリ秒、38400 = 0.286 ミリ秒。フレーム間のギャップは 19200 ボーまで 3.5 倍ルール(9600 では 4.01 ミリ秒、19200 では 2.01 ミリ秒)に従い、レートが高くなると 1.75 ミリ秒に修正されます。10 レジスタの応答には、9600 ボーで 28.6 ミリ秒かかるのに対し、38400 ボーでは 7.2 ミリ秒かかります。

Shop Components

As an Amazon Associate we earn from qualifying purchases.

USB-UART Adapter

USB to serial adapter for protocol debugging and flashing

USB Logic Analyzer

8-channel USB logic analyzer for capturing digital bus traffic

関連電卓