Zum Inhalt springen
JelinaJelina DocumentationTechnische Dokumentation
Zur Website

Modbus-RTU-Erfassung

(1) Öffnen Sie auf der CommBridge-Seite den Bereich „Digitaler Zwilling“ und wechseln Sie links zu „Gerätevernetzung“.

(2) Ziehen Sie nacheinander die Plugins Modbus-Client (Master), Datenverarbeitung und MQTT-Upload in den Plugin-Arbeitsbereich, um drei Knoten zu erstellen.

(3) Verbinden Sie die drei Knoten in dieser Reihenfolge: Modbus-Client (Master) → Datenverarbeitung → MQTT-Upload.

Wählen Sie als Protokoll Modbus-RTU.

(1) Doppelklicken Sie auf Modbus-Client (Master) und klicken Sie auf „Schema hinzufügen“.

(2) Geben Sie die Verbindungseinstellungen ein und klicken Sie auf „Weiter“.

(3) Klicken Sie auf Gruppe hinzufügen, geben Sie die Gruppeninformationen ein und klicken Sie auf Bestätigen.

(4) Klicken Sie auf Daten hinzufügen, geben Sie die Datenpunktinformationen ein und klicken Sie auf Bestätigen.

(5) Klicken Sie auf Fertigstellen, um das Erfassungsschema anzulegen.

(6) Aktivieren Sie das Schema über den Schalter und klicken Sie auf Speichern.

(1) Klicken Sie im Bereich „Gerätevernetzung“ auf „Bereitstellen“, um die Bereitstellung abzuschließen.

Beispiel der Bereitstellungsschaltfläche und Erfolgsmeldung in CommBridge

Die Abbildung zeigt die allgemeine Funktion „Bereitstellen“. Verwenden Sie für Knoten und Schema dieser Seite die zuvor konfigurierten Modbus-RTU-Parameter.

(2) Wechseln Sie zu Digitaler Zwilling und bewegen Sie den Mauszeiger auf den Knoten Modbus-Client (Master). Die Knoteninformationen werden eingeblendet.

(3) Klicken Sie auf das Schema, um Echtzeit- und historische Daten der Datenpunkte seiner Gruppen anzuzeigen.

Die Konfiguration entspricht dem Schreiben von Daten unter Modbus-TCP.

Parameter Beschreibung Format Beispiel
Schemaname Benutzerdefinierter Name des Schemas Darf nicht leer sein Temperaturerfassung
Protokoll Modbus-Protokoll Modbus TCP, Modbus RTU Modbus RTU
Synchrone Erfassung Legt fest, ob die Erfassung synchron erfolgt: Yes oder No Yes, No YES
Erfassungsintervall Abfrageintervall für das Lesen der Register jeder Gruppe innerhalb des gesamten Schemas Zahl, Bereich: (100,2147483647] 2000
Erfassungsfrist Alle Datenpunkte einer Gruppe müssen innerhalb dieser Zeit erfasst werden, andernfalls werden die Gruppendaten verworfen. Die Zeit umfasst die Telegrammverzögerung. Zahl, Bereich: (0, Erfassungsintervall] 1000
Zeitüberschreitung Maximale Dauer jeder Datenerfassung einer Gruppe innerhalb des Schemas; bei Überschreitung werden die gelesenen Daten verworfen Zahl, Bereich: (0, Erfassungsintervall] 1000
Maximale Registerzahl pro Block Maximale Anzahl von Registern bei der blockweisen Erfassung aufeinanderfolgender Datenpunkte Natürliche Zahl, Bereich: [1,120] 120
Schnittstelle Entsprechend der seriellen Schnittstelle des Geräts, in der Regel RS485. Beim Anschließen eines USB-Geräts wird der entsprechende Schnittstellenname ergänzt. ttyS0, ttyS1 ttyO4
Datenbits Anzahl der tatsächlichen Datenbits einer Dateneinheit 7, 8 8
Stoppbits Kennzeichnen das Ende eines einzelnen Datenrahmens 1, 2 1
Parität Einfaches Verfahren zur Fehlererkennung bei der seriellen Kommunikation Odd, Even oder None None
Baudrate Symbolübertragungsrate, also Anzahl der pro Sekunde übertragenen Symbole 115200, 57600, 38400, 19200, 9600 oder 4800 9600
Telegrammverzögerung Mindestabstand zwischen zwei Erfassungen; Standardwert 0. Bei häufigen Zeitüberschreitungen erhöhen, andernfalls unverändert lassen. Millisekunden; Zahl, Bereich: [0, 2147483647] 0
Schreibtelegrammverzögerung Zusätzliche Wartezeit beim Schreiben; für Geräte mit langsamen Schreiboperationen erforderlich. 0 bedeutet keine zusätzliche Verzögerung. Millisekunden; Zahl, Bereich: [0, 2147483647] 0
Funktionscode zum Registerschreiben Funktionscode zum Schreiben von Halteregistern. Auto, 06, 10; siehe Erläuterung unten Auto
Änderungsbasierte Erfassung Art der Datenerfassung: No deaktiviert die änderungsbasierte Erfassung; SingleData überträgt nur geänderte Datenpunkte; WholeGroup überträgt die gesamte Gruppe, sobald sich ein Wert darin ändert. No, SingleData, WholeGroup SingleData
Rücksetzzeit der änderungsbasierten Erfassung Erzwingt eine Datenübermittlung, wenn die Daten länger als diese Zeit unverändert bleiben. 0 deaktiviert diese Auslösung. Sekunden; Zahl, Bereich: (0, 2147483647] 0
Backoff bei Fehlern Nach einer fehlgeschlagenen Erfassung wird die Wartezeit gemäß Backoff-Faktor angepasst; maximal Erfassungsintervall × maximaler Backoff-Faktor Yes, No; siehe Erläuterung unten Yes
Backoff-Faktor Faktor zur Änderung der Wartezeit bei Fehlern; muss größer als 0 und ungleich 1 sein Zahl 2
Maximaler Backoff-Faktor Grenzwert des Backoff-Faktors; nach Erreichen bleibt dieser unverändert Zahl 16

