MC_MoveJoySticked_BkPlcMc (ab V3.0)
Der Funktionsbaustein startet und überwacht die Bewegung einer Achse.
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. |
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. |
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. |
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:
- Befindet sich die Achse in einem gestörten Zustand oder führt sie gerade eine Stopp-Operation durch wird mit Error und ErrorID:=dwTcHydErrCdNotReady reagiert.
- Wenn der Bewegungsalgorithmus bereits einen Fehlercode signalisiert, wird mit Error und ErrorID:=Bewegungsalgorithmus-Fehlercode reagiert.
- Als nächstes wird überprüft, ob der Generator der Achse die geforderte Funktion unterstützt. Ist dies nicht der Fall, wird mit Error und ErrorID:=dwTcHydErrCdNotCompatible reagiert.
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.