FB_CTRL_I_WITH_DRIFTCOMPENSATION
Der Funktionsbaustein stellt ein I-Übertragungsglied mit einer Driftkompensation dar.
Wirkungsplan:
VAR_INPUT
VAR_INPUT
fIn : FLOAT;
fManSyncValue : FLOAT;
bSync : BOOL;
eMode : E_CTRL_MODE;
bHold : BOOL;
END_VAR
fIn : Eingang des I-Glieds.
fManSyncValue : Eingang, auf den das I-Glied synchronisiert werden kann, oder dessen Wert im Manual-Mode am Ausgang anliegt.
bSync : Mit einer steigenden Flanke an diesem Eingang wird der Integrator auf den Wert fManSyncValue gesetzt.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
bHold : Ein TRUE an diesem Eingang hält den Integrator unabhängig von dem Eingang fIn konstant auf dem aktuellen Wert.
VAR_OUTPUT
VAR_OUTPUT
fOut : FLOAT;
bARWactive : BOOL;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
fOut : Ausgang des I-Glieds.
bARWactive : Ein TRUE an diesem Ausgang signalisiert, dass sich der Integrator in der Begrenzung befindet.
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_I_WITH_DRIFTCOMPENSATION_PARAMS;
END_VAR
stParams : Parameterstruktur des I-Glieds. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_I_WITH_DRIFTCOMPENSATION_PARAMS:
STRUCT
tCtrlCycleTime : TIME := T#0ms; (* controller cycle
time [TIME] *)
tTaskCycleTime : TIME := T#0ms; (* task cycle time
[TIME] *)
tTi : TIME := T#0ms; (* integral action
time Ti *)
fOutMaxLimit : FLOAT := 1E38; (* maximum output
limit *)
fOutMinLimit : FLOAT := -1E38; (* minimum output
limit *)
fDampingCoefficient : FLOAT := 0.0;
tAveragingTime : TIME := T#0ms; (* averaging time
*)
pWorkArray_ADR : POINTER TO FLOAT := 0;
nWorkArray_SIZEOF : UINT := 0;
END_STRUCT
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.
tTi : Integrationszeit des I-Glieds.
fOutMaxLimit : Oberes Limit, an dem die Integration angehalten wird ( ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang bARWActive signalisiert.
fOutMinLimit : Unteres Limit, an dem die Integration angehalten wird ( ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang bARWActive signalisiert.
fDampingCoefficient : Faktor kd im Wirkungsplan.
tAveragingTime : Zeit, über die das gleitende Mittelwertfilter den Mittelwert bildet.
pWorkArray_ADR : Adresse eines Array of FLOAT der Größe tAveragingTime / tCtrlCycleTime. (Siehe Beschreibung des Bausteins: FB_CTRL_MOVING_AVERAGE.)
nWorkArray_SIZEOF : Größe eines Array of FLOAT der Größe tAveragingTime / tCtrlCycleTime. (Siehe Beschreibung des Bausteins: FB_CTRL_MOVING_AVERAGE.)