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:
| Instelling | Betekenis |
|---|---|
| Slave ID | De unit-identificatie, 1–247. |
| Register type | Coil, discrete ingang, ingangsregister of holdingregister. |
| Register address | Het 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 type | Hoe de ruwe registers worden gedecodeerd (16/32-bit geheel getal met/zonder teken, float, …). |
| Byte order | De 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 Function | Alleen holdingregisters. Laat Automatic (FC6 / FC16) staan, tenzij de apparatuur FC6 niet implementeert; kies dan Always FC16 (write multiple). |
| Scaling | Scale, 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.
- 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 poort502. - 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.
- Open het vermogensobject en voer in: Slave ID
1, Register type Input register, Register address32080, Data type INT32, Byte order volgens de documentatie. - Stel Scaling in: schaalfactor
0.001, offset0, decimalen2, eenhedenkW. Een ruwe waarde van5230wordt5.23 kW. - 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.
- 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-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
| Veld | Beschrijving |
|---|---|
| Slave ID | Het ID van het Modbus-slaveapparaat (1–247). |
Data Configuration
| Veld | Beschrijving |
|---|---|
| Register Type | Welke registertabel wordt gelezen of beschreven (bijvoorbeeld holding- of ingangsregisters). |
| Register Address | Het registernummer. |
| Data Type | Hoe de registerbytes worden geïnterpreteerd (groottes van gehele getallen, float, …). |
| Byte Order | De woord-/bytevolgorde die het apparaat gebruikt. |
Scaling & Conversion
| Veld | Beschrijving |
|---|---|
| Scale | Vermenigvuldig de ruwe waarde met deze factor (bijvoorbeeld 0.1 om door 10 te delen). |
| Offset | Toegevoegd na schaling (bijvoorbeeld -273.15 voor Kelvin → Celsius). |
| Decimal Places / Units | Weergaveprecisie 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.

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