Questo blocco funzione da eseguire in task Back, esegue la lettura delle variabili dagli analizzatori di energia trifase SDM630 o Smart X96 tramite connessione seriale RS485 (9600, n, 8, ) con protocollo Modbus RTU. Può essere utilizzato con il modello a 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 scelta dei trasformatori amperometrici.
Upgrade list
Gli oggetti obsoleti sono inseriti nella libreria eLLabObsoleteLib fare riferimento al relativo manuale ed al manuale programmazione in formato pdf.
EastronSDM630_v3
Utilizza il nuovo blocco funzione ModbusMaster_v1, tutti gli altri parametri rimangono inalterati.
EastronSDM630_v4
Utilizza il nuovo blocco funzione ModbusMaster_v2, tutti gli altri parametri rimangono inalterati.
EastronSDM630_v5
Utilizza il nuovo blocco funzione ModbusMaster_v3. Aggiunto ingresso SpyOn per lo spionaggio.
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). [0]:Fase 1, [1]:Fase 2, [2]:Fase 3, [3] Valore medio.
Current (REAL) Line current (Amps). [0]:Fase 1, [1]:Fase 2, [2]:Fase 3, [3] Valore medio, [4] Valore totale.
PhAngle (REAL) Phase angle (Degrees). [0]:Fase 1, [1]:Fase 2, [2]:Fase 3, [3] Valore totale.
Frequency (REAL) Line frequency (Hertz).
ACPower (REAL) Active power (Watts). [0]:Fase 1, [1]:Fase 2, [2]:Fase 3, [3] Valore medio.
ApPower (REAL) Apparent power (VA). [0]:Fase 1, [1]:Fase 2, [2]:Fase 3, [3] Valore totale.
RePower (REAL) Reactive power (Var). [0]:Fase 1, [1]:Fase 2, [2]:Fase 3, [3] Valore totale.
PwFactor (REAL) Power factor (None). [0]:Fase 1, [1]:Fase 2, [2]:Fase 3, [3] Valore totale.
IAcEnergy (REAL) Import active energy (kWh).
EAcEnergy (REAL) Export active energy (kWh).
TAcEnergy (REAL) Total active energy (kWh).

Impostazione parametri
Per attivare il menù di configurazione premere per 3 secondi sul tasto “E” attivando il menù di password. Definita la pasword (Default 1000) agendo nuovamente per 3 secondi sul tasto “E” si accede al menù parametri.
Con i tasti “M” e “P” è possibile eseguire lo scan di tutti i parametri. Per modificare il valore di un parametro premere per 3 secondi sul tasto “E”.
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
Trigger | Descrizione |
---|---|
16#10000000 | Lg: Log esecuzione. |
Esempi
Come utilizzare gli esempi.
Sono gestiti 3 misuratori di energia monofase Eastron SDM630 connessi in Modbus. 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 avere una rappresentazione grafica del funzionamento in cascata rimando all’esempio in FBD del SDM120 (Articolo).
LogicLab (Ptp141, ST_EastronSDM630)
PROGRAM ST_EastronSDM630
VAR
i : UDINT; (* Auxiliary variable *)
Sp : SysSerialPort; (* Serial port management *)
MMdb : ModbusMaster_v3; (* Modbus master *)
Meter : ARRAY[0..2] OF EastronSDM630_v5; (* SDM630 meter *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_EastronSDM630"
// *****************************************************************************
// This program manages 3 Eastron SDM630 energy meters.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// INITIALIZATION
// -------------------------------------------------------------------------
// Program initializations.
IF (SysFirstLoop) THEN
// Serial port settings.
Sp.COM:=ADR('COM2'); //COM port definition
Sp.Baudrate:=9600; //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#1s; //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]