Modbus RTU Grundlagen

Ein Protokoll mit Zukunft

Innerhalb der Informationstechnik werden Protokolle verwendet, um die Anforderungen an eine systeminterne Kommunikation, die sicher und stabil ist, zu erfüllen. Im Laufe der Zeit hat sich durch die unterschiedlichen Hersteller eine Vielzahl an Protokollen entwickelt, die es bestenfalls zu einem international anerkannten Standard zusammenzufassen gilt. Zu diesen Protokollen, die dies geschafft haben, und somit als Grundlage für zahlreiche technologische Anwendungen gelten, gehört auch Modbus, welches sich in drei verschiedene Versionen gliedert, zu denen auch Modbus RTU zählt. Nachdem im Jahre 2007 die zweite Version des Modbus TCP als eine von der ISO definierte Norm etablierte, gilt auch die RTU-Variante als eine unabkömmliche Komponente innerhalb der industriellen Kommunikation.

Die Basis von Modbus RTU

Das Modbus RTU basiert auf dem Modbus-Protokoll, bei welchem es sich um ein Kommunikationsprotokoll handelt, welches auf einer Master-Slave-Architektur basiert, die auch als Client-Server-Verbindung bezeichnet werden kann. Der Ursprung dieser technischen Applikation liegt in der Arbeit vom Unternehmen Gould-Modicon, welches den Modbus seit 1979 entwickelte, mit dem Zweck der Kommunikation der speicherprogrammierbaren Steuerungen. Der entscheidende Vorteil, welcher auch die Wichtigkeit dieser Anwendung und deren Festigung als ein Standard verursachte, liegt darin, dass es sich hier um ein offenes Protokoll handelt. Als offen gilt hierbei ein Standard nur dann, wenn er für alle Anwender leicht zugänglich, einsetzbar und ausbaufähig ist.

Der Zweck und die Form vom Modbus RTU

Die Abkürzung RTU steht für die „Remote Terminal Unit“, also die entfernte Terminaleinheit. Der Zweck von Modbus RTU ist die Übertragung von Daten in einer binären Form. Diese Dateien können demnach im Gegensatz zu einer einfachen Textdatei auch nicht-alphabetische Zeichen enthalten. Zwar können solche binären Daten nicht unmittelbar von einem Menschen ausgewertet werden, da hierfür erst einmal die Umwandlung in ein lesbares Format erforderlich ist, dennoch liegt der Vorteil dieser Methode in dem guten Datendurchsatz.

Das Modbus RTU

Wie auch die anderen beiden Protokollvarianten, die des Modbus ASCII und des Modbus TCP, basiert diese Version ebenso auf dem Master-Slave-System. Innerhalb dieses Netzwerks ist es erforderlich, dass jeder Busteilnehmer eindeutig eine Adresse zugeordnet bekommt und somit von den anderen Teilnehmern direkt angesprochen und identifiziert werden kann. Die Adresse 0 fällt in jedem System stets dem Broadcast zu. Dies bedeutet aus dem Englischen übersetzt Rundfunk und steht innerhalb des Computernetzwerks für eine Nachricht, bei welcher die Datenpakete von einem festgelegten Punkt, der Adresse 0, an alle anderen Teilnehmer versendet werden. Jedes Bindeglied innerhalb der Bustopologie, also der Anordnung der Verbindungen, ist dazu befähigt, Nachrichten zu versenden, was in der Regel beim Modbus RTU von dem Master begonnen wird und durch den adressierten Slave eine Antwort zugewiesen bekommt.

Modbus RTU Protokoll – Der Aufbau

Modbus RTU setzt sich zunächst einmal aus vier verschiedenen Feldern zusammen.

  • Adressfeld
  • Funktionsfeld
  • Datenfeld
  • Feld für die Prüfsumme

Befindet sich das Protokoll dann im RTU-Modus bedeutet dies, dass der Sendebeginn durch eine Sendepause markiert wird, die mindestens drei Zeichen an Länge umfassen muss, damit die Kommunikation richtig gestartet werden kann. Wie lange die Sendepause insgesamt wird hängt dabei von der Geschwindigkeit der Übertragung ab, also wie viel Zeit benötigt wird, um diese mindestens drei Zeichen zu übermitteln.

  • Das Adressfeld, also der Bereich in welchem sich die Adresse des Empfängers befindet, umfassen beim Modbus RTU insgesamt acht Bit, die zusammengesetzt eben diese Empfängeradresse beschreiben. Der Slave sendet bei einer Antwort zunächst diese 8-Bit-Adresse an den Master zurück, sodass dieser weiß mit welchem Teilnehmer er nun kommuniziert und somit eine exakte Zuordnung gewährleistet ist.
  • Auch das Funktionsfeld besteht aus 8 Bit. Wenn der Slave die Anfrage seitens des Masters korrekt übermittelt bekommen hat, so wird mit demselben Funktionscode geantwortet. Ist jedoch ein Fehler aufgetreten, also nicht die korrekte Anfrage übermittelt worden, dann wird der Funktionscode durch das Umsetzen des höchstwertigen Bits auf 1 verändert.
  • Das Datenfeld beim Modbus RTU beinhaltet Hinweise darüber, welche Register durch den Slave ausgelesen werden sollen und, an welcher Adresse diese beginnen. Auch die Register werden über eine Adresse gekennzeichnet. An der Adresse, an welcher der Register beginnt, setzt der Slave die ausgelesenen Daten ein, sodass diese in einer lesbaren Struktur an den Master gesendet wird. Kommt es jedoch zu einem Fehler, nimmt ein Fehlercode die eigentliche Stelle der Daten ein.
  • Das Feld für die Prüfsumme beträgt 16 Bit. Die Ermittlung dieser Summe erfolgt durch ein CRC. In diesem Feld ist es wichtig, dass die Übertragung des Telegramms über einen kontinuierlichen Datenstrom läuft. Wenn eine Sendeunterbrechung zwischen zwei Zeichen auftritt, die länger als 1,5 Zeichen ist, so gilt das Telegramm nicht als vollständig übermittelt und wird somit vom Empfänger verworfen.