MIT DATEN MEHR BEWEGEN.

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.

Tabelle 1. Modbus TCP Server-Konfiguration
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.

Tabelle 2. Modbus RTU Server-Konfiguration
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 /*/*
Bei RoboGate Devices powered by Turck ist dies standardmäßig /dev/ttyO1.

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.

Tabelle 3. Setup-Konfiguration
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.

Tabelle 4. Konfiguration von Poll Groups im Modbus Modul
Parameter Beschreibung

Poll Group Name
(Scope)

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:

  • "UseServerName"

  • "UseSlaveName"

  • "UseBoth

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:

  • 01 Read Coils (automatisch Boolean Datentyp)

  • 02 Read Inputs (automatisch Boolean Datentyp)

  • 03 Read Holding Registers

  • 04 Read Input Registers

Start Register

Registeradresse

Type

Standarddatentypen sind vorkonfiguriert. Die Auswahl erfolgt per Dropdownmenü.

Length

Anzahl auszulesender 16bit Register

Little Endian

Speicherstruktur-Umschaltung (Little Endian, wenn angehakt, sonst 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!

Tabelle 5. Konfiguration von Subscription Groups
Parameter Beschreibung

Subscription Group Name
(Scope)

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:

  • "UseServerName"

  • "UseSlaveName"

  • "UseBoth

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:
Submit Full Model

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.
ACHTUNG: Gleichzeitige Änderungen mehrerer Datenpunkte innerhalb der Subscription Group werden individuell behandelt
Inaktiv: Falls der Modbus Server eine Änderung mitteilt wird nur der geänderte Datenpunkt als Event-Nachricht übermittelt.

On Republish:
Submit Full Model

Aktiv: Während des Republishings, werden die Datenpunkte als eine Data-modelnachricht versandt
Inaktiv: Während des Republishings werden die Datenpunkte jeweils als individuelle Nachricht (Event) 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:

  • 01 Read Coils (automatisch Boolean Datentyp)

  • 02 Read Inputs (automatisch Boolean Datentyp)

  • 03 Read Holding Registers

  • 04 Read Input Registers

Start Register

Registeradresse

Type

Standarddatentypen sind vorkonfiguriert. Die Auswahl erfolgt per Dropdownmenü.

Length

Anzahl auszulesender 16bit Register

Little Endian

Speicherstruktur-Umschaltung (Little Endian, wenn angehakt, sonst 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 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 add 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.

modbus addServer
Abbildung 1. Hinzufügen eines neuen Modbus Servers

Wird diese Konfiguration gespeichert save, 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 refresh angezeigt bzw. bei Änderungen aktualisiert. Initial werden keine Werte angezeigt.

modbus configSetupGroup
Abbildung 2. Konfiguration der Setup Group
modbus configPollGroup
Abbildung 3. Konfiguration der Poll Group
modbus configSubscriptionGroup
Abbildung 4. Konfiguration der Subscription Group

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

modbus saveConfig
Abbildung 5. Speichern der gesamten Konfiguration des Modbus Moduls

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 close gelöscht (Abbildung 6). Abschließend muss die neue Konfiguration des Modbus Servers über die Schaltfläche „Save Configuration“ save bestätigt werden. Die geänderte Konfiguration steht nun im RoboGate Edge zur Verfügung.

modbus deleteDatafield
Abbildung 6. Löschen eines Datenfelds in der Modbus Konfiguration

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“ save bestätigt werden. Die geänderte Konfiguration steht nun im RoboGate Edge zur Verfügung.

modbus deletePollgroup
Abbildung 7. Löschen einer Poll Group

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.

modbus deleteServer
Abbildung 8. Löschen eines Modbus Servers

Konfiguration zurücksetzen

Über die Schaltfläche reset in der horizontalen Menüleiste lässt sich die komplette Konfiguration des Moduls auf Werkseinstellungen 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!