FB_CTRL_MOVING_AVERAGE
Der Funktionsbaustein stellt ein gleitendes Mittelwertfilter im Wirkungsplan dar.
Es wird der arithmetische Mittelwert aus den letzten n Werten gebildet.
Von dem Programmierer muss ein Array: ARRAY [ 1.. n ] of FLOAT angelegt werden, in dem der Funktionsbaustein die intern benötigten Daten ablegen kann.
VAR_INPUT
VAR_INPUT
fIn : FLOAT;
fManSyncValue : FLOAT;
bSync : BOOL;
eMode : E_CTRL_MODE;
bHold : BOOL;
END_VAR
fIn : Eingangsgröße des Moving-Average-Filters.
fManSyncValue : Eingangsgröße, auf die das Moving-Average-Filter gesetzt werden kann, oder die im Manual-Mode am Ausgang ausgegeben wird.
bSync : Mit einer steigenden Flanke an diesem Eingang wird das Moving-Average-Filter auf den Wert fManSyncValue gesetzt.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
bHold : Ein TRUE an diesem Eingang hält den internen Zustand und somit auch den Ausgang unabhängig von der Eingangsgröße konstant auf dem aktuellen Wert.
VAR_OUTPUT
VAR_OUTPUT
fOut : FLOAT;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
fOut : Ausgang des Moving-Average-Filters.
eState : State des Funktionsbausteins.
eErrorId : Liefert bei einem gesetzten bError-Ausgang die Fehlernummer.
bError : Wird TRUE, sobald ein Fehler eintritt.
VAR_IN_OUT
VAR_IN_OUT
stParams : ST_CTRL_MOVING_AVERAGE_PARAMS;
END_VAR
stParams : Parameterstruktur des Moving-Average-Filters. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_MOVING_AVERAGE_PARAMS:
STRUCT
tCtrlCycleTime : TIME := T#0ms; (* controller
cycle time [TIME] *)
tTaskCycleTime : TIME := T#0ms; (* task cycle
time [TIME] *)
nSamplesToFilter : UINT;
pWorkArray_ADR : POINTER TO FLOAT := 0;
nWorkArray_SIZEOF : UINT := 0;
END_TYPE
tCtrlCycleTime : Zykluszeit, mit der der Regelkreis bearbeitet wird. Diese muss größer oder gleich der TaskCycleTime sein. Der Funktionsbaustein berechnet mit dieser Eingangsgröße intern, ob die Zustands- und Ausgangsgrößen im aktuellen Zyklus aktualisiert werden müssen.
tTaskCycleTime : Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird.
nSamplesToFilter : Anzahl der Werte n, über die der arithmetische Mittelwert gebildet wird.
pWorkArray_ADR : Adresse des Arrays, indem die Eingangswerte zwischengespeichert werden.
nWorkArray_SIZEOF: Größe des WorkArrays.