Vai al contenuto
PLC Forum


Energy meter comunicazione ModBus errore random valore energia [kWh]


Giuseppe-IT9

Messaggi consigliati

Buongiorno, stò monitorando dei consumi energetici, tramite dei misuratori di tipo ABB DMTME-I-485, con Home Assistant, i dati li converto già da ModBus RTU a ModBus TCP/IP tramite un Gateway MOXA, leggo tutto e leggo correttamente, ma ogni tanto, così a caso, il valore di energia attiva [kWh] al posto di incrementare si abbassa in modo rempentivo per poi rimettersi nuovamente in linea di progressione, come potete vedere dal grafico allegato sotto. Non riesco a capire il problema, pensavo fosse il cavo di collegamento RS485, così ho messo un nuovo cavo schermato, ho poi accorciato il cavo, mettendo lo strumento vicino al gateway, la cosa strana è che solo questo valore salta, il resto degli altri valori come: Tensione L1, L2, L3, corrente, potenza, CosFi sono sempre attendibili e corretti. A volte l'errore dura poche ore, a volte dura tantissimo, anche una giornata intera.

Nemmeno posso pensare ad una anomalia dello strumento perchè ho connesso 13 strumenti della stessa marca e tutti hanno lo stesso "problema".

Una cosa che ho notato, e che ne ero certo, è che ho collegato anche un Siemens Sentron PAC ad un gateway MOXA, stesso procedimento degli altri, ma questo errore non si presenta con il Siemens.

Se qualcuno ha qualche idea (a parte cambiare gli strumenti) lo ringrazio anticipatamente.

 

saluti

Giuseppe.

image.png.139e39f708390e94d1bad4980e7bfa30.png   image.png.233e92a7023fe0e56a6377e20a828938.png

Link al commento
Condividi su altri siti


Difficile sia un problema di comunicazione o convertitore perché avresti un errore sul master.

Se il registro non è di tipo float, solitamente i totalizzatori come l'energia sono "spalmati" su due registri consecutivi.

Verifica che sia corretta il tipo dato signed - unsigned (eventualmente anche ordine MSW/LSW, ma te ne dovresti accorgere dal valore)

ciao

Link al commento
Condividi su altri siti

Ci sono 9 diversi registri per l'energia attiva, a seconda che si legga il totale trifase, o i registri monofase, i registri diretti, o i registri importati dall'ingresso impulsivo.

Di quale stiamo parlando?

Modificato: da NoNickName
Link al commento
Condividi su altri siti

Si, infatti leggo i due registri in HEX e poi li converto in decimali e li sommo per una lettura più umana, però in effetti mi hai fatto venire in mente una possibile causa, potrebbe essere che uno dei due registri non venga letto, qualche volta, e quindi ecco perchè il valore è sbagliato. Farò ulteriori prove per capire se leggo tutti e due i registri.

Ciao.

Link al commento
Condividi su altri siti

5 minuti fa, NoNickName ha scritto:

Ci sono 9 diversi registri per l'energia attiva, a seconda che si legga il totale trifase, o i registri monofase, i registri diretti, o i registri importati dall'ingresso impulsivo.

Di quale stiamo parlando?

Io leggo il registro 3-Phase Sys. Active Power, indirizzo 102E, Word 2, Format Signed Long

Link al commento
Condividi su altri siti

47 minuti fa, Giuseppe-IT9 ha scritto:

Io leggo il registro 3-Phase Sys. Active Power, indirizzo 102E, Word 2, Format Signed Long

 

Quella è potenza, non energia. E' ovvio che la potenza ogni tanto vada a zero.

Tu devi leggere il 103E.

Modificato: da NoNickName
Link al commento
Condividi su altri siti

29 minuti fa, NoNickName ha scritto:

 

Quella è potenza, non energia. E' ovvio che la potenza ogni tanto vada a zero.

Tu devi leggere il 103E.

Chiedo venia c'è stato un errore di vista, ho copiato e incollato così com'era sul programma il commento sbagliato.

Confermo che leggo il 103E ovviamente, anche perchè mi sono assicurato che il valore letto dal pc sia uguale al valore letto sullo strumento e la lettura è precisa.

Adesso sto monitorando le singole word che compongono il valore di energia, al momento ho riscontrato questo:

su una lettura di 2 ore

word 0 leggo costantemente sempre lo stesso valore

word 1 leggo un valor che incrementa con il passare del tempo

Link al commento
Condividi su altri siti

17 minuti fa, Giuseppe-IT9 ha scritto:

su una lettura di 2 ore

word 0 leggo costantemente sempre lo stesso valore

word 1 leggo un valor che incrementa con il passare del tempo

 

Beh, è corretto. E' una long a 32 bit, mi aspetto che la word alta non cambi così frequentemente come la word bassa. Ad un certo punto avrai l'overflow della word bassa e l'incremento della word alta. Non vedo errori. 

Alcuni strumenti, tuttavia, hanno un numero massimo di interrogazioni al giorno, per evitare il flooding. Non so se questo può essere il problema.

 

Do per scontato che tu verifichi il CRC del messaggio, quindi la validità della trasmissione, vero?

E do per scontato che ci sia un solo master in rete, e che i tempi del round robin siano compatibili con la latenza del dispositivo, vero?

Modificato: da NoNickName
Link al commento
Condividi su altri siti

8 minuti fa, NoNickName ha scritto:

 

Beh, è corretto. E' una long a 32 bit, mi aspetto che la word alta non cambi così frequentemente come la word bassa. Ad un certo punto avrai l'overflow della word bassa e l'incremento della word alta. Non vedo errori. 

Alcuni strumenti, tuttavia, hanno un numero massimo di interrogazioni al giorno, per evitare il flooding. Non so se questo può essere il problema.

Perfetto grazie.

 

Per quanto riguarda il numero di interrogazioni al giorno, separo l'interrogazione degli strumenti per non interrogarli nello stesso istante. Questo strumento che ho preso

 in esempio lo interrogo ogni 10 secondi.

Link al commento
Condividi su altri siti

Do per scontato che tu verifichi il CRC del messaggio, quindi la validità della trasmissione, vero?

E do per scontato che ci sia un solo master in rete, e che i tempi del round robin siano compatibili con la latenza del dispositivo, vero?

Link al commento
Condividi su altri siti

1 minuto fa, NoNickName ha scritto:

Do per scontato che tu verifichi il CRC del messaggio, quindi la validità della trasmissione, vero?

E do per scontato che ci sia un solo master in rete, e che i tempi del round robin siano compatibili con la latenza del dispositivo, vero?

- In realtà non verifico il CRC,

- per il Master si 1 solo per ogni rete modbus

- baud rate si, rispettano la velocità dei vari strumenti

Link al commento
Condividi su altri siti

2 ore fa, Giuseppe-IT9 ha scritto:

- In realtà non verifico il CRC,

- per il Master si 1 solo per ogni rete modbus

- baud rate si, rispettano la velocità dei vari strumenti

 

Sarebbe meglio verificare il CRC, per scongiurare proprio i problemi di un singolo bit che flippa e di cambia un intero ulong.

Link al commento
Condividi su altri siti

9 ore fa, pcontini ha scritto:

image.png.a045956c69e7a0b5e9922d25bfb5d0a8.png

 

Tu dici che utilizzi il formato Signed ma la tabella indica Unsigned

 

Lui parlava inizialmente del registro 102E, ma nella realtà poi interroga il 103E. 

I due registri, come giustamente fai notare, hanno un formato diverso, ulong per il 103E, slong per il 102E

 

Link al commento
Condividi su altri siti

Buon pomeriggio, monitorando le 2 word del registro 103E in modo singolo, ecco quello che si evince, in pratica, oggi, alle 10:51:40 il valore è andato a 0 per incominciare a contare.

Cosa strana che ho notato è che nello stesso istante, alle 10:51:40 la word 0 ha effettuato un'incremento. allego grafici

Devo ancora fare il controllo CRC.

 

Grazie

 

image.png.991192eae55b96d35ec3e1882826b162.pngimage.png.9c76cf4531681fe441f7f23d7c8b7a4d.png

Link al commento
Condividi su altri siti

Tra le cosa da controllare :

- può essere che tu stia leggendo il registro sbagliato a causa dell'offset. Spesso si indica il n° del registro ma con il modbus occorre fare +1 oppure -1 (dipende). Nel tuo caso stai leggendo il registro 103E (quindi 4158 e 4159), potrebbe esser che tu sia sfasato di 1. Per avere la certezza che non esista l'offset ti basta leggere un valore che registro singolo (1 word)

