====== Guida all'uso dello script sdm120c ======
Cerchiamo di capire come funziona questo script creato da [[https://github.com/gianfrdp|Gianfranco di Prinzio]], indispensabile per la lettura dei contatori modbus della Eastron.
In particolare il software funziona con i seguenti modelli:
|EASTRON SDM120C|
|EASTRON SDM120modbus|
|EASTRON SDM220modbus|
|EASTRON SDM230modbus|
|EASTRON SDM120CTmodbus|
|EASTRON SDM630modbus (contatore trifase - legge solo i valori relativi alla prima fase)|
L'[[https://github.com/gianfrdp/SDM120C|attuale versione]] dello script è la 1.3.5.3
Digitando da terminale semplicemente // sdm120c // senza nessuna opzione, il software ci restituisce alcune righe di spiegazione delle varie opzioni disponibili:
sdm120c 1.3.5.3: ModBus RTU client to read EASTRON SDM120C smart mini power meter registers
Copyright (C) 2015 Gianfranco Di Prinzio
Complied with libmodbus 3.0.6
Usage: sdm120c [-a address] [-d] [-x] [-p] [-v] [-c] [-e] [-i] [-t] [-f] [-g] [-T] [[-m]|[-q]] [-b baud_rate] [-P parity] [-S bit] [-z num_retries] [-j seconds] [-w seconds] [-1 | -2] device
sdm120c [-a address] [-d] [-x] [-b baud_rate] [-P parity] [-S bit] [-1 | -2] [-z num_retries] [-j seconds] [-w seconds] -s new_address device
sdm120c [-a address] [-d] [-x] [-b baud_rate] [-P parity] [-S bit] [-1 | -2] [-z num_retries] [-j seconds] [-w seconds] -r baud_rate device
sdm120c [-a address] [-d] [-x] [-b baud_rate] [-P parity] [-S bit] [-1 | -2] [-z num_retries] [-j seconds] [-w seconds] -R new_time device
Required:
device Serial device (i.e. /dev/ttyUSB0)
Connection parameters:
-a address Meter number (1-247). Default: 1
-b baud_rate Use baud_rate serial port speed (1200, 2400, 4800, 9600)
Default: 2400
-P parity Use parity (E, N, O)
-S bit Use stop bits (1, 2). Default: 1
-1 Model: SDM120C (default)
-2 Model: SDM220
Reading parameters (no parameter = retrieves all values):
-p Get power (W)
-v Get voltage (V)
-c Get current (A)
-l Get apparent power (VA)
-n Get reactive power (VAR)
-f Get frequency (Hz)
-o Get phase angle (Degree)
-g Get power factor
-i Get imported energy (Wh)
-e Get exported energy (Wh)
-t Get total energy (Wh)
-A Get imported reactive energy (VARh)
-B Get exported reactive energy (VARh)
-C Get total reactive energy (VARh)
-T Get Time for rotating display values (0=no rotation)
-m Output values in IEC 62056 format ID(VALUE*UNIT)
-q Output values in compact mode
Writing new settings parameters:
-s new_address Set new meter number (1-247)
-r baud_rate Set baud_rate meter speed (1200, 2400, 4800, 9600)
-N parity Set parity and stop bits (0-3)
0: N1, 1: E1, 2: O1, 3:N2
-R new_time Set rotation time for displaying values (0=no rotation)
SDM120: (0-30s)
SDM120: (m-m-s-m) Demand interval, Slide time, Scroll time, Backlight time
-M new_mmode Set total energy measurement mode (1-3)
1: Total=Import, 2: Total=Import+Export, 3: Total=Import-Export
Fine tuning & debug parameters:
-z num_retries Try to read max num_retries times on bus before exiting
with error. Default: 1 (no retry)
-j 1/10 secs Response timeout. Default: 2=0.2s
-D 1/1000 secs Delay before sending commands. Default: 0ms
-w seconds Time to wait to lock serial port (1-30s). Default: 0s
-W 1/1000 secs Time to wait for 485 line to settle. Default: 0ms
-y 1/1000 secs Set timeout between every bytes (1-500). Default: disabled
-d debug_level Debug (0=disable, 1=debug, 2=errors to syslog, 3=both)
Default: Fatal errors to syslog + fatal errors to stderr
-x Trace (libmodbus debug on)
Come visibile il software permette la lettura di tutte le grandezze misurate dal contatore ed anche la possibilità di impostare i diversi parametri del contatore stesso, come l’indirizzo, la velocità.
Di default, se non specificato diversamente nella riga di comando, il software assumerà:
·indirizzo a: 1
·velocità b: 2400 baud
·Stop bits S: 1
·Numero di tentativi z: 1
·Tempo di risposta j: 2 (0,2s)
===== Opzione -w =====
Questo parametro, pur essendo fra gli ultimi arrivati, è molto importante e merita di essere chiarito. E’ infatti indispensabile utilizzarlo nel caso in cui si utilizzano più contatori sullo stesso bus e letti da diversi software (come nel caso in cui si utilizzi un contatore per la produzione con 123solar ed uno per i consumi con MeterN). In tale caso infatti, potrebbero verificarsi delle collisioni fra le due richieste di lettura sullo stesso bus, e questo provocherebbe il blocco delle letture stesse.
L’utilizzo del parametro –w evita questo problema, mettendo in coda la seconda richiesta fino a che la prima non è stata completata e per il tempo in secondi indicato. In tale caso vi suggerisco quindi l’utilizzo di “– w 10”
===== Esempi =====
Vediamo di seguito alcuni esempi di utilizzo del software, che si spiegano meglio di molte parole.
==== Versione software ====
Per __ verificare la versione del software __ , da terminale digitare semplicemente il comando sdm120c e fra le prime righe di informazioni visualizzate comparirà anche la versione del software.
==== Cambio indirizzo contatore ====
Per __ cambiare l’indirizzo del dispositivo __ da 1 a 2, premere il pulsante frontale sul contatore per 3 secondi, fino a che compare la scritta - SET – sul display, quindi da terminale digitare (ipotizzando la parità del contatore = None):
sdm120c -a 1 -b 2400 -s 2 –P N -z3 -j10 -w10 /dev/ttyUSB0
New address 2
You have to restart the meter for apply changes
Riavviare il contatore staccando e riattaccando la fase in ingresso.
E' possibile modificare i vari parametri del contatore anche mediante il software **Modscan32** come indicato in questa specifica [[modscan32|GUIDA]]
==== Modifica velocità bus ====
Per __ cambiare la velocità di trasmissione __ da 2400 a 9600 del contatore (dopo il parametro -a va messo l’indirizzo del vostro contatore) :
sdm120c -a 2 -b 2400 -r 9600 –P N -z3 -j10 -w10 /dev/ttyUSB0
New baud_rate 2
You have to restart the meter for apply changes
Riavviare il contatore staccando e riattaccando la fase in ingresso.
E' possibile modificare i vari parametri del contatore anche mediante il software **Modscan32** come indicato in questa specifica [[modscan32|GUIDA]]
==== Lettura potenza istantanea ====
Quindi, per __ leggere la sola potenza istantanea __ del contatore con indirizzo 2 e velocità 9600 e parità none (N)
sdm120c -a2 -b9600 -PN -z3 -j10 -w10 -p /dev/ttyUSB0
**NOTA: ** Una volta modificato l’indirizzo o la velocità del contatore sarà sempre necessario specificare il relativo valore fra le opzioni, in quanto se omessi, il software assume i valori previsti di default e non vi verrà restituita nessuna lettura.
\\