Vai al contenuto

Hysteresis, manages hysteresis on a value

Vai all indice del manuale di programmazione
Tipo: Blocco funzione
Libreria LogicLab: eLLabUtyLib
Libreria Codesys: NOn disponibile

Permette di gestire soglie di isteresi sul superamento HThreshold o sul ripiegamento LThreshold di un valore IValue rispetto al valore di riferimento Reference attivando di conseguenza le uscite OHigh e OLow.

Descrizione

IValue (REAL) Valore da controllare.
Reference (REAL) Valore di riferimento.
LThreshold (REAL) Livello di soglia inferiore isteresi.
HThreshold (REAL) Livello di soglia inferiore isteresi.
OLow (BOOL) Valore da controllare inferiore oltre al valore di soglia rispetto al valore di riferimento.
OHigh (BOOL) Valore da controllare superiore oltre al valore di soglia rispetto al valore di riferimento.

Immagine FB_Hysteresis

Esempi

Come utilizzare gli esempi.
Nel programma viene acquisito un ingresso analogico e gestita una flag di allarme se il valore supera il set point definito.

LogicLab (Ptp114, ST_Hysteresis)
PROGRAM ST_Hysteresis
VAR
    Alarm : BOOL; (* Alarm flag *)
    AInp : SysGetAnInp; (* Analog input acquisition *)
    AHys : Hysteresis; (* Alarm hysteresis *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_Hysteresis"
// *****************************************************************************
// Acquires a voltage from A/D converter and active an alarm on high value.
// -----------------------------------------------------------------------------  

    // ------------------------------------------------------------------------- 
    // INITIALIZATION 
    // -------------------------------------------------------------------------
    // Configure the analog input acquisition and alarm hysteresis.

    IF (SysFirstLoop) THEN
        AInp.Address:=255; //Module address
        AInp.Channel:=0; //Module channel
        AInp.Mode:=AD_VOLT_0_10_COMMON; //Acquisition mode

        AHys.Reference:=5.0; //Reference value
        AHys.LThreshold:=0.1; //Low threshold
        AHys.HThreshold:=0.1; //High threshold
    END_IF;

    // ------------------------------------------------------------------------- 
    // ALARM MANAGEMENT
    // -------------------------------------------------------------------------
    // Acquires the voltage and manage histeresis on it.

    AInp(); //Analog input acquisition
    AHys(); //Alarm hysteresis

    // If analog value becomes greather than 5.1 volt the alarm is set.
    // Alarm remains set until the voltage drops under 4.9 volts.

    IF (AHys.OLow) THEN Alarm:=FALSE; END_IF;    
    IF (AHys.OHigh) THEN Alarm:=TRUE; END_IF;    

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