Questa è una vecchia versione del documento!
Guida all'uso dello script sdm120c
Cerchiamo di capire come funziona questo script creato da Gianfranco di Prinzio, indispensabile per la lettura dei contatori modbus delal 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 |
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 <gianfrdp@inwind.it> 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 versioen 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.
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.
Lettura potenza istantanea
Quindi, per leggere la sola potenza istantanea del contatore con indirizzo 2 e velocità 9600
sdm120c -a 2 -b 9600 -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.