Verhalten der Methode MoveAsync
Keine MoveAsync-Bewegung vor Abschluss einer MoveSync-Bewegung
Wenn ein Fahrbefehl MoveSync (2.) an den Roboter gesendet wurde, entweder für die aktuelle oder eine nächste verbundene Bahn, ist es nicht möglich, einen Fahrbefehl MoveAsync (3.) zu senden, der vor Abschluss der synchronen Bewegung startet.
Gründe dafür sind:
o Das Ende einer asynchronen Bewegung hat keinen Bezug zu einer Bahnposition.
o Eine Voraussage, wann die asynchrone Bewegung in Bezug auf eine Bahnbewegung abgeschlossen sein wird, ist nicht in allen Fällen möglich.
Im Allgemeinen ist das gleichzeitige Ausführen einer synchronen und einer asynchronen Hilfsachsenbewegung nicht möglich.
Keine MoveSync-Bewegung vor Abschluss einer MoveAsync-Bewegung
Wenn ein Fahrbefehl MoveAsync (2.) an den Roboter gesendet wurde, ist es nicht möglich, einen Fahrbefehl MoveSync (3.) zu senden, bevor die asynchrone Bewegung abgeschlossen ist.
Eine Voraussage, wann die asynchrone Bewegung in Bezug auf eine Bahnbewegung abgeschlossen sein wird, ist nicht in allen Fällen möglich.
Im Allgemeinen ist das gleichzeitige Ausführen einer synchronen und einer asynchronen Hilfsachsenbewegung nicht möglich.
Siehe auch Diagnosemeldungen des MoveSync-Befehls (MoveAsyncTriggered, MoveAsyncActive).
Keine zweite MoveAsync-Bewegung vor Abschluss der ersten MoveAsync-Bewegung
Wenn ein Fahrbefehl MoveAsync (2.) an den Roboter gesendet wurde, ist es nicht möglich, einen zweiten Fahrbefehl MoveAsync (3.) zu senden, bevor die erste asynchrone Bewegung abgeschlossen ist.
Eine Voraussage, wann die asynchrone Bewegung in Bezug auf eine Bahnbewegung abgeschlossen sein wird, ist nicht in allen Fällen möglich.
Bewegungsparameter für eine asynchrone Hilfsachsenbewegung
Die asynchrone Bewegung wird mit den Bewegungsparametern (MaxVelocity, MaxAcceleration, MaxDeceleration und Ramp) ausgeführt, die durch folgende Methoden festgelegt wurden:
oIF_RobotMotion.SetMotionParameter
oIF_RobotMotion.SetMaxVelocity
oIF_RobotMotion.SetMaxAcceleration
oIF_RobotMotion.SetMaxDeceleration
Die Parameter werden für ET_RobotComponent.AuxAxAll or ET_RobotComponent.AuxAx[1..10] gesetzt.
Die asynchrone Bewegung wird mit den neuesten Bewegungsparametern ausgeführt, die vor Aufruf des Fahrbefehls MoveAsync gesendet wurden.
Eine Änderung der Bewegungsparameter nach Aufruf des Fahrbefehls MoveAsync oder während die asynchrone Bewegung aktiv ist ist möglich, wirkt sich jedoch nicht auf den zuletzt gesendeten Fahrbefehl oder die laufende asynchrone Bewegung aus.
Verhalten, während der Roboter angehalten ist
Vorbedingungen |
Ergebnis |
---|---|
oFB_Robot.xEnable wird auf TRUE gesetzt. Der Roboter ist aktiv und bereit. oFB_Robot.xStart wird von FALSE auf TRUE gesetzt. oDer Befehl MoveAsync wird gesendet. Der Roboter beginnt sofort mit der Bewegung. |
Wird FB_Robot.xStart auf FALSE gesetzt, während eine asynchrone Hilfsachsenbewegung aktiv ist, so wird die Bewegung mit MaxDeceleration und Ramp, wie durch die im Kapitel Bewegungsparameter für eine asynchrone Hilfsachsenbewegung aufgeführten Methoden konfiguriert, angehalten. |
Wird FB_Robot.xStart wieder auf TRUE gesetzt, so wird die asynchrone Hilfsachsenbewegung fortgesetzt. |
|
Wurde die Hilfsachse von ihrer letzten Position fortbewegt (z. B. durch Tippen), gibt der Roboter die Diagnosemeldung aus.ET_DiagExt.NotOnPath |
Verhalten, während der Roboter auf einen Not-Halt anspricht
Vorbedingungen |
Ergebnis |
---|---|
oFB_Robot.xEnable wird auf TRUE gesetzt. Der Roboter ist aktiv und bereit. oFB_Robot.xStart wird von FALSE auf TRUE gesetzt. oDer Befehl MoveAsync wird gesendet. Der Roboter beginnt sofort mit der Bewegung. |
Wird FB_Robot.xEnable auf FALSE gesetzt während eine asynchrone Hilfsachsenbewegung aktiv ist, so wird die Bewegung mit MaxEmergencyDeceleration und EmergencyRamp, wie durch die Methode IF_RobotConfiguration.SetEmergencyParameter2 konfiguriert, angehalten. |
Bei asynchronen Hilfsachsenbewegungen müssen für die Nothaltparameter für die Hilfsachsenbewegung konfiguriert werden (SetEmergencyParameter2). |
|
Zum Auslesen der konfigurierten Nothaltparameter einer Roboterkomponente die Methode GetEmergencyParameter2 verwenden. |
HINWEIS: Siehe auch Verhalten von SetEmergencyParameter gegenüber SetEmergencyParameter2.
Verhalten von IF_RobotMotion.lrVelOverride
Bei asynchronen Hilfsachsenbewegungen ist eine Geschwindigkeitsübersteuerung, die mit IF_RobotMotion.lrVelOverride festgelegt wird, NICHT vorgesehen.
Vorbedingungen |
Ergebnis |
---|---|
o FB_Robot.xEnable von TRUE auf FALSE gesetzt. Der Roboter ist nicht aktiv und nicht bereit. oFB_Robot.xEnable von FALSE auf TRUE gesetzt. Der Roboter ist aktiv und bereit. |
Wird nach Reaktivierung des Roboters ein Kaltstart ausgeführt, so wird die zuvor aktive asynchrone Hilfsachsenbewegung NICHT fortgesetzt. |
Vorbedingungen |
Ergebnis |
---|---|
oFB_Robot.xEnable von FALSE auf TRUE gesetzt. Der Roboter ist aktiv und bereit. oFB_Robot.xWsSelect von FALSE auf TRUE gesetzt. Warmstartbewegung ist vorselektiert. oFB_Robot.xWsStart von FALSE auf TRUE gesetzt. |
Wird nach Reaktivierung des Roboters ein Warmstart ausgeführt, so wird die zuvor aktive asynchrone Hilfsachsenbewegung fortgesetzt. |
Wurde die Hilfsachse bewegt während FB_Robot.xStart und/oder FB_Robot.xEnable auf FALSE gesetzt war, wird sie zunächst an ihre letzte Position auf der Bahn zurückbewegt, bevor die asynchrone Hilfsachsenbewegung fortgesetzt wird. |
|
Muss die Hilfsachse an ihre letzte Position auf der Bahn zurückbewegt werden, so werden die Bewegungsparameter der letzten synchronen bzw. asynchronen Bewegung verwendet. |
Verhalten während eines Halts, der durch SER - WorkEnvelope verursacht wurde
Erkennt die Schneider Electric Robotic-Bibliothek-Diagnose, dass eine Roboterbewegung über den Roboter-Arbeitsbereich hinausgehen würde, so werden Bahn- und Trackingbewegung angehalten.
Eine asynchrone Hilfsachsenbewegung wird auch angehalten.
Kein Tippen entlang der verbundenen Bahn
Wird eine asynchrone Hilfsachsenbewegung gesendet oder ist aktiv, so ist das Tippen entlang der verbundenen Bahn nicht möglich.
IF_RobotJogging.Start(i_etComponent := ET_RobotComponent.Path) gibt Folgendes zurück:
q_etDiag -> GD.ET_Diag.ExecutionAborted
q_etDiagExt -> ET_DiagExt.MoveAsyncTriggered / ET_DiagExt.MoveAsyncActive