Skip to content
RFrftools.io
Comms

Modbus RTU Frame-Timing-Rechner

Berechnet die Modbus-RTU-Zeichenzeit, den Abstand zwischen den Frames von 3,5 Zeichen, die Gesamtbilddauer und die maximale Bildrate.

Loading calculator...

Formel

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}

Referenz: Modbus Application Protocol V1.1b3, Modbus.org

T_charZeit des Charakters (ms)
T_3.5Abstand zwischen den Frames (ms)
PParitätsbits (bits)
SBits stoppen (bits)

Wie es funktioniert

Dieser Rechner bestimmt Modbus RTU-Frame-Timing-Parameter für industrielle Kommunikationssysteme. SCADA-Ingenieure und SPS-Programmierer verwenden ihn, um Master-Slave-Abfrageintervalle und Timeout-Werte zu konfigurieren. < 1.5 character times, and inter-frame gap >Gemäß der Modbus-Spezifikation (modbus.org, 'MODBUS over Serial Line Specification and Implementation Guide V1.02') und IEC 61158 (Industrial Communication Networks — Fieldbus-Spezifikationen) erfordert RTU-Framing ein genaues Zeichen- und Interframe-Timing: character time = bits_per_char/baud_rate, intercharacter gap= 3,5 Zeichen. Bei 9600 Baud mit 11 Bit pro Zeichen (1 Start + 8 Daten + 1 Parität + 1 Stopp) ist die Zeichenzeit = 1,146 ms, das Maximum zwischen den Zeichen = 1,72 ms und das Minimum zwischen den Frames = 4,01 ms. Ein Verstoß gegen diese Timings führt zu Fehlern bei der Frame-Synchronisation. Studien in industriellen Modbus-Netzwerken zeigen, dass 23% der Kommunikationsfehler auf eine falsche Timeout-Konfiguration zurückzuführen sind. Bei Baudraten über 19200 legt die Spezifikation den Abstand zwischen den Frames auf 1,75 ms fest, um übermäßige Leerlaufzeiten zu vermeiden.

Bearbeitetes Beispiel

Ein Gebäudeautomationssystem fragt 32 Modbus RTU-Geräte über RS-485 mit 19200 Baud ab und liest 10 Register pro Gerät. Gemäß Modbus-Spezifikation Abschnitt 2.5.1.1: Bits pro Zeichen = 1 (Start) + 8 (Daten) + 1 (gerade Parität) + 1 (Stopp) = 11 Bit. Zeichenzeit = 11/19200 = 0,573 ms. Anforderungsrahmen: 1 (Adresse) + 1 (Funktion) + 4 (Daten) + 2 (CRC) = 8 Zeichen = 4,58 ms. Antwortrahmen (10 Register): 1 + 1 + 1 + 20 + 2 = 25 Zeichen = 14,32 ms. Lücken zwischen den Frames: 3,5 x 0,573 ms = mindestens 2,01 ms, aber die Spezifikation schreibt mindestens 1,75 ms bei 19200 Baud vor. Gesamtabfragezeit pro Gerät = 4,58 + 2 + 14,32 + 2 = 22,9 ms. Volle Scanzeit = 32 x 22,9 ms = 733 ms, was einer Aktualisierungsrate von 1,36 Hz entspricht.

Praktische Tipps

  • Setzen Sie den Master-Timeout gemäß der Modbus-Implementierungsanleitung auf: t_turnaround + (max_response_bytes x char_time) + 50 ms Sicherheitsmarge
  • Bei Baudraten über 19200 ist der Abstand zwischen den Frames auf 1,75 ms festgelegt — rechnen Sie nicht mit 3,5 Zeichen (würde 0,9 ms bei 38400 ergeben)
  • Verwenden Sie die Broadcast-Adresse 0 für Schreibbefehle an mehrere Geräte gleichzeitig, wodurch die Scanzeit für synchronisierte Ausgaben um bis zu 90% reduziert wird

Häufige Fehler

  • Einstellung des Antwortzeitlimits unter die Rundlaufzeit — ein Timeout von 100 ms schlägt in 500-Meter-RS-485-Netzwerken fehl, in denen die Übertragungsverzögerung allein 3,3 µs pro Richtung beträgt
  • Es wird ein Abstand von 1,5 Zeichen bei 38400 Baud anstelle des festen Minimums von 750 us gemäß Abschnitt 2.5.1.1 der Modbus-Spezifikation verwendet, was zu einer Frame-Fragmentierung von 5-10% führt
  • Abfragen werden schneller ausgeführt, als Geräte antworten können — viele SPS benötigen eine Verarbeitungszeit von 10-50 ms zwischen Anforderungseingang und Antwortübertragung

Häufig gestellte Fragen

Gemäß der Modbus-Spezifikation führen Lücken unter 3,5 Zeichen (oder 1,75 ms über 19200 Baud) zu einer Frame-Verkettung — der Slave hängt neue Daten an den vorherigen Frame-Buffer an, was zu CRC-Fehlern führt. Studien zeigen, dass 100% der Frames fehlschlagen, wenn der Abstand zwischen den Frames weniger als 2 Zeichen beträgt.
Die Zeichenzeit skaliert umgekehrt: 9600 Baud = 1,146 ms, 19200 = 0,573 ms, 38400 = 0,286 ms. Der Abstand zwischen den Frames folgt der 3,5-fachen Regel bis zu 19200 Baud (4,01 ms bei 9600, 2,01 ms bei 19200) und wird dann bei höheren Raten auf 1,75 ms festgelegt. Eine Antwort mit 10 Registern dauert 28,6 ms bei 9600 Baud gegenüber 7,2 ms bei 38400 Baud.

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

Verwandte Taschenrechner