Energy meter Eastron SDM120C lettura tramite RS485 Modbus

Ciao. E' passato un po' di tempo, ma l'argomento non l'ho dimenticato. Ieri finalmente sono riuscito a completare la catena SDM120C + adattatore RS485/TTL + adattatore TTL/USB_seriale CP2102 e ad interrogare il meter con il programmino di modbus.pl.

Nota per chi volesse riprodurre il tutto. Ho connesso assieme le linee di controllo RE/DE e le ho portate al pin RTS dell'adattatore seriale. Serve per controllare la direzione del dati. Dubito che funzioni qualcosa senza di essa. Ma ho fatto tutto nei 10 minuti che avevo a

8n1, 8e1, 8o1, 8n2.

Ecco il dump da vedere con un font fixed-size tipo Courier New:

QUERY [01][04][00][00][00][64][F1][E1] 'Richiedo 0x64 (100 dec) registri a partire dalla locazione 0 RESPONSE [01][04][C8] 'Ne restituisce 0xC8 (200 dec) byte

1 [43][61][E6][66] 225.9 V Voltage 3 [00][00][00][00] 5 [00][00][00][00] 7 [3F][C7][AE][14] 1.56 A Current 9 [00][00][00][00] 11 [00][00][00][00] 13 [43][A3][A6][66] 327.3 W Active power 15 [00][00][00][00] 17 [00][00][00][00] 19 [43][B0][33][B6] 352.4 VA Apparent power 21 [00][00][00][00] 23 [00][00][00][00] 25 [43][02][A0][64] 130.62 VAr Reactive power 27 [00][00][00][00] 29 [00][00][00][00] 31 [3F][6A][C0][F9] 0.917 Power factor 33 [00][00][00][00] 35 [00][00][00][00] 37 [00][00][00][00] 39 [00][00][00][00] 41 [00][00][00][00] 43 [00][00][00][00] 45 [00][00][00][00] 47 [00][00][00][00] 49 [00][00][00][00] 51 [00][00][00][00] 53 [00][00][00][00] 55 [00][00][00][00] 57 [00][00][00][00] 59 [00][00][00][00] 61 [00][00][00][00] 63 [00][00][00][00] 65 [00][00][00][00] 67 [00][00][00][00] 69 [00][00][00][00] 71 [42][48][28][F6] 50.04 Hz Frequency 73 [43][17][88][31] 151.532 kWh Import active energy 75 [00][00][00][00] Export active energy 77 [42][44][B6][46] 49.17 kvah Import reactive energy 79 [00][00][00][00] Export reactive energy 81 [00][00][00][00] 83 [00][00][00][00] 85 [00][00][00][00] 87 [00][00][00][00] 89 [00][00][00][00] 91 [00][00][00][00] 93 [00][00][00][00] 95 [00][00][00][00] 97 [00][00][00][00] 99 [00][00][00][00] [E0][7E] Nota: arrivano le 100 coppie di byte chieste, per un totale di 200 byte

I dati decodificati combaciano con quanto mostrato sul display. :-)

Appena riesco a ristabilire la comunicazione provo a leggere gli holding

PaoloC

Reply to
PaoloC
Loading thread data ...

Dopo aver strapazzato l'unico neurone rimasto, PaoloC il 15/10/2015 ha pensato bene di dire:

STRACUT

Neppure io ma avevo perso le speranze... Tu in 10 minuti sei riuscito a fare quello che sto tentando di fare da 3 settimane.... fantastico... :-( :-(

di riprodurlo per poi "tentare" di spostarlo su Arduino (la vedo durissima). Grazie comunque per l'impegno e mi tengo collegato alla discussione che mi interessa da matti.

--
Franco
Reply to
Franzthepanz

Dopo aver strapazzato l'unico neurone rimasto, Franzthepanz il 15/10/2015 ha pensato bene di dire:

Ma buttare su un pezzo di carta uno schemino alla veloce e foto + inserimento su web? Chiedo troppo? :D

E' necessario usare due conversioni 485>TTL ed TTL>US ? Non si potrebbe usare questo

formatting link

??

--
Franco
Reply to
Franzthepanz

Se invece hai i due pezzi separati, le connessioni sono:

485>TTL 5V TTL/USB 5V 485>TTL GND TTL/USB GND 485>TTL TTL/USB 485>TTL TTL/USB 485>TTL TTL/USB 485>TTL TTL/USB 485>TTL TTL/USB
Reply to
PaoloC

Se hai i due pezzi separati, le connessioni sono:

485>TTL 5V TTL/USB 5V 485>TTL GND TTL/USB GND 485>TTL DE TTL/USB RTS 485>TTL RO TTL/USB RXD 485>TTL DI TTL/USB TXD

E poi gli A/B RS845 verso lo slave. RXD/TXD potrebbero essere invertiti dato che ognuno gli da il significato che vuole (o semplicemente serigrafia errata :) ).

Attenzione. Ieri sera, rivedendo i collegamenti ho invertito A con B e il SDM120C andava in palla, con reboot continui con il semplice collegamento elettrico. L'adattatore fino al laptop non erano connessi alla rete elettrica, solo batteria, quindi non c'erano loop di corrente o differenze di potenziale. Il 485 non dovrebbe essere bilanciato, e

Comunque, sono riuscito nuovamente ad interrogare l'SDM120C. Il software di mtester.pl continua a dare errore sui dati ricevuti, quindi il

interrogazione mediata da Arduino.

PaoloC

Reply to
PaoloC

Sono di nuovo fermo. Nonostante ripetuti tentativi, il convertitore RS485/TTL scalda e non comunica. Purtroppo non posso avvicinare il circuito adattatore ad un oscilloscopio. E ovviamente non ho un altro convertitore. Si, ho cambiato porta USB. Uffa.

Non vorrei che il guasto sia dovuto al fatto che per un po' ho invertito i segnali A e B, pensando che essendo differenziale non ci fosse

questa volta ne prendo anche uno direttamente USB/RS485.

PaoloC

PS: a meno che qualcuno interessato all'esperimento abbia un convertitore che gli avanza e si trovi a Torino, per un acquisto/scambio/prestito diretto.

Reply to
PaoloC

Dopo aver strapazzato l'unico neurone rimasto, PaoloC il 19/10/2015 ha pensato bene di dire:

Paolo, ci sei ancora o hai abbandonato l'impresa? Io ancora confido nella tua sapienza per capire come fare a leggere sti benedetti dati ad Arduino...

--
Franco
Reply to
Franzthepanz

Ci sono Franz, ma sono ancora senza adattatore RS485! Quei pezzi sono in viaggio da una ventina di giorni. Avrei dovuto prenderli in Italia/Europa, ma sapevo che a novembre non avrei comunque avuto tempo per applicarmi sull'Eastron.

PaoloC

Reply to
PaoloC

Dopo aver strapazzato l'unico neurone rimasto, PaoloC il 26/11/2015 ha pensato bene di dire:

Benissimo,a me sono arrivati ieri due adattatori e con domani provo a capire come fare

Certo, rimaniamo connessi per cercare di risolvere sta cosa. A presto

--
Franco
Reply to
Franzthepanz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.