-

Modbus/TCP-Konfiguration

Dieses Thema enthält die folgenden Abschnitte:

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:

FunktionscodeBezeichnungBeschreibung
FC01Read CoilsLesen des ON/OFF-Status von 1 bis 2000 zusammenhängenden Coils des Servers.
FC03Read Holding RegistersLesen von einem oder mehreren Ausgangs-Registern (1 Register = 2 Bytes).
FC04Read Input RegistersLesen von 1 bis 125 zusammenhängenden Eingangs-Registern des Servers.
FC05Write Single CoilSchreiben eines einzelnen Bit-Ausgangs auf ON (Bit wird auf 0xFF00 gesetzt) oder OFF (Bit = 0x0000).
FC06Write Single RegisterSchreiben eines einzelnen Eingangs- oder Ausgangsregisters.
FC15Write Multiple CoilsSchreiben eines einzelnen Bit-Ausgangs auf ON (Bit wird auf 0xFF00 gesetzt) oder OFF (Bit = 0x0000) für jedes Coil in einer Reihe von Coils.
FC16Write Multiple RegistersSchreiben eines Blocks von zusammenhängenden Eingangs- oder Ausgangsregistern (1 bis 123 Register).
FC23Read/Write Multiple RegistersAusfü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...09999CoilLesen/Schreiben
10001...19999Discrete Input (diskreter Eingang)Nur lesen
30001...39999Input-Register (Eingangsregister)Nur lesen
40001...49999Holding-RegisterLesen/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: