FB_CTRL_MOVING_AVERAGE

FB_CTRL_MOVING_AVERAGE 1:

Der Funktionsbaustein stellt einen gleitenden Mittelwertfilter im Wirkungsplan dar.

Es wird der arithmetische Mittelwert aus den letzten Werten „n“ gebildet.

FB_CTRL_MOVING_AVERAGE 2:

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.

FB_CTRL_MOVING_AVERAGE 3: VAR_INPUT

VAR_INPUT
    fIn            : FLOAT;
    fManSyncValue    : FLOAT;
    bSync        : BOOL;
    eMode        : E_CTRL_MODE;
    bHold        : BOOL;
END_VAR

Name

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.

FB_CTRL_MOVING_AVERAGE 4: VAR_OUTPUT

VAR_OUTPUT
    fOut        : FLOAT;
    eState    : E_CTRL_STATE;
    eErrorId    : E_CTRL_ERRORCODES;
    bError    : BOOL;
END_VAR

Name

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-Ausgang die Fehlernummer.

bError

BOOL

Wird TRUE, sobald ein Fehler eintritt.

VAR_IN_OUT

VAR_IN_OUT
    stParams              : ST_CTRL_MOVING_AVERAGE_PARAMS;
END_VAR

Name

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_TYPE

Name

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
Filter

UINT

Anzahl der Werte „n“, über die der arithmetische Mittelwert gebildet wird.

pWorkArray_
ADR

POINTER TO FLOAT

Adresse des Arrays, indem die Eingangswerte zwischengespeichert werden.

nWorkArray_
SIZEOF

UINT

Größe des WorkArrays