FB_CTRL_PI_PID
Der Funktionsbaustein stellt einen kaskadierten PI - PID-Regler im Wirkungsplan dar. Intern nutzt dieser Baustein die Übertragungsglieder FB_CTRL_PI, FB_CTRL_LIMITER und den FB_CTRL_PID.
Übertragungsfunktion des PI-Glieds:
Übertragungsfunktion des PID-Glieds:
Wirkungsplan des kaskadierten Übertragungsglieds:
VAR_INPUT
VAR_INPUT
fSetpointValue : FLOAT; (* setpoint value *)
fActualValueOuterLoop : FLOAT; (* actual value from the process to the PI-controller *)
fActualValueInnerLoop : FLOAT; (* actual value from the process to the PID-controller *)
fPreControl : FLOAT; (* pre control value *)
fManSyncValueInnerLoop : FLOAT; (* input value for the manual mode or the sync request *)
bSyncInnerLoop : BOOL; (* rising edge set the output to the fManSyncValue *)
eModeInnerLoop : E_CTRL_MODE; (* sets the mode of the function block *)
bHoldInnerLoop : BOOL; (* hold the internal integrator *)
fManSyncValueOuterLoop : FLOAT; (* input value for the manual mode or the sync request *)
bSyncOuterLoop : BOOL; (* rising edge set the output to the fManSyncValue *)
eModeOuterLoop : E_CTRL_MODE; (* sets the mode of the function block *)
bHoldOuterLoop : BOOL; (* hold the internal integrator *)
END_VAR
fSetpointValue : Sollwert der Regelgröße.
fActualValueOuterLoop : Istwert der Regelgröße, die auf den PI-Regler des äußeren Regelkreises zurückgeführt wird.
fActualValueInnerLoop : Istwert der Regelgröße, die auf den PID-Regler des inneren Regelkreises zurückgeführt wird.
fPreControl : Vorsteuerung, die hinter dem PI-Regler aufgeschaltet wird.
fManSyncValueInnerLoop : Eingang, auf dessen Wert der interne Zustand des PID-Glieds (innerer Regelkreises) gesetzt werden kann.
bSyncInnerLoop : Mit einer steigenden Flanke an diesem Eingang wird das PID-Glied (innerer Regelkreises) auf den Wert fManSyncValueInnerLoop gesetzt.
eModeInnerLoop : Eingang, der die Betriebsart des PID-Glieds (innerer Regelkreises) festlegt.
bHoldInnerLoop : Ein TRUE an diesem Eingang hält den internen Zustand des PID-Glieds (innerer Regelkreises) konstant auf dem aktuellen Wert.
fManSyncValueOuterLoop : Eingang, auf dessen Wert der interne Zustand des PI-Glieds (äußerer Regelkreises) gesetzt werden kann.
bSyncOuterLoop : Mit einer steigenden Flanke an diesem Eingang wird das PI-Glied (äußerer Regelkreises) auf den Wert fManSyncValueOuterLoop gesetzt.
eModeOuterLoop : Eingang, der die Betriebsart des PI-Glieds (äußerer Regelkreises) festlegt.
bHoldOuterLoop : Ein TRUE an diesem Eingang hält den internen Zustand des PI-Glieds (äußerer Regelkreises) konstant auf dem aktuellen Wert.
VAR_OUTPUT
VAR_OUTPUT
fOut : FLOAT; (* manipulated value to the process *)
eStateInnerLoop : E_CTRL_STATE;
bARWactiveInnerLoop : BOOL;
eErrorIdInnerLoop : E_CTRL_ERRORCODES; (* error code *)
bErrorInnerLoop : BOOL; (* TRUE if an error situation exists *)
eStateOuterLoop : E_CTRL_STATE;
bARWactiveOuterLoop : BOOL;
eErrorIdOuterLoop : E_CTRL_ERRORCODES; (* error code *)
bErrorOuterLoop : BOOL; (* TRUE if an error situation exists *)
END_VAR
fOut : Ausgang des PI-PID-Glieds.
eStateInnerLoop : State des internen PID-Glieds (innerer Regelkreis).
bARWactiveInnerLoop : Ein TRUE an diesem Ausgang signalisiert, dass sich das PID-Glied (innerer Regelkreis) in der Begrenzung befindet.
eErrorIdInnerLoop : Liefert bei einem gesetzten bError-Ausgang die Fehlernummer des PID-Glieds (innerer Regelkreis).
bErrorInnerLoop : Wird TRUE, sobald ein Fehler in dem PID-Glied (innerer Regelkreis) eintritt.
eStateOuterLoop : State des internen PI-Glieds (äußerer Regelkreis).
bARWactiveOuterLoop : Ein TRUE an diesem Ausgang signalisiert, dass sich das PI-Glied (äußerer Regelkreis) in der Begrenzung befindet.
eErrorIdOuterLoop : Liefert bei einem gesetzten bError-Ausgang die Fehlernummer des PI-Glieds (äußerer Regelkreis).
bErrorOuterLoop : Wird TRUE, sobald ein Fehler in dem PI-Glied (äußerer Regelkreis) eintritt.
VAR_IN_OUT
VAR_IN_OUT
stParams : ST_CTRL_PI_PID_PARAMS;
END_VAR
stParams : Parameterstruktur des PI-PID-Glieds. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_PI_PID_PARAMS :
STRUCT
tCtrlCycleTime : TIME := T#0ms; (* controller cycle
time [TIME] *)
tTaskCycleTime : TIME := T#0ms; (* task cycle time
[TIME] *)
fKp_OuterLoop : FLOAT := 0; (* proportional gain
*)
tTn_OuterLoop : TIME := T#0s; (* Tn *)
fMaxLimit_OuterLoop : FLOAT := 1E38;
fMinLimit_OuterLoop : FLOAT := -1E38;
fKp_InnerLoop : FLOAT := 0; (* proportional gain
*)
tTn_InnerLoop : TIME := T#0ms; (* Tn *)
tTv_InnerLoop : TIME := T#0ms; (* Tv *)
tTd_InnerLoop : TIME := T#0ms; (* Td *)
fMaxLimit_InnerLoop : FLOAT := 1E38;
fMinLimit_InnerLoop : FLOAT := -1E38;
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.
fKp_OuterLoop : Reglerverstärkung / Reglerbeiwert des PI-Glieds (äußerer Regelkreis).
tTn_OuterLoop : Nachstellzeit des PI-Glieds (äußerer Regelkreis). Wenn diese zu T#0s parametriert ist, wird der I-Anteil deaktiviert.
fMaxLimit_OuterLoop : Oberes Limit, an dem die Integration des PID-Glieds angehalten und der Ausgang begrenzt wird ( ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang bARWactiveOuterLoop signalisiert.
fMinLimit_OuterLoop : Unteres Limit, an dem die Integration des PID-Glieds angehalten und der Ausgang begrenzt wird ( ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang bARWactiveOuterLoop signalisiert.
fKp_InnerLoop : Reglerverstärkung / Reglerbeiwert des PID-Glieds (innerer Regelkreis).
tTn_InnerLoop : Nachstellzeit des PID-Glieds (innerer Regelkreis). Wenn diese zu T#0s parametriert ist, wird der I-Anteil deaktiviert.
tTv_InnerLoop : Vorhaltzeit des PID-Glieds (innerer Regelkreis). Wenn diese zu T#0s parametriert ist, wird der D-Anteil deaktiviert.
tTd_InnerLoop : Dämpfungszeit des PID-Glieds (innerer Regelkreis).
fMaxLimit_InnerLoop: Oberes Limit, an dem die Integration des PID-Glieds angehalten und der Ausgang begrenzt wird ( ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang bARWactiveInnerLoop signalisiert.
fMinLimit_InnerLoop : Unteres Limit, an dem die Integration des PID-Glieds angehalten und der Ausgang begrenzt wird ( ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang bARWactiveInnerLoop signalisiert.