FB_CTRL_SERVO_MOTOR_OUT
Dieser Funktionsbaustein erzeugt Impulse, mit denen ein Stellmotor auf eine definierte Position gefahren werden kann.
Verhalten des Ausgangs
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 |
bUpperLimit | BOOL | Endschalter: TRUE, wenn der obere Anschlag erreicht ist. |
bLowerLimit | 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_ | Eingang, der die Betriebsart des Bausteins festlegt. |
![]() | 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. |
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 |
eState | E_CTRL_STATE | State des Funktionsbausteins |
eErrorId | E_CTRL_ERRORCODES | Liefert bei einem gesetzten |
bError | BOOL | Wird TRUE, sobald ein Fehler eintritt. |
Ein-/ Ausgänge
VAR_IN_OUT
stParams : ST_CTRL_SERVO_MOTOR_OUT_PARAMS;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
stParams | ST_CTRL_ | 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 |
tMinWaitTime | TIME | Minimale Wartezeit zwischen positiven und negativen Ausgangsimpulsen |
tMinimumPulse | TIME | Minimale Länge eines Ausgangsimpulses |
bMoveOnLimit | BOOL | Wenn TRUE, wird bei einer Stellgröße von |
bStopAdditionalMoveTimeIf | 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. |