FB_CTRL_SETPOINT_GENERATOR

FB_CTRL_SETPOINT_GENERATOR 1:

Der Funktionsbaustein stellt einen Sollwertgenerator dar, der aus einer Tabelle den angewählten Sollwert ausgibt. Der Wechsel von einem zum anderen Sollwert kann stetig oder unstetig erfolgen.

Verhalten der Ausgangsgröße:

FB_CTRL_SETPOINT_GENERATOR 2:

Tabelle des Beispiels:

18

20

22

24

Die erste Zeile der Tabelle entspricht dem Index 1, die zweite dem Index 2 usw.

Beschreibung:

In dem Array, welches mit den entsprechenden Parametern dem Baustein bekannt gemacht wird, werden die einzelnen Sollwerte abgelegt. Über den Eingang nSetpointIndex wird ein in der Tabelle hinterlegter Sollwert ausgewählt. Dieser wird dann am Ausgang ausgegeben und kann als Sollwert für die Regelung verwendet werden. Der Wechsel von einem Wert auf einen anderen kann linear oder sprungförmig erfolgen. Die Geschwindigkeit eines stetigen Übergangs wird mit den Parametern fVeloPos und fVeloNeg festgelegt. Der Ausgang bValueReached signalisiert das Erreichen des angewählten Sollwertes.

VAR_INPUT

VAR_INPUT
    nSetpointIndex  : INT  (*[1 ... n] *);
    fManValue       : FLOAT;
    eMode       : E_CTRL_MODE;
END_VAR

nSetpointIndex : Index des angewählten Sollwertes.

fManValue : Eingang, der im Manual-Mode ausgegeben wird.

eMode : Eingang, der die Betriebsart des Bausteins festlegt.

VAR_OUTPUT

VAR_OUTPUT
    fOut        : SETPOINT_TABLE_ELEMENT;
    bValueReached   : BOOL;
    eState      : E_CTRL_STATE;
    eErrorId        : E_CTRL_ERRORCODES;
    bError      : BOOL;
END_VAR

fOut : Ausgang des Sollwert-Generators.

bValueReached : Der Ausgang ist TRUE, wenn der angewählte Sollwert erreicht worden ist, also wenn das Rampen auf den angewählten Wert beendet ist.

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_SETPOINT_GENERATOR_PARAMS; (* parameters *)
END_VAR

stParams : Parameterstruktur des Rampengenerators. Diese besteht aus den folgenden Elementen:

TYPE
ST_CTRL_SETPOINT_GENERATOR_PARAMS:
STRUCT
    tCtrlCycleTime          : TIME     := T#0ms; (*
controller cycle time [TIME] *)
    tTaskCycleTime          : TIME     := T#0ms; (* task
cycle time [TIME] *)
    pDataTable_ADR          : POINTER TO
INTERPOLATION_TABLE_ELEMENT := 0;
    nDataTable_SIZEOF       : UINT     := 0;
    nDataTable_NumberOfRows     : UINT     := 0;
    fVeloPos            : FLOAT; (* velocity ramp by
time range > 0.0 *)
    fVeloNeg            : FLOAT; (* velocity ramp by
time range > 0.0 *)
    bDisableRamping         : BOOL     := FALSE;
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.indent: -103; margin-left: 108"> tTaskCycleTime : Zykluszeit, mit der der Funktionsbaustein aufgerufen wird. Diese entspricht der Task-Zykluszeit der aufrufenden Task, wenn der Baustein in jedem Zyklus aufgerufen wird.

pDataTable_ADR : Adresse des Daten-Arrays.

pDataTable_SIZEOF : Größe des Daten-Arrays.

pDataTable_NumberOfRows : Anzahl der Zeilen des Daten-Arrays.

fVeloPos : Geschwindigkeit in Einheiten / s, mit der der Ausgang von einem niedrigeren Wert auf einen höheren überführt wird.

fVeloNeg : Geschwindigkeit in Einheiten / s, mit der der Ausgang von einem höheren Wert auf einen niedrigeren überführt wird.

bDisableRamping: Wenn dieser Parameter TRUE ist, wird keine stetige Ausgangsgröße berechnet. Es wird sprungförmig zwischen den Ausgangswerten umgeschaltet.

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