Toleranzen für die Bahngenauigkeit
Für Achsgruppen können Toleranzen für die Bahngenauigkeit eingestellt werden. Durch diese Toleranzen kann eine Achsgruppe bei einer unerwarteten Bewegung eines dynamischen Koordinatensytems dieses Koordinatensystem wieder einholen, statt mit Fehler SMC_AXIS_GROUP_MAX_AXIS_LAG_EXCEEDED
, SMC_AXIS_GROUP_MAX_POSITION_LAG_EXCEEDED
oder SMC_AXIS_GROUP_MAX_ORIENTATION_LAG_EXCEEDED
zu stoppen.
Überblick
Warum sind Toleranzen für die Bahngenauigkeit nötig? Idealerweise sollte die Achsgruppe der Bahn exakt folgen. Wenn jedoch ein dynamisches Koordinatensystem verwendet wird (beispielsweise ein Objekt auf einem Band oder Rundtisch, oder ein Koordinatensystem, das durch eine andere Achsgruppe vorgegeben wird), dann ist es in manchen Fällen nicht möglich, der Bahn zu folgen.
Beispiel: Ein Roboter soll ein Teil auf einem Band platzieren. Das Band bewegt sich mit konstanter Geschwindigkeit, aber kurz bevor der Roboter die Ablageposition erreicht hat, beschleunigt das Band unerwartet. In dieser Situation wurde die Trajektorie für die Ablage des Teils bereits berechnet, aber mit der Annahme, dass sich das Band weiter mit konstanter Geschwindigkeit bewegt. Daher kann es jetzt sein, dass die restliche Bewegung zu einer Verletzung der maximalen Beschleunigung einer der Achsen des Roboters führt.
In solchen Situationen sind die Toleranzen von Bedeutung. Sie erlauben der Achsgruppe innerhalb der vorgegebenen Grenzen von der Bahn abzuweichen und das Koordinatensystem wieder einzuholen.
Die Bahngenauigkeit wird durch einen Filter geregelt. Der Filter erhält als Eingang die geplante Trajektorie (q_ref
) und die zuletzt berechneten Sollpositionen (q_set
). Ausgang des Filters sind die Sollpositionen (q_set
), die den Antrieben übergeben werden. Wenn q_ref
eine der Achsgrenzen verletzt, verlässt der Filter die Bahn und folgt der geplanten Trajektorie so gut wie möglich, ohne eine Achsgrenze zu verletzen. Solange der Schleppfehler zwischen q_set
und q_ref
innerhalb der Toleranzen liegt, wird kein Fehler ausgegeben.

Die Toleranzen für die Bahngenauigkeit setzen sich aus mehreren Werten zusammen:
Maximaler Schleppfehler des TCP in technischen Einheiten (Defaultwert:
1 u
)Maximaler Orientierungsfehler des TCP in Winkelgrad (Defaultwert:
1 deg
)Maximal erlaubter Schleppfehler jeder Achse in technischen Einheiten der Achse (Defaultwert: Unendlich)
Auswirkung auf administrative Funktionsbausteine
Die Werte für Position, Geschwindigkeit, Beschleunigung und Ruck, die von den Bausteinen SMC_GroupReadSetPosition
, SMC_GroupReadSetVelocity
, SMC_GroupReadSetAcceleration
und SMC_GroupReadSetJerk
zurückgegeben werden, werden auf Basis der geplanten Trajektorie (q_ref
) berechnet. Sie enthalten daher nicht den Anteil, der durch den Filter beigesteuert wird.
Die Istwerte von Position, Geschwindigkeit und Ruck dagegen, die von den Bausteinen MC_GroupReadActualPosition
, MC_GroupReadActualVelocity
und MC_GroupReadActualAcceleration
zurückgegeben werden, werden aufgrund der Istposition der Antriebe der Achsgruppe berechnet. Damit enthalten sie auch den Anteil, der durch den Filter beigesteuert wird.
Die Bahndynamik, die von SMC_GroupReadPathDynamics
mit Source = MC_SOURCE.SET
zurückgegeben wird, basiert auf der geplanten Trajektorie (q_ref
) und wird damit nicht vom Filter beeinflusst. (Für andere Werte des Eingangs Source
ist der Anteil des Filters enthalten.)
Bahnschaltpunkte beziehen sich immer auf die geplante Trajektorie (q_ref
). Die Zeit, die von MC_GroupReadTrigger
zurückgegeben wird, ist die Zeit, zu der die geplante Trajektorie den Bahnschaltpunkt erreicht. Wenn der Filter aktiv ist (q_ref <> q_set
), dann erreicht die Achsgruppe die Position und/oder die Zeit des Triggers in der Regel nicht exakt.
Anmerkung: Eine Bewegung meldet erst Done
, wenn sowohl die geplante Trajektorie (q_ref
) das Ende der Bewegung erreicht hat als auch der Filter nicht (mehr) aktiv ist, also einen möglichen Schleppfehler wieder abgebaut hat. Dann entspricht die Sollposition (q_set
) der Zielposition der Bewegung.
Setzen der Toleranzen und Überwachung der Bahnabweichung
Die Toleranzen können mit dem Baustein SMC_GroupSetPathTolerance gesetzt werden.
Der Status des Filters und der aktuelle Schleppfehler zwischen der geplanter Trajektorie q_ref
und den Sollwerten q_set
der Achsgruppe kann mit den Ausgängen InSync
, PositionLag
und OrientationLag
von MC_GroupReadStatus überwacht werden. InSync = TRUE
bedeutet, dass q_ref = q_set
ist und dass der Filter nicht aktiv ist. InSync = FALSE
bedeutet, dass q_ref <> q_set
ist und dass der Filter aktiv ist.