MBTHLThermostat, Setecna MB-THL Thermostat

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, gestisce il termoigrometro MB-THL della Setecna tramite connessione seriale RS485 con protocollo Modbus (19200, 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.

Upgrade list

MBTHLThermostat_v1

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

MBTHLThermostat_v2

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

MBTHLThermostat_v3

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 ModbusMaster per gestione protocollo Modbus.
Node (USINT) Nodo Modbus assegnato al dispositivo.
Shadow (BOOL) Attivazione modalità Shadow sul termostato. Se attivo i valori di temperatura ed umidità visualizzati sono quelli settati dai parametri DTRoom e DHRoom.
DHUmidity (BOOL) Se attivo viene visualizzato oltre alla temperatura anche il valore di umidità. I tasti [UP]-[DW] permettono di scambiare il valore visualizzato.
SPEditing (BOOL) Se attivo è possibile impostare il set point di temperatura. Tenendo premuto per più di 2 secondi il tasto [UP] viene visualizzato il valore di set point, modificabile con i tasti [UP]-[DW]. La variazione è possibile solo nel range impostato da LLimit e ULimit, terminata la variazione dopo un tempo il valore viene accettato.
WMode (USINT) Non usato.
ABrightness (USINT) Valore luminosità display (Range 0÷11). 0:Display spento.
SBrightness (USINT) Valore luminosità display in stand-by (Range 0÷1). 0:Display spento.
DTRoom (REAL) Valore di temperatura visualizzato (°C) (Solo in modalità Shadow).
DHRoom (REAL) Valore di umidità visualizzato (%) (Solo in modalità Shadow).
LLimit (REAL) Limite basso set point impostabile (°C) (Solo se attivo SPEditing).
ULimit (REAL) Limite alto set point impostabile (°C) (Solo se attivo SPEditing).
TCalibration (REAL) Valore di offset temperatura per calibrazione (°C).
HCalibration (REAL) Valore di offset umidità per calibrazione (%).
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.
SwVersion (UINT) Versione software del termostato.
ATRoom (REAL) Valore di temperatura acquisito (°C).
AHRoom (REAL) Valore di umidità acquisito (%).
TSPoint (REAL) Valore di set point impostato (°C) (Solo se attivo SPEditing).

Immagine FB MBTHLThermostat
Impostazione nodo Modbus

Alla accensione il termostato visualizza per alcuni secondi il nodo Modbus attualmente impostato (Sul display compare ad esempio ID 004). Per impostare un nuovo nodo Modbus occorre agire sui tasti secondo la sequenza (La comunicazione Modbus non deve essere attiva):

  • 3 volte sul tasto [UP]
  • 2 volte sul tasto [DW]
  • 1 volta sul tasto [UP]
  • 1 volta sul tasto [DW]
  • 1 volta sul tasto [UP]

Se la sequenza è corretta compare il nodo Modbus attualmente impostato (Sul display compare ad esempio ID 004). Se non compare per resettare la sequenza occorre agire 4 volte sul tasto [DW].

Per impostare il nuovo valore agire sui tasti [UP]-[DW]. Terminata l’impostazione dopo alcuni secondi il valore viene accettato.

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ù termometri MB-THL 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.

LogicLab (Ptp141, ST_MBTHLThermostat)
PROGRAM ST_MBTHLThermostat
VAR
    i : UDINT; (* Auxiliary variable *)
    Sp : SysSerialPort; (* Serial port management *)
    MMdb : ModbusMaster_v3; (* Modbus master *)
    THL : ARRAY[0..2] OF MBTHLThermostat_v3; (* Thermostat management *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_MBTHLThermostat"
// *****************************************************************************
// This program manages 3 MB-THL thermostats.
// -----------------------------------------------------------------------------

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

    IF (SysFirstLoop) THEN

        // Serial port settings.

        Sp.COM:=ADR('COM2'); //COM port definition
        Sp.Baudrate:=19200; //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

        // THL parameters settings.

        THL[0].Node:=1; //Modbus node
        THL[0].MMdb:=ADR(MMdb); //ModbusMaster pointer
        THL[0].ABrightness:=11; //Active mode brightness
        THL[0].SBrightness:=1; //Standby mode brightness

        THL[1].Node:=1; //Modbus node
        THL[1].MMdb:=ADR(MMdb); //ModbusMaster pointer
        THL[1].ABrightness:=11; //Active mode brightness
        THL[1].SBrightness:=1; //Standby mode brightness

        THL[2].Node:=1; //Modbus node
        THL[2].MMdb:=ADR(MMdb); //ModbusMaster pointer
        THL[2].ABrightness:=11; //Active mode brightness
        THL[2].SBrightness:=1; //Standby mode brightness
    END_IF;

    // -------------------------------------------------------------------------
    // THERMOSTATS MANAGEMENT
    // -------------------------------------------------------------------------
    // Manage the Modbus communication.

    Sp(Open:=TRUE); //Serial port management
    MMdb.File:=Sp.File; //File pointer    
    MMdb(); //Modbus master
    
    // Manage the thermostats.
    
    THL[0].Enable:=NOT(THL[2].Done); //FB enable
    THL[1].Enable:=THL[0].Done; //FB enable
    THL[2].Enable:=THL[1].Done; //FB enable
    FOR i:=0 TO 2 DO THL[i](); END_FOR;

// [End of file]
Was this article helpful?