Robotron Datenbank-Software GmbH Firmenlogo
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 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.

Tabelle 1. Modbus TCP Serverkonfiguration
ParameterBeschreibung

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 Serverkonfiguration
ParameterBeschreibung

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 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.

ParameterBeschreibung

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
ParameterBeschreibung

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.

Tabelle 4. Konfiguration von Poll Groups im Modbus Modul
ParameterBeschreibung

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:

  • "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 der Boolean Datentyp)

  • 02 Read Inputs (automatisch der 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 (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!

Tabelle 5. Konfiguration von Subscription Groups
ParameterBeschreibung

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:

  • "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.

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än-derte 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 (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.

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

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.

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“ (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.

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

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.

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“ (Diskette) bestätigt werden. Die geänderte Konfiguration steht nun im EdgeGateway zur Verfügung.

modbus deletePollgroup
Abbildung 7. Löschen einer Poll Group

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.

modbus deleteServer
Abbildung 8. Löschen eines Modbus Servers