FB_CTRL_I_WITH_DRIFTCOMPENSATION

FB_CTRL_I_WITH_DRIFTCOMPENSATION 1:

Der Funktionsbaustein stellt ein I-Übertragungsglied mit einer Driftkompensation dar.

Wirkungsplan:

FB_CTRL_I_WITH_DRIFTCOMPENSATION 2:

VAR_INPUT

VAR_INPUT
    fIn         : FLOAT;
    fManSyncValue   : FLOAT;
    bSync       : BOOL;
    eMode       : E_CTRL_MODE;
    bHold       : BOOL;
END_VAR

fIn : Eingang des I-Glieds.

fManSyncValue : Eingang, auf den das I-Glied synchronisiert werden kann, oder dessen Wert im Manual-Mode am Ausgang anliegt.

bSync : Mit einer steigenden Flanke an diesem Eingang wird der Integrator auf den Wert fManSyncValue gesetzt.

eMode : Eingang, der die Betriebsart des Bausteins festlegt.

bHold : Ein TRUE an diesem Eingang hält den Integrator unabhängig von dem Eingang fIn 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 I-Glieds.

bARWactive : Ein TRUE an diesem Ausgang signalisiert, dass sich der Integrator 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_I_WITH_DRIFTCOMPENSATION_PARAMS;
END_VAR

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

TYPE
ST_CTRL_I_WITH_DRIFTCOMPENSATION_PARAMS:
STRUCT
     tCtrlCycleTime      : TIME := T#0ms; (* controller cycle
time [TIME] *)
     tTaskCycleTime      : TIME := T#0ms; (* task cycle time
[TIME] *)
     tTi         : TIME := T#0ms; (* integral action
time Ti *)
     fOutMaxLimit    : FLOAT := 1E38; (* maximum output
limit *)
     fOutMinLimit    : FLOAT := -1E38; (* minimum output
limit *)
     fDampingCoefficient : FLOAT := 0.0;
     tAveragingTime      : TIME := T#0ms; (* averaging time
*)
     pWorkArray_ADR      : POINTER TO FLOAT := 0;
     nWorkArray_SIZEOF   : UINT := 0;
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.

tTi : Integrationszeit des I-Glieds.

fOutMaxLimit : Oberes Limit, an dem die Integration angehalten 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 wird ( ARW-Maßnahme). Das Erreichen dieses Limits wird durch ein TRUE an dem Ausgang bARWActive signalisiert.

fDampingCoefficient : Faktor kd im Wirkungsplan.

tAveragingTime : Zeit, über die das gleitende Mittelwertfilter den Mittelwert bildet.

pWorkArray_ADR : Adresse eines Array of FLOAT der Größe tAveragingTime / tCtrlCycleTime. (Siehe Beschreibung des Bausteins: FB_CTRL_MOVING_AVERAGE.)

nWorkArray_SIZEOF : Größe eines Array of FLOAT der Größe tAveragingTime / tCtrlCycleTime. (Siehe Beschreibung des Bausteins: FB_CTRL_MOVING_AVERAGE.)

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