FB_CTRL_NOTCH_FILTER
Der Funktionsbaustein stellt ein digitales Notch-Filter dar.
Übertragungsfunktion:
Bodediagramm:
mit:
VAR_INPUT
VAR_INPUT
fIn : FLOAT;
fManValue : FLOAT;
eMode : E_CTRL_MODE;
END_VAR
fIn : Eingangsgröße des Notch-Filters.
fManValue : Eingangsgröße die im Manual-Mode am Ausgang ausgegeben wird.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
VAR_OUTPUT
VAR_OUTPUT
fOut : FLOAT;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
fOut : Ausgang des Notch-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_NOTCH_FILTER_PARAMS;
END_VAR
stParams : Parameterstruktur des Notch-Filters. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_NOTCH_FILTER_PARAMS:STRUCT tCtrlCycleTime : TIME :=
T#0ms; (* controller cycle time [TIME] *) tTaskCycleTime : TIME :=
T#0ms; (* task cycle time [TIME] *) fNotchFreq : FLOAT := 0;
(* [Hz] *) fBandwidth : FLOAT := 0;
(* Bandwidth in Hz = fBandwidth*fNotchFreq *)END_STRUCTEND_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.
fNotchFreq : Notch-Frequenz in Hz
fBandwidth : Bandbreite bezogen auf die Notchfrequenz: Bandbreite in Hz = fNotchFreq * fBandwidth