Average, value average

List

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

Questo blocco funzione esegue la media su di un valore. L’azione di media è definita da un parametro Coefficient, maggiore è il valore del parametro e maggiore sarà l’azione di media di Value sull’uscita Average.

Impostando in Coefficient il valore 1 o inferiore si azzera il valore accumulato di media e Value verrà ritornato in Average. Se Value assume significato di NaN o di infinito, si azzera il valore accumulato di media e Value verrà ritornato in Average.

Information Circle

Blocco funzione

CODESYS: Non disponibile

LogicLab: eLLabUtyLib

Descrizione

Value (REAL) Valore su cui effettuare l’azione di media.
Coefficent (REAL) Valore del coefficiente di media.
Average (REAL) Valore mediato in uscita.

Immagine FB Average

Esempi

Come utilizzare gli esempi.
Viene eseguita una acquisizione analogica da un ingresso di un modulo CPU con range da 0 a 10 volts. Il valore acquisito è appoggiato nella variabile IValue, il valore viene poi passato al FB VAverage che ne esegue la media con un coefficente di 50. Il valore in uscita dopo la media è appoggiato nella variabile RValue. Come si vede nella foto a lato i due valori sono stati trascinati nella finestra oscillosopio di LogicLab.

Screenshot ST_Average
LogicLab (Ptp114)
PROGRAM ST_Average
VAR
    AInp : SysGetAnInp;    (* Analog input acquisition *)
    VAverage : Average;    (* Voltage average *)
    IValue : REAL;    (* Input value *)
    RValue : REAL;    (* Result value *)
END_VAR

// *****************************************************************************
// PROGRAM "ST_Average"
// *****************************************************************************
// Acquires a voltage from A/D converter and average the acquired value.
// -----------------------------------------------------------------------------  

    // ------------------------------------------------------------------------- 
    // INITIALIZATION 
    // -------------------------------------------------------------------------
    // Configure the analog input acquisition.

    IF (SysFirstLoop) THEN 
        AInp.Address:=255; //Module address
        AInp.Channel:=0; //Module channel
        AInp.Mode:=AD_VOLT_0_10_COMMON; //Acquisition mode  
        VAverage.Coefficient:=50.0; //Average coefficent 
    END_IF; 

    // ------------------------------------------------------------------------- 
    // VOLTAGE ACQUISITION 
    // -------------------------------------------------------------------------
    // Acquires the voltage and calculates average on it.

    AInp(); //Analog input acquisition 
    VAverage(Value:=AInp.Value); //Voltage average
    IValue:=AInp.Value; //Input value
    RValue:=VAverage.Average; //Result value 

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