Skip to main content

Puffern und Überschleifen von Bewegungen

Mit CODESYS SoftMotion können Bewegungsbefehle gepuffert werden. Für jede kommandierte Bewegung kann angegeben werden, wie die Bewegung gepuffert wird und wie von der vorangehenden Bewegung auf die neue Bewegung überschliffen werden soll. 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. Für weitere Informationen siehe MC_Buffer_MODE.

Die Eingänge TransitionMode und TransitionParameter bestimmen, auf welche Art Ecken abgerundet werden. Für weitere Informationen siehe MC_TRANSITION_MODE.

Für weitere Informationen zu Bewegungen siehe Funktionsbausteine für Bewegungen.

Hinweis

Bei den Blending-Modi darf der TransitionMode nicht gleich TMNone sein.

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.

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.

Besonderheiten von TMStartVelocity

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

Wenn beim Überschleifen der Bewegungen trotz einem eingestellten Faktor von 1 eingebremst wird, kann es helfen, den Faktor zu erhöhen.

Beispiel

In einer kleinen Beispielapplikation soll ein Werkstück aufgehoben werden. Dazu soll der Roboter zunächst über das Werkstück fahren und anschließend nach unten, um es aufzuheben. Um das Werkstück möglichst schnell zu erreichen, soll zwischen den beiden Bewegungen nicht angehalten, sondern überschliffen werden. Zehn Einheiten bevor das Ende der ersten Bewegung erreicht wird, soll in die zweite Bewegung überschliffen werden.

Um die Vorgaben zu erfüllen, müssen zwei Bewegungen kommandiert werden. Die erste Bewegung (moveAbove) über das Werkstück und die zweite Bewegung (moveDown) zum Werkstück nach unten. Für die zweite Bewegung muss definiert werden, wie die Bewegung gepuffert und überschliffen werden soll.

Wie im nachfolgenden Bild dargestellt, wird für den BufferMode BlendingHigh gewählt. Damit wird festgelegt, dass die Bewegung gepuffert nach der ersten Bewegung ausgeführt und überschliffen werden soll. Zusätzlich wird der TransitionMode TMCornerDistance mit einer Distanz von 10 Einheiten definiert, um passend in die zweite Bewegung zu überschleifen. Um die beiden Eingänge TransitionMode und TransitionParameter passend zu setzen, wie der Funktionsbaustein SMC_CornerDistance verwendet.

_sm_img_blending_example.png