- potrebbe essere che tu stia leggendo i registri corretti ma che tu li stia interpretando al contrario (word alta/bassa) : verifica come i meter impostano l'ordine delle word nella configurazione (oppure nelle specifiche del protocollo). Spesso è possibile impostare negli strumenti l'ordine delle word ...

 

Altro non saprei cosa suggerirti : ma da come descrivi il problema mi sento di escludere che si tratti di errore di comunicazione.

Link al commento
Condividi su altri siti

3 ore fa, Giuseppe-IT9 ha scritto:

Buon pomeriggio, monitorando le 2 word del registro 103E in modo singolo, ecco quello che si evince, in pratica, oggi, alle 10:51:40 il valore è andato a 0 per incominciare a contare.

Cosa strana che ho notato è che nello stesso istante, alle 10:51:40 la word 0 ha effettuato un'incremento. allego grafici

Devo ancora fare il controllo CRC.

 

 

Scusa ma ci daresti per favore i valori grezzi esadecimali prima e dopo l'evento?

Cosa vuol dire 2214.5 e 122.90?

Questi sono numeri interi a 32bit non float.

Modificato: da NoNickName
Link al commento
Condividi su altri siti

4 minuti fa, Giuseppe-IT9 ha scritto:

Buon pomeriggio, NoNickName in allegato trovi il trend prima e dopo l'evento con i valori grezzi esadecimali.

 

image.thumb.png.dcf50fe38a8afe3c84453406391a878a.png

 

E gli altri sedici bit? Questi sono 16 della prima word, che è la word bassa sicuramente perchè fa rollover tra FFFF e 0000

Link al commento
Condividi su altri siti

Ipotizzo che la word alta passi da 04CD a 04CE (1229 a 1230 decimale)

La word bassa bassa da FFF5 a 0004

 

Il che significa che l'ulong passa da 04CDFFF5 a 04CE0004

In decimale ciò significa che il contatore passa da 80565589 a 80609284 x100 Wattora, quindi 805655,89 e 806092,84 Wattora ovvero 805,65 e 806,09 kWh

Non c'è nessun salto... solo il rollover dei 16 bit bassi

Modificato: da NoNickName
Link al commento
Condividi su altri siti

E poi da 04CE0004 passa a 04CE1D82, cioè passa da 80609284 a 80616834, cioè da 806092,84 a 806168,34 Wattora e cioè da 806,09 a 806,16 kWh

Modificato: da NoNickName
Link al commento
Condividi su altri siti

Ciao NoNickName, sei stato molto esaustivo e preciso, il funzionamento delle word è chiaro, tuttavia non capisco come mai, al cambio del rollover dei 16 bit bassi, leggo questi valori:

word alta: prima del rollove 04CD           dopo il rollover 0007

word bassa: prima del rollover FFF5       dopo il rollover B24B

poi dopo un po di tempo, in questo strumento dopo quasi un'ora, la lettura delle word diventa:

word alta: 04CE

word bassa: 0004

e si rimette in linea.

 

Grazie per il tempo che mi stai dedicando.

Link al commento
Condividi su altri siti

2 minuti fa, Yiogo ha scritto:

aggiungi a questo che in relazione al "cosa usi come master" potresti avere problematiche di endian E/O di word order

 

Il 9/11/2023 alle 17:52 , max.riservo ha scritto:

- potrebbe essere che tu stia leggendo i registri corretti ma che tu li stia interpretando al contrario (word alta/bassa) : verifica come i meter impostano l'ordine delle word nella configurazione (oppure nelle specifiche del protocollo). Spesso è possibile impostare negli strumenti l'ordine delle word ...

Due indicazioni sono meglio che una ... magari l'attenzione si rivolge anche a questo aspetto

Link al commento
Condividi su altri siti

17 ore fa, Giuseppe-IT9 ha scritto:

Ciao NoNickName, sei stato molto esaustivo e preciso, il funzionamento delle word è chiaro, tuttavia non capisco come mai, al cambio del rollover dei 16 bit bassi, leggo questi valori:

word alta: prima del rollove 04CD           dopo il rollover 0007

word bassa: prima del rollover FFF5       dopo il rollover B24B

 

 

Non è vero, si vede benissimo che il valore che hai plottato sui grafici passa da 1229 e 1230, e cioè 04CD a 04CE. Non passa mai da 0007.

E l'altro valore passa da FFF5 a 0004.

Controlla il tuo codice, per me stai mischiando le word

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...