« Zurück zu Produkt

Dokumentation

Modbus RTU/TCP

ModBus ist ein Protokoll welches auf RTU (seriell binär) und TCP/IP Paketen basiert. Eine Verbindung mit IP-Symcon ist via LAN- oder Seriell-Gateway möglich.

Warning

Folgende Geräte werden von IP-Symcon unterstützt:

Unterstützte Geräte

Einbindung in IP-Symcon

Zuerst muss eine "ModBus" Instanz innerhalb von IP-Symcon hinzugefügt werden. Dabei gibt es verschiedene Varianten, die erstellt werden können:

Instanz Beschreibung
ModBus Gerät Instanz, welche mehrere Adressen (Coils/Register) abbilden kann und Vorlagen unterstützt (ab 7.0)
ModBus Coil Instanz, welche eine einzelne Adresse (Coil) darstellt
ModBus Adresse Instanz, welche eine einzelne Adresse (Register) darstellt
Warning

Viele Vorlagen sind in unserer Community zu finden: Vorlagen anzeigen

Anschließend muss die Konfiguration des übergeordneten Gateways und I/O Instanz an das angeschlossene Gerät angepasst werden. Es muss ausgewählt werden über welches Protokoll und Geräte-ID das Gerät angesprochen wird. Die Geräte-ID ist vorallem bei RTU angeschlossenen Geräten wichtig. Bei TCP angeschlossenen Geräten ist diese oftmals die Geräte-ID 1.

Modbus Gateway Configuration

Um eine Verbindung zum Gerät herstellen zu können, müssen in der dem Gateway übergeordneten I/O Instanz, IP-Adressse und Port (Default: 502) eingetragen werden.
Weitere Konfiguration (Screenshot siehe unten) ist wiefolgt.

Option Beschreibung
Einheit Datentyp der Variable des Devices
Funktion
(Lesen)
Funktion nach der die Werte gelesen werden sollen
Adresse
(Lesen)
Geräteadresse des Registers aus dem gelesen werden soll
Funktion (Schreiben) Funktion nach der die Werte geschrieben werden sollen
Adresse (Schreiben) Geräteadresse des Registers in das Geschrieben werden soll
Faktor (Zahlenwerte) Der Faktor multipliziert oder teilt den empfangenen Wert und schreibt diesen in die Variable des Devices
Länge
(Strings)
Wenn die Länge größer 0 gesetzt ist, bestimmt es die Anzahl der Zeichen (Byte), welche abgefragt werden. Hinweis: 1 Register = 2 Zeichen (Byte)
Byte-Reihenfolge Je nach Gerät muss die Byte-Reihenfolge angepasst werden. Oft wird dies nicht dokumentiert, sondern muss ausprobiert werden. Big Endian und Little Endian (Bytes vertauscht) sind die gängigen Werte.
Status emulieren "Status emulieren" bedeutet, dass der Wert der Variable bei erfolgreichem Schreibbefehl auf den neuen Wert gesetzt wird und nicht auf einen Lesebefehl angewiesen ist.
Intervall Wenn das Intervall größer 0 gesetzt ist, wird die Adresse (Lesen) beim ModBus-Gerät zyklisch abgefragt und die Variable des Devices aktualisiert.
Modbus Device Configuration
Warning

Durch die Tatsache, dass wir noch 32 Bit Systeme unterstützen werden Int64 Werte als Float64 abgebildet.

FunctionCodes

Je nach FunctionCode muss auch eine passende Adresse eingetragen werden. Diese kann der Tabelle entnommen werden.
Die nachfolgende Tabelle bietet ebenfalls einen Überblick, welcher FunctionCode bei welcher Parameterierung innerhalb von IP-Symcon gesendet wird:

FunctionCode Geräteadresse Lese-/ Schreibadresse Name
0x01 (1) 1 - 10000 Geräteadresse - 1 Read Coils
0x05 (5) 1 - 10000 Geräteadresse - 1 Write Single Coil
0x02 (2) 10001 - 20000 Geräteadresse - 10001 Read Discrete Inputs
0x03 (3) 40001 - 50000 Geräteadresse - 40001 Read Holding Registers
0x10 (16) 40001 - 50000 Geräteadresse - 40001 Write Multiple registers
0x04 (4) 30001 - 40000 Geräteadresse - 30001 Read Input Registers
Warning

Wenn Beispielsweise auf der Adresse 40123 geschrieben (FunctionCode = 0x10) werden soll, muss der passende Datentyp (Einheit) ausgewählt werden und die Schreibadresse 122 (40123 - 40001) eingetragen werden.

Warning

Manche Hersteller halten sich nicht an diese Konvention. Es muss in der jeweiligen Anleitung oder Datenblätter nachgesehen werden, ob die Geräteadresse je nach Functioncode abgezogen werden muss oder absolute Adressen gelten

Datentypen

Datentyp Vorzeichen Bits
BOOL vorzeichenlos 1
UINT8MSB vorzeichenlos 8
UINT8LSB vorzeichenlos 8
UINT16 vorzeichenlos 16
UINT32 vorzeichenlos 32
UINT64 vorzeichenlos 64
INT8MSB vorzeichenbehaftet 8
INT8LSB vorzeichenbehaftet 8
INT16 vorzeichenbehaftet 16
INT32 vorzeichenbehaftet 32
INT64 vorzeichenbehaftet 64
FLOAT32 vorzeichenbehaftet 32
FLOAT64 vorzeichenbehaftet 64
STRING
Haben Sie noch Fragen?