Zum Inhalt springen
Elausys

HyperVisu / Integrationen

Modbus TCP-Integration

Register, Funktionscodes, Abfrage und Skalierung — mit einem Praxisbeispiel für einen Wechselrichter.

elausys · 27 Juli 2026
Auf dieser Seite

Modbus TCP-Integration

Modbus TCP verbindet HyperVisu mit Industrie- und Energiegeräten: Solarwechselrichtern, Ladegeräten für Elektrofahrzeuge, Wärmepumpen, Lüftungsgeräten und SPS. HyperVisu ist der Modbus-Client — es fragt die Geräteregister ab und schreibt in sie, wenn Sie ein Widget bedienen.

Benötigte Angaben: die IP-Adresse des Geräts, der Modbus-Port (üblicherweise 502), die Registertabelle (aus der Modbus-Dokumentation des Herstellers) und die Slave-/Unit-ID.

Verbindungen. Aktivieren Sie zuerst Modbus TCP Protocol auf der Seite Services (siehe „Dienste und Protokolle“); auf einem neuen Server ist es deaktiviert. Modbus TCP unterstützt mehrere Verbindungen: Erstellen Sie auf der Seite Connections eine Verbindung pro Modbus-Server (pro IP/Port) (siehe „Verbindungen“). Wählen Sie in Add connection die Karte Modbus TCP und geben Sie einen Instance Name, die Server IP Address und ein Poll Interval (seconds) ein — wie oft HyperVisu alle Objekte dieser Verbindung liest. Geben Sie das Intervall ein: Die graue 30 ist nur ein Hinweis; ein leeres Feld lässt den Server alle 5 Sekunden abfragen.

Der Dialog hat kein Portfeld: Die Verbindung wird auf Port 502 erstellt. Lauscht das Gerät auf einem anderen Port, wählen Sie die neue Verbindung, ändern Sie Modbus TCP Port und klicken Sie auf Save connection.

Eine Modbus-Verbindung hat keine Schaltfläche Test. Zur Kontrolle dienen der Status Connected auf der Seite Connections und der aktuelle Wert eines gebundenen Objekts.

Ein Objekt binden. Binden Sie Modbus-Register an Widgetobjekte im Arbeitsbereich Devices. Stellen Sie je Objekt Folgendes ein:

EinstellungBedeutung
Slave IDDie Gerätekennung, 1–247.
Register typeCoil, diskreter Eingang, Eingangsregister oder Holding-Register.
Register addressDie Registeradresse aus der Registertabelle des Geräts, von 0 bis 65535. Sie wird genau wie eingegeben an das Gerät gesendet: Geben Sie die Protokolladresse ein, keine Referenznummer 4xxxx oder 3xxxx. Achten Sie auf eine Verschiebung um eins: Manche Hersteller dokumentieren Adressen ab 1, Modbus zählt ab 0.
Data typeWie die Rohregister dekodiert werden (16/32-Bit-Ganzzahl mit/ohne Vorzeichen, Gleitkommazahl, …).
Byte orderDie Wort-/Byte-Reihenfolge für Werte über mehrere Register — sie steht in der Herstellerdokumentation. Das Feld erscheint nur bei Datentypen über zwei oder mehr Register (32-Bit, 64-Bit und Gleitkomma).
Write FunctionNur Holding-Register. Lassen Sie Automatic (FC6 / FC16) eingestellt, außer das Gerät implementiert FC6 nicht; wählen Sie dann Always FC16 (write multiple).
ScalingScale, Offset, Decimal Places und Units. Die Zeile Formula zeigt Display = (Raw × scale) + offset mit einem festen Beispielrohwert, nicht mit dem Messwert des Geräts. Ein Skalierungsfaktor von 0 wird als 1 gelesen.

📘 Hinweis: Skalierungsfaktor und Offset des Objekts werden vor jeder Transformation desselben Objekts angewendet (siehe „Werttransformationen und Funktionszustand“). Fügen Sie keine zusätzliche Skalierungstransformation hinzu, sonst wird der Wert zweimal skaliert.

Praxisbeispiel — Wechselrichterleistung in einem Zähler

