Modbus
Das Modbus-Modul ermöglicht das Schreiben und Auslesen von Slave Modbus Modulen.
Das Modul agiert als Master und stellt dafür den Zugriff auf Modbus-Slaves in den Protokollversionen TCP und RTU für lesenden und schreibenden Zugriff bereit. Für die ausgelesenen Daten bzw. die geschriebenen Daten, stellt das Modul für verschiedene Datentypen automatische Konvertierungsfunktionen bereit.
In der Weboberfläche des Moduls können mehrere auszulesende Server sowie mehrere Slaves konfiguriert werden, die in dem konfigurierbaren Intervall mit verschiedenen Optionen (Subscription/Poll Group) abgefragt werden.
Es werden folgende Modbus-Lese-Funktionen unterstützt:
Read Coils (Function Code 01)
Read Inputs (Function Code 02)
Read Holding Registers (Function Code 03)
Read Input Registers (Function Code 04)
Es wird folgende Modbus-Schreib-Funktion unterstützt:
Write Holding-Registers (Function Code 06)
Es stehen zwei Übertragungsprotokolle zur Verfügung:
TCP
RTU
Konfigurationsparameter
Server
Die Serverkonfiguration für die Modbus-Nutzung kann in Abhängigkeit des schon bestehenden Systems angepasst oder die Standardkonfiguration beibehalten werden. Die nachfolgenden zwei Tabellen zeigen alle Konfigurationsparameter für die TCP- und RTU-Verbindung.
Parameter | Beschreibung |
---|---|
Server Name | Beschreibt den Namen des auszulesenden Modbus-Masters. Der Name ist bestehend aus Buchstaben, Zahlen und ohne Sonderzeichen frei konfigurierbar. |
Protocol Variant | Auswahl des Protokolls TCP |
IP Adress | Eingabe der IP-Adresse des Modbus TCP-Masters mit Format xxx.xxx.xxx.xxx |
Server Port | Der Standard Modbus TCP-Port ist „502“. Der Port kann entsprechend der Serverkonfiguration angepasst werden. |
Parameter | Beschreibung |
---|---|
Server Name | Beschreibt den Namen des auszulesenden Modbus-Masters. Der Name ist bestehend aus Buchstaben, Zahlen und ohne Sonderzeichen frei konfigurierbar. |
Protocol Variant | Auswahl des Protokolls RTU |
Port Name | Name der Datenquelle im Format /*/* |
Baudrate | Serielle Schnittstelle: Datenrate (Vorgabe durch Modbus-Slave) |
Data Bits | Serielle Schnittstelle: Anzahl Datenbits (Vorgabe durch Modbus-Slave) |
Stop Bits | Serielle Schnittstelle: Anzahl Stoppbits (Vorgabe durch Modbus-Slave) |
Parity | Serielle Schnittstelle: Paritätseinstellung (Vorgabe durch Modbus-Slave) |
Slaves
Innerhalb der verschiedenen Verbindungsvarianten der Server ist es möglich, auf mehrere Slaves zuzugreifen. Besonders bei RTU-Modbus-Servern können damit mehrere Slaves mit gleichen Verbindungsparametern angesprochen werden. Die Unterscheidung der verschiedenen Slaves findet über die Slave ID statt. Sie sollte daher innerhalb einer Gruppe für jeden Slave einmalig sein. Jede Slave ID-Gruppe kann eigene Poll/Subscription oder Setup Groups enthalten.
Parameter | Beschreibung |
---|---|
Slave Name | Name des Modbus Slave |
Slave ID | Die ID (0 - 255) des auszulesenden Modbus Slave. |
Setup Groups
Mit der Konfiguration von Setups können Modbus Register geschrieben werden. Die Konfiguration der Setups kann im Modbus TCP und im Modbus RTU durchgeführt werden. Beim Start oder bei Konfigurationsänderung werden die angegebenen Werte einmalig in die Datenregister geschrieben. Solange nicht alle Werte geschrieben sind, werden alle anderen Gruppen innerhalb eines Slaves angehalten. Der Vorgang wird nur einmal ausgeführt.
Parameter | Beschreibung |
---|---|
Setup Name | Name des Setups |
Parameter Name | Der Name ist bestehend aus Buchstaben, Zahlen und ohne Sonderzeichen frei konfigurierbar. Es muss ein Name für den Parameter eingegeben werden. |
Write Address | Adresse des schreibenden Modbus Registers |
Type | Standarddatentypen (UInt16, UInt32, UInt64, Int16, Int32, Int64) sind vorkonfiguriert. Die Auswahl erfolgt per Dropdownmenü. |
Value | Zu schreibender Wert. |
Little Endian | Speicherstruktur Umschaltung (wenn angehakt= true wird Little Endian verwendet, ansonsten BigEndian) |
Poll Groups
Jede Poll Group erzeugt eine Nachricht (Payload-Typ Model). Das Model entspricht einer Nachricht mit Werten mehrerer Datenpunkte.
Parameter | Beschreibung |
---|---|
Poll Group Name | Name der Pollgroup, bestehend aus Buchstaben, Zahlen und ohne Sonderzeichen frei konfigurierbar. Es muss ein Name für die Poll Group eingegeben werden. Dieser Name entspricht den Namen des auszulesenden Bereichs. Der Name wird unter Scope in den Auswertungen bereitgestellt. |
Source | Folgende Source Modi stehen zur Verfügung:
Die Auswahl des Modus gibt an, welcher Name in den SourceHeader geschrieben wird. Bei "UseBoth" wird die Kombination ServerName.SlaveName im SourceHeader verwendet. |
Interval (ms) | Intervall in Millisekunden gibt die Taktung an, in der die Werte abgefragt werden. |
Output Topic | Name des Output Topic. Der Name ist bestehend aus Buchstaben, Zahlen und ohne Sonderzeichen frei konfigurierbar. |
Field Name | Bezeichnung des zu lesenden Wertes. Der Name ist bestehend aus Buchstaben, Zahlen und ohne Sonderzeichen frei konfigurierbar. |
Function Code | Folgende Function Codes stehen zur Verfügung:
|
Start Register | Registeradresse |
Type | Standarddatentypen sind vorkonfiguriert. Die Auswahl erfolgt per Dropdownmenü. |
Length | Anzahl auszulesender 16bit Register |
Little Endian | Speicherstruktur Umschaltung (wenn angehakt= true, Little Endian wird verwendet, ansonsten BigEndian) |
Value Adjust Gain/Offset | Wert-Nachverarbeitung: Konstante Skalierung durch Faktor und Summand (Offset) |
Die Registerlänge und der Datentyp müssen konsistent sein. Für die Standard-Datentypen ergibt sich die Länge aufgrund der Vorkonfiguration automatisch. Ausschließlich der Datentyp Raw Hex ist konfigurierbar.
Subscription Groups
Mit der Subscription Group wird in einem eingestellten Publishing Interval der Slave Node gepollt. Je nach Konfiguration werden nur Datenpakete generiert, wenn es eine Änderung des Zeitstempels gab.
Es handelt sich in diesem Fall nicht um eine Subscription im Sinne der OPC UA Spezifikation. Der Slave wird stattdessen fortlaufend mit den Lastauswirkungen auf Slave-, Master- und Netzwerk-Seite gepollt!
Parameter | Beschreibung |
---|---|
Subscription Group Name | Der Name ist bestehend aus Buchstaben, Zahlen und ohne Sonderzeichen frei konfigurierbar. Es muss ein Name für die Subscription Group eingegeben werden. Dieser Name entspricht den Namen des auszulesenden Bereichs. Der Name wird unter Scope in den Auswertungen bereitgestellt. Mit dem Klick auf „Create“ wird eine neue Gruppe erzeugt. |
Source | Folgende Source Modi stehen zur Verfügung:
Die Auswahl des Modus gibt an, welcher Name in den SourceHeader geschrieben wird. Bei "UseBoth" wird die Kombination ServerName.SlaveName im SourceHeader verwendet. |
Publishing Interval (ms) | Intervall in Millisekunden gibt die Taktung an, in der die Werte abgefragt werden. |
Republishing Interval (ms) | Intervall in Millisekunden gibt die Taktung an, in der die zuletzt gelesenen Werte erneut gesendet werden. |
On Change: | Aktiv: Falls der Modbus Server eine Änderung mittteilt wird der geänderte Datenpunkt gemeinsam mit den zuletzt gelesenen Werten der anderen Datenpunkte als Model-Nachricht übermittelt. |
On Republish: | Aktiv: Während des Republishings, werden die Datenpunkte als eine Data-modelnachricht versandt |
Output Topic | Name des Output Topic. Der Name ist bestehend aus Buchstaben, Zahlen und ohne Sonderzeichen frei konfigurierbar. |
Field Name | Bezeichnung des zu lesenden Wertes. |
Function Code | Folgende Function Codes stehen zur Verfügung:
|
Start Register | Registeradresse |
Type | Standarddatentypen sind vorkonfiguriert. Die Auswahl erfolgt per Dropdownmenü. |
Length | Anzahl auszulesender 16bit Register |
Little Endian | Speicherstruktur Umschaltung (wenn angehakt= true, Little Endian wird verwendet, ansonsten BigEndian) |
Value Adjust Gain/Offset | Wert-Nachverarbeitung: Konstante Skalierung durch Faktor und Summand (Offset) |
Konfiguration in der UI
Nach Auswahl des Moduls Modbus auf der Startseite oder über die linke Menüleiste der EdgeControl UI gelangen Sie zur Konfiguration des Modbus-Moduls. Die nachfolgenden Ausführungen erfolgen am Beispiel eines Modbus TCP Servers.
Modbus Server konfigurieren
Mit einem Klick auf „New“ in der linken Menüleiste kann ein neuer Modbus Server angelegt und konfiguriert werden (Abbildung 1). Im ersten Schritt ist für den neuen Modbus Server eine Konfiguration der in [Server und Verbindung] beschriebenen Parameter durchzuführen. Dies umfasst die Server-Konfiguration und das Anlegen von Modbus Slaves.

Anschließend lassen sich für jeden Slave separat eine oder mehrere Setup, Poll oder Subscription Groups erstellen.
Group konfigurieren
Nach Eingabe eines Namens für die entsprechende Group wird mit einem Klick auf „Create“ eine neue Gruppe erzeugt. Anschließend lassen sich die Groups mit ihren Konfigurationsparametern konfigurieren. Die nachfolgenden Abbildungen zeigen beispielhafte Konfigurationen für eine Setup, Poll und Subscription Group für den angelegten Modbus TCP Server und Slave.



Nach Fertigstellung der Konfiguration des Modbus Servers kann diese über die Schaltfläche „Save Configuration“ (Diskette) in der horizontalen Menüleiste oben im Modul gespeichert werden (Abbildung 5). Durch das Speichern der gesamten Konfiguration des Modbus-Moduls steht diese im EdgeGateway zur Verfügung.

Datenfeld löschen
Innerhalb der Konfiguration des Modbus Servers können Datenfelder in den Gruppenkonfigurationen gelöscht werden. Das zu löschende Datenfeld wird über die Kreuz-Schaltfläche gelöscht (Abbildung 6). Abschließend muss die neue Konfiguration des Modbus Servers über die Schaltfläche „Save Configuration“ (Diskette) bestätigt werden. Die geänderte Konfiguration steht nun im EdgeGateway zur Verfügung.

Group löschen
Innerhalb der Konfiguration des Modbus Servers können gesamte Gruppen aus der Konfiguration gelöscht werden. Die zu löschende Group wird über die Schaltfläche „Remove“ gelöscht (Abbildung 7). Abschließend muss die neue Konfiguration des Modbus Servers über die Schaltfläche „Save Configuration“ (Diskette) bestätigt werden. Die geänderte Konfiguration steht nun im EdgeGateway zur Verfügung.

Modbus Server löschen
Innerhalb der Modbus Server Konfiguration kann ein Modbus Server gelöscht werden. Durch Betätigen der Schaltfläche „Remove“ im Abschnitt zur Server-Konfiguration wird der gewählte Server gelöscht (Abbildung 8). Abschließendes Speichern der Modbus-Konfiguration bestätigt das Löschen.
