FB_CTRL_PID_SPLITRANGE

FB_CTRL_PID_SPLITRANGE 1:

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:

FB_CTRL_PID_SPLITRANGE 2:

Wirkungsplan

FB_CTRL_PID_SPLITRANGE 3:

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

FB_CTRL_PID_SPLITRANGE 4:

true

false

FB_CTRL_PID_SPLITRANGE 5:

false

true

FB_CTRL_PID_SPLITRANGE 6:

true

true

FB_CTRL_PID_SPLITRANGE 7:

mit:

FB_CTRL_PID_SPLITRANGE 8:
FB_CTRL_PID_SPLITRANGE 9:
FB_CTRL_PID_SPLITRANGE 10:

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.

FB_CTRL_PID_SPLITRANGE 11:

Sprungantwort

FB_CTRL_PID_SPLITRANGE 12:

ARW

FB_CTRL_PID_SPLITRANGE 13:

FB_CTRL_PID_SPLITRANGE 14: 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
Record

E_CTRL_
PARAMETER_
RECORD

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.

FB_CTRL_PID_SPLITRANGE 15: 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
ChangeActive

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 bError-Ausgang die Fehlernummer.

FB_CTRL_PID_SPLITRANGE 16: Ein-/ Ausgänge

VAR_IN_OUT
    stParams        : ST_CTRL_PID_SPLITRANGE_PARAMS;
END_VAR

Name

Typ

Beschreibung

stParams

ST_CTRL_PID_
SPLITRANGE_
PARAMS

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
ChangeCycle
Ticks

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 bARWActive signalisiert.

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 bARWActive signalisiert.

bPInTheFeed
backPath

BOOL

Eingang, mit dem die Eingangsgröße des P-Gliedes ausgewählt werden kann (siehe Wirkungsplan).

bDInTheFeed
backPath

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.)