Naar de inhoud
Elausys

HyperVisu / Integraties

Modbus TCP-integratie

Registers, functiecodes, periodiek opvragen en schaling — met een uitgewerkt voorbeeld voor een omvormer.

elausys · 27 juli 2026
Op deze pagina

Modbus TCP-integratie

Modbus TCP verbindt HyperVisu met industriële en energieapparatuur: zonne-omvormers, EV-laders, warmtepompen, ventilatie-units en PLC’s. HyperVisu is de Modbus-client — het bevraagt de registers van de apparatuur en schrijft ernaar wanneer u een widget bedient.

Wat u nodig hebt: het IP-adres van het apparaat, de Modbus-poort (meestal 502), de registertabel (uit de Modbus-documentatie van de fabrikant) en het slave-/unit-ID.

Verbindingen. Schakel eerst Modbus TCP Protocol in op de pagina Services (zie ‘Diensten en protocollen’); dit staat uit op een nieuwe server. Modbus TCP ondersteunt meerdere verbindingen: maak één verbinding per Modbus-server (per IP/poort) op de pagina Connections (zie ‘Verbindingen’). Selecteer in Add connection de kaart Modbus TCP en voer een Instance Name, het Server IP Address en een Poll Interval (seconds) in — hoe vaak HyperVisu alle objecten op die verbinding leest. Voer het interval in: de grijze 30 is slechts een hint; met een leeg veld bevraagt de server elke 5 seconden.

Het dialoogvenster heeft geen poortveld: de verbinding wordt gemaakt op poort 502. Als de apparatuur op een andere poort luistert, selecteer dan de nieuwe verbinding, wijzig Modbus TCP Port en klik op Save connection.

Een Modbus-verbinding heeft geen Test-knop. De status Connected op de pagina Connections en de actuele waarde van een gebonden object dienen als controle.

Een object binden. Bind Modbus-registers aan widgetobjecten in de werkruimte Devices. Stel per object het volgende in:

InstellingBetekenis
Slave IDDe unit-identificatie, 1–247.
Register typeCoil, discrete ingang, ingangsregister of holdingregister.
Register addressHet registeradres uit de registertabel van het apparaat, van 0 tot 65535. Het wordt exact zoals ingevoerd naar de apparatuur verzonden: voer het protocoladres in, geen referentienummer 4xxxx of 3xxxx. Let op een verschuiving van één: sommige fabrikanten documenteren adressen vanaf 1, Modbus telt vanaf 0.
Data typeHoe de ruwe registers worden gedecodeerd (16/32-bit geheel getal met/zonder teken, float, …).
Byte orderDe woord-/bytevolgorde voor waarden over meerdere registers — deze staat in de documentatie van de fabrikant. Het veld verschijnt alleen voor datatypen die twee of meer registers beslaan (32-bit, 64-bit en drijvende komma).
Write FunctionAlleen holdingregisters. Laat Automatic (FC6 / FC16) staan, tenzij de apparatuur FC6 niet implementeert; kies dan Always FC16 (write multiple).
ScalingScale, Offset, Decimal Places en Units. De regel Formula toont Display = (Raw × scale) + offset met een vaste ruwe voorbeeldwaarde, niet met de meetwaarde van het apparaat. Een schaalfactor van 0 wordt gelezen als 1.

📘 Opmerking: De schaalfactor en offset van het object worden vóór elke transformatie op hetzelfde object toegepast (zie ‘Waardetransformaties en werking’). Voeg daar geen schaaltransformatie bovenop toe, anders wordt de waarde tweemaal geschaald.

Uitgewerkt voorbeeld — omvormervermogen in een meter

