FB_CTRL_SERVO_MOTOR_SIMULATION (nur auf einem PC-System)
MIt diesem Funktionsbaustein kann das Verhalten eines Stellantriebs simuliert werden.
Verhalten des Ausgangs:
VAR_INPUT
VAR_INPUT
bMovePos : BOOL;
bMoveNeg : BOOL;
fManSyncValue : FLOAT;
bSync : BOOL;
eMode : E_CTRL_MODE;
END_VAR
bMovePos : Eingang, der den simulierten Stellantrieb in positive Richtung fährt.
bMoveNeg : Eingang, der den simulierten Stellantrieb in negative Richtung fährt.
fManSyncValue : Eingang, mit dem die simulierte Motorstellung gesetzt werden kann, oder auf dessen Wert im Manual-Mode gefahren wird.
bSync : Mit einer steigenden Flanke an diesem Eingang wird die simulierte Motorposition auf den Wert fManSyncValue gesetzt.
eMode : Eingang, der die Betriebsart des Bausteins festlegt.
VAR_OUTPUT
VAR_OUTPUT
fMotorPositon : FLOAT; (* [ fMovingRangeMin ... fMovingRangeMax ] *)
fMotorState : FLOAT; (* [ 0 ... 100 ] *)
bUpperLimitSwitch : BOOL;
bLowerLimitSwitch : BOOL;
eState : E_CTRL_STATE;
eErrorId : E_CTRL_ERRORCODES;
bError : BOOL;
END_VAR
fMotorPosition : Simulierte Motorstellung im Intervall [ fMovingRangeMin ... fMovingRangeMax ].
fMotorState : Simulierte Motorstellung im Intervall [ 0 ... 100.0 ].
bUpperLimitSwitch : Simulierter Endschalter am positiven Anschlag des Stellantriebs.
bLowerLimitSwitch : Simulierter Endschalter am negativen Anschlag des Stellantriebs.
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_SERVO_MOTOR_SIMULATION_PARAMS;
END_VAR
stParams : Parameterstruktur des Funktionsbausteins. Diese besteht aus den folgenden Elementen:
TYPE
ST_CTRL_SERVO_MOTOR_SIMULATION_PARAMS:
STRUCT
tCtrlCycleTime : TIME := T#0ms; (* controller
cycle time [TIME] *)
tTaskCycleTime : TIME := T#0ms; (* task cycle
time [TIME] *)
fMovingRangeMin : FLOAT := 0; (* min position
in the moving range, e.g. 0° *)
fMovingRangeMax : FLOAT := 0; (* max position
in the moving range, e.g. 360° *)
tMovingTime : TIME := T#0ms; (* time to move
from the min to the max *)
tDeadTime : TIME := T#0ms; (* wait dead
time before starting the movement *)
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 in 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.
fMovingRangeMin : Minimale Position des simulierten Stellantriebs.
fMovingRangeMax : Maximale Position des simulierten Stellantriebs.
tMovingTime : Die Zeit, die benötigt wird, um den simulierten Stellantrieb von einem Anschlag zum anderen zu fahren.
tDeadTime : Totzeit des simulierten Stellantriebs.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.8 | PC (i386) | TcControllerToolbox.lib |