Synchrone Erfassung:

  1. Yes: Erfassungsintervall, Zeitüberschreitung und Erfassungsfrist werden für alle Gruppen des Schemas gemeinsam konfiguriert. Die Einstellung gilt für sämtliche Datenpunkte des Schemas.
  2. No: Jede Gruppe erhält eigene Einstellungen für Erfassungsintervall, Zeitüberschreitung und Erfassungsfrist.

Funktionscode zum Registerschreiben: Auto verwendet 06 für ein einzelnes Register und 10 für mehrere Register; 06 verwendet immer Funktionscode 06; 10 verwendet immer Funktionscode 10.

Backoff bei Fehlern: Bei einem Erfassungsintervall von 1 Sekunde, Backoff-Faktor 2 und maximalem Backoff-Faktor 16 ergeben sich bei wiederholten Fehlern Wartezeiten von 1 s, 2 s, 4 s, 8 s und 16 s. Bei einem Intervall von 10 Sekunden, Faktor 0.5 und Grenzfaktor 0.1 ergeben sich entsprechend 10 s, 5 s, 2.5 s und 1.25 s. Sobald die Erfassung erfolgreich ist, wird das ursprüngliche Erfassungsintervall wiederhergestellt.

Ist der Backoff-Faktor größer als 1, muss der maximale Backoff-Faktor größer als dieser sein. Ist der Backoff-Faktor kleiner als 1, muss der maximale Backoff-Faktor kleiner sein.

Parameter Beschreibung Format Beispiel
Gruppenname Benutzerdefinierter Name der Gruppe Darf nicht leer sein Temperaturgruppe eins
Slave ID Modbus-Geräteadresse, also Slave-Adresse des abgefragten Geräts Zahl, Bereich: (0,255] 1
Erfassungsintervall Abfrageintervall für das Lesen der Register einer einzelnen Gruppe Zahl, Bereich: (100,2147483647] 1000
Erfassungsfrist Gültigkeitszeit für die Erfassung aller Datenpunkte einer Gruppe. Werden innerhalb dieser Zeit nicht alle Datenpunkte gelesen, werden sämtliche Daten der Gruppe verworfen. Zahl, Bereich: (0, Erfassungsintervall] 500
Zeitüberschreitung Maximale Dauer jeder Datenerfassung einer einzelnen Gruppe; bei Überschreitung werden die gelesenen Daten verworfen Zahl, Bereich: (0, Erfassungsintervall] 500

Hinweise: Ist die synchrone Erfassung in der Verbindungskonfiguration auf No gesetzt, gelten die Einstellungen für alle Datenpunkte der jeweiligen Gruppe. Die Anzahl gleichzeitig gelesener Modbus-Register ist begrenzt. Für Holding Register und Input Register können höchstens 120 aufeinanderfolgende Register pro Gruppe gelesen werden; für Discrete und Coils beträgt die Grenze 2000 aufeinanderfolgende Datenpunkte.

Parameter Voraussetzung Beschreibung Format Beispiel
Datenalias Name des Datenpunkts, innerhalb der Gruppe eindeutig Darf nicht leer sein, nicht mit einer Ziffer oder einem Unterstrich beginnen und keine Leerzeichen enthalten T
Adresse Registeradresse; innerhalb einer Gruppe dürfen keine Adressen doppelt vorkommen Zahl, Bereich: (0,2147483647) 0
Registertyp Bestimmt den Modbus-Operationscode Holding Register, Input Register, Discrete, Coils; siehe Erläuterung unten Holding Register
Datentyp Abhängig vom Registertyp Ursprünglicher Datentyp der Registerdaten uint16, int16, uint32, int32, float, boolean, combine, string, hex string; siehe Erläuterung unten uint16
Byte-Reihenfolge Abhängig von Register- und Datentyp Speicherreihenfolge für Datentypen mit mehr als einem Byte AB, BA, ABCD, CDAB, BADC, DCBA; siehe Erläuterung unten AB
Registeranzahl Abhängig von Register- und Datentyp Anzahl der Register für den Datentyp Siehe Erläuterung unten 1
Lese-/Schreibmodus Abhängig vom Registertyp Unterstützt r (nur lesen) und rw (lesen und schreiben) r, rw r
Berechnung Benutzerdefinierte Formel auf Grundlage der Datenaliase T/10
Offset Datentyp bit Bitoffset vom höchstwertigen zum niederwertigsten Bit nach Anpassung der Byte-Reihenfolge Zahl, Bereich: [0,15]

Beispiel: Wenn Sie die Temperatureigenschaft prüfen möchten und deren Adresse im Gerät 1 ist, setzen Sie die Registeradresse auf 1.

  1. Für die Registertypen Discrete und Coils ist der Datentyp standardmäßig boolean.
  2. Bei uint16, int16 und combine können AB oder BA gewählt werden; bei uint32, int32 und float ABCD, CDAB, BADC oder DCBA. Für andere Datentypen gibt es keine Einstellung der Byte-Reihenfolge.
  3. Bei Discrete und Coils beträgt die Registeranzahl standardmäßig 1. Für uint16, int16 und boolean ist sie standardmäßig 1, für uint32, int32 und float 2. Bei combine kann 1 oder 2 ausgewählt werden. Bei string und hex string lässt sich die Registeranzahl manuell eingeben.

16-Bit-Reihenfolge:

  1. AB: ein Registerwort; höherwertiges vor niederwertigem Wort und innerhalb des Wortes höherwertiges vor niederwertigem Byte (Big Endian).
  2. BA: ein Registerwort; höherwertiges vor niederwertigem Wort und innerhalb des Wortes niederwertiges vor höherwertigem Byte (Little Endian).

32-Bit-Reihenfolge:

  1. ABCD: zwei Registerwörter; höherwertiges vor niederwertigem Wort und innerhalb der Wörter höherwertiges vor niederwertigem Byte (Big Endian).
  2. BADC: zwei Registerwörter; höherwertiges vor niederwertigem Wort und innerhalb der Wörter niederwertiges vor höherwertigem Byte (Big Endian mit Byte-Tausch).
  3. CDAB: zwei Registerwörter; niederwertiges vor höherwertigem Wort und innerhalb der Wörter höherwertiges vor niederwertigem Byte (Little Endian mit Byte-Tausch).
  4. DCBA: zwei Registerwörter; niederwertiges vor höherwertigem Wort und innerhalb der Wörter niederwertiges vor höherwertigem Byte (Little Endian).

Die Protokollkonfiguration von Modbus-RTU entspricht Modbus-TCP.