EASTRON SDM630 modbus - contatore trifase

Discussioni relative all'uso di contatori SDM120 SDM220 modbus
Avatar utente
Flane
Messaggi: 2056
Iscritto il: 16/01/2016, 15:02

Re: EASTRON SDM630 modbus - contatore trifase

Messaggioda Flane » 08/11/2019, 16:48

Purtroppo nessuno si è fatto vivo che ha rimesso a disposizione il protocollo :( :(

Partendo dal protocollo per sdm120c di 123Solar (i file si trovano nella cartella /var/www/123solar/scripts/protocols) si deve creare un nuovo protocollo per sdm630 che sfrutta il software monitor invece che sdm120c.

Non è difficile ..... ma è da fare e da testare.


michele
Messaggi: 7
Iscritto il: 25/10/2019, 13:25

Re: EASTRON SDM630 modbus - contatore trifase

Messaggioda michele » 11/11/2019, 15:52

Ciao,

ho provato a metter mano al file da te indicato

Codice: Seleziona tutto

<?php
/**
 * /srv/http/123solar/scripts/protocols/sdm120c.php
 *
 * @package default
 */


if (!defined('checkaccess')) {
   die('Direct access not permitted');
}
// sdm120c is a command line program for reading the parameters out of EASTRON SDM120C ModBus Smart meter.
// http://github.com/gianfrdp/SDM120C

// Ask sdm120c:
//      - Voltage (-v)
//      - Power (-p)
//      - Current (-c)
//      - Frequency (-f)
//      - Imported energy (-i)
$CMD_RETURN  = '';
//$CMD_POOLING = "sdm120c -a ${'ADR'.$invt_num} ${'COMOPTION'.$invt_num} -vpcfi -q ${'PORT'.$invt_num}";
$CMD_POOLING = "/home/pi/./monitor";


if ($DEBUG) {
   $CMD_RETURN = exec("$CMD_POOLING 2>&1");
} else {
   $CMD_RETURN = exec($CMD_POOLING);
}
$dataarray = array();
//$dataarray = preg_split('/[[:space:]]+/', $CMD_RETURN);
$dataarray = preg_split('/[[:space:]]+/', /home/pi/metern2.txt);

if (isset($dataarray[5])) {
   $G1V = (float) $dataarray[0];
   $G1A = (float) $dataarray[1];
   $G1P = (float) $dataarray[2];
   $FRQ = (float) $dataarray[3];
   $EFF  = (float) 0.0;
   $INVT = null;
   $BOOT = null;
   $KWHT = (float) $dataarray[4];
   $KWHT = $KWHT / 1000;
   $RET  = 'OK';
} else {
   $RET = 'NOK';
}
?>


nello specifico ho modificato le due seguenti variabili poiché:
- monitor è eseguibile ed è situato nella mia home
- il file output di monitor si chiama metern2.txt e anche lui si trova nella home
- ho eliminato le variabili da $CMD_POOLING poichè il programma monitor fa riferimento ad un suo file config (correttamente funzionante)

Codice: Seleziona tutto

$CMD_POOLING = "/home/pi/./monitor";
$dataarray = preg_split('/[[:space:]]+/', /home/pi/metern2.txt);


Nelle impostazioni di 123Solar come protocollo seleziono quindi sdm120c ma nel momento di "test comunicazione" mi restituisce ancora errore.

Codice: Seleziona tutto

sdm120c -a 1 -vpcfi -q /dev/ttyUSB0 return :

error : /


Nell'allegato ci sono le mie impostazioni

Immagine

michele
Messaggi: 7
Iscritto il: 25/10/2019, 13:25

Re: EASTRON SDM630 modbus - contatore trifase

Messaggioda michele » 28/11/2019, 11:41

buongiorno, sei riuscito a dare un occhiata? Hai qualche soluzione da darmi? Grazie e buona giornata



Torna a “Contatori Modbus”

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti