Mi Piace! Mi Piace!:  5
NON mi piace! NON mi piace!:  0
Grazie! Grazie!:  4
Pagina 1 di 21 123456789101112131415 ... ultimoultimo
Visualizzazione dei risultati da 1 a 20 su 420

Discussione: Misuratore di consumi con seriale RS485 - SDM120

  1. #1
    Seguace

    User Info Menu

    Predefinito Misuratore di consumi con seriale RS485 - SDM120



    Ciao a tutti,
    volevo mettere in evidenza questo interessante misuratore di consumi, che oltre ad avere l'uscita ad impulsi è anche dotato di interfaccia seriale RS485.

    Misuratore di consumi RS485 da barra DIN

    Analizzatore di rete su LAN con il sollae CSE-H55

    eventualmente anche acquistabile nel mercato asiatico alla modica cifra di 12-16$
    SDM120C Single Phase Energy Meter, Modbus RS485 Meter,LCD Display, Mono Phase Meter,MID Pending

    Visto la completezza dei dati ricavabili (tensione, corrente, fattore di potenza, energia, frequenza, ecc...) e l'estrema precisione di cui è dotato, credo che potrebbe essere utilizzato per il monitoraggio energetico.

    Visto poi anche il prezzo di 45 euro (in italia) .......

    Se qualche buonanima un pò più competente di me in materia fosse in grado di scrivere uno script php da poter utilizzare con un raspberry o altro ...........
    Ultima modifica di flane; 18-08-2014 a 14:36

  2. #2
    Seguace

    User Info Menu

    Predefinito

    Aggiungo alcune interessanti informazioni:

    Ho trovato uno script che esegue la lettura della potenza su un misuratore EM24DIN Carlo Gavazzi (simile a quello riportato sopra) tramite RS485 :
    MODBUS facile con PHP che usa questo Protocollo di comunicazione

    Credo che può essere un’ottima base di partenza e con poche modifiche possa essere adattato per leggere i vari parametri energetici che può fornire l’SDM120C.

    Questo è il Protocollo di comunicazione per l'SDM120C

    Chi mastica un po’ di linguaggio php più di me penso possa farlo facilmente, si tratta di fare qualche piccolo aggiustamento e poi magari come possibile evoluzione estrarre non solo la potenza totale, ma tutte le grandezze energetiche che questo misuratore può fornire:
    ScreenShot001.jpg

    Dai forza, chi mi può dare una mano ?
    Grazie a tutti in anticipo.

  3. #3
    Pietra Miliare

    User Info Menu

    Predefinito

    Ciao,
    ho implementato il programma per leggere i parametri.
    codice:
    pi@raspberrypi ~/modbus $ ./smd120c
    Usage: ./smd120c [-a address] [[-s new_address] | [-p] [-v] [-c] [-e] [-i] [-t] [-b baud_rate]] device
    
    where
            -a address      Meter number (between 1 and 247). Default: 1
            -s new_address  Set new meter number (between 1 and 247)
            -p              Get power (W)
            -v              Get voltage (V)
            -c              Get current (A)
            -e              Get exported energy (kWh)
            -i              Get imported energy (kWh)
            -t              Get total energy (kWh)
            -b baud_rate    Use baud_rate serial port speed (1200, 2400, 4800, 9600). Default: 2400
            device          Serial device, i.e. /dev/ttyUSB0
    
    Serial device is required. When no parameter is passed, retrives all values
    pi@raspberrypi ~/modbus $ ./smd120c -a 3 -p /dev/ttyUSB0
    
    Power: 49.20 W
    
    pi@raspberrypi ~/modbus $ ./smd120c -a 3 -i /dev/ttyUSB0
    
    Import Active Energy: 0.81 KWh
    
    pi@raspberrypi ~/modbus $ ./smd120c -a 3 /dev/ttyUSB0
    
    Voltage: 228.80 V
    
    
    Current: 0.24 A
    
    
    Power: 51.50 W
    
    
    Import Active Energy: 0.82 KWh
    
    
    Export Active Energy: 0.00 KWh
    
    
    Total Active Energy: 0.82 KWh


    Devo testare 2 contatori collegati in serie.
    La documentazione dei comandi non è completamente corretta, ne ho trovata un'altra con i comandi giusti.
    Prossimamente posto i dettagli
    Ultima modifica di gianfrdp; 19-01-2015 a 06:30
    Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
    PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

  4. #4
    Seguace

    User Info Menu

    Predefinito

    Ottimo gianfrdp,
    ho fatto anch'io qualche prova con il programmino in C di questo sito:

    Raspberry Pi ModBus Energy Meter 2

    Vedo che tu hai personalizzato il tutto per benino in modo da dare i parametri da linea di comando.
    Attendo con ansia i tuoi dettagli.

    Scusa ti chiedevo una cosa.
    Io uso già l'RS485 per le lettura dei dati dall'inverter, ma in quel caso la velocità è impostata a 19200 baud (Inverter Power-One).
    Avendo velocità diverse è d'obbligo l'uso di due adattatori USB-RS485 diversi per leggere inverter e consumi vero ?

    Grazie

    PS: più contatori non vanno collegati in serie, ma tutti in parallelo con indirizzi diversi. Ma ovviamente lo sapevi già, la mia era solo una puntualizzazione.

  5. #5
    Moderatore

    User Info Menu

    Predefinito

    ... mi era sfuggito questo post!

    Direi che ci siamo! Per le varie schede rs485 penso basti un solo adattatore rs485 to lan.

    Tutti gli apparati rs485 hanno un indirizzo e possono essere collegati in serie (almeno una 30ina!). Chiaramente si deve impostare se possibile la stessa velocità, bit di stop e parità etc.

    Inoltre sul sito postato da flane ci sono anche delle schede relè controllabili via seriale..... per la gestione futura dei carichi!

    Per tutti gli apparati serve la tabella di riferimento con le posizioni dove ogni tipologia di misuratore memorizzai i dati, per il resto tutti i programmi-listati potrebbero essere standard....

    Sono bravi sti ragassi!!!!

  6. #6
    Paladino del Forum

    User Info Menu

    Predefinito

    GRANDE Gianfrdp

  7. #7
    Pietra Miliare

    User Info Menu

    Predefinito

    codice:
    pi@pi-alarm ~ $ sudo apt-get install libmodbus-dev
    pi@pi-alarm ~ $ unzip sdm120c-1.0.zip
    pi@pi-alarm ~ $ cd sdm120c-1.0
    pi@pi-alarm ~/sdm120c-1.0 $ make clean
    pi@pi-alarm ~/sdm120c-1.0 $ make
    pi@pi-alarm ~/sdm120c-1.0 $ sudo cp sdm120c /usr/local/bin/
    codice:
    pi@pi-alarm ~/sdm120c-1.0 $ sdm120c
    sdm120c 1.0: ModBus RTU client to read EASTRON SDM120C smart mini power meter registers
    
    Usage: sdm120c [-a address] [[-s new_address] | [-p] [-v] [-c] [-e] [-i] [-t] [-b baud_rate]] device
    
    where
            -a address      Meter number (between 1 and 247). Default: 1
            -s new_address  Set new meter number (between 1 and 247)
            -p              Get power (W)
            -v              Get voltage (V)
            -c              Get current (A)
            -e              Get exported energy (kWh)
            -i              Get imported energy (kWh)
            -t              Get total energy (kWh)
            -b baud_rate    Use baud_rate serial port speed (1200, 2400, 4800, 9600). Default: 2400
            device          Serial device, i.e. /dev/ttyUSB0
    
    Serial device is required. When no parameter is passed, retrives all values
    Il programma l'ho scritto da zero usando la libreria libmodbus, all'inizio come esempio stavo vedendo anche io quello sul sito bulgaro.
    Implementa i comandi di lettura dei valori di potenza (-p), voltaggio (-v), corrente (-c), energia in entrata (-i), in uscita (-e) e totale (-t).
    Inoltre è possibile scegliere l'indirizzo RS485 del contatore (-a), di default è 1, e cambiare l'indirizzo di un contatore (-s).
    Prevede il device del convertitore USB-RS485, tipicamente /dev/ttyUSB0, ma potrebbe essere anche /dev/ttyUSB1, ecc.

    Per cambiare l'indirizzo del dispositivo da 1 a 2, premere il pulsante sul contatore per 3 secondi, comapre la scritta - SET -, quindi
    codice:
     sdm120c -a 1 -s 2 /dev/ttyUSB0
    Riavviare il contatore staccando e riattaccando la fase in ingresso.

    Quindi, per leggere la potenza istantanea del contatore con indirizzo 2
    codice:
     sdm120c -a 2 -p /dev/ttyUSB0
    In allegato il programma compilato su Raspbian con il sorgente e il protocollo corretto del contatore.

    Ora manca da fare un pooler per meterN: poiché meterN ogni 5 min legge l'energia consumata in quell'intervallo, ma il contatore restituisce solo l'energia totale e non parziale, ad ogni lettura dell'energia bisogna salvare il valore letto e alla lettura successiva fare la differenza

    PS: si intendevo in parallelo (A-A, B-B),
    PPS: non sono sicuro che sullo stesso connettore RS485 possa funzionare aurora e sdm120c, potrebbero andare in lock tra di loro visto che bisognerebbe fare un doppio poll... è da provare.
    File Allegati File Allegati
    Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
    PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

  8. #8
    Seguace

    User Info Menu

    Predefinito

    Grande Gianfrdp

    Io ho provato a metter il contatore sullo stesso bus con l'aurora, ma non riuscivo più a leggere l'inverter (pur avendo indirizzi diversi)
    ma forse ho sbagliato qualcosa io ... non sono bravo in queste cose ....
    ho risolto usando due adattatori usb-rs485 diversi, uno per l'inverter ed uno per i contatori.

    Ho visto che il mio contatore è impostato a 2400 baud, sai anche il comando per impostare la velocità ?
    Forse potresti implementare anche questa modifica ?

    Grazie

  9. #9
    Pietra Miliare

    User Info Menu

    Predefinito

    Per ora non ho implementato tutti i comandi riconosciuti dal contatore.
    Potrei implementarlo, ma la velocità selezionabile è una tra 1200, 2400, 4800, 9600
    Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
    PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

  10. #10
    Seguace

    User Info Menu

    Predefinito

    Certo ho visto che la massima velocità è 9600 baud e non 19200, ma il mio interesse non era per avere la stessa velocità con l'inverter, ma semplicemente per velocizzare l'operazione di lettura perchè ho notato che comunque impiega un certo tempo e credo che poter avere una lettura live più veloce su metern migliori le cose.

    Pensando poi che si possono inserire anche diversi sensori per monitorare anche tensione, cos fi ........

    Comunque rinnovo i complimenti per il lavoro fatto.

    Appena definito il tutto per l'uso con metern provvederò sicuramente ad integrare la guida.

  11. #11
    Seguace

    User Info Menu

    Predefinito

    Gianfrdp complimenti per il lavoro svolto, appena abbiamo i contatori iniziamo il test, volevo fare solo una puntualizzazione riguardo al consumo su metern, metern non ha bisogno della differenza dell'energia consumata, ha solo bisogno del totale progressivo ogni 5', la differenza la calcola lui, del resto fa lo stesso con la produzione, quindi ricapitolando, i valori necessari a metern sono: potenza istantanea per il live e totale kWh per il consumo.
    14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
    Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
    Eflow Live rev. 3.2
    (funziona anche con multi inverter e multi contatori consumo)

  12. #12
    Paladino del Forum

    User Info Menu

    Predefinito

    SE non e' settabile 19200 , mi sa' che non si possa usare la stessa rete 485 a cui e' connesso Aurora (forse se si puo' abbassare auroara a 9600) , sarebbe un casino ad ogni lettura cambiare la velocita con stty ....da un punto di vista hardware invece sarebbe perfetto con un unico doppino telefonico ho cablato casa e ci connetto quello che volgio , esistono anche rele 485 quindi per accendere/spegnere carichi......

    Cosi ad occhio , fa' un po' come il protocollo per leggere i Danfoss TLX che e' (o deve essere simile al) modbus http://www.danfoss.com/NR/rdonlyres/...HE20110513.pdf , manda una stringa per leggere un dato aspetta la ricezione e alla fine per leggere i 13-14 dati che mi interessano ci mette 5-6" per inverter.....

    concordo con scresan , va bene (anzi meglio) il totale progressivo della energia , e l'istantanea....

  13. #13
    Seguace

    User Info Menu

    Predefinito

    Quote Originariamente inviata da ninodifranco Visualizza il messaggio
    .... metern non ha bisogno della differenza dell'energia consumata, ha solo bisogno del totale progressivo ogni 5', la differenza la calcola lui, del resto fa lo stesso con la produzione, quindi ricapitolando, i valori necessari a metern sono: potenza istantanea per il live e totale kWh per il consumo.
    Scusa Nino,
    ma tu intendi che usando direttamente il pooler.php di metern, opportunamente modificato inserendo ovviamente il comando per la lettura del contatore totale di energia attiva via RS485 dovrebbe funzionare?

    Qui:

    http://metern.org/

    in "Pulse meters Guide", nella sezione "Main pooling", non mi sembra dica così, ma dice di dargli il valore negli ultimi 5 minuti e lui lo somma al precedente valore registrato nei csv ....


    Lo script java della mia guida, dà a metern le differenza di energia consumata nei 5' e non il conteggio totale .... e così metern funziona.
    Secondo me a ragione gianfrdp ......

  14. #14
    Seguace

    User Info Menu

    Predefinito

    no, flane il tuo script java fa il contrario, in pratica usa un totalizzatore virtuale, che implementa ogni 5 minuti,
    visto che il contatore ad impulsi non ha un contatore totale ma riesce a leggere solo il parziale tramite impulsi,
    a metern invece serve il totale in questo formato (0.0*Wh)
    lo script di gianfranco non so in quale formato restituisce i valori, se li restituisce in altro formato e sicuramente in kWh,
    bisogna fare un piccolo pooler che trasformi il dato letto nel formato giusto.
    il lavoro di implementare il contatore ogni 5 minuti lo fa il file pooler.php dato che il progetto di Jean Mark utilizza arduino e misuratori senza totalizzatore, ma a noi non serve il pooler.php, visto che gia abbiamo il totale del contatore.
    Ultima modifica di ninodifranco; 19-01-2015 a 11:11
    14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
    Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
    Eflow Live rev. 3.2
    (funziona anche con multi inverter e multi contatori consumo)

  15. #15
    Pietra Miliare

    User Info Menu

    Predefinito

    Sono sicuro che meterN con Arduino legge i consumi parziali dei 5 min e poi resetta il valore, perché lo sto usando.

    Lo script pooler.php riporta
    codice:
        if ($argv[1] == 'elect') {
            $metnum = 1;
            $cmd    = "$pathtomn/comapps/poolmeters.py relect"; // Request counters values during a 5 min period
    Il programma poolmeters.py se usato con il parametro relect:
    codice:
     if sys.argv[1] == 'relect': # Elect & reset counter
            ...
            ser.write("relect\n".encode("utf-8"))
    Che su arduino corrispondere ad azzerare il contatore di kWh e restituire il valore accumulato nell'intervallo.
    Infatti in poolermeter.ino
    codice:
       else if (inputString == "relect") { // Retrieve values during a 5min period and put counter to zero. pooler.php will then increment the total counter.
            String str_out = String(countE);
            countE = 0;
            Serial.println("1(" + str_out + "*Wh)"); // ID(VALUE*UNIT)
          }

    Sempre nel file nel file pooler.php
    codice:
    $lastval += $prevval;
    quindi somma al valore dei 5 min (parziale) letto l'ultimo valore nel CSV

    Infatti nel sito di meterN riporta
    The Main pooling :
    Since the counter should always increase until it pass-over and can't return to zero (after a surge or if the arduino is reseted), the solution is to read the last recorded value in the daily csv and increment this record with the counting during the 5 min pooling period. Then, put to zero the arduino counter and so on..
    It mean that even if meterN or the logger is stopped, the counter will always be increased and metered as long as the arduino is powered !
    This is what the 'pooler.php' example script does.
    Per funzionare con il contatore ModBus bisogna adattare il pooler.php (oltre ad invocare sdm120c o un wrapper o aggiungo l'output nel formato meterN) eliminando quella riga della somma perché il valore in kWh è gia il totale. Oppure salvarsi l'ultimo valore letto e poi al giro successivo calcolare la differenza.
    sdm120c restituisce l'unico valore che riporta il contatore: kWh totali
    Ultima modifica di gianfrdp; 19-01-2015 a 11:22
    Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
    PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

  16. #16
    Seguace

    User Info Menu

    Predefinito

    esatto gianfranco, noi abbiamo gia il totale che ci fa il nostro contatore, quindi non dobbiamo sommare niente, dobbiamo solo convertire i kWh in Wh
    adattandoli al formato 0.0*Wh, e niente più
    se questo lavoro lo faceva lo script di lettura si poteva gia dare il valore direttamente a metern.

    questa è la traduzione di quello che fa pooler.php:
    Dal momento che il contatore deve sempre aumentare fino a quando non passa-over e non può tornare a zero (dopo un aumento o se la Arduino è azzerato), la soluzione è quello di leggere l'ultimo valore registrato nel csv quotidiana e incrementare questo record con il conteggio durante il periodo di messa in comune 5 min. Poi, mettere a zero il contatore arduino e così via ..
    E dire che, anche se viene arrestato Metern o il registratore, il contatore sarà sempre aumentato e dosato finché il arduino è alimentato!
    Questo è ciò che il 'pooler.php' script di esempio fa.
    14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
    Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
    Eflow Live rev. 3.2
    (funziona anche con multi inverter e multi contatori consumo)

  17. #17
    Pietra Miliare

    User Info Menu

    Predefinito

    Concordi con me che pooler.php così come è non va bene per questo contatore?
    Cmq stasera provo a lavorarci e fare la modifica
    Impianto FV 5,88 kWp: 24 Canadian Solar CS6P-M 245W, 2 Power One PVI-3.0-OUTD-S-IT, Azimut 0°, Tilt 18°, My PVOutput, SDM120C
    PDC: Panasonic Aquarea 9kW T-CAP + HybridCube HYC343/19/0, radiante a pavimento 120 mq, 2 VMC decentralizzate Mitsubishi VL-100U-E

  18. #18
    Seguace

    User Info Menu

    Predefinito

    Certo che non va bene il pooler così per com'è, a noi serve un pooler che adatti solo il formato dei dati e basta
    a questo punto penso che si dovrebbe adattare anche il valore della potenza istantanea nel formato 12345.0*W

    questo è quello che vuole metern per il totale: "the correct format is 1(1234.5*Wh)"
    e questo è quello che vuole per la potenza: "the correct format is 1(1234.5*W)"
    Ultima modifica di ninodifranco; 19-01-2015 a 11:36
    14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
    Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
    Eflow Live rev. 3.2
    (funziona anche con multi inverter e multi contatori consumo)

  19. #19
    Seguace

    User Info Menu

    Predefinito

    Concordo con quanto riportato da gianfrpd ed anche chi ha sviluppato lo script Java che utilizzo io per gli impulsi, mi ha risposto quanto segue:

    codice:
    Per l'energia restituisco la mera somma degli impulsi ricevuti nei 5' considerando la costante di correzione  cioè dall'ultima lettura ho letto 200 impulsi e ho 2000 imp/kWh? 200/2000 = 0,1 kWh
    
    Quindi se metern è arrivato a 234500 tu gli passi la lettura attuale di 100 Wh e lui si salva 234600. Tu gli devi passare il valore. il demone di metern poi lo somma al suo totale

  20. #20
    Seguace

    User Info Menu

    Predefinito

    *** Citazione integrale rimossa. Violazione art.3 del regolamento del forum. nll ***

    allora siete duri a capire,
    la somma la fa il file pooler.php che viene utilizzato anche con il tuo script, a noi non serve che pooler faccia la somma, noi la somma c'è l'abbiamo gia.
    Ultima modifica di nll; 22-01-2015 a 18:16
    14,805 KWp - 63 moduli Rew Solar RC235 MP60/1 235W - Tilt 13° - Azimut -15° SUD
    Inverter PowerOne Aurora PVI-10.0-OUTD-IT e TRIO-7.5-TL-OUTD
    Eflow Live rev. 3.2
    (funziona anche con multi inverter e multi contatori consumo)

  21. RAD
Pagina 1 di 21 123456789101112131415 ... ultimoultimo

Discussioni simili

  1. Misuratore consumi elettrici
    Da jumpjack nel forum Elettrodomestici e apparecchiature elettriche/elettroniche domestiche
    Risposte: 808
    Ultimo messaggio: 14-11-2018, 12:12
  2. fatto con arduino - misuratore di consumi produzione e differenza con tanti bei led
    Da mflash nel forum Tecnica, componentistica e installazione
    Risposte: 49
    Ultimo messaggio: 11-12-2017, 23:30
  3. Arduino come misuratore di consumi
    Da spider61 nel forum Tecnica, componentistica e installazione
    Risposte: 32
    Ultimo messaggio: 09-12-2015, 17:13
  4. misuratore consumi envir o owl cm 160
    Da skacco nel forum Tecnica, componentistica e installazione
    Risposte: 0
    Ultimo messaggio: 12-02-2013, 15:06
  5. misuratore di consumi --interferenza
    Da kikko900 nel forum Tecnica, componentistica e installazione
    Risposte: 1
    Ultimo messaggio: 05-04-2011, 20:30

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •