FB_CTRL_PARAMETER_SWITCH
Mit diesem Baustein kann der Parametersatz des FB_CTRL_PID_SPLITRANGE
umgeschaltet werden.
Verhalten des Ausgangs
Beschreibung des Funktionsbausteins
Dieser Baustein dient zur Umschaltung des Parametersatzes bei dem FB_CTRL_PID_SPLITRANGE
. Insbesondere ist dieser Baustein dazu gedacht, bei Regelungen, die mit zwei Stellgliedern heizen und kühlen können, die Parametersätze umzuschalten und die Begrenzungen des Reglers zu setzen. Als Eingangsparameter wird die Zeit tMinWaitTime
angegeben, die bei einer Umschaltanforderung mindestens vergehen muss, damit der Parameterbereich gewechselt wird und die Reglerbegrenzungen so gesetzt werden, damit vom Heizbetrieb auf Kühlbetrieb umgeschaltet wird. Durch diese Maßnahmen soll verhindert werden, dass bei einem leichten Überschwingen des Reglers sofort die Betriebsart gewechselt wird.
Für den Heizbetrieb wird der Parameterbereich „eCTRL_PARAMETER_RECORD_HEATING = Heizen“ angewählt und für den Kühlbetrieb der Parameterbereich „eCTRL_PARAMETER_RECORD_COOLING = Kühlen“. Die Reglerparametersätze müssen entsprechend dieser Vorgabe parametriert werden.
Die eigentliche Umschaltanforderung wird mit einem 2-Punkt-Glied bestimmt (vergleiche Bild). Als Eingangsgröße für die gezeigte Hysterese-Kennlinie sollte die Reglerausgangsgröße, also die Stellgröße, verwendet werden. Eine Umschaltanforderung, die das Hysterese-Glied erzeugt, muss mindestens für die angegebene Wartezeit anliegen, damit der Parameterbereich gewechselt wird.
Mit den Eingängen bDisableRange1
und bDisableRange2
ist es möglich, die Umschaltung in einen der beiden Bereiche zu verhindern. So kann beispielsweise im Sommer der Heizbetrieb deaktiviert werden und im Winter der Kühlbetrieb. Denkbar ist es auch, den Wechsel der Betriebsart von der aktuellen Regeldifferenz abhängig zu machen. Im Sommer muss es zum Beispiel 2°C zu warm sein, damit in den Kühlbetrieb geschaltet wird. Auch dieses kann durch eine entsprechende Beschaltung der Eingänge erreicht werden.
Zusätzlich zu der Ausgabe des Parameterbereiches werden Max- und Min-Limits ausgeben, die in den Parametersatz des PID-Reglers kopiert werden können. Wenn sich der FB_CTRL_PARAMETER_SWITCH
in der Betriebsart Heizen befindet, werden die Limits folgendermaßen gesetzt:
fOutMinLimit = -1.0 stParams.fThreshold;
fOutMaxLimit = stParams.fOutMaxLimit;
In der Betriebsart Kühlen werden die Limits folgendermaßen gesetzt:
fOutMinLimit = stParams.fOutMaxLimit;
fOutMaxLimit = stParams.fThreshold;
VAR_INPUT
VAR_INPUT
fManipulatedVariable : FLOAT;
nManSyncValue : eCTRL_PARAMETER_RECORD_HEATING;
bSync : BOOL;
eMode : E_CTRL_MODE;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fManipulated | FLOAT | Eingangsgröße des |
nManSync | eCTRL_PARAMETER_RECORD_ | Eingang, mit dem der Funktionsbaustein auf einen der beiden Parameterbereiche gesetzt werden kann. |
bSync | BOOL | Mit einer steigenden Flanke an diesem Eingang wird der Funktionsbaustein auf den Wert „nManSyncValue“ gesetzt. |
eMode | E_CTRL_MODE | Eingang, der die Betriebsart des Bausteins festlegt. |
VAR_OUTPUT
VAR_OUTPUT
eParameterRecord : E_CTRL_PARAMETER_RECORD;
fOutMaxLimit : FLOAT;
fOutMinLimit : FLOAT;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
eParameterRecord | E_CTRL_ | Ausgang des Funktionsbausteins, der den Parameterbereich angibt. |
fOutMaxLimit | FLOAT | Maximale Ausgangsgröße, mit der der Regler begrenzt wird. (Sollte in die Parameter-Struktur des Reglers kopiert werden.) |
fOutMinLimit | FLOAT | Minimale Ausgangsgröße, mit der der Regler begrenzt wird. (Sollte in die Parameter-Struktur des Reglers kopiert werden.) |
eState | E_CTRL_ | State des Funktionsbausteins |
eErrorId | E_CTRL_ERROR | Liefert bei einem gesetzten |
bError | BOOL | Wird TRUE, sobald ein Fehler eintritt. |
VAR_IN_OUT
VAR_IN_OUT
stParams : ST_CTRL_PARAMETER_SWITCH_PARAMS;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
stParams | ST_CTRL_PARAMETER_SWITCH_PARAMS | Parameterstruktur des Funktionsbausteins |
stParams
besteht aus den folgenden Elementen:
TYPE
ST_CTRL_2POINT_PARAMS :
STRUCT
tTaskCycleTime : TIME;
tCtrlCycleTime : TIME;
fThreshold : FLOAT;
fOutMaxLimit : FLOAT;
fOutMinLimit : FLOAT;
tMinWaitTime : TIME;
END_STRUCT
END_TYPE
Name | Typ | Beschreibung |
---|---|---|
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. |
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. |
fThreshold | FLOAT | Schaltschwelle, siehe Bild oben. |
fOutMaxLimit | FLOAT | Max-Limit, welches an den Regler weitergegeben wird. |
fOutMinLimit | FLOAT | Min-Limit, welches an den Regler weitergegeben wird. |
tMinWaitTime | TIME | Wartezeit, siehe Beschreibung oben. |