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 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'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 <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)

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”

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.

E' possibile modificare i vari parametri del contatore anche mediante il software Modscan32 come indicato in questa specifica 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.

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.


  • sdm120c_guida.1526981282.txt.gz
  • Ultima modifica: 2018/05/22 11:28
  • da flane