FB_CTRL_SERVO_MOTOR_SIMULATION (nur auf einem PC-System)

FB_CTRL_SERVO_MOTOR_SIMULATION (nur auf einem PC-System) 1:

MIt diesem Funktionsbaustein kann das Verhalten eines Stellantriebs simuliert werden.

Verhalten des Ausgangs:

FB_CTRL_SERVO_MOTOR_SIMULATION (nur auf einem PC-System) 2:

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