Modbus/TCP-Konfiguration
Dieses Thema enthält die folgenden Abschnitte:
- Allgemeines zu Modbus/TCP
- Modbus/TCP-Funktionscodes
- Modbus/TCP-Register
- Modbus/TCP-Konfiguration in PLCnext Engineer
Allgemeines zu Modbus/TCP
Modbus/TCP ist ein offenes Client/Server-Protokoll für die Steuerungskommunikation. In Modbus/TCP sind verschiedene Funktionen für den Lese- und Schreibzugriff auf digitale Ein- und Ausgänge sowie auf Register definiert.
Das Daten-anfordernde Gerät im Modbus/TCP-Netzwerk ist der Modbus/TCP-Client. Das Gerät, das Daten zur Verfügung stellt, wird als Modbus/TCP-Server bezeichnet. Das Modbus/TCP-System besteht immer aus einem Client, der die Anforderung (Request) sendet und die Kommunikation mit einem oder mehreren Servern initiiert (ein Modbus/TCP-Server kann keine Kommunikation mit einem Modbus/TCP-Client beginnen). Der Zugriff auf jeden Server erfolgt über eine eindeutige Adresse (Unit ID).
Nachdem die Verbindung zwischen Client und Server hergestellt ist, initiiert das Client-Gerät eine Transaktion (Anforderung von Informationen) und sendet sie an einen oder mehrere Modbus/TCP-Server im Netzwerk. Der Modbus/TCP-Server verarbeitet dann die Anforderung (d.h. er liest und schreibt Modbus/TCP-Register) und sendet eine Antwort zurück. Jede Client-Anforderung besteht (unter anderem) aus einer Server-Adresse, einem Funktionscode, der die vom adressierten Server angeforderte Aktion definiert, und einer Prüfsumme (definiert das Ende der Anforderung). Wenn kein Fehler auftritt, antwortet der Server, indem er die Daten wie angefordert sendet oder bestätigt, dass die vom Modbus/TCP-Client angeforderte Aktion ausgeführt wurde. Die Antwort des Servers (Nachricht) enthält die Adresse des Servers, den Funktionscode (derselbe Funktionscode wie in der Anforderung), Daten und eine Prüfsumme.
Weitere Infos
In diesem Thema wird nicht im Detail erklärt, wie das Modbus/TCP-Protokoll funktioniert. Detaillierte Informationen zu Modbus/TCP finden Sie unter www.modbus.org. |
Modbus/TCP-Funktionscodes
Das Modbus/TCP-Protokoll definiert mehrere Funktionscodes, die für den Zugriff auf die Modbus/TCP-Register verwendet werden. Die Funktionscodes definieren den Nachrichtentyp und die Aktion (Lesen oder Schreiben von Daten über das Modbus/TCP-Netzwerk), die auf dem Modbus/TCP-Server ausgeführt werden soll. In PLCnext Engineer sind die folgenden Funktionscodes aus dem Standard Modbus/TCP-Protokoll implementiert:
Funktionscode | Bezeichnung | Beschreibung |
---|---|---|
FC01 | Read Coils | Lesen des ON/OFF-Status von 1 bis 2000 zusammenhängenden Coils des Servers. |
FC03 | Read Holding Registers | Lesen von einem oder mehreren Ausgangs-Registern (1 Register = 2 Bytes). |
FC04 | Read Input Registers | Lesen von 1 bis 125 zusammenhängenden Eingangs-Registern des Servers. |
FC05 | Write Single Coil | Schreiben eines einzelnen Bit-Ausgangs auf ON (Bit wird auf 0xFF00 gesetzt) oder OFF (Bit = 0x0000). |
FC06 | Write Single Register | Schreiben eines einzelnen Eingangs- oder Ausgangsregisters. |
FC15 | Write Multiple Coils | Schreiben eines einzelnen Bit-Ausgangs auf ON (Bit wird auf 0xFF00 gesetzt) oder OFF (Bit = 0x0000) für jedes Coil in einer Reihe von Coils. |
FC16 | Write Multiple Registers | Schreiben eines Blocks von zusammenhängenden Eingangs- oder Ausgangsregistern (1 bis 123 Register). |
FC23 | Read/Write Multiple Registers | Ausführen einer Kombination aus je einem Lese- und Schreibvorgang in einer einzigen Modbus/TCP-Transaktion. Der Schreibvorgang wird vor dem Lesen ausgeführt. |
Modbus/TCP-Register
Im Modbus/TCP-Protokoll werden die zu übertragenden oder zu empfangenden Daten in Registern organisiert, auf die über eine bestimmte Adresse zugegriffen wird. Alle Daten werden in Coil-Registern (1-bit Wert), diskreten Eingangsregistern (1-bit Wert), Holding-Register (16-bit Wert) und Eingangsregistern (16-bit Wert) gespeichert. Zur Identifizierung der Variablen auf dem Server werden Registeradressen verwendet. Die Registeradresse ist eine 16-Bit-Ganzzahl ohne Vorzeichen, die mit jeder vom Client ausgelösten Modbus/TCP-Anforderung übertragen wird. Die folgende Tabelle zeigt die Adressbereiche, die entsprechenden Datentypen, die darin gespeichert werden können, und die Lese-/Schreibberechtigungen der Datentypen (Leseberechtigung = Register kann vom Client gelesen werden; Schreibberechtigung = Client kann Register schreiben).
Adressbereich (dez) | Modbus/TCP-Datentyp (Registertyp) | Zugriff |
---|---|---|
00001...09999 | Coil | Lesen/Schreiben |
10001...19999 | Discrete Input (diskreter Eingang) | Nur lesen |
30001...39999 | Input-Register (Eingangsregister) | Nur lesen |
40001...49999 | Holding-Register | Lesen/Schreiben |
Weitere Infos
Details zur Konfiguration der Register für einen Modbus/TCP-Server finden Sie im |
Modbus/TCP-Konfiguration in PLCnext Engineer
Hinweis
Die Modbus/TCP-Konfiguration ist für PLCnext Technology-Steuerungen mit der Firmware-Version 2024.6 oder neuer verfügbar. |
Hinweis
Um die Modbus-Kommunikation konfigurieren zu können, muss der Modbus Client TCP-Dienst auf der WBM-Seite 'System Services' der Steuerung aktiviert werden. |
In PLCnext Engineer erfolgt die Konfiguration des Modbus/TCP-Clients und der Modbus/TCP-Server mit den Editoren des Modbus TCP-Knotens in der ANLAGE (der Knoten ist nur verfügbar, wenn Ihre Konfiguration eine Steuerung mit integrierter Modbus/TCP-Steuerung enthält). In den Editoren können Sie folgende Operationen durchführen:
- Modbus/TCP-Client konfigurierenFügen Sie Modbus/TCP-Server mit dem Stationseditor des Clients ein und bearbeiten Sie die Datenliste des Clients.
- Modbus/TCP-Server konfigurierenNehmen Sie die Einstellungen für den Modbus/TCP-Server vor und konfigurieren Sie die Server-Register.