MC_MoveContinuousRelative

Mit diesem FB lässt sich eine relative Positionierung durchführen. Im Unterschied zum Kommando MC_MoveRelative wird die Zielposition mit der definierten Endgeschwindigkeit angefahren. Ist kein weiteres Bewegungskommando im Buffer vorhanden, verfährt die Achse weiter mit der definierten Endgeschwindigkeit.

 

 

 

MC_MoveContinuousRelative

 

 

 

AXIS_REF

-

Axis

InEndVelocity

-

BOOL

BOOL

-

Execute

Busy

-

BOOL

BOOL

-

ContinuousUpdate

Active

-

BOOL

LREAL

-

Distance

CommandAborted

-

BOOL

LREAL

-

EndVelocity

Error

-

BOOL

LREAL

-

Velocity

ErrorID

-

L_IE1P_Error

LREAL

-

Acceleration

LREAL

-

Deceleration

LREAL

-

Jerk

MC_BUFFER_MODE

-

BufferMode

 

 

 

 

 

 

 

 

Eingänge

Name

Datentyp

Info/Einstellmöglichkeiten

Axis

AXIS_REF

Übergabe der Achsdatenstruktur

Motion-Achsen (AXIS_REF)

Execute

BOOL

FALSE ä TRUE

Positionierung starten.

ContinuousUpdate

BOOL

Kontinuierliche Übernahme der Profilparameter

Steuereingang ContinuousUpdate

FALSE

Die Profilparameter ( Distance , Velocity , Acceleration , ...) werden mit einer steigenden Flanke an Execute übernommen.

TRUE

Die Profilparameter werden kontinuierlich übernommen, d. h. während der Abarbeitung ist eine Änderung des Bewegungsprofils möglich.

Hinweis: Nach Erreichen der Position und Endgeschwindigkeit ( InEndVelocity = TRUE) werden die Profilparameter nicht mehr kontinuierlich übernommen.

Distance

LREAL

Zu verfahrende Wegstrecke in [Units]

  • Bezogen auf die Sollposition zum Startzeitpunkt des Kommandos.

EndVelocity

LREAL

Endgeschwindigkeit in [Units/s] für das Anfahren der Zielposition. Die Endgeschwindigkeit wirkt absolut. Das bedeutet, bei positiver Vorgabe fährt der Antrieb in positive Richtung und bei negativer Vorgabe in negative Richtung.

Velocity

LREAL

Maximale Geschwindigkeit in [Units/s] für das Anfahren der Zielposition

  • In Abhängigkeit der Profilparameter Position , Acceleration, Deceleration und Jerk kann es sein, dass der Antrieb die maximale Geschwindigkeit gar nicht erreicht.

Sonderfall :

Velocity = 0: Es wird der in Subindex 40 vorgegebene Default-Wert zur Geschwindigkeit verwendet.

Acceleration

LREAL

Maximale Beschleunigung in [Units/s 2 ]

Sonderfall :

Acceleration = 0: Es wird der in Subindex 41 vorgegebene Default-Wert zur Beschleunigung verwendet.

Deceleration

LREAL

Maximale Verzögerung in [Units/s 2 ]

Sonderfall :

Deceleration = 0: Es wird der in Subindex 41 vorgegebene Default-Wert zur Beschleunigung verwendet.

Jerk

LREAL

Maximaler Ruck in [Units/s 3 ]

Sonderfall :

Jerk = 0: Es wird der in Subindex 43 vorgegebene Default-Wert zum Ruck verwendet.

BufferMode

MC_BUFFER_MODE

Modus für die Abarbeitung aufeinanderfolgender Bewegungskommandos

BufferMode

Ausgänge

Name

Datentyp

Wert/Bedeutung

InEndVelocity

BOOL

TRUE

Positionierung erfolgreich beendet.

  • Die definierte Wegstrecke wurde abgefahren.
  • Wird die angegebene Zielposition bereits vor dem Erreichen der Endgeschwindigkeit überfahren,
    • wird bereits zu diesem Zeitpunkt das Signal "InEndVelocity" gesetzt
    • verfährt die Achse weiter mit der definierten Endgeschwindigkeit, wenn kein weiteres Bewegungskommando im Buffer vorhanden ist.

Busy

BOOL

TRUE

Abarbeitung läuft.

Active

BOOL

TRUE

Das Kommando des FBs wird aktuell ausgeführt.

  • Der Ausgang Active ist dann von Bedeutung, wenn eine Bewegungssteuerung durch mehrere FBs (BufferMode) erfolgt.

CommandAborted

BOOL

TRUE

Das Kommando wurde durch einen anderen FB abgebrochen.

Error

BOOL

TRUE

Es ist ein Fehler aufgetreten. Details siehe ErrorID .

ErrorID

L_IE1P_Error

Wenn Error = TRUE: Fehlernummer zum aufgetretenen Fehler.

Im folgenden Beispiel sind zwei FB-Instanzen von MC_MoveContinuousRelative und eine FB-Instanz von MC_MoveRelative als Kaskade hintereinander geschaltet.

  • Nach Abfahren der jeweiligen Distanz und Erreichen der Endgeschwindigkeit wird die Ausführung der nächsten Instanz gestartet.
  • Als letzter FB in der Kaskade wird statt MC_MoveContinuousRelative das Bewegungskommando MC_MoveRelative verwendet, damit die Achse abschließend zum Stillstand kommt und nicht weiter mit der definierten Endgeschwindigkeit verfährt.

Beispiel: Verkettung zweier MC_MoveContinuousRelative-Kommandos mit einem MC_MoveRelative-Kommando