De documentatie van de omvormer vermeldt: actief vermogen, ingangsregister 32080, 32-bit geheel getal met teken, gain 1, eenheid W, unit-ID 1.

  1. Maak een Modbus TCP-verbinding voor de omvormer: Server IP Address 192.168.1.120, Poll Interval (seconds) 10 (zie ‘Verbindingen’). De verbinding wordt gemaakt op poort 502.
  2. Voeg in Devices een Meter-widget ‘Zonneproductie’ toe, ruimte Technisch, categorie Energie. Selecteer onder Protocol de verbinding van de omvormer, weergegeven met de naam die u hebt opgegeven.
  3. Open het vermogensobject en voer in: Slave ID 1, Register type Input register, Register address 32080, Data type INT32, Byte order volgens de documentatie.
  4. Stel Scaling in: schaalfactor 0.001, offset 0, decimalen 2, eenheden kW. Een ruwe waarde van 5230 wordt 5.23 kW.
  5. Klik op Save object, vervolgens op Apply changes in de zijbalk en bevestig. De verbinding, het apparaat en de objecten worden op dat moment samen actief.
  6. Wacht minstens één opvraaginterval. De actuele waarde verschijnt op de widgetrij; controleer deze met het eigen display van de omvormer.

💡 Tip: Schakel logging in op het object (zie ‘Objectinstellingen, logging en meldingen’) zodat de meter grafieken en geschiedenis in de app krijgt.

Modbus-objecteditor.

Modbus-binding

Modbus-objecten worden ingesteld in het dialoogvenster voor objectinstellingen (open het object met Edit, zie ‘Objectinstellingen, logging en meldingen’). De Modbus-secties zijn:

Connection

VeldBeschrijving
Slave IDHet ID van het Modbus-slaveapparaat (1–247).

Data Configuration

VeldBeschrijving
Register TypeWelke registertabel wordt gelezen of beschreven (bijvoorbeeld holding- of ingangsregisters).
Register AddressHet registernummer.
Data TypeHoe de registerbytes worden geïnterpreteerd (groottes van gehele getallen, float, …).
Byte OrderDe woord-/bytevolgorde die het apparaat gebruikt.

Scaling & Conversion

VeldBeschrijving
ScaleVermenigvuldig de ruwe waarde met deze factor (bijvoorbeeld 0.1 om door 10 te delen).
OffsetToegevoegd na schaling (bijvoorbeeld -273.15 voor Kelvin → Celsius).
Decimal Places / UnitsWeergaveprecisie en eenheid.

Het dialoogvenster toont de actuele formule — Display = (Raw × scale) + offset — met een uitgewerkt voorbeeld, zodat u de omzetting vóór het opslaan kunt controleren.

De Modbus-objectinstellingen.

💡 Tip: Registernummers, functiecodes en een volledig uitgewerkt voorbeeld staan in het Modbus-hoofdstuk.

Veelgestelde vragen

Welke informatie heb ik nodig voor een Modbus-apparaat?

Het IP-adres, de poort, het slave-/unit-ID en de registertabel van de fabrikant, met registertypen, adressen, datatypen en bytevolgorde.

Heb ik voor elk register een verbinding nodig?

Nee. Maak één verbinding per IP-adres en poort van de Modbus-server en bind de registers vervolgens aan afzonderlijke widgetobjecten.

Waarom is een Modbus-meetwaarde onjuist?

Controleer de adresbasis van de registers, het datatype, de bytevolgorde en de schaling aan de hand van de tabel van de fabrikant. Sommige documenten nummeren adressen vanaf één, terwijl Modbus vanaf nul telt.

Hoe zet ik een ruwe meetwaarde om naar de weergegeven eenheid?

Stel schaalfactor en offset in bij de objectinstellingen. De regel Formula toont Display = (Raw × scale) + offset met een vaste ruwe voorbeeldwaarde, niet met de meetwaarde van het apparaat.

Hoe vaak worden Modbus-meetwaarden vernieuwd?

Elke verbinding heeft een eigen opvraaginterval. Vergelijk de actuele waarde na een opvraging met het display van het apparaat.

Verder verkennen

Vind de andere handleidingen voor dit product in de documentatie.

Terug naar Integraties