Skip to main content

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.

_sm_img_path_tolerances.png

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