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
Informationen zur Konfiguration der Register für einen Remote-Modbus/TCP-Server und lokalen Modbus/TCP-Server finden Sie in den Themen "Remote-Modbus/TCP-Server konfigurieren" und "Lokalen Modbus/TCP-Server konfigurieren". |
Modbus/TCP-Konfiguration in PLCnext Engineer
| Hinweis
Die Konfiguration des Modbus/TCP-Clients und der Remote-Modbus/TCP-Server wird nur für PLCnext Technology-Steuerungen mit einer Firmware-Version 2024.6 oder neuer unterstützt. Informationen zur Modbus/TCP-Unterstützung für bestimmte Steuerungen finden Sie im PLCnext Info Center. |
| Hinweis
Die Konfiguration des lokalen Modbus/TCP-Servers wird nur für PLCnext Technology-Steuerungen mit einer Firmware-Version 2026.0 oder neuer unterstützt. Informationen zur Modbus/TCP-Unterstützung für bestimmte Steuerungen finden Sie im PLCnext Info Center. |
| 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. |
| Hinweis
Modbus/TCP-Client- und -Servergeräte sind in der Gerätebibliothek 'Modbus' enthalten. Damit die Modbus/TCP-Geräte im Projekt verwendet werden können, muss die 'Modbus'-Bibliothek in den KOMPONENTEN eingebunden sein (siehe hierzu das Thema "Bibliotheken einfügen"). |
In PLCnext Engineer erfolgt die Konfiguration des Modbus/TCP-Clients, der Remote-Modbus/TCP-Server und des lokalen Modbus/TCP-Servers (in PLCnext Technology-Steuerungen eingebundener Server; verfügbar ab Firmware-Version 2026.0) mit den Editoren des Modbus TCP Client-Knotens (Client und Remote-Server) und Modbus TCP Server-Knotens (lokaler Server). Der Modbus/TCP-Client und der lokale Modbus/TCP-Server können unabhängig voneinander oder zusammen auf der Steuerung verwendet werden. Mit den Editoren können Sie Folgendes:
- Modbus/TCP-Client konfigurierenFügen Sie Remote-Modbus/TCP-Server mit dem Stationseditor des Clients ein und bearbeiten Sie die Datenliste des Clients.
- Remote-Modbus/TCP-Server konfigurierenKonfigurieren Sie die Einstellungen für den Remote-Modbus/TCP-Server und die Server-Register.
- Lokalen Modbus/TCP-Server konfigurierenKonfigurieren Sie den lokalen Modbus/TCP-Server und die Server-Register.