EastronSDM120, Eastron SDM120 energy meter

List

Questa pagina fa parte del Manuale Programmazione IEC 61131-3. Vai all indice.

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.

Argomenti correlati

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_v2, tutti gli altri parametri rimangono inalterati.

EastronSDM120_v5

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

Information Circle

Blocco funzione

CODESYS: Non disponibile

LogicLab: eLLabMdbDevsLib

Descrizione

Enable (BOOL) Comando abilitazione gestione.
SpyOn (BOOL) Se attivo permette di spiare il funzionamento del FB (Vedi articolo).
MMdb (@ModbusMaster_v3) Indirizzo istanza FB ModbusMaster per gestione protocollo Modbus.
Node (USINT) Nodo Modbus assegnato al dispositivo.
Done (BOOL) Esecuzione terminata, rimane attivo fino alla disabilitazione di Enable.
DReady (BOOL) Attivo se dispositivo connesso.
Ok (BOOL) Attivo per un loop su acquisizione dati.
Fault (BOOL) Attivo per un loop se errore di esecuzione.
Errors (UDINT) Numero errori di esecuzione.
Voltage (REAL) Line voltage (Volts).
Current (REAL) Line current (Amps).
Frequency (REAL) Line frequency (Hertz).
ACPower (REAL) Active power (Watts).
ApPower (REAL) Apparent power (VA).
RePower (REAL) Reactive power (Var).
PwFactor (REAL) Power factor (None).
IAcEnergy (REAL) Import active energy (kWh).
EAcEnergy (REAL) Export active energy (kWh).
TAcEnergy (REAL) Total active energy (kWh).

Immagine FB EastronSDM120

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]
Was this article helpful?