Mehrere ModBus Register in einen Wert einlesen?

Hallo zusammen,

Ich möchte Werte von Stromzählern per Modbus einlesen. Die Stromzähler sind über ein LAN Gateway eingebunden und ich habe dafür in IP-Symcon (aktuelle Version, 6.3) eine I/O Instanz für das Gateway angelegt (Typ: Client Socket), einen Splitter für die einzelnen Stromzähler (Typ: Modbus Gateway) und Modbus Geräte (Typ: Modbus Address).
Bei der Konfiguration des Geräts kann ein Register ausgelesen werden, der dann als Wert des Geräts angezeigt werden kann.

Der Wert, den ich lesen möchte, wird allerdings über 4 hintereinander liegende ModBus Register (jeweils 2 Byte lang) definiert. Wie bekomme ich es hin, dass diese 4 Register zusammen eingelesen und zu einem Wert zusammengerechnet werden?

Bei der Konfiguration des Splitters habe ich gesehen, dass es möglich ist, Datenblöcke abzufragen. Hier kann ich eine Abfrage definieren, die alle 4 Werte ausliest. Allerdings konnte ich nicht herausfinden, wie ich diese Werte weiterverarbeiten kann. Für einen Tipp wäre ich dankbar.

Viele Grüße
Markus

Möglichkeit 1: alle vier Register einzeln auslesen und dann ein php Script starten, dass eine 5. Variable beschreibt.

Möglichkeit 2: Doku an @Nall-chan weiterleiten und hoffen, dass er ggf. sein B+G E-Tech Modul erweitert.

Kannst du nicht die Länge (Einheit) in der ModBus-Instanz angeben - gibt Int64 und Real64? Es sollten dann entsprechend der Länge die nachfolgenden Register ausgelesen werden. Ggf. noch im Gateway den LSW/MSW-Tauschen Schalter aktivieren.

Hi,

@mbarchfe Schritt 1 hast Du ja schon gemacht

Schritt 2:
Du erstellst dein Modbus Device, trägst die Adresse und die Typen ein und unten bei Intervall einfach eine „0“

Viele Grüße

Vielen Dank! Die Antworten von hirschbrat und kris helfen mir schon weiter. Deine Vorschläge scheinen mir etwas für fortgeschrittenere Benutzer. Ich bin neu hier :wink:

Danke! So geht es. Auch ohne LSW/MSW Tauschen. Der Datentyp ist zwar eigentlich unsigned Int64 und es gibt nur signed INT64 in der Auswahl. Aber die großen Zahlen bei denen das Auffallen würde, wird der Zähler nie erreichen.

Dank nochmal. Das ist mal wirklich ein sehr aktives Forum!

D.h. wenn ich es richtig verstehe, kann ich die Datenblöcke dazu benutzen, um die Anzahl der Anfragen zu reduzieren und mir aus dem Ergebnis einer Block-Anfrage verschiedene Variablen/Werte zu befüllen.

Hi,

So schauts aus. Zudem ist diese art deutlich performanter.

Viele grüße