Als Profis in der industriellen Steuerung sind Sie wahrscheinlich mit dem Modbus-Kommunikationsprotokoll vertraut. Es ist wohl das am weitesten verbreitete Kommunikationsprotokoll im Bereich der industriellen Automatisierung. Seine Offenheit, Skalierbarkeit und Standardisierung haben es zu einem universellen Industriestandard gemacht.
Ich glaube, dass die Vorteile des Modbus-Protokolls selbstverständlich sind. Der Zweck dieses Artikels besteht in erster Linie darin, die Nachteile des Modbus-Protokolls zu diskutieren.
Alles hat zwei Seiten und jedes Protokoll hat seine Mängel. Die Tatsache, dass Modbus Nachteile hat, bedeutet nicht, dass es ein schlechtes Protokoll ist; Ich hoffe, dass jeder dies rational betrachten wird.
1. Beschränkungen der Datenmenge, die gelesen werden kann
Das folgende Diagramm veranschaulicht das Datenformat für den Funktionscode 03 des Modbus RTU-Protokolls:

Wie in der Abbildung dargestellt, beträgt die von der Slave-Station zurückgegebene Datenanzahl (Byteanzahl) nur ein Byte.
Da die Byteanzahl nur ein Byte belegt, können beim Lesen von Eingabe-/Halteregistern maximal 127 Register gleichzeitig gelesen werden. Bei Anwendungen mit sehr großen Datenmengen sind mehrere Lesevorgänge erforderlich, um alle Daten abzurufen, was zwangsläufig die Kommunikationseffizienz verringert.
2. Fehlende Unterstützung für das Schreiben in einzelne Registerbits
Unter den acht häufig verwendeten Modbus-Funktionscodes gibt es keine spezielle Funktion zum Schreiben in einzelne Bits innerhalb eines Registers. Wenn wir daher ein bestimmtes Bit in einem Register setzen oder löschen müssen, wird der Vorgang recht umständlich.
Im Allgemeinen gibt es zwei Ansätze, damit umzugehen:
Erster Ansatz: Wir müssen zuerst den Wert des Registers lesen, dann ein bestimmtes Bit dieses Werts manipulieren und schließlich den geänderten Wert zurückschreiben. Dies erfordert zwei Hin- und Rückfahrten und ist unter bestimmten Gesichtspunkten nicht sicher.
Der zweite Ansatz: Wir können ein einzelnes Bit als separates Register behandeln, wobei das Schreiben einer 1 „True“ und das Schreiben einer 0 „False“ darstellt. Diese Methode kann in einer einzigen Interaktion ausgeführt werden, verschwendet jedoch eine erhebliche Menge an Speicherplatz.
Das Modbus-Protokoll wurde 1979 entwickelt und wird heute in Zehntausenden Geräten verwendet. Ich glaube, die Erfinder waren sich dieser Probleme durchaus bewusst, konnten aber keine einheitliche Lösung umsetzen.
Vielleicht kann das Modbus-Protokoll eines Tages diese beiden Probleme lösen ...
Einige könnten argumentieren, dass das Modbus-Protokoll Sicherheitslücken aufweist. Da es sich jedoch um ein für industrielle Feldanwendungen konzipiertes Protokoll handelt, besteht sein Hauptzweck darin, den Datenaustausch zu erleichtern. In einer Offline-Umgebung schadet es nicht, wenn kein Angriff erfolgt.




