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;
fActualValueOuterLoop : FLOAT;
fActualValueInnerLoop : FLOAT;
fPreControl : FLOAT;
fManSyncValueInnerLoop : FLOAT;
bSyncInnerLoop : BOOL;
eModeInnerLoop : E_CTRL_MODE;
bHoldInnerLoop : BOOL;
fManSyncValueOuterLoop : FLOAT;
bSyncOuterLoop : BOOL;
eModeOuterLoop : E_CTRL_MODE;
bHoldOuterLoop : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fSetpointValue | FLOAT | Sollwert der Regelgröße |
fActualValueOuterLoop | FLOAT | Istwert der Regelgröße, die auf den PI-Regler des äußeren Regelkreises zurückgeführt wird. |
fActualValueInnerLoop | FLOAT | Istwert der Regelgröße, die auf den PID-Regler des inneren Regelkreises zurückgeführt wird. |
fPreControl | FLOAT | Vorsteuerung, die hinter dem PI-Regler aufgeschaltet wird. |
fManSyncValueInnerLoop | FLOAT | Eingang, auf dessen Wert der interne Zustand des PID-Glieds (innerer Regelkreis) gesetzt werden kann. |
bSyncInnerLoop | BOOL | Mit einer steigenden Flanke an diesem Eingang wird das PID-Glied (innerer Regelkreis) auf den Wert „fManSyncValueInnerLoop“ gesetzt. |
eModeInnerLoop | E_CTRL_MODE | Eingang, der die Betriebsart des PID-Glieds (innerer Regelkreis) festlegt. |
bHoldInnerLoop | BOOL | Ein TRUE an diesem Eingang hält den internen Zustand des PID-Glieds (innerer Regelkreis) konstant auf dem aktuellen Wert. |
fManSyncValueOuterLoop | FLOAT | Eingang, auf dessen Wert der interne Zustand des PI-Glieds (äußerer Regelkreis) gesetzt werden kann. |
bSyncOuterLoop | BOOL | Mit einer steigenden Flanke an diesem Eingang wird das PI-Glied (äußerer Regelkreis) auf den Wert „fManSyncValueOuterLoop“ gesetzt. |
eModeOuterLoop | E_CTRL_MODE | Eingang, der die Betriebsart des PI-Glieds (äußerer Regelkreis) festlegt. |
bHoldOuterLoop | BOOL | Ein TRUE an diesem Eingang hält den internen Zustand des PI-Glieds (äußerer Regelkreis) konstant auf dem aktuellen Wert. |
VAR_OUTPUT
VAR_OUTPUT
fOut : FLOAT;
eStateInnerLoop : E_CTRL_STATE;
bARWactiveInnerLoop : BOOL;
eErrorIdInnerLoop : E_CTRL_ERRORCODES;
bErrorInnerLoop : BOOL;
eStateOuterLoop: E_CTRL_STATE;
bARWactiveOuterLoop : BOOL;
eErrorIdOuterLoop : E_CTRL_ERRORCODES;
bErrorOuterLoop : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fOut | FLOAT | Ausgang des PI-PID-Glieds |
eStateInnerLoop | E_CTRL_STATE | State des internen PID-Glieds (innerer Regelkreis) |
bARWactive | BOOL | Ein TRUE an diesem Ausgang signalisiert, dass sich das PID-Glied (innerer Regelkreis) in der Begrenzung befindet. |
eErrorIdInnerLoop | E_CTRL_ERROR | Liefert bei einem gesetzten |
bErrorInnerLoop | BOOL | Wird TRUE, sobald ein Fehler in dem PID-Glied (innerer Regelkreis) eintritt. |
eStateOuterLoop | E_CTRL_STATE | State des internen PI-Glieds (äußerer Regelkreis) |
bARWactiveOuterLoop | BOOL | Ein TRUE an diesem Ausgang signalisiert, dass sich das PI-Glied (äußerer Regelkreis) in der Begrenzung befindet. |
eErrorIdOuterLoop | E_CTRL_ERRORCODES | Liefert bei einem gesetzten |
bErrorOuterLoop | BOOL | 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
Name | Typ | Beschreibung |
---|---|---|
stParams | ST_CTRL_PI_PID_PARAMS | Parameterstruktur des PI-PID-Glieds |
stParams
besteht aus den folgenden Elementen:
TYPE
ST_CTRL_PI_PID_PARAMS :
STRUCT
tCtrlCycleTime : TIME := T#0ms;
tTaskCycleTime : TIME := T#0ms;
fKp_OuterLoop : FLOAT := 0;
tTn_OuterLoop : TIME := T#0s;
fMaxLimit_OuterLoop : FLOAT := 1E38;
fMinLimit_OuterLoop : FLOAT := -1E38;
fKp_InnerLoop : FLOAT := 0;
tTn_InnerLoop : TIME := T#0ms;
tTv_InnerLoop : TIME := T#0ms;
tTd_InnerLoop : TIME := T#0ms;
fMaxLimit_InnerLoop : FLOAT := 1E38;
fMinLimit_InnerLoop : FLOAT := -1E38;
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. |
fKp_OuterLoop | FLOAT | Reglerverstärkung / Reglerbeiwert des PI-Glieds (äußerer Regelkreis) |
tTn_OuterLoop | TIME | Nachstellzeit des PI-Glieds (äußerer Regelkreis). Wenn diese zu T#0s parametriert ist, wird der I-Anteil deaktiviert. |
fMaxLimit_OuterLoop | FLOAT | 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 |
fMinLimit_OuterLoop | FLOAT | 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 |
fKp_InnerLoop | FLOAT | Reglerverstärkung / Reglerbeiwert des PID-Glieds (innerer Regelkreis) |
tTn_InnerLoop | TIME | Nachstellzeit des PID-Glieds (innerer Regelkreis). Wenn diese zu T#0s parametriert ist, wird der I-Anteil deaktiviert. |
tTv_InnerLoop | TIME | Vorhaltzeit des PID-Glieds (innerer Regelkreis). Wenn diese zu T#0s parametriert ist, wird der D-Anteil deaktiviert. |
tTd_InnerLoop | TIME | Dämpfungszeit des PID-Glieds (innerer Regelkreis) |
fMaxLimit_InnerLoop | FLOAT | 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 |
fMinLimit_InnerLoop | FLOAT | 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 |