FB_CTRL_SERVO_MOTOR_OUT

FB_CTRL_SERVO_MOTOR_OUT 1:

Dieser Funktionsbaustein erzeugt Impulse, mit denen ein Stellmotor auf eine definierte Position gefahren werden kann.

Verhalten des Ausgangs

FB_CTRL_SERVO_MOTOR_OUT 2:

FB_CTRL_SERVO_MOTOR_OUT 3: Eingänge

VAR_INPUT
    fIn                : FLOAT;
    bUpperLimitSwitch  : BOOL;
    bLowerLimitSwitch  : BOOL;
    fManSyncValue      : FLOAT;
    bSync              : BOOL;
    eMode              : E_CTRL_MODE;
END_VAR

Name

Typ

Beschreibung

fIn

FLOAT

Stellgröße des Reglers im Intervall
[fCtrlOutMin ... fCtrlOutMax] (Reglerausgang).

bUpperLimit
Switch

BOOL

Endschalter: TRUE, wenn der obere Anschlag erreicht ist.

bLowerLimit
Switch

BOOL

Endschalter: TRUE, wenn der untere Anschlag erreicht ist.

fManSyncValue

FLOAT

Eingang, mit dem der interne Zustand der aktuellen Motorstellung angepasst werden kann, oder auf dessen Wert im Manual-Mode gefahren wird.

bSync

BOOL

Mit einer steigenden Flanke an diesem Eingang wird die interne Motorposition, die der tatsächlichen Motorposition entsprechen muss, auf den Wert „fManSyncValue“ gesetzt.

eMode

E_CTRL_
MODE

Eingang, der die Betriebsart des Bausteins festlegt.

FB_CTRL_SERVO_MOTOR_OUT 4:

Dieser Baustein besitzt zur Synchronisation mit der aktuellen Ventilstellung den Mode eCTRL_MODE_SYNC_MOVEMENT. In diesem Mode wird der Ausgang zum Schließen des Ventils solange gesetzt, bis das Ventil sicher geschlossen ist. Daran anschließend wird der Baustein auf diese Ventilstellung synchronisiert.

Wenn der Synchronisierungsvorgang abgeschlossen ist, wird automatisch in den State eCTRL_STATE_ACTIVE geschaltet.

FB_CTRL_SERVO_MOTOR_OUT 5: Ausgänge

VAR_OUTPUT
    bOutBitPos     : BOOL;
    bOutBitNeg     : BOOL;
    fActualState   : FLOAT;
    eState         : E_CTRL_STATE;
    eErrorId       : E_CTRL_ERRORCODES;
    bError         : BOOL;
END_VAR

Name

Typ

Beschreibung

bOutBitPos

BOOL

Ausgang, um den Motor in positiver Richtung zu verfahren.

bOutBitNeg

BOOL

Ausgang, um den Motor in negativer Richtung zu verfahren.

fActualState

FLOAT

Aktuelle Motorstellung im Intervall
[fCtrlOutMin ... fCtrlOutMax], in dem sich der Motor aktuell befindet.

eState

E_CTRL_STATE

State des Funktionsbausteins

eErrorId

E_CTRL_ERRORCODES

Liefert bei einem gesetzten bError-Ausgang die Fehlernummer.

bError

BOOL

Wird TRUE, sobald ein Fehler eintritt.

FB_CTRL_SERVO_MOTOR_OUT 6: Ein-/ Ausgänge

VAR_IN_OUT
    stParams    : ST_CTRL_SERVO_MOTOR_OUT_PARAMS;
END_VAR

Name

Typ

Beschreibung

stParams

ST_CTRL_
SERVO_MOTOR_OUT_PARAMS

Parameterstruktur des Funktionsbausteins

stParams besteht aus den folgenden Elementen:

TYPE ST_CTRL_SERVO_MOTOR_OUT_PARAMS:
STRUCT
    tCtrlCycleTime                               : TIME := T#0ms;
    tTaskCycleTime                               : TIME := T#0ms;
    tMovingTime                                  : TIME;
    tSignalExtension                             : TIME;
    tAdditionalMoveTimeAtLimits                  : TIME;
    tMinWaitTimeBetweenDirectionChange           : TIME;
    tMinimumPulseTime                            : TIME;
    bMoveOnLimitSwitch                           : BOOL;
    bStopAdditionalMoveTimeIfInputValueIsChanged : BOOL;
    fCtrlOutMax                                  : FLOAT := 100.0;
    fCtrlOutMin                                  : FLOAT := 0.0;    
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 in 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.

tMovingTime

TIME

Die Zeit, die benötigt wird, um das Stellglied von einem Anschlag zum anderen zu fahren.

tSignalExtension

TIME

Signalverlängerung, um die jeder Ausgangsimpuls verlängert wird, um eine Totzeit zu kompensieren.

tAdditionalMoveTimeAtLimits

TIME

Signalverlängerung, die zum sicheren Erreichen der Grenzen zusätzlich ausgegeben wird, wenn das Stellglied auf +/-100% gefahren werden soll. Wirkt nur, wenn bMoveOnLimitSwitch FALSE ist.

tMinWaitTime
Between
DirectionChange

TIME

Minimale Wartezeit zwischen positiven und negativen Ausgangsimpulsen

tMinimumPulse
Time

TIME

Minimale Länge eines Ausgangsimpulses

bMoveOnLimit
Switch

BOOL

Wenn TRUE, wird bei einer Stellgröße von fCtrlOutMin oder fCtrlOutMax solange ein Signal ausgegeben, bis der entsprechende Endschalter erreicht wird.

bStopAdditionalMoveTimeIf
InputValueIs
Changed

BOOL

Wenn dieses Flag TRUE ist, wird das Fahren des Ventils auf die Endlage, welches durch die Zeit "Additional Moving Time At Limits" verursacht wird, gestoppt, wenn eine Eingangsgröße ungleich der Endlage vorgegeben wird. Wenn dieses Flag FALSE ist, wird bei einer Eingangsgröße, die einer Endlage entspricht, immer erst sicher auf die Endlage gefahren, bevor wieder eine andere Ventilstellung angefahren werden kann.

fCtrlOutMax

FLOAT

Stellgröße, bei der das Ventil auf 100% gefahren wird.

fCtrlOutMin

FLOAT

Stellgröße, bei der das Ventil auf 0% gefahren wird.