FB_CTRL_PID
Der Funktionsbaustein stellt ein PID-Übertragungsglied im Wirkungsplan dar.
Übertragungsfunktion:
Die folgende Übertragungsfunktion lässt sich angeben, wenn die boolschen Eingänge bPInTheFeedbackPath und bDInTheFeedbackPath FALSE sind, andernfalls beschreibt die Übertragungsfunktion nur einen Teil des Übertragungsverhaltens des Blockes:
Wirkungsplan:
Der Standard Wirkungsplan eines PID-Reglers in additiver Form ist um die beiden als "Schalter" wirkenden boolschen Eingänge bPInTheFeedbackPath und bDInTheFeedbackPath erweitert worden, so dass ein modifizierter Wirkungsplan aktiviert werden kann.
Der Regelungstechnische Hintergrund ist der, dass bei Sollwertsprüngen durch den Differential-Anteil des Regelalgorithmus große Stellgröße entstehen, die die Stellelemente belasten und das Regelsystem zum Schwingen anregen können. Ein Regelalgorithmus, dessen Differential-Anteil nur auf der Regelgröße angewendet wird ( bDInTheFeedbackPath := TRUE ), vermeidet dieses Problem.
Mit den Eingängen bPInTheFeedbackPath und bDInTheFeedbackPath können die folgenden Übertragungsfunktionen des geschlossenen Regelkreises realisiert werden:
mit:
! Die Standardeinstellung für die beiden Eingänge bPInTheFeedbackPath und bDInTheFeedbackPath ist FALSE. Der PID-Regler entspricht dann einem Standard PID-Regler in additiver Form.
Sprungantwort:
ARW:
VAR_INPUT
VAR_INPUT
fSetpointValue : FLOAT;
fActualValue : FLOAT;
fManSyncValue : FLOAT;
bSync : BOOL;
eMode : E_CTRL_MODE;
bHold : BOOL;
END_VAR
fSetpointValue : Sollwert der Regelgröße.
fActualValue : Istwert der Regelgröße.
fManSyncValue : Eingang, auf dessen Wert der interne Zustand des PID-Glieds gesetzt werden kann.
bSync : Mit einer steigenden Flanke an diesem Eingang wird das PID-Glied auf den Wert fManSyncValue gesetzt.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
bHold : Ein TRUE an diesem Eingang hält den internen Zustand und somit auch den Ausgang unabhängig von der Regelabweichung 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 PID-Glieds.
bARWactive : Ein TRUE an diesem Ausgang signalisiert, dass sich das PID-Glied 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_PID_PARAMS;
END_VAR
stParams : Parameterstruktur des PID-Glieds. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_PID_PARAMS :
STRUCT
tCtrlCycleTime : TIME := T#0ms; (* controller
cycle time [TIME] *)
tTaskCycleTime : TIME := T#0ms; (* task cycle
time [TIME] *)
fKp : FLOAT := 0; (* proportional
gain *)
tTn : TIME := T#0ms; (* Tn *)
tTv : TIME := T#0ms; (* Tv *)
tTd : TIME := T#0ms; (* Td *)
fOutMaxLimit : FLOAT := 1E38; (* maximum
output limit *)
fOutMinLimit : FLOAT := -1E38; (* minimum
output limit *)
bPInTheFeedbackPath : BOOL;
bDInTheFeedbackPath : BOOL;
bARWOnIPartOnly : BOOL;
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 : Reglerverstärkung / Reglerbeiwert
tTn : Nachstellzeit. Wenn diese zu T#0s parametriert ist, wird der I-Anteil deaktiviert.
tTv : Vorhaltzeit. Wenn diese zu T#0s parametriert ist, wird der D-Anteil deaktiviert.
tTd : Dämpfungszeit
fOutMaxLimit : Oberes Limit, an dem die Integration angehalten und der Ausgang begrenzt 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 und der Ausgang begrenzt wird ( ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang bARWActive signalisiert.
bPInTheFeedbackPath : Eingang, mit dem die Eingangsgröße des internen P-Glieds ausgewählt werden kann (siehe Wirkungsplan). Standardeinstellung: FALSE
bDInTheFeedbackPath : Eingang, mit dem die Eingangsgröße des internen D-Glieds ausgewählt werden kann (siehe Wirkungsplan). Standardeinstellung: FALSE
bARWOnIPartOnly: Wenn dieser Parameter FALSE ist (Standardeinstellung), wird die Integration des I-Anteil dann angehalten, wenn der gesamte Reglerausgang das obere oder untere Limit erreicht. Wenn dieser TRUE ist, wird die Integration dann angehalten, wenn der I-Anteil (der Integratorausgang) ein Limit erreicht. (Vgl. Wirkungsplan)