MC_MoveJoySticked_BkPlcMc (ab V3.0)

MC_MoveJoySticked_BkPlcMc (ab V3.0) 1:

Der Funktionsbaustein startet und überwacht die Bewegung einer Achse.

MC_MoveJoySticked_BkPlcMc (ab V3.0) 2:

Diese Funktion wird derzeit nur durch Achsen unterstützt, die durch einen Baustein vom Typ MC_AxRuntimeCtrlBased_BkPlcMc kontrolliert werden (in Vorbereitung: MC_AxRunTimeTimeRamp_BkPlcMc). Die Auswahl eines solchen Bausteins erfolgt dadurch, dass in nProfileType in ST_TcHydAxParam die entsprechende Konstante aus E_TcMcProfileType vorgegeben wird.

MC_MoveJoySticked_BkPlcMc (ab V3.0) 3: Eingänge

VAR_INPUT
    Execute:        BOOL;
    JoyStick:       LREAL;
    Acceleration:   LREAL;
    Deceleration:   LREAL;
    Jerk:           LREAL;
END_VAR

Name

Typ

Beschreibung

Execute

BOOL

Eine steigende Flanke an diesem Eingang startet die Bewegung.

JoyStick

LREAL

[1] Die auf den Wertebereich ±1.0 normierte Geschwindigkeitsvorgabe durch das Kontrollgerät.

Acceleration

LREAL

[mm/s2] Die geforderte Beschleunigung in Istwert-Einheiten der Achse pro Quadrat-Sekunde.

Deceleration

LREAL

[mm/s2] Die geforderte Verzögerung in Istwert-Einheiten der Achse pro Quadrat-Sekunde.

Jerk

LREAL

[mm/s3] reserviert.

MC_MoveJoySticked_BkPlcMc (ab V3.0) 4: Ein-/Ausgänge

VAR_INOUT
    Axis:           Axis_Ref_BkPlcMc;
END_VAR

Name

Typ

Beschreibung

Axis

Axis_Ref_BkPlcMc

Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben.

MC_MoveJoySticked_BkPlcMc (ab V3.0) 5: Ausgänge

VAR_OUTPUT
    Busy:           BOOL;
    CommandAborted: BOOL;
    Error:          BOOL;
    ErrorID:        UDINT;
END_VAR

Name

Typ

Beschreibung

Busy

BOOL

Hier wird signalisiert, dass ein Kommando abgearbeitet wird.

CommandAborted

BOOL

Hier wird ein Abbruch der Bewegung signalisiert.

Error

BOOL

Hier wird das Auftreten eines Fehlers signalisiert.

ErrorID

UDINT

Hier wird eine codierte Fehlerursache bereitgestellt.

Verhalten des Bausteins

Auf eine steigende Flanke an Execute hin untersucht der Baustein das übergebene Achsinterface. Dabei können eine Reihe von Problemen erkannt und gemeldet werden:

Wenn diese Überprüfungen ohne Problem durchgeführt werden konnten wird die Bewegung initiiert. Dazu wird der Bewegungsalgorithmus in den Zustand iTcHydStateExtGenerated und die Achse in den Zustand McState_Synchronizedmotion versetzt. Die Geschwindigkeit der Achse wird durch JoyStick und ST_TcHydAxParam.fRefVelo festgelegt. Bei einer Änderung der Geschwindigkeit wird eine Rampenbegrenzung auf ST_TcHydAxParam.fMaxAcc vorgenommen. Fährt die Achse in Richtung auf einen aktiven Software-Endschalter, wird die Geschwindigkeit in Abhängigkeit von der verbleibenden Entfernung so begrenzt, dass eine korrekte Zielanfahrt auf den Endschalter zustande kommt.

Eine fallende Flanke an Execute versetzt den Bewegungsalgorithmus in den Zustand iTcHydStateTcDecP oder iTcHydStateTcDecM und die Achse in den Zustand McState_Standstill. Falls sich die Achse zu diesem Zeitpunkt bewegt wird sie mit einer Stopprampe abgebremst und geht in den Zustand iTcHydStateIdle über.