Einachsbewegungen unterbrechen

Unterbrechung während der Bremsphase

 

Einachsbewegungen, wie zum Beispiel MC_MoveAbsolute, können jederzeit durch andere Bewegungen unterbrochen werden. Dies kann eine Bewegung zu einer anderen Position oder eine Änderung der Geschwindigkeit oder Beschleunigung sein. Grundsätzlich wird die Unterbrechung der Bewegung durch eine andere so umgesetzt, dass kein Sprung in der Geschwindigkeit stattfindet. Bei allen Rampentypen außer trapezoid findet außerdem auch kein Sprung in der Beschleuni­gung statt. Bei Verwendung der Rampentypen sin² und quadratisch (geglättet) kann es bei Unterbrechung zu einer Umkehr kommen, die auf den ersten Blick nicht notwendig scheint (siehe Erklärung). Die neue Zielposition wird dann überfahren werden, obwohl sie nicht vor der alten Zielposition liegt. Dies kann in folgenden Situationen auftreten:

Falls diese Maximalwerte aber gleich bleiben (oder größer gewählt werden), dann gelten folgende Regeln:

Siehe auch

Erklärungen zum Überfahren der Zielposition (Rampentyp sin²)

 

Beim Start einer Einachsbewegung wird anfangs das Bewegungsprofil errechnet, d.h. die Phasen, in welchen beschleunigt, mit konstanter Geschwindigkeit gefahren oder gebremst wird. Im Falle des Rampen­typs sin² wird über die Beschleunigungs-/Bremsphasen eine sin²-Kurve gelegt. Die sin²-Kurve hat die Eigenschaft, dass die Beschleunigung am Anfang und am Ende null ist und somit ein stetiger Übergang zu anderen Phasen erreicht wird.

Ein spezielles Verhalten ergibt sich, wenn eine Bewegung während einer sin²-Kurve unterbrochen wird. Ist die aktuelle Beschleunigung ungleich null, dann kann keine sin²-Kurve gestartet werden, da es erforderlich ist, mit Beschleunigung 0 zu starten.

Da das sin²-Kurvenprofil dem Anwender einen stetigen Beschleuni­gungsverlauf garantiert, rampt der Trajektoriengenerator deshalb zunächst die Beschleunigung auf den Wert 0 herunter. Dazu verwendet er den Jerk-Eingang des Bausteins und, falls dieser 0 ist, den in der Steuerungskonfiguration eingestellten Jerk-Wert (fRampJerk ).

Folgende Aufzeichnung zeigt das Unterbrechungsverhalten: Von oben nach unten sind die Signale von Position, Geschwindigkeit, Beschleuni­gung und von Execute des unterbrechenden Bausteins dargestellt. Beginnend mit der steigenden Flanke von Execute wird die Beschleunigung linear auf 0 reduziert, bevor ein neues sin²-Profil anges­chlossen wird (Phase zwischen den vertikalen Markierungsstrichen).

_sm_img_interrupt_movement_1.png

Info

Ist der Jerk-Wert im Verhältnis zur Beschleunigung zu klein gewählt, kann diese Phase sehr lang werden und der Baustein führt eine scheinbar unkontrollierte Fahrt aus. Man sollte den Jerk-Wert so wählen, dass das Abrampen der Beschleunigung nur wenige Millisekunden dauert, z.B. Maximalbeschleunigung 10.000 u/s2, Ruck 1.000.000 u/s3, dadurch dauert diese Phase höchstens 10ms.

Zielposition überfahren   

_sm_img_interrupt_movement_2.png

Eine Bewegung von Position 0 auf Position 1 wurde gestartet mit gewissen Geschwindigkeits- (1 u/s) und Beschleunigungswerten (10 u/s2). Kurz vor Erreichen der Zielposition, wenn die Bremsung bereits eingeleitet ist, unterbricht ein neuer Bewegungsbefehl mit einer neuen Zielposition von 1.01. Durch die Beschleunigungsabrampphase direkt nach dem Start der zweiten Bewegung legt die Achse eine Strecke zurück, die bewirkt, dass die Achse über das Ziel hinausfährt und zurückbewegt werden muss.