Integrazione Modbus TCP
Modbus TCP collega HyperVisu ad apparecchiature industriali ed energetiche: inverter solari, caricabatterie per veicoli elettrici, pompe di calore, unità di ventilazione e PLC. HyperVisu è il client Modbus — interroga i registri dell’apparecchiatura e vi scrive quando controlli un widget.
Cosa serve: l’indirizzo IP del dispositivo, la porta Modbus (solitamente 502), la mappa dei registri (dalla documentazione Modbus del produttore) e l’ID slave/unità.
Connessioni. Attiva prima Modbus TCP Protocol nella pagina Services (vedi «Servizi e protocolli»); su un nuovo server è disattivato. Modbus TCP supporta più connessioni: crea una connessione per server Modbus (per IP/porta) nella pagina Connections (vedi «Connessioni»). In Add connection, seleziona la scheda Modbus TCP e inserisci un Instance Name, il Server IP Address e un Poll Interval (seconds) — la frequenza con cui HyperVisu legge tutti gli oggetti di quella connessione. Inserisci l’intervallo: il 30 grigio è solo un suggerimento; un campo vuoto fa interrogare il server ogni 5 secondi.
La finestra non ha un campo porta: la connessione viene creata sulla porta 502. Se l’apparecchiatura ascolta su un’altra porta, seleziona la nuova connessione, modifica Modbus TCP Port e fai clic su Save connection.
Una connessione Modbus non ha un pulsante Test. La verifica si effettua tramite lo stato Connected nella pagina Connections e il valore in tempo reale di un oggetto associato.
Associazione di un oggetto. Associa registri Modbus a oggetti dei widget nell’area di lavoro Devices. Per ogni oggetto imposta:
| Impostazione | Significato |
|---|---|
| Slave ID | L’identificatore dell’unità, 1–247. |
| Register type | Bobina, ingresso discreto, registro di ingresso o registro di mantenimento. |
| Register address | L’indirizzo del registro dalla mappa del dispositivo, da 0 a 65535. Viene inviato all’apparecchiatura esattamente come inserito: usa l’indirizzo del protocollo, non un numero di riferimento 4xxxx o 3xxxx. Attenzione allo scarto di uno: alcuni produttori documentano indirizzi da 1, Modbus conta da 0. |
| Data type | Come vengono decodificati i registri grezzi (intero a 16/32 bit con/senza segno, virgola mobile, …). |
| Byte order | L’ordine delle parole/dei byte per valori su più registri — indicato nella documentazione del produttore. Il campo compare solo per tipi di dati che occupano due o più registri (32 bit, 64 bit e virgola mobile). |
| Write Function | Solo registri di mantenimento. Lascia Automatic (FC6 / FC16), salvo che l’apparecchiatura non implementi FC6; in tal caso scegli Always FC16 (write multiple). |
| Scaling | Scale, Offset, Decimal Places e Units. La riga Formula mostra Display = (Raw × scale) + offset con un valore grezzo di esempio fisso, non con la lettura dell’apparecchiatura. Un fattore di scala di 0 viene interpretato come 1. |
📘 Nota: Il fattore di scala e l’offset dell’oggetto vengono applicati prima di qualsiasi trasformazione sullo stesso oggetto (vedi «Trasformazioni dei valori e stato di funzionamento»). Non aggiungere un’ulteriore trasformazione di scalatura, altrimenti il valore viene scalato due volte.
Esempio pratico — potenza dell’inverter in un contatore
La documentazione dell’inverter indica: potenza attiva, registro di ingresso 32080, intero a 32 bit con segno, guadagno 1, unità W, ID unità 1.
- Crea una connessione Modbus TCP per l’inverter: Server IP Address
192.168.1.120, Poll Interval (seconds)10(vedi «Connessioni»). La connessione viene creata sulla porta502. - In Devices, aggiungi un widget Meter «Produzione solare», stanza Tecnica, categoria Energia. In Protocol, seleziona la connessione dell’inverter, elencata con il nome che le hai assegnato.
- Apri il suo oggetto potenza e inserisci: Slave ID
1, Register type Input register, Register address32080, Data type INT32, Byte order come documentato. - Imposta Scaling: fattore di scala
0.001, offset0, decimali2, unitàkW. Un valore grezzo di5230diventa5.23 kW. - Fai clic su Save object, poi su Apply changes nella barra laterale e conferma. La connessione, il dispositivo e i suoi oggetti diventano attivi insieme in quel momento.
- Attendi almeno un intervallo di interrogazione. Il valore in tempo reale compare sulla riga del widget; confrontalo con il display dell’inverter.
💡 Suggerimento: Abilita la registrazione sull’oggetto (vedi «Impostazioni degli oggetti, registrazione e notifiche») per avere grafici e cronologia del contatore nell’app.

Associazione Modbus
Gli oggetti Modbus si configurano nella finestra di impostazione dell’oggetto (apri l’oggetto con Edit, vedi «Impostazioni degli oggetti, registrazione e notifiche»). Le sezioni Modbus sono:
Connection
| Campo | Descrizione |
|---|---|
| Slave ID | L’ID del dispositivo slave Modbus (1–247). |
Data Configuration
| Campo | Descrizione |
|---|---|
| Register Type | La tabella dei registri da leggere o scrivere (ad esempio registri di mantenimento o di ingresso). |
| Register Address | Il numero del registro. |
| Data Type | Come vengono interpretati i byte del registro (dimensioni degli interi, virgola mobile, …). |
| Byte Order | L’ordine delle parole/dei byte usato dal dispositivo. |
Scaling & Conversion
| Campo | Descrizione |
|---|---|
| Scale | Moltiplica il valore grezzo per questo fattore (ad esempio 0.1 per dividere per 10). |
| Offset | Aggiunto dopo la scalatura (ad esempio -273.15 per Kelvin → Celsius). |
| Decimal Places / Units | Precisione di visualizzazione e unità. |
La finestra mostra la formula in tempo reale — Display = (Raw × scale) + offset — con un esempio pratico, così puoi verificare la conversione prima di salvare.

💡 Suggerimento: Numeri di registro, codici funzione e un esempio pratico completo si trovano nel capitolo Modbus.