Puffern und Überschleifen von Bewegungen
Mit CODESYS SoftMotion können Bewegungsbefehle gepuffert werden. Dabei ist ein Überschleifen der Bahn zwischen den gepufferten Bewegungen möglich. Die kommandierte Bahn wird dabei durch das Abrunden von Ecken so angepasst, dass die Bahn ohne Anhalten abgefahren werden kann. Ob und auf welche Weise eine Bewegung gepuffert wird, kann über den Eingang BufferMode
des Bewegungsbausteins (beispielsweise MC_MoveDirectAbsolute
oder MC_MoveCircularRelative
) konfiguriert werden. Die Eingänge TransitionMode
und TransitionParameter
bestimmen, auf welche Art Ecken abgerundet werden.
Tipp
Das Überschleifen zwischen zwei Bewegungen startet frühestens ab der Hälfte der ersten Bewegung und endet spätestens zur Hälfte der zweiten Bewegung.
Wenn die erste Bewegung schon zu weit geplant wurde, ist ein Überschleifen mit den eingestellten Parametern eventuell nicht mehr möglich. Dann wird der Überschleifbereich reduziert oder überhaupt nicht mehr überschliffen. Um ein erfolgreiches Überschleifen zu garantieren, sollten beide Bewegungen im selben Zyklus kommandiert werden.
Unterstützte Werte für BufferMode
:
| Die Bewegung wird sofort ausgeführt und nicht gepuffert. Alle zuvor kommandierten Bewegungen werden abgebrochen. |
| Der Funktionsbaustein startet, sobald die letzte zuvor kommandierte Bewegung beendet wurde. Der Bewegungen mit BufferMode |
| Im Überschleifbereich zwischen den beiden Bewegungen wird jeweils der kleinere Wert der Geschwindigkeits-, Beschleunigungs- und Ruckgrenzen beider Bewegungen verwendet. |
| Im Überschleifbereich zwischen den beiden Bewegungen werden die Geschwindigkeits-, Beschleunigungs- und Ruckgrenzen der ersten Bewegung verwendet. |
| Im Überschleifbereich zwischen den beiden Bewegungen werden die Geschwindigkeits-, Beschleunigungs- und Ruckgrenzen der zweiten Bewegung verwendet. |
| Im Überschleifbereich zwischen den beiden Bewegungen wird jeweils der größere Wert der Geschwindigkeits-, Beschleunigungs- und Ruckgrenzen beider Bewegungen verwendet. |
Bei den Blending-Modi darf der TransitionMode
nicht gleich TMNone
sein.
Unterstützt folgende Werte für TransitionMode
und TransitionParameter:
| Kein Überschleifen, Ecken in der Bahn werden nicht abgerundet. Auch wenn der |
| Geschwindigkeitsbasiertes Überschleifen. Die Überschleifbahn wird durch die beiden Punkte A‘ und B‘ definiert. ![]() Die Berechnung der Überschleifpunkte basiert auf einer idealisierten Geschwindigkeitskurve, die von der tatsächlichen Geschwindigkeitskurve abweichen kann. Dabei wird auf der Originalbahn eine Bremsrampe auf den Überschleifpunkt zu und eine Beschleunigungsrampe vom Überschleifpunkt weg simuliert. Als Zielgeschwindigkeit wird das Minimum aus programmierter Bahngeschwindigkeit und der geschätzten, sich aus den Achslimits ergebenden maximalen Bahngeschwindigkeit verwendet. Zusätzlich wird beim Überschleifen zwischen Geraden der dazwischenliegende Winkel mit einbezogen. Aus der gewünschten Bahngeschwindigkeit und den geschätzten Dynamikgrenzen ergibt sich ein minimaler Krümmungsradius für das Überschleifelement. Aus diesem Radius und dem Winkel zwischen den Geraden ergeben sich wiederum die Punkte A' und B'. ![]()
|
| Positionsbasiertes Überschleifen. Der ![]() |
Für weitere Informationen siehe: Funktionsbausteine für Bewegungen
Bahndynamik während des Überschleifens
Wenn zwischen CP-Bewegungen überschliffen wird, also zwischen Geraden und Kreissegmenten, dann ist zu beachten, dass die maximale Bahnbeschleunigung und der maximale Bahnruck während des Überschleifens unter Umständen überschritten wird. Dieser Effekt ist umso ausgeprägter je kürzer der Überschleifbereich ist. Die Grenzen der Achsen, also die maximale Achsbeschleunigung und der maximale Achsruck werden aber in jedem Fall eingehalten.
Wenn also die maximale Bahnbeschleunigung niedrig und die maximale Achsbeschleunigung hoch ist, kann es beim Überschleifen zu hohen Beschleunigungen kommen. Dem kann beispielsweise über den Eingang AccFactor
der Bewegungsbausteine gegengesteuert werden, indem die maximale Achsbeschleunigung für eine Bewegung reduziert wird.