Die Wechselrichterdokumentation nennt: Wirkleistung, Eingangsregister 32080, 32-Bit-Ganzzahl mit Vorzeichen, Verstärkung 1, Einheit W, Unit-ID 1.

  1. Erstellen Sie eine Modbus TCP-Verbindung für den Wechselrichter: Server IP Address 192.168.1.120, Poll Interval (seconds) 10 (siehe „Verbindungen“). Die Verbindung wird auf Port 502 erstellt.
  2. Fügen Sie unter Devices ein Meter-Widget „Solarproduktion“ hinzu, Raum Technik, Kategorie Energie. Wählen Sie unter Protocol die Verbindung des Wechselrichters, die mit dem vergebenen Namen aufgeführt wird.
  3. Öffnen Sie das Leistungsobjekt und geben Sie ein: Slave ID 1, Register type Input register, Register address 32080, Data type INT32, Byte order gemäß Dokumentation.
  4. Stellen Sie Scaling ein: Skalierungsfaktor 0.001, Offset 0, Dezimalstellen 2, Einheiten kW. Ein Rohwert von 5230 wird zu 5.23 kW.
  5. Klicken Sie auf Save object, dann auf Apply changes in der Seitenleiste und bestätigen Sie. Verbindung, Gerät und dessen Objekte werden in diesem Moment gemeinsam aktiv.
  6. Warten Sie mindestens ein Abfrageintervall. Der aktuelle Wert erscheint in der Widgetzeile; vergleichen Sie ihn mit der Anzeige des Wechselrichters.

💡 Tipp: Aktivieren Sie die Protokollierung am Objekt (siehe „Objekteinstellungen, Protokollierung und Benachrichtigungen“), damit der Zähler Diagramme und einen Verlauf in der App erhält.

Modbus-Objekteditor.

Modbus-Bindung

Modbus-Objekte werden im Dialog für die Objekteinstellungen konfiguriert (öffnen Sie das Objekt mit Edit, siehe „Objekteinstellungen, Protokollierung und Benachrichtigungen“). Die Modbus-Bereiche sind:

Connection

FeldBeschreibung
Slave IDDie ID des Modbus-Slavegeräts (1–247).

Data Configuration

FeldBeschreibung
Register TypeWelche Registertabelle gelesen oder beschrieben wird (z. B. Holding- oder Eingangsregister).
Register AddressDie Registernummer.
Data TypeWie die Registerbytes interpretiert werden (Ganzzahlgrößen, Gleitkommazahl, …).
Byte OrderDie vom Gerät verwendete Wort-/Byte-Reihenfolge.

Scaling & Conversion

FeldBeschreibung
ScaleMultipliziert den Rohwert mit diesem Faktor (z. B. 0.1 zum Teilen durch 10).
OffsetWird nach der Skalierung addiert (z. B. -273.15 für Kelvin → Celsius).
Decimal Places / UnitsAnzeigegenauigkeit und Einheit.

Der Dialog zeigt die aktuelle Formel — Display = (Raw × scale) + offset — mit einem Rechenbeispiel, damit Sie die Umrechnung vor dem Speichern prüfen können.

Die Modbus-Objekteinstellungen.

💡 Tipp: Registernummern, Funktionscodes und ein vollständiges Praxisbeispiel finden Sie im Modbus-Kapitel.

Häufig gestellte Fragen

Welche Angaben benötige ich für ein Modbus-Gerät?

IP-Adresse, Port, Slave-/Unit-ID und die Registertabelle des Herstellers mit Registertypen, Adressen, Datentypen und Byte-Reihenfolge.

Benötige ich für jedes Register eine Verbindung?

Nein. Erstellen Sie eine Verbindung je IP-Adresse und Port des Modbus-Servers und binden Sie dessen Register dann an einzelne Widgetobjekte.

Warum ist ein Modbus-Messwert falsch?

Prüfen Sie die Basis der Registeradressen, den Datentyp, die Byte-Reihenfolge und die Skalierung anhand der Herstellertabelle. Manche Dokumente nummerieren Adressen ab eins, während Modbus ab null zählt.

Wie rechne ich einen Rohwert in die angezeigte Einheit um?

Stellen Sie Skalierungsfaktor und Offset in den Objekteinstellungen ein. Die Zeile Formula zeigt Display = (Raw × scale) + offset mit einem festen Beispielrohwert, nicht mit dem Messwert des Geräts.

Wie oft werden Modbus-Messwerte aktualisiert?

Jede Verbindung hat ein eigenes Abfrageintervall. Vergleichen Sie den aktuellen Wert nach einer Abfrage mit der Geräteanzeige.

Weiter erkunden

Finden Sie die weiteren Anleitungen zu diesem Produkt in der Dokumentation.

Zurück zu Integrationen