MODBUSデバイスと通信する場合、タイムアウトと見なされるまでにデバイスが応答するのにかかる時間に上限はありますか?読み取りタイムアウトを何に設定するかを考えています。MODBUSRTUとTCPの両方に対する回答があれば素晴らしいでしょう。
2 に答える
MODBUS overSerial回線の仕様および実装ガイドV1.0セクション2.5.2.1MODBUSメッセージASCIIフレーミング低速のWAN構成では、最大5秒の文字間遅延が妥当であるという提案があります。
2.6エラーチェック方法は、タイムアウトが値を指定せずに構成されていることを示しています。
現在のModiconModbusプロトコルリファレンスガイドPI–MBUS–300 Rev. Jも、これらの設定に関する定量的な提案を提供していません。
アプリケーションの時間依存性は、ネットワークが強制する制約とともに、主に選択を決定します。
許容できる最悪の場合の遅延を特定し、その半分の時間をかけて1回の再送信が失敗するようにし、最大長のメッセージの妥当な送信時間を差し引くと、タイムアウトの適切な候補になります。これにより、不必要に頻繁にエラーを報告することなく、単一のエラーから回復することができます。
もちろん、本当の問題は、エラーが発生したときにどうするかです。それは一時的な問題である可能性が高いですか、それとも注意が必要な永続的な障害の結果ですか?
謝辞に関するAlexandreVinçonのコメントも関連しています。お使いのデバイスがこれを実装していない可能性があり、遅延の延長が意図されている可能性があります。
広範囲のMODBUSスレーブのタイムアウト値を正規化することはできないため、仕様ではタイムアウトの特定の値については言及されていません。
ただし、数百ミリ秒以内に応答を受信する必要があることを前提としています。
私は通常、タイムアウトをRTUでは1秒、TCPでは500ミリ秒に定義しています。
また、デバイスが応答するのに長い時間がかかる場合、タイムアウトの満了を防ぐためにACKNOWLEDGEメッセージを返すことになっています。