Integrazione del Contatore Energetico Modbus TCP: Registri e Test
Integrazione del Contatore Energetico Modbus TCP per il Monitoraggio Locale
Modbus TCP consente a un'applicazione locale di leggere le misurazioni elettriche direttamente da un contatore energetico Wi-Fi IAMMETER.
È adatto per:
- sistemi PLC e SCADA;
- Home Assistant e Node-RED;
- sistemi locali di Gestione dell'Energia (EMS);
- sistemi di Gestione degli Edifici (BMS);
- monitoraggio e automazione con intervallo di un secondo;
- applicazioni che devono funzionare senza IAMMETER-Cloud.
Contatore energetico IAMMETER
│
│ Wi-Fi / LAN
│ Modbus TCP
▼
Home Assistant, Node-RED, PLC, SCADA o EMS personalizzato
Il client avvia ogni richiesta. Il contatore restituisce i valori dei registri per tensione, corrente, potenza attiva, energia importata, energia esportata, fattore di potenza, frequenza e altre misurazioni supportate.
Modbus TCP è un'interfaccia di polling locale. Se il contatore deve pubblicare i dati su un broker, utilizza MQTT. Se deve caricare i dati su un server personalizzato, consulta Ricevere i Dati IAMMETER sul Proprio Server.
1. Perché Usare Modbus TCP?
Rispetto al polling su cloud o ai caricamenti periodici del contatore, Modbus TCP offre:
- accesso diretto tramite la rete locale;
- nessuna dipendenza da IAMMETER-Cloud per il flusso di dati;
- un'interfaccia standard basata su registri;
- polling al secondo per le applicazioni supportate;
- valori di potenza attiva con segno per il monitoraggio bidirezionale dell'energia;
- compatibilità con strumenti di automazione e industriali comuni.
Gli utilizzi tipici includono:
- controllo di un carico in base alla potenza della rete in tempo reale;
- lettura locale della produzione solare, dello scambio con la rete o del carico del circuito;
- aggiunta di un contatore energetico a Home Assistant;
- raccolta di misurazioni in Node-RED;
- integrazione dei dati elettrici in un PLC, SCADA, EMS o BMS.
2. Contatori IAMMETER Supportati
Gli attuali modelli di contatori energetici IAMMETER supportano le modalità disponibili per Home Assistant e integrazione aperta, incluso Modbus TCP. Il modello discontinuato WEM3162 non è considerato in questa guida.
La differenza principale tra i modelli è il numero e lo scopo dei canali di misurazione:
- i contatori a canale singolo espongono il blocco di registri della Fase A;
- i contatori a doppio canale o split-phase utilizzano i blocchi di canale applicabili;
- i contatori trifase espongono i blocchi delle Fasi A, B e C;
- i contatori supportati possono anche esporre totali e misurazioni reattive opzionali.
Verifica sempre la risposta dei registri rispetto al modello e firmware esatti utilizzati nel progetto.
WEM3046T e WEM3046TE
WEM3046T e WEM3046TE misurano l'uscita secondaria da 5 A di un trasformatore di corrente esterno.
La corrente lato primario, la potenza e i valori energetici devono quindi utilizzare il rapporto CT esterno applicabile. Questo requisito di scaling è dovuto al progetto dell'ingresso CT da 5 A del contatore; non è un comportamento specifico di Modbus TCP o della piattaforma.
Mantieni documentato e testato il processo di gestione del rapporto CT ovunque questi modelli siano integrati.
3. Parametri di Connessione
L'esempio ufficiale IAMMETER Modbus Poll utilizza:
| Parametro | Valore di esempio |
|---|---|
| Connessione | Modbus TCP/IP |
| Host | Indirizzo IP locale del contatore |
| Porta TCP | 502 |
| Dispositivo / Unit ID | 1 |
| Codice funzione | 03 — Lettura Registri di Mantenimento |
| Timeout risposta | 1000 ms nell'esempio |

Utilizza l'indirizzo IP LAN del contatore come host. Riservare l'indirizzo nel router può prevenire la rottura dell'integrazione dopo un cambio di indirizzo DHCP.
I valori sopra sono i parametri mostrati nell'esempio ufficiale. Conferma il firmware effettivo e la configurazione del sito prima di codificarli nel software di produzione.
4. Test Rapido con Modbus Poll
Per confermare la connettività prima di configurare una piattaforma completa:
- collega il computer e il contatore IAMMETER alla stessa LAN;
- trova l'indirizzo IP locale del contatore;
- crea una connessione Modbus TCP/IP alla porta
502; - imposta Device ID su
1; - seleziona il Codice Funzione
03; - richiedi i registri di mantenimento a partire dall'indirizzo
0; - confronta i valori grezzi restituiti con le regole di scaling sottostanti.

