IF_RobotMotion - ChangeCoordinateSystem2 (Methode)

Übersicht

Typ:

Methode

Verfügbar ab:

V2.11.1.0

Dieses Kapitel enthält Informationen zu folgenden Aspekten:

oAufgabenstellung

oBeschreibung

oSchnittstelle

oDiagnosemeldungen

Aufgabenstellung

Anforderung einer Änderung eines konfigurierten Koordinatensystems, zum Beispiel ein lineares Trackingsystem, konfiguriert durch IF_RobotConfiguration.AddLinearTrackingSystem(…).

Beschreibung

Mit der Methode ChangeCoordinateSystem2(...) kann eine Änderung eines konfigurierten Koordinatensystems angefordert werden, die durch einen Aufruf der Methode IF_Robot­Motion.SetCoordinateSystem(…) gesetzt wurde.

Wenn die Methode ChangeCoordinateSystem2(…) aufgerufen wird, um ein anderes Koordinaten­system 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.SetMaxAccelerationRe­sultant 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

oVerhalten von ChangeCoordinateSystem2, wenn die berechnete resultierende Beschleunigung den Grenzwert überschreitet.

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

Schnittstelle

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

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich GD.ET_Diag.Ok entspricht einer Diagnosemeldung.

q_etDiagExt

ET_DiagExt

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.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Ok

0

Ok

ExecutionAborted

CommandRefused

10

Der Befehl wurde abgewiesen.

ExecutionAborted

ExternalPositionSourceConfigured

205

Die externe Positionsquelle wurde konfiguriert.

InputParameterInvalid

StartSegmentIdRange

27

Die Startsegment-ID ist außerhalb des gültigen Bereichs.

InputParameterInvalid

EndSegmentIdRange

28

Die Endsegment-ID ist außerhalb des gültigen Bereichs.

ExecutionAborted

StartSegmentIdNotFound

31

Die Startsegment-ID wurde nicht gefunden.

ExecutionAborted

EndSegmentIdNotFound

32

Die Endsegment-ID wurde nicht gefunden.

ExecutionAborted

NoConnectedPathAvailable

9

Es ist keine verbundene Bahn verfügbar.

InputParameterInvalid

StartOffsetRange

116

Das Start-Offset liegt außerhalb des gültigen Bereichs.

InputParameterInvalid

EndOffsetRange

78

Das End-Offset ist außerhalb des gültigen Bereichs.

ExecutionAborted

PathPositionStartAlreadyPassed

81

Der Roboter ist bereits über die Startposition auf der Bahn gefahren.

ExecutionAborted

PathPositionStartInvalid

24

Die Startposition auf der Bahn ist ungültig.

ExecutionAborted

PathPositionEndInvalid

25

Die Endposition auf der Bahn ist ungültig.

ExecutionAborted

NoMoreTrackingEventsAvailable

171

Es stehen keine weiteren Trackingereignisse zur Verfügung.

ExecutionAborted

MaxAccelerationResultantRange

170

MaxAccelerationResultant liegt außerhalb des gültigen Bereichs.

UnexpectedProgramBehavior

InterfaceInvalid

3

Eine Schnittstelle ist ungültig.

UnexpectedProgramBehavior

UnexpectedFeedback

13

Ein Rückgabewert war ungültig.

CommandRefused

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.

EndOffsetRange

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.

EndSegmentIdNotFound

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.

EndSegmentIdRange

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.

InterfaceInvalid

Enumerationsname:

InterfaceInvalid

Enumerationswert:

3

Beschreibung:

Eine Schnittstelle ist ungültig.

Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich.

MaxAccelerationResultantRange

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.

NoConnectedPathAvailable

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

NoMoreTrackingEventsAvailable

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.

Ok

Enumerationsname:

Ok

Enumerationswert:

0

Beschreibung:

Ok

Die Anforderung zur Änderung des Koordinatensystems war erfolgreich.

PathPositionEndInvalid

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.

PathPositionStartInvalid

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.

StartOffsetRange

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.

StartSegmentIdNotFound

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.

StartSegmentIdRange

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.

UnexpectedFeedback

Enumerationsname:

UnexpectedFeedback

Enumerationswert:

13

Beschreibung:

Ein Rückgabewert war ungültig.

Die Anforderung zur Änderung des Koordinatensystems war nicht erfolgreich.