Das Modbus RTU Protokoll ist in den AC500 Prozessormodulen implementiert. Modbus ist ein Master-Slave (Client-Server) Protokoll. Der Client sendet eine Anfrage an den Server und erhält die Antworten.
Die Betriebsart Modbus einer seriellen Schnittstelle wird in der Steuerungskonfiguration ⮫ „Konfigurieren von Modbus RTU auf der seriellen Schnittstelle“ eingestellt.
Um die SPS als Modbus RTU-Client zu verwenden, können zwei mögliche Programmiermethoden verwendet werden:
-
ModRtuMast
-
ModRtuToken mit Read/Write Funktionsbausteinen
ModRtuMast
Bei dieser Methode wird der Modbus Client-Funktionsbaustein ModRtuMast verwendet, um alle Lese- und/oder Schreibaufträge in einer Sequenz zu programmieren. Wird mehr als ein ModRtuMast-Funktionsbaustein verwendet, z.B. für mehrere Sever-Verbindungen, so ist in der Reihenfolge darauf zu achten, dass immer nur einer dieser ModRtuMast-Funktionsbausteine aktiv ist.
Eine Übersicht über die unterstützten Funktionscodes für die Modbus RTU-Kommunikation mit einer AC500 SPS finden Sie im Anwendungsbeispiel ⮫ Modbus RTU und Funktionsbaustein ModRtuMast.
ModRtuToken mit Read/Write Funktionsbausteinen
Bei dieser Methode wird der Funktionsbaustein ModRtuToken
zusammen mit ModRtuRead
und/oder ModRtuWrite
und/oder ModRtuReadWrite23
verwendet.
Anstelle der Programmierung einer Sequenz ist eine einfache Verbindung über Strukturvariablen zwischen den Funktionsbausteinen notwendig, um die sequentielle Funktionalität von Modbus RTU zu gewährleisten.
Ein Beispielprojekt für Modbus Client und Server, um Modbus RTU-Kommunikation mit einer AC500 SPS zu ermöglichen, finden Sie im Anwendungsbeispiel ⮫ Modbus RTU und Funktionsbaustein ModRtuMast.
Um das Modbus RTU Protokoll auf einer AC500-eCo SPS zu verwenden, muss das Prozessormodul mit einer Optionsbaugruppe für die serielle Kommunikation COMx TA5141-RS232I, TA5142-RS485 oder TA5142-RS485I ausgestattet sein. Der Typ des Adapters der Optionsbaugruppe muss entsprechend dem Typ der benötigten physischen seriellen Schnittstelle ausgewählt werden.
Je nach CPU-Typ können bis zu 3 Optionsbaugruppen für die serielle Kommunikation COMx verwendet werden⮫ „Anbringen einer Optionsbaugruppe für die serielle Kommunikation COMx“.
Modbus RTU kann für die Kommunikation zwischen einer AC500-eCo SPS und einem Bedienfeld verwendet werden. Das Anschlussprinzip wird am Beispiel des Bedienfelds CP604 beschrieben: ⮫ CP604-Anschluss über Modbus RTU.
Modbus Kunde
In dieser Betriebsart wird der Telegrammverkehr mit dem/den Server(n) über den Funktionsbaustein ModRtuMast abgewickelt.
Dieser Funktionsbaustein sendet über die eingestellte Schnittstelle Modbus Request-Telegramme an den/die Server und empfängt über diese Schnittstelle Modbus Response-Telegramme von dem/den Server(n).
Die vom Server übertragenen Blöcke von Modbus enthalten die folgenden Informationen:
-
Modbus Adresse des abgefragten Servers (1 Byte)
-
Funktionscode, der die Anfrage des Kunden definiert (1 Byte)
-
die auszutauschenden Daten (N Byte)
-
den CRC16-Steuercode (2 Byte)
Modbus Server
In dieser Betriebsart wird kein Funktionsbaustein für die Modbus Kommunikation benötigt. Das Senden und Empfangen von Modbus Telegrammen wird automatisch durchgeführt.
Die AC500 CPUs verarbeiten die folgenden Modbus Operationscodes:
Funktionscode |
Beschreibung |
|
---|---|---|
DEZ |
HEX |
|
01 oder 02 |
01 oder 02 |
Lesen n Bits |
03 oder 04 |
03 oder 04 |
Lesen n Worte |
05 |
05 |
Schreiben eines Bits (kodiert in einem Wort) |
06 |
06 |
Ein Wort schreiben |
15 |
0F |
Schreiben von n Bits (kodiert in einem Byte) |
16 |
10 |
Schreiben n Worte |
22 |
16 |
Maske schreiben |
23 |
17 |
Lesen/Schreiben mehrerer Wörter in einem Telegramm |
Es gelten folgende Längenbeschränkungen für die zu übertragenden Daten:
Funktionscode |
Max. Länge |
|
---|---|---|
DEZ |
HEX |
|
01 oder 02 |
01 oder 02 |
2000 Bits |
03 oder 04 |
03 oder 04 |
125 Wörter / 62 Doppelwörter |
05 |
05 |
1 Bit |
06 |
06 |
1 Wort |
15 |
0F |
2000 Bits |
16 |
10 |
123 Wörter / 61 Doppelwörter |
22 |
16 |
Schreiben: 1 Wort |
23 |
17 |
Lesen: 125 Wörter / 62 Doppelwörter Schreiben: 121 Wörter / 60 Doppelwörter |