Die Aktualisierungsrate der Modbus-Daten hängt von mehreren nicht offensichtlichen Parametern ab. In der Entwurfsphase stellt sich das Problem, wie die Geschwindigkeit einer zukünftigen Schnittstellenleitung bewertet werden kann. In diesem Artikel betrachten wir die Faktoren, die die Geschwindigkeit der Aktualisierung von Daten auf Modbus RTU beeinflussen, führen einige Standardberechnungen durch und am Ende des Artikels wird ein Link zum Web-Rechner für die Geschwindigkeit der Modbus RTU-Linie angezeigt.Modbus ist nach wie vor das am weitesten verbreitete Kommunikationsprotokoll für Industrieanlagen. Eine Beschreibung des Protokolls und die Gründe für ihre Verbreitung in vielen Artikeln, zum Beispiel finden sich hier . Es versteht sich ferner, dass Sie mit den Grundlagen der Funktionsweise des Protokolls vertraut sind.Wir werden Modbus RTU in Betracht ziehen, aber die Ergebnisse werden teilweise auf Modbus TCP anwendbar sein.Um die Geschwindigkeit zu berechnen, betrachten wir zunächst das physikalische Protokoll (1. Stufe des OSI-Modells). Die Modbus RTU verwendet die physikalische Schnittstelle RS-485, RS-422 oder RS-232 (letztere wird für Modbus praktisch nicht verwendet). Für die Signalübertragung verwenden diese Schnittstellen UART (Universal Asynchronous Receiver-Transmitter). Weitere Informationen zu UART finden Sie hier .Ein Standard-UART-Paket besteht aus:- Startbit () 1 Bit
- nützliche Daten (data) 7-8 Bits
- Paritätsbit (parity_bit) 0-1 Bit
- Stoppbit (stop_bit) 1-2 Bit
Das heißt, für jeweils 7-8 Bits nützlicher Daten werden 2-4 Hilfsbits übertragen. Nutzlastrate (Vdata) ist niedriger als die Schnittstellengeschwindigkeit (Vuart) BerechnungVdata kann nach der Formel sein:Vdata=Vuart∗datastart_bit+data+parity_bit+stop_bit
Als nächstes müssen Sie verstehen, wie der Modbus-Master mit Slaves auf der Datenverbindungsschicht (OSI-Modellebene 2) kommuniziert. Aufgrund der Besonderheiten der physischen Schnittstelle des Geräts, das an die Leitung angeschlossen ist, können Daten nacheinander übertragen werden, dh es kann jeweils nur ein Gerät Daten senden. Aus diesem Grund kommuniziert der Assistent zyklisch mit den Slaves und liest und schreibt nacheinander Register an die Slaves. Der gesamte Zyklus der Leseregister vom Slave sieht folgendermaßen aus:- Verzögerung (mindestens 3,5 Zeichen = 28 Bit, Anzahl unten in Sekunden)
- Leseanforderungsübertragung (8 Bytes)
- Verzögerung in der Antwort des Slave-Geräts (mindestens 28 Bit, oft mehrere zehn Millisekunden, um eine Antwortnachricht zu bilden)
- Slave-Übertragung einer Antwortnachricht (maximal 256 Byte für Modbus RTU).
Einige Ingenieure wählen eine Vierdrahtversion der Schnittstelle, in der Hoffnung auf eine schnellere Übertragung (was eine parallele Datenübertragung zum Empfang und zur Übertragung impliziert). Offensichtlich funktioniert diese Lösung nicht. Die Reihenfolge des Sendens von Daten ist für 2x- und 4x-Drahtleitungen gleich.Wir berechnen die Zeit, die für einen vollständigen Lesezyklus von 125 Halteregistern (die maximale Anzahl für Modbus RTU) aufgewendet wird, mit den folgenden Zeilenparametern: Rahmenformat:8N1 (8 Datenbits, kein Paritätsbit, 1 Stoppbit)Geschwindigkeit uart:Vuart= 19200 Bit / sNutzlastübertragungsrate:Vdata= 15360 Bit / s Hauptverzögerung:master_silence = 28 Bit / Vuart(Dies ist die minimal zulässige Verzögerung, normalerweise mehr.)Slave-Antwortverzögerung:slave_silence= 0,04 s (der Wert hängt vom Slave-Gerät ab)Senden einer Anfrage mit 125 Halteregistern: 8 Byte oder 64 BitAntwort mit 125 Halteregistern: 256 Byte oder 2048 BitFormel zur Berechnung der Lesezykluszeit:Tcycle=silence_master+64bit/Vdata+slave_silence+2048bit/Vdata=0.179s
Die Reihenfolge zum Schreiben von Registern ist nahezu identisch. Das Master-Paket wird größer, weil Enthält Informationen zu beschreibbaren Registern. Die Bestätigung einer erfolgreichen Aufnahme vom Slave beträgt 8 Byte.Gemäß der Modbus-Spezifikation können 32 Slaves an die RS-485/422-Leitung angeschlossen werden. Die Befragung von Sklaven erfolgt ebenfalls nacheinander, üblicherweise im Kreis. Um zu verstehen, wie schnell Daten von aktualisiert werdenN Sklaven müssen sich vermehren Tcycleauf der NNennen Sie es die volle Aktualisierungszeit. Tfull.Ein paar BerechnungenTfull(Lesen und Schreiben der maximalen Anzahl von Halteregistern) für verschiedene Kommunikationsparameter:Rahmenformat: 8N1,Vuart = 19200 Bit / s, Anzahl der Slaves, N= 16Tfull= 5,727 s Rahmenformat: 8N1,Vuart = 9600 Bit / s, Anzahl der Slaves, N= 16Tfull= 10,173 sRahmenformat: 7E1,Vuart = 19200 Bit / s, Anzahl der Slaves, N= 16Tfull= 6,355 s Rahmenformat: 8N1,Vuart = 19200 Bit / s, Anzahl der Slaves, N= 2Tfull= 0,716 sWie Sie sehen können, beeinflusst das Frame-Format die Datenaktualisierungszeit , jedoch nicht viel. Die Datenübertragungsgeschwindigkeit wirkt sich erheblich aus, aber in unserem Beispiel übertragen wir die maximale Anzahl von Registern. In realen Projekten ist dieser Faktor möglicherweise nicht so wichtig. Vor allem die Anzahl der Slaves beeinflusst die Datenaktualisierungsrate.Um die Berechnungen zu vereinfachen, haben wir eine Webanwendung zur Schätzung der Zeit für die Aktualisierung von Daten über Modbus erstellt