IAMMETER aggiunge il supporto SunSpec Modbus/TCP: mappatura dei modelli e guida all'integrazione
Il firmware IAMMETER i.91.065.18 aggiunge una mappa read-only dei modelli di contatore SunSpec integer al servizio Modbus/TCP già esistente. Offre ai software che comprendono i modelli SunSpec un modo standard per individuare un contatore IAMMETER e leggere alcuni valori elettrici sulla rete locale.
Si tratta di un'aggiunta all'interfaccia, non di un sistema di misurazione sostitutivo. Il contatore continua a raccogliere i dati nello stesso modo. I registri Modbus IAMMETER esistenti, l'API HTTP, i payload MQTT e le impostazioni NEM restano invariati.
SunSpec definisce modelli standard di informazioni sul dispositivo che possono essere mappati nei registri holding Modbus. La sua mappa inizia con un marcatore SunS, seguito da modelli Common e specifici del dispositivo che un client può individuare leggendo in sequenza l'ID e la lunghezza di ciascun modello. Il pacchetto di specifiche SunSpec Modbus documenta lo schema di model discovery, incluse le posizioni della mappa Modbus con base 0 e le regole sui valori non implementati. SunSpec Modbus è utilizzato in numerose integrazioni per l'energia distribuita, tra cui contatori, inverter e sistemi di accumulo.
IAMMETER implementa un sottoinsieme mirato e read-only per i dati del contatore. Questo firmware non è stato sottoposto a certificazione SunSpec. Non considerare questa funzionalità come una certificazione, una piena conformità SunSpec o una garanzia che ogni client SunSpec di terze parti funzioni senza configurazione.
Modelli IAMMETER supportati e mappature dei contatori
| Contatore IAMMETER | Modello contatore SunSpec integer | Interpretazione elettrica |
|---|---|---|
| WEM3080 | 201 | Monofase |
| WEM2067 | 202 | Split phase (fase sdoppiata) |
| WEM3050T | 203 | Trifase a stella |
| WEM3080T | 203 | Trifase a stella |
| WEM3046T | 203 | Trifase a stella |
| WEM3063T | 203 | Trifase a stella |
Per WEM2067, il Modello 202 rappresenta una vera installazione split phase. Non descrive due circuiti monofase non correlati come se fossero la stessa configurazione elettrica.
Il codice per il Modello 204 ha una copertura di test sull'host, ma il firmware non lo rileva e seleziona ancora automaticamente per WEM3080TD. Questo articolo quindi non dichiara la disponibilità del Modello 204. Anche WEM3046TE non ha ancora ricevuto una verifica dedicata dell'identificazione del modello. La prima release fornisce solo modelli integer: i modelli float da 211 a 214 non sono disponibili.
Cosa può leggere un client
I modelli di contatore integer espongono tensione di fase, corrente di fase, potenza attiva di fase, potenza attiva totale, frequenza, fattore di potenza di fase e accumulatori di energia attiva importata/esportata per fase e totali. Il Common Model fornisce i dati di identificazione del dispositivo, come modello, versione del firmware e numero di serie.
Nella mappa SunSpec l'energia è rappresentata in Wh; il fattore di potenza è rappresentato come percentuale. I punti di energia totale riutilizzano i campi totali già presenti nel contatore e la semantica NEM. In questa mappatura IAMMETER non ricalcola un totale trifase sommando gli accumulatori delle fasi. Poiché l'impostazione NEM influenza il significato di tali accumulatori, un client non deve presumere che l'energia totale sia sempre uguale alla somma dell'energia delle fasi.
In questa prima versione alcuni campi sono volutamente assenti: potenza reattiva ed energia reattiva, potenza apparente ed energia apparente, fattore di potenza totale multifase e flag di evento. Le loro posizioni standard restano nel modello e restituiscono il marcatore di valore non disponibile appropriato. Un client SunSpec deve riconoscere i valori non disponibili invece di interpretarli come misure.
L'interpretazione della tensione è importante
I valori di fase provengono dal contatore. Alcuni punti di tensione concatenata sono derivati per la mappatura del modello:
- La tensione concatenata del Modello 202 è
UA + UB. - La tensione concatenata del Modello 203 è un'approssimazione della tensione di fase moltiplicata per
√3; non è una misura diretta tra fase e fase. Un sistema squilibrato o uno scostamento dell'angolo di fase può introdurre errore.
Questa distinzione è importante per le applicazioni che richiedono una tensione concatenata misurata direttamente. Verificare la definizione del punto del modello e lo schema di collegamento prima di utilizzare un valore derivato per decisioni di controllo o di conformità.
Collegamento con Modbus/TCP
Abilitare il servizio Modbus/TCP già presente nel contatore, quindi connettersi al suo indirizzo LAN:
| Voce | Impostazione |
|---|---|
| Host | Indirizzo IP LAN del contatore |
| Porta TCP | 502 |
| Funzione di lettura | 03 — Read Holding Registers |
| Indirizzo di avvio SunSpec | 40000 |
| Accesso in scrittura | Non supportato dalla mappa SunSpec di IAMMETER |
Gli indirizzi indicati in questa guida sono indirizzi di richiesta Modbus con base 0. Alcune applicazioni mostrano numeri di registro con base 1, quindi verificare la loro convenzione prima di configurare una lettura; un indirizzo off-by-one non restituirà il marcatore previsto.
Utilizzare la seguente sequenza di discovery:
- Leggere due registri all'indirizzo
40000. Le parole attese sono0x5375e0x6E53, il marcatore ASCIISunS. - Leggere il Common Model 1 a partire da
40002. - Leggere il modello del contatore a partire da
40070. Leggendo 107 registri si ottengono l'ID del modello, la lunghezza e l'intera regione dati. - Leggere il marcatore di fine a
40177.
Una singola richiesta Modbus non può leggere più di 125 registri, quindi leggere separatamente il modello Common e quello del contatore. I client dovrebbero individuare gli ID e le lunghezze dei modelli invece di codificare in modo fisso un'assunzione su ogni futura sequenza di modelli.
Valori integer e fattori di scala
I punti integer di SunSpec utilizzano fattori di scala. Convertire un intero grezzo con:
actual value = register integer × 10^scale factor
Ad esempio:
W = 12345
W_SF = 1
actual active power = 123450 W
I fattori di scala possono cambiare con il campo di misura. Leggere un modello di contatore completo a ogni ciclo di polling, in modo che un valore e il suo fattore di scala provengano dalla stessa risposta. Non memorizzare i fattori di scala in cache a tempo indeterminato.
Validazione e limiti attuali
I test sull'host coprono il layout del modello, la conversione, l'overflow, il comportamento read-only e i controlli di regressione per i registri esistenti. Un contatore di test WEM3080T ha confermato la discovery del Modello 203 e le letture continue, con tensione e potenza verificate rispetto alle interfacce HTTP e Modbus esistenti.
Altri modelli di contatore e i singoli client di terze parti necessitano ancora di ulteriori test fisici. Il firmware i.91.065.18 è stato compilato, caricato e scaricato di nuovo per la verifica del file; il file di release in sé non è stato flashato durante questo ciclo di validazione.
Il firmware non include il miglioramento del framing TCP ancora in sospeso. Attualmente si aspetta una richiesta completa in un'unica operazione di ricezione. Richieste TCP frammentate o combinate possono chiudere la connessione. Inviare una richiesta e attendere la relativa risposta prima della successiva, riconoscendo che questo non elimina ogni rischio di segmentazione TCP.
Dove si colloca in un'installazione IAMMETER
Utilizzare la mappa SunSpec quando un client locale è progettato per individuare e leggere i modelli di contatore SunSpec. Utilizzare la mappa dei registri IAMMETER Modbus/TCP esistente quando un'applicazione necessita dei registri specifici di IAMMETER. Il percorso Modbus locale esistente resta utile per l'integrazione del contatore di energia con Home Assistant, mentre HTTP, MQTT e IAMMETER Cloud restano opzioni indipendenti.
Scaricare il firmware: i.91.065.18.bin.
Prima di aggiornare, verificare il modello del contatore, il metodo di connessione e l'accesso alla rete locale. Questa è un'interfaccia dati read-only; non fornisce controllo dell'inverter, operazioni di scrittura né una dichiarazione di piena interoperabilità SunSpec con terze parti.