Wie funktioniert Modbus RTU?
Das Modbus-Protokoll ist im Grunde ein System, das Anforderungen und Antworten von elektronischen Geräten verarbeitet. Die Master/Slave-Architektur wird verwendet, wenn der Master Anforderungen stellt, auf die die Slave-Geräte antworten.
Was ist ein Modbus RTU-Master?
Ein Modbus RTU-Master ist das zentrale Gerät, das Informationen von den angeschlossenen Slave-Geräten anfordert. Eine zentrale Steuerung in einem automatisierten Produktionssystem kann die Rolle eines Modbus RTU-Masters übernehmen. Eine Modbus-Implementierung hat einen Master. Master-Geräte erhalten Informationen von den Slaves und können auch in die Register der Slave-Geräte schreiben.
Was ist ein Modbus RTU-Slave?
Der Modbus RTU-Slave ist das Gerät, das auf die Anforderung des Master-Geräts reagiert. Es kann keine Informationsübertragung initiieren und befindet sich in einem Wartemuster, bis es auf eine Anforderung des Masters reagiert.
Wie bereits erwähnt, gibt es in einer Modbus RTU-Implementierung ein Master-Gerät und es können bis zu 247 Slave-Geräte vorhanden sein. Jedes Slave-Gerät wird durch eine Slave-Adresse von 1 bis 247 identifiziert.
Das Herzstück des Modbus-Protokolls ist die Komponente, die als Protocol Data Unit (PDU) bekannt ist. Die PDU besteht aus einem Funktionscode und Daten und ist unabhängig vom verwendeten Modbus-Übertragungsmodus konsistent aufgebaut. Der Funktionscode gibt an, welche Daten vom Master angefordert werden.
Im Modbus RTU-Übertragungsmodus werden zusätzliche Informationen um die PDU gewickelt, um die vollständige Application Data Unit (ADU) zu erstellen. Im Signalstrom und vor dem Funktionscode wird im Modbus RTU-Modus eine Slave-ID von 1 Byte gesendet, um das Slave-Gerät zu identifizieren, das die Anforderung erfüllen soll. An die PDU ist ein 2-Byte-CRC angehängt, der sicherstellt, dass die richtige Anzahl von Bytes gesendet und empfangen wurde.
Modbus-Geräte unterstützen vier Datentabellen, mit denen die Kommunikation zwischen Geräten erleichtert wird. Dies sind Diskrete Eingänge, Diskrete Ausgänge (Spulen), Eingangsregister und Betriebsregister. Die Register führen unterschiedliche Funktionen aus und sind nicht in jedem Gerät enthalten. In einigen Fällen werden nur die Betriebsregister für die E/A-Funktionalität verwendet.
Feld |
Zugang |
Größe |
Beschreibung |
Diskrete Eingänge |
nur lesen |
1 bit |
als Eingänge verwendet |
Magnetspulen/Ausgänge |
lesen/schreiben |
1 bit |
verwendet, um diskret zu steuern |
Eingaberegister |
nur lesen |
16 bit |
verwendet für die Eingabe |
Betriebsregister |
lesen/schreiben |
16 bit |
wird für eine Vielzahl von Dingen verwendet, einschließlich Eingaben, Ausgaben, Konfigurationsdaten usw. |
Funktionscodes geben an, wie der Master mit dem in der Slave-ID angegebenen Slave-Gerät interagiert. Basierend auf dem gesendeten Funktionscode kann das Master-Gerät eines der Slave-Register lesen oder in dieses schreiben.
Slaves geben Fehlercodes zurück, wenn sie ein Paket empfangen, das einen Fehler in der Anforderung enthält. Fehlercodes werden zurückgegeben, z.B. für die Anforderung einer ungültigen Funktion, für ungültige Registeradressen, die vom angegebenen Slave nicht erreicht werden können, und für Meldungen, die darauf hinweisen, dass das Slave-Gerät ausgelastet ist oder einen Fehler aufgetreten ist.
Modbus RTU erfordert, dass Sie Parameter wie die Baudrate, das Zeichenformat (8 Bit, keine Parität usw.) und die Slave-ID kennen oder definieren, wenn Sie die Kommunikation einleiten. Eine Nichtübereinstimmung in einem dieser Parameter führt zum Fehlschlagen Ihres Kommunikationsversuchs.