FB_CTRL_PID_SPLITRANGE
Der Funktionsbaustein stellt ein erweitertes PID-Übertragungsglied im Wirkungsplan dar. Bei diesem Regler ist es möglich, bei aktiver Regelung zwischen zwei Parametersätzen umzuschalten.
Beschreibung
Bei diesem Funktionsbaustein handelt es sich um eine Erweiterung des FB_CTRL_PID
, so dass der Regler für eine Strecke mit zwei Stelleinrichtungen eingesetzt werden kann, dessen Übertragungsverhalten unterschiedlich ist. Ein typischer Anwendungsfall ist eine Strecke mit einem Stellglied zum Heizen und einem Stellglied zum Kühlen. Um eine optimale Regelung einer solchen Anordnung zu ermöglichen kann zwischen zwei PID-Parametersätzen umgeschaltet werden. Die Parametersatzumschaltung erfolgt dabei so, dass sich auch während der Umschaltung eine stetige Stellgröße ergibt.
Der Umschaltalgorithmus berechnet eine lineare zeitabhängige Transition zwischen den beiden Parametersätzen. Mit dem Parameter nParameterChangeCycleTicks
kann die Anzahl der Task-Zyklen vorgegeben werden, in denen stetig zwischen den Parametersätzen umgeschaltet wird.
Übertragungsfunktion
Die folgende Übertragungsfunktion lässt sich angeben, wenn die boolschen Eingänge bPInTheFeedbackPath
und bDInTheFeedbackPath
FALSE sind, anderenfalls beschreibt die Übertragungsfunktion nur einen Teil des Übertragungsverhaltens des Blocks:

Wirkungsplan
Der Standardwirkungsplan 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:
bPInTheFeedbackPath | bDInTheFeedbackPath | G(s) |
---|---|---|
false | false | |
true | false | |
false | true | |
true | true |
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
Eingänge
VAR_INPUT
fSetpointValue : FLOAT;
fActualValue : FLOAT;
eParameterRecord : E_CTRL_PARAMETER_RECORD;
fManSyncValue : FLOAT;
bSync : BOOL;
eMode : E_CTRL_MODE;
bHold : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fSetpointValue | FLOAT | Sollwert der Regelgröße |
fActualValue | FLOAT | Istwert der Regelgröße |
eParameter | E_CTRL_ | Index des aktiven Parametersatzes |
fManSyncValue | FLOAT | Eingang, mit dem das PI-Glied gesetzt werden kann. |
bSync | BOOL | Mit einer steigenden Flanke an diesem Eingang wird das PI-Glied auf den Wert „fManSyncValue“ gesetzt. |
eMode | E_CTRL_MODE | Eingang, der die Betriebsart des Bausteins festlegt. |
bHold | BOOL | 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. |
Ausgänge
VAR_OUTPUT
fOutPos : FLOAT;
fOutNeg : FLOAT;
fOut : FLOAT;
bARWActive : BOOL := FALSE;
bParameterChangeActive : BOOL;
eState : E_CTRL_STATE;
bError : BOOL;
eErrorId : E_CTRL_ERRORCODES;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fOutPos | FLOAT | Ausgang des PID-Glieds, wenn die Stellgröße positiv ist. Anderenfalls wird eine Null ausgegeben. |
fOutNeg | FLOAT | Ausgang des PID-Glieds, wenn die Stellgröße negativ ist. Anderenfalls wird eine Null ausgegeben. |
fOut | FLOAT | Ausgang des PID-Glieds |
bARWActive | BOOL | Ein TRUE an diesem Ausgang signalisiert, dass sich das PID-Glied in der Begrenzung befindet. |
bParameter | BOOL | Ein TRUE an diesem Ausgang signalisiert, dass ein Wechsel von einem zum anderen Parametersatz erfolgt. |
eState | E_CTRL_STATE | State des Funktionsbausteins |
bError | BOOL | Wird TRUE, sobald ein Fehler eintritt. |
eErrorId | E_CTRL_ERRORCODES | Liefert bei einem gesetzten |
Ein-/ Ausgänge
VAR_IN_OUT
stParams : ST_CTRL_PID_SPLITRANGE_PARAMS;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
stParams | ST_CTRL_PID_ | Parameterstruktur des PID-Glieds |
stParams
besteht aus den folgenden Elementen:
TYPE
ST_CTRL_PID_SPLITRANGE_PARAMS :
STRUCT
tCtrlCycleTime : TIME := T#0ms;
tTaskCycleTime : TIME := T#0ms;
fKp_heating : FLOAT := 0;
tTn_heating : TIME := T#0ms;
tTv_heating : TIME := T#0ms;
tTd_heating : TIME := T#0ms;
fKp_cooling : FLOAT := 0;
tTn_cooling : TIME := T#0ms;
tTv_cooling : TIME := T#0ms;
tTd_cooling : TIME := T#0ms;
nParameterChangeCycleTicks : INT;
fOutMaxLimit : FLOAT := 1E38;
fOutMinLimit : FLOAT := -1E38;
bPInTheFeedbackPath : BOOL;
bDInTheFeedbackPath : BOOL;
bARWOnIPartOnly : BOOL;
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. |
Bereich eCTRL_PARAMETER_RECORD_HEATING: | ||
fKp_heating | FLOAT | Reglerverstärkung / Reglerbeiwert |
tTn_heating | TIME | Nachstellzeit: Wenn diese zu T#0s parametriert ist, wird der I-Anteil deaktiviert. |
tTv_heating | TIME | Vorhaltzeit: Wenn diese zu T#0s parametriert ist, wird der D-Anteil deaktiviert. |
tTd_heating | TIME | Dämpfungszeit |
Bereich eCTRL_PARAMETER_RECORD_COOLING: | ||
fKp_cooling | FLOAT | Reglerverstärkung / Reglerbeiwert |
tTn_cooling | TIME | Nachstellzeit: Wenn diese zu T#0s parametriert ist, wird der I-Anteil deaktiviert. |
tTv_cooling | TIME | Vorhaltzeit: Wenn diese zu T#0s parametriert ist, wird der D-Anteil deaktiviert. |
tTd_cooling | TIME | Dämpfungszeit |
nParameter | INT | Anzahl der Task-Zyklen, in denen von einem zum anderen Parametersatz gewechselt wird. |
fOutMaxLimit | FLOAT | 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 |
fOutMinLimit | FLOAT | 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 |
bPInTheFeed | BOOL | Eingang, mit dem die Eingangsgröße des P-Gliedes ausgewählt werden kann (siehe Wirkungsplan). |
bDInTheFeed | BOOL | Eingang, mit dem die Eingangsgröße des D-Gliedes ausgewählt werden kann (siehe Wirkungsplan). |
bARWOnIPartOnly | BOOL | 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. (Vergl. Wirkungsplan.) |