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 bzw. geschriebenen Daten stellt das Modul für verschiedene Datentypen automatische Konvertierungsfunktionen bereit.
Es können mehrere auszulesende Server, sowie mehrere Slaves konfiguriert werden, die in dem konfigurierbaren Intervall mit verschiedenen Optionen (Subscription/Poll Group) abgefragt werden.
Folgende Modbus-Lese-Funktionen werden unterstützt:
-
Read Coils (Function Code 01)
-
Read Inputs (Function Code 02)
-
Read Holding Registers (Function Code 03)
-
Read Input Registers (Function Code 04)
Folgende Modbus-Schreib-Funktion wird unterstützt:
-
Write Holding-Registers (Function Code 06)
Es stehen zwei Übertragungsprotokolle zur Verfügung:
-
TCP
-
RTU
Konfigurationsparameter
Server
Die Server-Konfiguration für das Modbus-Modul 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 Verbindungsvarianten der Server ist es möglich, auf mehrere Slaves zuzugreifen. Besonders bei Modbus RTU 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. |
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. Dieser Name entspricht den Namen des auszulesenden Bereichs. Der Name wird unter Scope in 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 |
Endian Mode |
Speicherstruktur-Umschaltung. Dabei stehen folgende Optionen zur Verfügung: * bigEndian * littleEndian * bigEndianByteSwapped * littleEndianByteSwapped |
Value Adjust Gain/Offset |
Wert-Nachverarbeitung: Konstante Skalierung durch Faktor und Summand (Offset) |
Test |
Aktuellen Wert abrufen. |
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. 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 Source Header geschrieben wird. Bei "UseBoth" wird die Kombination ServerName.SlaveName im Source Header 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 |
Endian Mode |
Speicherstruktur-Umschaltung. Dabei stehen folgende Optionen zur Verfügung: * bigEndian * littleEndian * bigEndianByteSwapped * littleEndianByteSwapped |
Value Adjust Gain/Offset |
Wert-Nachverarbeitung: Konstante Skalierung durch Faktor und Summand (Offset) |
Test |
Aktuellen Wert abrufen. |
Konfiguration in der UI
Nach Auswahl des Moduls Modbus auf der Startseite oder über die linke Menüleiste der RoboGate Edge UI gelangen Sie zur Konfiguration des Modbus-Moduls. Die nachfolgenden Ausführungen erfolgen am Beispiel eines Modbus TCP Servers.
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 Server Info und Connection durchzuführen. Dies umfasst auch das Anlegen von Modbus Slaves.
Wird diese Konfiguration gespeichert , lässt sich im Bereich Module State am Ende der Seite erkennen, ob das Modul eine Verbindung zum Modbus Server herstellen konnte.
Nun 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.
Um zu prüfen, ob ein Datenblock korrekt konfiguriert wurde, kann dieser über den Pfeil in der Spalte "Test" geprüft werden. Das ausgelesene Ergebnis wird nach einem Klick auf den Pfeil angezeigt bzw. bei Änderungen aktualisiert. Initial werden keine Werte angezeigt.
Nach Fertigstellung der Konfiguration des Modbus Servers kann diese über die Schaltfläche „Save Configuration“ in der horizontalen Menüleiste oben rechts im Modul gespeichert werden ([img-modbus-saveConfig]). Durch das Speichern der gesamten Konfiguration des Modbus-Moduls steht diese im RoboGate Edge zur Verfügung.
Datenfeld löschen
Innerhalb der Konfiguration des Modbu Servers können Datenfelder in den Gruppenkonfigurationen gelöscht werden. Das zu löschende Datenfeld wird über die Entfernen-Schaltfläche gelöscht. Abschließend muss die neue Konfiguration des Modbus Servers über die Schaltfläche „Save Configuration“ bestätigt werden. Die geänderte Konfiguration steht nun im RoboGate Edge 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 5). Abschließend muss die neue Konfiguration des Modbus Servers über die Schaltfläche „Save Configuration“ bestätigt werden. Die geänderte Konfiguration steht nun im RoboGate Edge zur Verfügung.
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 6). Abschließendes Speichern der Modbus-Konfiguration bestätigt das Löschen.
Konfiguration zurücksetzen
Über die Schaltfläche in der horizontalen Menüleiste lässt sich die komplette Konfiguration des Moduls auf Werkseinstellungen problemlos zurücksetzen. Nach einem Klick auf die Schaltfläche folgt ein Bestätigungsdialog mit "Yes" und "No" zur Rückfrage ob der Vorgang wirklich ausgeführt werden soll.
Damit wird auch die gesamte Historie auf dem RoboGate Edge gelöscht!