Passa al contenuto principale

EastronSDM120, Eastron SDM120 energy meter

Questo blocco funzione da eseguire in task Back utilizzabile con modello a cascata, esegue la lettura delle variabili da un analizzatore di energia Eastron SDM120 tramite connessione seriale RS485 con protocollo Modbus (2400, n, 8, 1). Permette di essere utilizzato in cascata con altri FB della libreria, collegando il Done di una FB con Enable di quella successiva è possibile creare catene di FB che condividono la stessa connessione Modbus.

In MMdb occorre passare l'indirizzo del FB di gestione protocollo Modbus, in Node definire l'indirizzo di nodo assegnato al dispositivo. Se dispositivo connesso si attiva DReady ed in uscita si avranno i dati acquisiti.

Approfondimenti
  • In questo articolo informazioni sulla configurazione del contatore di energia SDM 120.
  • In questo articolo informazioni sulla scelta dei trasformatori amperometrici.
  • In questo topic ulterori informazioni sull'accesso ai contatori in Modbus RTU.
  • In questo topic considerazioni sulla acquisizione di più contatori in multidrop.
  • In questo topic informazioni su come remotare l'acquisizione dei contatori.
  • In questo articolo acquisizione contatori su rete LoRaWAN.
  • In questo articolo un progetto di Energy logger su file locale e invio dati cloud in FTP, MQTT o REST API.

Upgrade list

EastronSDM120_v3​

Utilizza il nuovo blocco funzione ModbusMaster_v1, tutti gli altri parametri rimangono inalterati.

EastronSDM120_v4​

Utilizza il nuovo blocco funzione _ModbusMaster_v_2, tutti gli altri parametri rimangono inalterati.

EastronSDM120_v5​

Utilizza il nuovo blocco funzione ModbusMaster_V3. Aggiunto ingresso SpyOn per lo spionaggio.

Descrizione​

Immagine FB EastronSDM120

ParametroTipoDescrizione
EnableBOOLComando abilitazione gestione.
SpyOnBOOLSe attivo permette di spiare il funzionamento del FB (Vedi articolo).
MMdb@ModbusMaster_v3Indirizzo istanza FB ModbusMaster per gestione protocollo Modbus.
NodeUSINTNodo Modbus assegnato al dispositivo.
DoneBOOLEsecuzione terminata, rimane attivo fino alla disabilitazione di Enable.
DReadyBOOLAttivo se dispositivo connesso.
OkBOOLAttivo per un loop su acquisizione dati.
FaultBOOLAttivo per un loop se errore di esecuzione.
ErrorsUDINTNumero errori di esecuzione.
VoltageREALLine voltage (Volts).
CurrentREALLine current (Amps).
FrequencyREALLine frequency (Hertz).
ACPowerREALActive power (Watts).
ApPowerREALApparent power (VA).
RePowerREALReactive power (Var).
PwFactorREALPower factor (None).
IAcEnergyREALImport active energy (Energia consumata dalla rete) (kWh). Range 0.000-9999999.9 kWh (~10 MWh)
EAcEnergyREALExport active energy (Energia fornita alla rete) (kWh). Range 0.000-9999999.9 kWh (~10 MWh)
TAcEnergyREALTotal active energy(Somma delle 2 energie) (kWh). Range 0.000-9999999.9 kWh (~10 MWh)

Trigger di spy​

Se SpyOn attivo  è possibile utilizzare la console di spionaggio per verificare il funzionamento della FB. Sono previsti vari livelli di triggers.

Livelli di trigger

TriggerDescrizione
16#10000000Lg: Log esecuzione.

Esempi​

Come utilizzare gli esempi.
Sono gestiti più misuratori di energia monofase Eastron SDM120 connessi in Modbus. Come  si vede dal programma in FBD i vari FB sono eseguiti in cascata, in questo modo terminata l'esecuzione del primo, viene eseguito il successivo e così di seguito fino all'ultimo che disabilita il primo facendo ripartire la sequenza. Per il settaggio dei contatori fare riferimento all'articolo.

LogicLab (Ptp141, FBD_EastronSDM120)
PROGRAM FBD_EastronSDM120
VAR
Sp : SysSerialPort; (* Serial port management *)
MMDB : ModbusMaster_v3; (* Modbus master *)
Meter0 : EastronSDM120_v5; (* SDM120 meter *)
Meter1 : EastronSDM120_v5; (* SDM120 meter *)
END_VAR

Esempio in FBD di FB EastronSDM120

LogicLab (Ptp141, ST_EastronSDM120)
PROGRAM ST_EastronSDM120
VAR
i : UDINT; (* Auxiliary variable *)
Sp : SysSerialPort; (* Serial port management *)
MMdb : ModbusMaster_v3; (* Modbus master *)
Meter : ARRAY[0..2] OF EastronSDM120_v5; (* SDM120 meter *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_EastronSDM120"
// *****************************************************************************
// This program manages 3 Eastron SDM120 energy meters.
// -----------------------------------------------------------------------------

// -------------------------------------------------------------------------
// INITIALIZATION
// -------------------------------------------------------------------------
// Program initializations.

IF (SysFirstLoop) THEN

// Serial port settings.

Sp.COM:=ADR('COM2'); //COM port definition
Sp.Baudrate:=2400; //Baudrate
Sp.Parity:='N'; //Parity
Sp.DataBits:=8; //Data bits
Sp.StopBits:=1; //Stop bits
Sp.DTRManagement:=DTR_AUTO_WO_TIMES; //DTR management
Sp.DTRComplement:=FALSE; //DTR complement
Sp.EchoFlush:=FALSE; //Received echo flush
Sp.DTROnTime:=0; //DTR On time delay (mS)
Sp.DTROffTime:=0; //DTR Off time delay (mS)
Sp.FlushTm:=0; //Flush time (mS)
Sp.RxSize:=0; //Rx buffer size
Sp.TxSize:=0; //Tx buffer size

// Modbus master settings.

MMdb.Type:=MODBUS_PROTOCOL#MDB_RTU; //Modbus protocol type
MMdb.Timeout:=T#200ms; //Timeout time
MMdb.Delay:=T#100ms; //Delay time

// Meter parameters settings.

Meter[0].Node:=1; //Modbus node
Meter[0].MMdb:=ADR(MMdb); //ModbusMaster pointer

Meter[1].Node:=2; //Modbus node
Meter[1].MMdb:=ADR(MMdb); //ModbusMaster pointer

Meter[2].Node:=3; //Modbus node
Meter[2].MMdb:=ADR(MMdb); //ModbusMaster pointer
END_IF;

// -------------------------------------------------------------------------
// ENERGY METERS MANAGEMENT
// -------------------------------------------------------------------------
// Manage the Modbus communication.

Sp(Open:=TRUE); //Serial port management
MMdb.File:=Sp.File; //File pointer
MMdb(); //Modbus master

// Manage the energy meters.

Meter[0].Enable:=NOT(Meter[2].Done); //FB enable
Meter[1].Enable:=Meter[0].Done; //FB enable
Meter[2].Enable:=Meter[1].Done; //FB enable
FOR i:=0 TO 2 DO Meter[i](); END_FOR;

// [End of file]