Skip to main content

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:

Aborting (0)

Die Bewegung wird sofort ausgeführt und nicht gepuffert. Alle zuvor kommandierten Bewegungen werden abgebrochen.

Buffered (1)

Der Funktionsbaustein startet, sobald die letzte zuvor kommandierte Bewegung beendet wurde. Der TransitionMode hat keine Auswirkung.

Bewegungen mit BufferMode Buffered starten grundsätzlich immer am Beginn eines Zyklus. Einzige Ausnahme ist, wenn die Bewegung auf einen SMC_GroupWait folgt. Dann startet die Bewegung exakt nach der eingestellten Wartezeit.

BlendingLow (2)

Im Überschleifbereich zwischen den beiden Bewegungen wird jeweils der kleinere Wert der Geschwindigkeits-, Beschleunigungs- und Ruckgrenzen beider Bewegungen verwendet.

BlendingPrevious (3)

Im Überschleifbereich zwischen den beiden Bewegungen werden die Geschwindigkeits-, Beschleunigungs- und Ruckgrenzen der ersten Bewegung verwendet.

BlendingNext (4)

Im Überschleifbereich zwischen den beiden Bewegungen werden die Geschwindigkeits-, Beschleunigungs- und Ruckgrenzen der zweiten Bewegung verwendet.

BlendingHigh (5)

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:

TMNone (0)

Kein Überschleifen, Ecken in der Bahn werden nicht abgerundet. Auch wenn der BufferMode einer der Blending-Modi ist, wird an den Ecken angehalten.

TMStartVelocity (1)

Geschwindigkeitsbasiertes Überschleifen. Die Überschleifbahn wird durch die beiden Punkte A‘ und B‘ definiert.

_sm_img_blending.png

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'.

_sm_img_start_velocity_cp.png

TransitionParameter[0] wirkt wieder als Faktor, allerdings nicht zeitlich, sondern in Bezug auf die Bahnlänge: Der Wert 1 bedeutet Beginn der Bremsrampe und Ende der Beschleunigungsrampe, 0.5 bedeutet jeweils genau auf halbem Weg dorthin.

TMCornerDistance (2)

Positionsbasiertes Überschleifen. Der TransitionParameter[0] ist der Radius einer Kugel um den Endpunkt der ersten oder den Startpunkt der zweiten Bewegung. Die Überschleifbewegung beginnt am (ersten) Schnittpunkt der ersten Bewegung mit der Kugel und endet am (ersten) Schnittpunkt der zweiten Bewegung mit der Kugel.

_sm_img_corner_distance.png

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.