FB_CTRL_MOVING_AVERAGE

Der Funktionsbaustein stellt einen gleitenden Mittelwertfilter im Wirkungsplan dar.
Es wird der arithmetische Mittelwert aus den letzten Werten „n“ gebildet.

Von dem Programmierer muss in der SPS ein Array „ARRAY [1.. n] of FLOAT“ angelegt werden, in dem der Funktionsbaustein die intern benötigten Daten ablegen kann.
Eingänge
VAR_INPUT
fIn : FLOAT;
fManSyncValue : FLOAT;
bSync : BOOL;
eMode : E_CTRL_MODE;
bHold : BOOL;
END_VARName | Typ | Beschreibung |
|---|---|---|
fIn | FLOAT | Eingangsgröße des Moving-Average-Filters |
fManSyncValue | FLOAT | Eingangsgröße, auf die das Moving-Average-Filter gesetzt werden kann, oder die im Manual-Mode am Ausgang ausgegeben wird. |
bSync | BOOL | Mit einer steigenden Flanke an diesem Eingang wird das Moving-Average-Filter auf den Wert „fManSyncValue“ gesetzt. |
eMode | E_CTRL_MODE | Eingang, der die Betriebsart des Bausteins festlegt. |
bHold | BOOL | 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. |
Ausgänge
VAR_OUTPUT
fOut : FLOAT;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VARName | Typ | Beschreibung |
|---|---|---|
fOut | FLOAT | Ausgang des Moving-Average-Filters |
eState | E_CTRL_STATE | State des Funktionsbausteins |
eErrorId | E_CTRL_ERRORCODES | Liefert bei einem gesetzten |
bError | BOOL | Wird TRUE, sobald ein Fehler eintritt. |
Ein-/ Ausgänge
VAR_IN_OUT
stParams : ST_CTRL_MOVING_AVERAGE_PARAMS;
END_VARName | Typ | Beschreibung |
|---|---|---|
stParams | ST_CTRL_MOVING_AVERAGE_PARAMS | Parameterstruktur des Moving-Average-Filters |
stParams besteht aus den folgenden Elementen:
TYPE
ST_CTRL_MOVING_AVERAGE_PARAMS:
STRUCT
tCtrlCycleTime : TIME := T#0ms;
tTaskCycleTime : TIME := T#0ms;
nSamplesToFilter : UINT;
pWorkArray_ADR : POINTER TO FLOAT := 0;
nWorkArray_SIZEOF : UINT := 0;
END_STRUCT
END_TYPEName | Typ | Beschreibung |
|---|---|---|
tCtrlCycleTime | TIME | 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 | TIME | Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird. |
nSamplesTo | UINT | Anzahl der Werte „n“, über die der arithmetische Mittelwert gebildet wird. |
pWorkArray_ | POINTER TO FLOAT | Adresse des Arrays, indem die Eingangswerte zwischengespeichert werden. |
nWorkArray_ | UINT | Größe des |