Lo screenshot utilizza una frequenza di scansione di 500 ms per i test. Per un uso normale, la documentazione IAMMETER raccomanda un polling al secondo, piuttosto che trattare l'impostazione client più veloce come l'intervallo di produzione supportato.
Se la connessione fallisce, verifica:
- che il contatore e il client siano sulla stessa rete raggiungibile;
- l'indirizzo IP del contatore;
- la porta TCP 502 e le regole del firewall;
- Device ID e codice funzione;
- se un'altra applicazione sta già controllando il flusso di polling desiderato;
- la versione del firmware del contatore.
5. Tipi di Dati dei Registri e Scaling
IAMMETER utilizza registri di mantenimento a 16 bit.
Valori a 16 bit
Tensione, corrente, fattore di potenza e frequenza utilizzano un registro:
| Misurazione | Tipo grezzo | Conversione |
|---|---|---|
| Tensione | Unsigned 16-bit | V = raw / 100 |
| Corrente | Unsigned 16-bit | A = raw / 100 |
| Fattore di potenza | Unsigned 16-bit | PF = raw / 1000 |
| Frequenza | Unsigned 16-bit | Hz = raw / 100 |
Valori a 32 bit
Potenza attiva, energia cumulativa e valori reattivi utilizzano due registri consecutivi.
L'esempio ufficiale di Modbus Poll visualizza prima la parola a 16 bit di ordine superiore. Combina le parole come:
raw32 = (register[n] << 16) | register[n + 1]
Interpreta la potenza attiva e reattiva come valori signed a 32 bit. Interpreta i contatori di energia cumulativa come valori unsigned a 32 bit.
| Misurazione | Tipo grezzo | Conversione |
|---|---|---|
| Potenza attiva | Signed 32-bit | W = raw32 |
| Energia importata/forward | Unsigned 32-bit | kWh = raw32 / 800 |
| Energia esportata/reverse | Unsigned 32-bit | kWh = raw32 / 800 |
| Potenza reattiva | Signed 32-bit | var = raw32 |
| Energia reattiva induttiva/capacitiva | Unsigned 32-bit | kvarh = raw32 / 1000 |
La potenza attiva con segno consente a un'integrazione di distinguere direzioni di potenza opposte. Conferma la convenzione del segno rispetto all'orientamento del CT e al cablaggio dell'applicazione durante la messa in servizio.
6. Mappa dei Registri Modbus Principali
Gli indirizzi dei registri sottostanti sono offset decimali. Il client deve utilizzare il Codice Funzione 03.
Fase A
| Indirizzo | Lunghezza | Misurazione | Conversione |
|---|---|---|---|
| 0 | 1 | Tensione | Unsigned, /100 V |
| 1 | 1 | Corrente | Unsigned, /100 A |
| 2 | 2 | Potenza attiva | Signed, W |
| 4 | 2 | Energia importata/forward | Unsigned, /800 kWh |
| 6 | 2 | Energia esportata/reverse | Unsigned, /800 kWh |
| 8 | 1 | Fattore di potenza | Unsigned, /1000 |
| 9 | 1 | Identificativo modello nella mappa legacy | Non utilizzare come unico catalogo modello corrente |
Fase B
| Indirizzo | Lunghezza | Misurazione | Conversione |
|---|---|---|---|
| 10 | 1 | Tensione | Unsigned, /100 V |
| 11 | 1 | Corrente | Unsigned, /100 A |
| 12 | 2 | Potenza attiva | Signed, W |
| 14 | 2 | Energia importata/forward | Unsigned, /800 kWh |
| 16 | 2 | Energia esportata/reverse | Unsigned, /800 kWh |
| 18 | 1 | Fattore di potenza | Unsigned, /1000 |
| 19 | 1 | Riservato | Non utilizzato |
Fase C
| Indirizzo | Lunghezza | Misurazione | Conversione |
|---|---|---|---|
| 20 | 1 | Tensione | Unsigned, /100 V |
| 21 | 1 | Corrente | Unsigned, /100 A |
| 22 | 2 | Potenza attiva | Signed, W |
| 24 | 2 | Energia importata/forward | Unsigned, /800 kWh |
| 26 | 2 | Energia esportata/reverse | Unsigned, /800 kWh |
| 28 | 1 | Fattore di potenza | Unsigned, /1000 |
| 29 | 1 | Riservato | Non utilizzato |
Frequenza e totali
| Indirizzo | Lunghezza | Misurazione | Conversione |
|---|---|---|---|
| 30 | 1 | Frequenza | Unsigned, /100 Hz |
| 31 | 1 | Riservato | Non utilizzato |
| 32 | 2 | Potenza attiva totale | Signed, W |
| 34 | 2 | Energia totale importata/forward | Unsigned, /800 kWh |
| 36 | 2 | Energia totale esportata/reverse | Unsigned, /800 kWh |
I registri totali sono più rilevanti per i contatori multi-canale. Per un'integrazione a canale singolo, utilizza i valori applicabili della Fase A e valida eventuali totali restituiti.
7. Registri Reattivi Opzionali
I registri reattivi sono disponibili solo quando la misurazione reattiva è supportata e abilitata dal contatore e firmware applicabili.
| Indirizzo | Lunghezza | Misurazione | Conversione |
|---|---|---|---|
| 38 | 2 | Potenza reattiva Fase A | Signed, var |
| 40 | 2 | Energia reattiva induttiva Fase A | Unsigned, /1000 kvarh |
| 42 | 2 | Energia reattiva capacitiva Fase A | Unsigned, /1000 kvarh |
| 44 | 2 | Potenza reattiva Fase B | Signed, var |
| 46 | 2 | Energia reattiva induttiva Fase B | Unsigned, /1000 kvarh |
| 48 | 2 | Energia reattiva capacitiva Fase B | Unsigned, /1000 kvarh |
| 50 | 2 | Potenza reattiva Fase C | Signed, var |
| 52 | 2 | Energia reattiva induttiva Fase C | Unsigned, /1000 kvarh |
| 54 | 2 | Energia reattiva capacitiva Fase C | Unsigned, /1000 kvarh |
Non dare per scontato che questi valori siano attivi su ogni installazione. Conferma il modello, il firmware e l'impostazione della misurazione reattiva.
8. Registri Informativi del Dispositivo
| Indirizzo | Lunghezza | Descrizione |
|---|---|---|
| 56 | 8 | Numero di serie del dispositivo |
| 64 | 1 | Tempo di funzionamento in secondi |
Tratta i numeri di serie e altri identificatori del dispositivo come dati operativi. Evita di pubblicare valori non sanitizzati in screenshot, log o esempi pubblici.
9. Esempi di Integrazione
Home Assistant
Modbus TCP è l'opzione IAMMETER Home Assistant per gli utenti che necessitano di letture locali rapide e automazione.
Utilizza la guida all'integrazione IAMMETER Home Assistant come punto di ingresso principale per HA. Separa la configurazione del contatore dalla configurazione di Home Assistant e collega ai metodi di implementazione Modbus correnti.
Video:
Node-RED
Node-RED può interrogare i registri di mantenimento, normalizzare i valori grezzi e instradare le misurazioni verso flussi di automazione, database o dashboard.
PLC, SCADA, EMS e BMS
Per un'integrazione industriale o commerciale:
- documenta la versione della mappa registri utilizzata;
- applica la conversione signed/unsigned corretta;
- valida l'ordine dei byte e delle parole;
- conferma l'orientamento del CT e il rapporto CT;
- definisci il comportamento di timeout e retry;
- monitora l'ultimo polling riuscito;
- evita frequenze di polling non supportate;
- testa l'interruzione e il ripristino della rete.
Software personalizzato
Un client Modbus TCP personalizzato dovrebbe separare:
- logica di connessione e retry;
- letture dei registri;
- decodifica a 16 bit e 32 bit;
- mappatura modello-contatore e canale;
- normalizzazione del rapporto CT dove richiesto;
- logica di archiviazione e applicativa.
10. Modbus TCP o Un'Altra Interfaccia IAMMETER?
| Requisito | Interfaccia consigliata |
|---|---|
| Polling locale al secondo | Modbus TCP |
| Recupero JSON semplice tramite LAN | API HTTP locale |
| Pubblicazione dati a più consumatori | MQTT |
| Caricamento contatore a un servizio web cliente | HTTP/HTTPS |
| Caricamento contatore a un server socket personalizzato | TCP/TLS |
| Confronto piattaforme pronte | Guida all'integrazione open-source |
Guide correlate:
- API Locali e Interfacce Aperte IAMMETER
- Piattaforme di Monitoraggio Energetico Open-Source
- Sviluppa il Tuo Sistema di Monitoraggio Energetico
- Usare IAMMETER Senza Internet o Cloud
11. Firmware
Modbus TCP non è più un aggiornamento sperimentale descritto solo dal processo di rilascio originale del 2022. Per un'installazione corrente, utilizza il firmware più recente disponibile per il modello di contatore:
Registra la versione del firmware utilizzata per validare la mappa dei registri e il comportamento del polling.
12. Informazioni sul Rilascio Legacy
Questo articolo è stato pubblicato originariamente quando il supporto Modbus TCP è stato introdotto tramite un aggiornamento del firmware.
Le istruzioni precedenti facevano riferimento al firmware 75.68 come prerequisito per l'aggiornamento e chiedevano agli utenti di richiedere un aggiornamento tramite il sistema di feedback. Quel processo è mantenuto qui solo come contesto storico e non dovrebbe essere utilizzato per una nuova installazione.
Risorsa di rilascio originale:
Ultimo aggiornamento: 16 luglio 2026