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.
Descrizione
Value (REAL) Valore su cui effettuare l’azione di media.
Coefficent (REAL) Valore del coefficiente di media.
Average (REAL) Valore mediato in uscita.

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.
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]