Sie programmieren das Überschleifen über die Eingänge TransitionMode und BufferMode der Bausteine MC_MoveDirectAbsolute, MC_MoveDirectRelative, MC_MoveLinearAbsolute, MC_MoveLinearRelative, MC_MoveCircularAbsolute und MC_MoveCrcularRelative.
CODESYS SoftMotion unterstützt folgende Werte für den BufferMode:
Aborting (0): Der Funktionsbaustein startet sofort (Standardverhalten). Die aktuelle Bewegung wird so schnell wie möglich unterbrochen (bei PTP-Bewegungen im gleichen Zyklus). Die Folgebewegung wird von der aktuellen Position aus gestartet. Ist die Folgebewegung eine CP-Bewegung, dann wird abhängig vom TransitionMode auf die neue Bahn eingeschwenkt.
Buffered (1): Der Funktionsbaustein startet, sobald die letzte zuvor kommandierte Bewegung beendet wurde. Der TransitionMode wird ignoriert.
BlendingLow (2): Die Geschwindigkeit wird mit der niederen Geschwindigkeit der beiden FBs überschliffen.
BlendingPrevious (3): Die Geschwindigkeit wird mit der Geschwindigkeit des ersten FBs überschliffen.
BlendingNext (4): Die Geschwindigkeit wird mit der Geschwindigkeit des zweiten FBs überschliffen.
BlendingHigh (5): Die Geschwindigkeit wird mit der höheren Geschwindigkeit der beiden FBs überschliffen.
CODESYS SoftMotion unterstützt folgende Werte für den TransitionMode:
TMNone (0): Kein Überschleifen.
TMStartVelocity (1): Geschwindigkeitsbasiertes Überschleifen. Der erste TransistionParameter ist ein Wert zwischen 0 und 1, der angibt, ab welcher Geschwindigkeit in der Bremsphase ein Übergang zwischen den Bewegungen eingefügt wird. (1 = 100% bedeutet zu Beginn der Bremsphase jener Achse, die zuerst bremsen muss, 0 entspricht TMNone.) Der Zielpunkt des Überschleifens bestimmt sich über die Beschleunigung vom Wegpunkt aus dem Stop. (100% bedeutet am Ende der Beschleunigungsphase jener Achse, die als Letzte fertig beschleunigt hat.)
Werte größer 1 sind ebenfalls möglich. Sie bedeuten eine entsprechende Vergrößerung des Abschneidebereichs. Der Wert 2 bedeutet beispielsweise ein Abschneiden der doppelten Länge der gesamten Bremsphase.
TMCornerDistance (2): Positionsbasiertes Überschleifen. Der erste TransitionParameter ist ein Radius um den Wegpunkt (Endpunkt der ersten Bewegung/Startpunkt der zweiten Bewegung). Die Überschleifbewegung beginnt, wenn der Abstand des TCP zum Wegpunkt erstmalig kleiner als der Radius ist. Die Überschliefbewegung endet an dem Punkt, an dem bei einer nichtüberschliffenen Bewegung der TCP erstmalig diesen Radius verlassen würde.
Ab Version 4.3.0.0 werden für CP-Bewegungen die Überschleifpunkte im BufferMode Blending (nicht bei Aborting) so angepasst, dass die zwischen Punkt A und B abgeschnittenen Stücke annähernd gleich lang sind. Dabei wird das längere Stück auf maximal das 1.5-fache des kürzeren Stücks begrenzt. Falls sich nämlich die abgeschnittenen Stücke stark in der Länge unterscheiden, dann kann es zu extrem hohen Krümmungen und damit zu sehr kleinen Kurvenradien kommen.
Der zweite Wert, TransitionParameter[1], legt einen minimalen Krümmungsradius für das mögliche Blending-Element fest. Außerdem wird auch intern ein minimaler Krümmungsradius berechnet. Dieser wird so gewählt, dass das Blending-Element mit mindestens einem Prozent der maximal erlaubten Bahngeschwindigkeit durchfahren werden kann. Der tatsächliche Krümmungsradius des Elements darf nicht kleiner sein als das Maximum der beiden oben genannten Krümmungsradien. Andernfalls wird nicht geblendet, sondern zwischen den Bewegungen angehalten.
Bei den Blending-Modi darf der TransitionMode nicht gleich TMNone sein.
Die effektiven Dynamikgrenzen für die Achsen sind während des Überschleifens durch den Blending-Modus (Low, High, Previos, Next) gegeben.
Der Zielpunkt des Überschleifens wird auf maximal die halbe Dauer der zweiten Bewegung begrenzt.