Bewegungen unterbrechen
Unterbrechung von Einachsbewegungen
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 maximalen Geschwindigkeit, Beschleunigung oder Ruck mit dem gleichen Bewegungstyp und zur gleichen Position sein. Die Unterbrechung ist so implementiert, dass kein Sprung in der Geschwindigkeit stattfindet. Bei den quadratischen Rampentypen findet außerdem auch kein Sprung in der Beschleunigung statt.
In bestimmten Fällen ist eine Umkehr der Achse aufgrund der Abbruchbewegung unvermeidlich:
Wenn die neue Zielposition eines
MC_MoveAbsolutevor dem Ende des aktuellen Bremswegs liegtWenn für die Abbruchbewegung eine kleinere maximale Verzögerung und/oder ein kleinerer maximaler Ruck verwendet wird, was wiederum den Bremsweg über die Zielposition hinaus verlängert
Wenn
SMC_MoveContinuousAbsoluteoderSMC_MoveContinuousRelativemit einerEndVelocityverwendet werden, die aus dem aktuellen Achszustand nicht ohne Umkehr erreicht werden kann
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 Erläuterungen). Die neue Zielposition könnte dann überfahren werden, obwohl sie nicht vor der alten Zielposition liegt. Dies ist auch dann möglich, wenn die maximale Verzögerung und der maximale Ruck nicht verändert (oder sogar erhöht) werden und die Endgeschwindigkeit gegenüber der abgebrochenen Bewegung nicht verändert wird. In diesem Fall gelten die folgenden Regeln:
Bei trapezförmigen und quadratischen Rampentypen kommt es nie zu einem Überfahren
Bei der Rampenart sin² gibt es kein Überfahren, wenn die neue Zielposition und die Grenzwerte für Beschleunigung und Verzögerung gleich den alten Werten sind
In allen anderen Fällen kann es bei den Rampentypen sin² und quadratisch (geglättet) zu einem Überfahren kommen
Erläuterung für den Rampentyp sin²: Die Abbruchbewegung beginnt mit einer neuen sin²-Geschwindigkeitsrampe, d.h. die Beschleunigung beginnt bei 0 und steigt oder fällt allmählich. Wenn die Achse zum Zeitpunkt des Abbruchs eine Beschleunigung ungleich 0 hat, dann springt die Beschleunigung zu Beginn der sin²-Geschwindigkeitsrampe auf 0. Dies kann zu einem Überfahren führen, da das Hoch- oder Runterfahren der Beschleunigung Zeit benötigt.
Erläuterung für den Rampentyp quadratisch (geglättet): Es gilt die gleiche Erläuterung wie für sin², aber für den Ruck statt für die Beschleunigung.
Hinweis zu Override
Aufgrund obiger Erläuterungen wird die Verwendung von MC_SetOverride mit dem Rampentyp sin² und quadratisch (geglättet) nicht empfohlen
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 Beschleunigung 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:
Wenn für die abbrechende Bewegung ein kleinerer Maximalwert für die Bremsung gesetzt wird als vorher
In diesem Fall wird der zur Verfügung stehende Bremsweg zur neuen Zielposition unter Umständen zu kurz (bei allen Rampentypen).
Entsprechend auch bei den Rampentypen quadratisch und quadratisch (geglättet), wenn ein kleinerer Maximalwert für den Ruck gesetzt wird
Falls diese Maximalwerte aber gleich bleiben (oder größer gewählt werden), dann gelten folgende Regeln:
Bei Rampentyp trapezoid und quadratisch kommt es nie zu einem Überfahren.
Beim Rampentyp sin² kommt es nicht zu einem Überfahren, wenn die neue Zielposition sowie die Grenzwerte für Bremsung und Beschleunigung gleich den alten Werten sind.
In allen anderen Fällen kann es mit Rampentyp sin² und quadratisch (geglättet) zu einem Überfahren kommen.