IF_RobotMotion - ChangeCoordinateSystem2 (Methode)
Typ: |
Methode |
Verfügbar ab: |
V2.11.1.0 |
Dieses Kapitel enthält Informationen zu folgenden Aspekten:
Anforderung einer Änderung eines konfigurierten Koordinatensystems, zum Beispiel ein lineares Trackingsystem, konfiguriert durch IF_RobotConfiguration.AddLinearTrackingSystem(…).
Mit der Methode ChangeCoordinateSystem2(...) kann eine Änderung eines konfigurierten Koordinatensystems angefordert werden, die durch einen Aufruf der Methode IF_RobotMotion.SetCoordinateSystem(…) gesetzt wurde.
Wenn die Methode ChangeCoordinateSystem2(…) aufgerufen wird, um ein anderes Koordinatensystem ohne vorherigen Aufruf der Methode IF_RobotMotion.SetCoordinateSystem(…) festzulegen, dann bleibt der Roboter in dem zuletzt festgelegten Koordinatensystem synchron.
Verhalten der Änderung des Koordinatensystems bei einem Trackingsystem:
oWenn zum Zeitpunkt der Änderung im angeforderten Trackingsystem kein Tracking aktiviert ist, wird die Änderung des angeforderten Trackingsystems initiiert.
oWenn zum Zeitpunkt der Änderung im angeforderten Trackingsystem ein Tracking aktiviert und die Änderung an jenem Trackingsystem abgeschlossen ist, wird die Änderung des angeforderten Trackingsystems initiiert.
oWenn zum Zeitpunkt der Änderung im angeforderten Trackingsystem ein Tracking aktiviert und die Änderung an jenem Trackingsystem nicht abgeschlossen ist, wird die aktive Änderung zuerst abgebrochen/angehalten. Wenn die abgebrochene Änderung abgeschlossen ist, wird die Änderung des angeforderten Trackingsystems initiiert.
Angenommen, die Geschwindigkeit einer Geschwindigkeitsquelle eines Trackingsystems ist konstant, dann erfolgt die Änderung eines angeforderten Trackingsystems dadurch, dass die Begrenzung der maximalen resultierenden Beschleunigung für die Trackingbewegung eingehalten wird.
Die maximale resultierende Beschleunigung muss durch IF_RobotMotion.SetMaxAccelerationResultant für die Roboterkomponente ET_RobotComponent.Tracking gesetzt werden.
Wenn möglich, wird die für das Tracking verwendete resultierende Beschleunigung auf einen Wert verringert, sodass die Änderung des angeforderten Koordinatensystems an der angeforderten Endposition der durch i_udiEndSegmentId und i_lrEndOffset definierten Bahnbewegung abgeschlossen ist.
Wenn es nicht möglich ist, die für das Tracking verwendete resultierende Beschleunigung zu verringern, wird die für das Tracking verwendete resultierende Beschleunigung auf den durch IF_RobotMotion.SetMaxAccelerationResultant(…) für die Roboterkomponente ET_RobotComponent.Tracking gesetzten konfigurierten Wert begrenzt. In diesem Fall ist das Verhalten von ChangeCoordinateSystem2(…) gleich ChangeCoordinateSystem(…).
Siehe auch:
oVerhalten der Methode ChangeCoordinateSystem2
oÄnderung des Koordinatensystems während des Betriebs
oTracking bei Geschwindigkeitsquellen mit nicht konstanter Geschwindigkeit
oInteraktion von ChangeCoordinateSystem mit Stopp-auf-Bahn
oVerhalten von FB_Robot.xStart = FALSE
oVerhalten von FB_Robot.xEnable = FALSE / SyncStop
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_udiStartSegmentId |
UDINT |
ID des Bahnbewegungssegments, in dem die Änderung des Koordinatensystems startet. |
i_lrStartOffset |
LREAL |
Position der Bahnbewegung innerhalb des Segments mit der ID i_udiStartSegmentId, bei der die Änderung des Koordinatensystems startet. Positive Werte von i_IrStartOffset beziehen sich auf den Segmentanfang und negative Werte auf das Segmentende. Sonderfall: i_lrStartOffset = 0.0 In diesem Fall beginnt die Änderung des Koordinatensystems am Anfang des Segments. Gültige Werte sind: 0,0 ≤ |i_lrStartOffset| ≤ Länge des Segments |
i_udiEndSegmentId |
UDINT |
ID des Bahnbewegungssegments, in dem die Änderung des Koordinatensystems endet. |
i_lrEndOffset |
LREAL |
Position der Bahnbewegung innerhalb des Segments mit der ID i_udiEndSegmentId, bei der die Änderung des Koordinatensystems enden soll. Positive Werte von i_IrEndOffset beziehen sich auf den Segmentanfang und negative Werte auf das Segmentende. Sonderfall: i_lrEndOffset = 0.0 In diesem Fall soll die Änderung des Koordinatensystems am Ende des Segments enden. Gültige Werte sind: 0,0 ≤ |i_lrEndOffset| ≤ Länge des Segments |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_etDiag |
Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose. Ein Wert ungleich GD.ET_Diag.Ok entspricht einer Diagnosemeldung. |
|
q_etDiagExt |
POU-spezifischer Ausgang für die Diagnose. q_etDiag = ET_Diag.Ok -> Statusmeldung q_etDiag <> ET_Diag.Ok -> Diagnosemeldung |
|
q_sMsg |
STRING[80] |
Ereignisabhängige Meldung, die zusätzliche Informationen über den Diagnosezustand gibt. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
0 |
Ok |
|
ExecutionAborted |
10 |
Der Befehl wurde abgewiesen. |
|
ExecutionAborted |
205 |
Die externe Positionsquelle wurde konfiguriert. |
|
InputParameterInvalid |
27 |
Die Startsegment-ID ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
28 |
Die Endsegment-ID ist außerhalb des gültigen Bereichs. |
|
ExecutionAborted |
31 |
Die Startsegment-ID wurde nicht gefunden. |
|
ExecutionAborted |
32 |
Die Endsegment-ID wurde nicht gefunden. |
|
ExecutionAborted |
9 |
Es ist keine verbundene Bahn verfügbar. |
|
InputParameterInvalid |
116 |
Das Start-Offset liegt außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
78 |
Das End-Offset ist außerhalb des gültigen Bereichs. |
|
ExecutionAborted |
81 |
Der Roboter ist bereits über die Startposition auf der Bahn gefahren. |
|
ExecutionAborted |
24 |
Die Startposition auf der Bahn ist ungültig. |
|
ExecutionAborted |
25 |
Die Endposition auf der Bahn ist ungültig. |
|
ExecutionAborted |
171 |
Es stehen keine weiteren Trackingereignisse zur Verfügung. |
|
ExecutionAborted |
170 |
MaxAccelerationResultant liegt außerhalb des gültigen Bereichs. |
|
UnexpectedProgramBehavior |
3 |
Eine Schnittstelle ist ungültig. |
|
UnexpectedProgramBehavior |
13 |
Ein Rückgabewert war ungültig. |
Enumerationsname: |
CommandRefused |
Enumerationswert: |
10 |
Beschreibung: |
Der Befehl wurde abgewiesen. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Es wird bereits ein Fahrbefehl verarbeitet. Ein Befehl, z. B. MoveL(...), MoveC(...), MoveS(...) oder MoveSync(...) wird gleichzeitig mit dem Aufruf von ChangeCoordinateSystem2(…) aufgerufen. |
Darauf achten, dass Fahrbefehle und ein Befehl zum Ändern des Koordinatensystems nacheinander und nicht gleichzeitig aufgerufen werden. |
Enumerationsname: |
EndOffsetRange |
Enumerationswert: |
78 |
Beschreibung: |
Das End-Offset ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Der am Eingang i_lrEndOffset der Methode IF_RobotMotion. ChangeCoordinateSystem2() übergebene Wert liegt außerhalb des gültigen Bereichs. |
Am Eingang i_lrEndOffset muss ein Wert kleiner oder gleich der Länge des gewählten Segments (i_udiEndSegmentId) übergeben werden. |
Enumerationsname: |
EndSegmentIdNotFound |
Enumerationswert: |
32 |
Beschreibung: |
Die Endsegment-ID wurde nicht gefunden. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Das Segment mit der am Eingang i_udiEndSegmentId übergebenen ID der Methode IF_RobotMotion. ChangeCoordinateSystem2() wurde in der neuesten verbundenen Bahn nicht gefunden. |
Das Segment mit der ID i_udiEndSegmentId muss in der neuesten verbundenen Bahn enthalten sein. |
Enumerationsname: |
EndSegmentIdRange |
Enumerationswert: |
28 |
Beschreibung: |
Die Endsegment-ID ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Der am Eingang i_udiEndSegmentId übergebene Wert liegt außerhalb des gültigen Bereichs. |
Am Eingang i_udiEndSegmentId muss ein Wert größer oder gleich 1 übergeben werden. |
ExternalPositionSourceConfigured
Enumerationsname: |
ExternalPositionSourceConfigured |
Enumerationswert: |
205 |
Beschreibung: |
Die externe Positionsquelle wurde konfiguriert. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Für die Roboterkomponenten Kartesisch, Orientierung und Hilfsachsen wurde eine externe Positionsquelle konfiguriert. |
Die Änderung des Koordinatensystems kann nicht angefordert werden, wenn für die Roboterkomponenten eine externe Positionsquelle konfiguriert wurde. Keine Änderung des Koordinatensystems anfordern. |
Enumerationsname: |
InterfaceInvalid |
Enumerationswert: |
3 |
Beschreibung: |
Eine Schnittstelle ist ungültig. |
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich.
Enumerationsname: |
MaxAccelerationResultantRange |
Enumerationswert: |
170 |
Beschreibung: |
MaxAccelerationResultant liegt außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Die maximale resultierende Beschleunigung zur Änderung des Koordinatensystems ist nicht konfiguriert. |
Zuerst die Methode IF_RobotMotion.SetMaxAccelerationResultant für die Roboterkomponente ET_RobotComponent.Tracking aufrufen. |
Enumerationsname: |
NoConnectedPathAvailable |
Enumerationswert: |
9 |
Beschreibung: |
Es ist keine verbundene Bahn verfügbar. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
IF_RobotMotion. ChangeCoordinateSystem2() wurde aufgerufen, aber es ist keine verbundene Bahn verfügbar. |
Vor dem Aufruf von IF_RobotMotion.Execute eine verbundene Bahn anlegen (i_xValue := TRUE). |
Enumerationsname: |
NoMoreTrackingEventsAvailable |
Enumerationswert: |
171 |
Beschreibung: |
Es stehen keine weiteren Trackingereignisse zur Verfügung. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Es können keine weiteren Anforderungen zur Änderung des Koordinatensystems ausgegeben werden. Die maximale Anzahl der Änderungsanforderungen ist erreicht worden. |
Vor dem Senden neuer Anforderungen warten, bis die Anforderungen zur Änderung des Koordinatensystems ausgeführt worden sind. |
Enumerationsname: |
Ok |
Enumerationswert: |
0 |
Beschreibung: |
Ok |
Die Anforderung zur Änderung des Koordinatensystems war erfolgreich.
Enumerationsname: |
PathPositionEndInvalid |
Enumerationswert: |
25 |
Beschreibung: |
Die Endposition auf der Bahn ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
IF_RobotMotion. ChangeCoordinateSystem2() wurde aufgerufen. Die Endposition der Tracking-Synchronphase auf der Bahn liegt vor der Startposition der Synchronphase auf der Bahn. |
Sicherstellen, dass die Bahnposition Ende größer ist als die Bahnposition Start. Die Werte von i_udiStartSegmentId, i_lrStartOffset, i_udiEndSegmentId und i_lrEndOffset von IF_RobotMotion. ChangeCoordinateSystem2() prüfen. |
PathPositionStartAlreadyPassed
Enumerationsname: |
PathPositionStartAlreadyPassed |
Enumerationswert: |
81 |
Beschreibung: |
Der Roboter ist bereits über die Startposition auf der Bahn gefahren. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Der Roboter ist bereits über die angegebene Startposition der Tracking-Synchronphase auf der Bahn hinaus gefahren. |
Darauf achten, dass IF_RobotMotion.Execute (i_xValue := TRUE) früh genug aufgerufen wird, um sicherzustellen, dass der Roboter noch nicht über die Startposition der Bahn hinaus gefahren ist. |
Enumerationsname: |
PathPositionStartInvalid |
Enumerationswert: |
24 |
Beschreibung: |
Die Startposition auf der Bahn ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
IF_RobotMotion. ChangeCoordinateSystem2() wurde aufgerufen. Die Startposition der Tracking-Synchronphase auf der Bahn liegt vor der Startposition eines vorherigen Aufrufs von IF_RobotMotion. ChangeCoordinateSystem2(). |
Sicherstellen, dass die Bahnposition Start größer ist als die Bahnposition Start des vorherigen Aufrufs. Die Werte von i_udiStartSegmentId, i_lrStartOffset, i_udiEndSegmentId und i_lrEndOffset von IF_RobotMotion. ChangeCoordinateSystem2() prüfen. |
Enumerationsname: |
StartOffsetRange |
Enumerationswert: |
116 |
Beschreibung: |
Das Start-Offset liegt außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Der am Eingang i_lrStartOffset der Methode IF_RobotMotion. ChangeCoordinateSystem2() übergebene Wert liegt außerhalb des gültigen Bereichs. |
Am Eingang i_lrStartOffset muss ein Wert kleiner oder gleich der Länge des gewählten Segments (i_udiStartSegmentId) übergeben werden. |
Enumerationsname: |
StartSegmentIdNotFound |
Enumerationswert: |
31 |
Beschreibung: |
Die Startsegment-ID wurde nicht gefunden. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Das Segment mit der am Eingang i_udiSartSegmentId übergebenen ID der Methode IF_RobotMotion. ChangeCoordinateSystem2() wurde in der neuesten verbundenen Bahn nicht gefunden. |
Das Segment mit der ID i_udiStartSegmentId muss in der neuesten verbundenen Bahn enthalten sein. |
Enumerationsname: |
StartSegmentIdRange |
Enumerationswert: |
27 |
Beschreibung: |
Die Startsegment-ID ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich. |
Der am Eingang i_udiStartSegmentId übergebene Wert liegt außerhalb des gültigen Bereichs. |
Am Eingang i_udiStartSegmentId muss ein Wert größer oder gleich 1 übergeben werden. |
Enumerationsname: |
UnexpectedFeedback |
Enumerationswert: |
13 |
Beschreibung: |
Ein Rückgabewert war ungültig. |
Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich.