IF_AdditionalTransformationTCP - Direct (Methode)

Übersicht

Typ

Methode

Verfügbar ab:

V2.6.1.0

Dieses Kapitel enthält Informationen zu folgenden Aspekten:

oAufgabenstellung

oBeschreibung

oSchnittstelle

oBeispiel

Aufgabenstellung

Berechnen der Vorwärtstransformation für die zusätzliche anwenderdefinierte Transformation für den TCP (Tool Center Point).

Beschreibung

Mit der Methode Direct() kann die Vorwärtstransformation für die zusätzliche anwenderdefi­nierte Transformation für den TCP (Tool Center Point) berechnet werden. Die Eingänge verweisen auf die aktuellen Positionen des TCP und der Hilfsachsen.

G-SE-0066075.1.gif-high.gif

 

 

Wenn ein Wert ungleich Null für eine nicht konfigurierte TCP-Komponente (q_stPositionTCP.lrX / lrY / lrZ) berechnet und an den Roboter übergeben wird, gibt der Roboter die Diagnosemeldung ET_Diag.ExecutionAborted / ET_DiagExt.Component­NotConfigured zurück.

Wenn AdditionalTransformationAxes(…) ebenfalls konfiguriert wird, sieht der Datenfluss aus wie nachstehend aufgezeigt.

G-SE-0066074.1.gif-high.gif

 

 

Schnittstelle

Eingang

Datentyp

Beschreibung

i_stPositionTCP

PDL.ST_Vector3D

Position des TCP.

i_alrPositionAuxAx

ARRAY [ET_RobotComponent.AuxAx1 .. ET_RobotComponent.AuxAxAll + Gc_udiMaxNumberOfAuxiliaryAxes] OF LREAL

Position der Hilfsachsen.

i_xChange

BOOL

TRUE: Es wurde eine Änderung des zusätzlichen Transformations-TCP angefordert. Die Änderung muss gleichzeitig für die direkte und die inverse Transformation durchgeführt werden.

FALSE: Es wurde keine Änderung des zusätzlichen Transformations-TCP angefordert.

Ausgang

Datentyp

Beschreibung

q_etDiag

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich 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.

q_stPositionTCP

PDL.ST_Vector3D

Position des TCP.

Implementierungsbeispiel für die Methode Direct()

Deklaration:

METHOD Direct
VAR_INPUT
  i_stPositionTCP    : PDL.ST_Vector3D..
  i_alrPositionAuxAx : ARRAY [ROB.ET_RobotComponent.AuxAx1..
                       (ROB.ET_RobotComponent.AuxAxAll + 
                       ROB.Gc_udiMaxNumberOfAuxiliaryAxes)] OF LREAL;
  i_xChange          : BOOL;
END_VAR
VAR_OUTPUT
  q_etDiag           : GD.ET_Diag := GD.ET_Diag.Ok;
  q_etDiagExt        : ROB.ET_DiagExt := ROB.ET_DiagExt.Ok;
  q_sMsg             : STRING[80];
  q_stPositionTCP    : PDL.ST_Vector3D;
END_VAR

Implementierung:

// Copy inputs to outputs first
q_stPositionTCP   := i_stPositionTCP;

// Implement additional transformation for robot axes here
// For example:
// q_stPositionTCP.lrZ := i_stPositionTCP.lrZ - 50.0;