FB_CTRL_MEDIAN_FILTER
Der Funktionsbaustein gibt den Median an. Der Median ist der mittlere Wert einer nach Größe geordneten Auflistung von Werten. Das bedeutet, dass die eine Hälfte der gesammelte Datenwerte kleiner als der Medianwert ist, die andere Hälfte größer.
Von dem Programmierer muss ein Array „ARRAY [1..2(n+2)] OF LREAL“ angelegt werden, in dem der Funktionsbaustein die internen benötigten Daten ablegen kann.
VAR_INPUT
VAR_INPUT
fIn : FLOAT;
fManSyncValue : FLOAT;
eMode : E_CTRL_MODE;
bSync : FLOAT;
bHold : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fIn | FLOAT | Eingangsgröße des Median-Filters |
fManSyncValue | FLOAT | Eingangsgröße, auf die der Median-Filter gesetzt werden kann oder die im Manual-Mode am Ausgang ausgegeben wird. |
eMode | E_CTRL_MODE | Mit einer steigenden Flanke an diesem Eingang wird der Median-Filter auf den Wert „fManSyncValue“ gesetzt. |
bSync | FLOAT | Eingang, der die Betriebsart des Bausteins festlegt. |
bHold | BOOL | Ein TRUE an diesem Eingang hält den internen Zustand und somit auch den Ausgang. |
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 Median-Filters |
eState | E_CTRL_STATE | Status des Funktionsbausteins |
eErrorId | E_CTRL_ERRORCODES | Liefert bei einem gesetzten |
bError | BOOL | Wird TRUE, sobald ein Fehler eintritt. |
VAR_IN_OUT
VAR_IN_OUT
tCtrlCycleTime : TIME := T#0ms;
tTaskCycleTime : TIME := T#0ms;
nSamplesToFilter : UINT;
pWorkArray_ADR : POINTER TO FLOAT := 0;
nWorkArray_SIZEOF : UINT := 0;
END_VAR
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 | UINT | Anzahl der Werte „n“, über die der Medianwert gebildet wird. |
pWorkArray_ | POINTER TO FLOAT | Adresse des Arrays, in dem die Eingangswerte zwischengespeichert werden. |
nWorkArray_ | UINT | Größe des |