FB_CTRL_PI

FB_CTRL_PI 1:

Der Funktionsbaustein stellt ein PI-Übertragungsglied im Wirkungsplan dar.

Verhalten des Ausgangs:

FB_CTRL_PI 2:

Sprungantwort:

FB_CTRL_PI 3:

ARW:

FB_CTRL_PI 4:

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, mit dem das PI-Glied gesetzt werden kann.

bSync : Mit einer steigenden Flanke an diesem Eingang wird das PI-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 PI-Glieds.

bARWactive : Ein TRUE an diesem Ausgang signalisiert, dass sich das PI-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_PI_PARAMS;
END_VAR

stParams : Parameterstruktur des PI-Glieds. Diese besteht aus den folgenden Elementen:

TYPE ST_CTRL_PI_PARAMS
:
STRUCT
    tCtrlCycleTime     : TIME     :=  T#0ms; (* controller
cycle time [TIME] *)
    tTaskCycleTime     : TIME     :=  T#0ms; (* task cycle time
[TIME] *)
    tTn        : TIME     :=  T#0ms; (* integral action
time Tn *)
    fKp        : FLOAT    :=  0;     (* proportional
gain *)
    fOutMaxLimit       : FLOAT    :=  1E38;  (* maximum output
limit *)
    fOutMinLimit       : FLOAT    := -1E38;  (* minimum output
limit *)
    bARWOnIPartOnly    : BOOL     := FALSE;  (* FALSE: Hold the
I-part if the entire control output reaches a limit. *)
                         (* TRUE: Hold the
I-part if only the I-part reaches a limit. *)
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.

tTn : Nachstellzeit

fKp : Reglerverstärkung / Übertragungsbeiwert

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.

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)

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.8

PC (i386)

TcControllerToolbox.lib

TwinCAT v2.9 ab Build 947

BC

TcControllerToolbox.lb6

TwinCAT v2.9 ab Build 956

BX

TcControllerToolbox.lbx