FB_CTRL_STEPPING_MOTOR_OUT

FB_CTRL_STEPPING_MOTOR_OUT 1:

Dieser Funktionsbaustein erzeugt eine Stellgröße für einen Schrittmotor.

Verhalten des Ausgangs

FB_CTRL_STEPPING_MOTOR_OUT 2:

FB_CTRL_STEPPING_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 (Reglerausgang)

bUpperLimit
Switch

BOOL

Endschalter, wird TRUE, wenn der obere Anschlag erreicht ist.

bLowerLimit
Switch

BOOL

Endschalter, wird TRUE, wenn der untere Anschlag erreicht ist.

fManSyncValue

FLOAT

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

bSync

BOOL

Mit einer steigenden Flanke an diesem Eingang wird der interne Schrittzähler auf den Schritt gesetzt, der dem Wert „fManSyncValue“ entspricht.

eMode

E_CTRL_MODE

Eingang, der die Betriebsart des Bausteins festlegt.

FB_CTRL_STEPPING_MOTOR_OUT 4:

Dieser Baustein besitzt zur Synchronisation mit der aktuellen Ventilstellung den Mode eCTRL_MODE_SYNC_MOVEMENT. In diesem Mode werden solange Impulse zum Schließen des Ventils ausgegeben, 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_STEPPING_MOTOR_OUT 5: Ausgänge

VAR_OUTPUT
    bOutBitPos   : BOOL;
    bOutBitNeg   : BOOL;
    nActualStep  : DINT;
    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.

nActualStep

DINT

Aktueller Schritt, in dem der Motor steht.

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_STEPPING_MOTOR_OUT 6: Ein-/ Ausgänge

VAR_IN_OUT
    stParams    : ST_CTRL_STEPPING_MOTOR_OUT_PARAMS;
END_VAR

Name

Typ

Beschreibung

stParams

ST_CTRL_STEPPING_MOTOR_
OUT_PARAMS

Parameterstruktur des Funktionsbausteins

stParams besteht aus den folgenden Elementen:

TYPE
ST_CTRL_STEPPING_MOTOR_OUT_PARAMS:
STRUCT
    tCtrlCycleTime             : TIME := T#0ms;
    tTaskCycleTime             : TIME := T#0ms;
    tOnTime                    : TIME;
    tOffTime                   : TIME;
    nMaxMovingPulses           : DINT;
    nMinMovingPulses           : UINT := 0;
    bHoldWithOutputOn          : BOOL;
    nAdditionalPulsesAtLimits  : DINT;
    bMoveOnLimitSwitch         : 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.

tOnTime

TIME

Impulslänge

tOffTime

TIME

Pausenlänge

nMaxMoving
Pulses

DINT

Max. Anzahl Impulse, die benötigt werden, um von einem Limit zum anderen zu fahren.

nMinMoving
Pulses

UINT

Min. Anzahl Impulse, die benötigt werden, um von einem Limit zum anderen zu fahren.

bHoldWith
OutputOn

BOOL

Wenn dieser Parameter auf TRUE gesetzt ist, bleibt im Stillstand des Antriebs ein Ausgang gesetzt. Dieser wird somit gebremst.

nAdditionalPulsesAtLimits

DINT

Impulse, die zum sicheren Erreichen der Grenzen zusätzlich ausgegeben werden.

bMoveOnLimit
Switch

BOOL

Wenn TRUE, werden bei 0% oder 100% Stellgröße solange Impulse ausgegeben, bis ein Endschalter erreicht wird.

fCtrlOutMax

FLOAT

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

fCtrlOutMin

FLOAT

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