Skip to main content

Werkzeugversatz konfigurieren

Sie können den Versatz zwischen dem Flanschkoordinatensystem der Kinematik (XYZ) und dem TCP-Koordinatensystem der Kinematik (X’Y’Z‘) durch Konfiguration eines Werkzeugversatzes (Tooloffset) einstellen. Dieser Werkzeugversatz wirkt auf alle nachfolgenden Bewegungen.

_sm_tool_and_flange_cooordinate_system.png

TCP: Tool Center Point

Der Werkzeugversatz wird durch eine Verschiebung v=(x,y,z) und eine Drehung r=(A,B,C) in ZYZ-Eulerwinkeln vorgegeben. Verschiebung und Drehung werden relativ zum Flanschkoordinatensystem der Kinematik ausgedrückt.

Wenn Sie einen Werkzeugversatz konfigurieren, kann dieser inkompatibel zur aktuellen Kinematik sein. So kann ein Werkzeugversatz dazu führen, dass die Kinematik Orientierungen nicht erreichen kann. In dieser Situation wird ein Fehler zurückgemeldet und der Werkzeugversatz wird ignoriert. Beispielsweise können Sie für die Kinematik Kin_Scara2_Z einen Werkzeugversatz in Z-Richtung konfigurieren. Ein Versatz mit Anteile in X- oder Y-Richtung führt dagegen zum Fehler. Wenn eine Kinematik solche Einschränkungen hat, dann sind diese bei der Kinematik beschrieben.

Funktionsbaustein SMC_GroupSetTool

Der Funktionsbaustein konfiguriert den am Eingang ToolOffset (Typ MC_COORD_REF) angegebenen Werkzeugversatz für eine Achsgruppe. Solange die Achsgruppe im Zustand GroupDisabled oder GroupErrorStop ist, kann allerdings kein Werkzeugversatz konfiguriert werden.

Wenn das Werkzeug mit der aktuellen Kinematik nicht kompatibel ist, gibt der Baustein den Fehler SMC_AXIS_GROUP_TOOL_OFFSET_INCOMPATIBLE_WITH_KINEMATICS zurück. Dieser Fehler wird auch dann zurückgegeben, wenn bei der Kinematikbeschreibung die Schnittstelle ISMKinematicsWithOrientationImage nicht implementiert wurde.

Funktionsbaustein SMC_GroupReadTool

Dieser Funktionsbaustein liest den Werkzeugversatz aus: Ausgang ToolOffset (Typ MC_COORD_REF). Dabei bestimmt der Eingang ReadMode, ob das Werkzeug der aktiven Bewegung, der zuletzt kommandierten Bewegung oder das in der Achsgruppe derzeit eingestellte Werkzeug ausgelesen werden soll.

Kompatible Kinematiken

Nicht alle Kinematiken unterstützen jeden Werkzeugversatz. Welche Werkzeuge zu welchen Kinematiken passen, können Sie der folgenden Liste entnehmen.

Kinematik

Kompatibles Werkzeug

SCARA 2 Kinematik Kin_Scara2_Z

Werkzeuge mit Positionsversatz in Z-Richtung und Versatz in der Orientierung

SCARA 3 Kinematik Kin_Scara3_Z

Alle Werkzeuge

Polarkinematik Kin_Polar, Kin_Polar_Z

Werkzeuge mit Positionsversatz in Z-Richtung und Versatz in der Orientierung

3-Achs-Knickarmroboter Kin_Pos_RRR

Werkzeuge mit Versatz in der Orientierung

6-Achs-Knickarmroboter Kin_ArticulatedRobot_6DOF

Alle Werkzeuge

4-Achs-Palletierer Kin_4AxisPalletizer

Alle Werkzeuge

Bipod Kin_Bipod_Rotary

Alle Werkzeuge

5-Achs-Portal Kin_5Axes

Alle Werkzeuge

Portalsysteme

Alle Werkzeuge

H-Gantry System

Alle Werkzeuge

T-Gantry System

Alle Werkzeuge

Rotatorischer oder linearer Tripod

Alle Werkzeuge

Tipp

Wenn eine Kinematik keine 3 Freiheitsgrade bei der Orientierung hat, ist es möglich, dass nicht jeder Werkzeugversatz kompatibel ist.

Bei eigenen Kinematiken

Damit von Ihnen erstellte Kinematiken mit Werkzeugversatz verwendet werden können, müssen Sie die Schnittstelle ISMKinematicsWithOrientationImage implementieren. Um bei eigenen Positionskinematiken einen Werkzeugversatz hinzuzufügen, müssen Sie zunächst die Schnittstelle ISMPositionKinematics2 implementieren.

Die Schnittstelle ISMKinematicsWithOrientationImage

Die Kinematikschnittstelle stellt die Methode GetFlangeOrientationImage mit der Variablen mR_Flange des Datentyps SMC_Matrix3 bereit, die die kommandierte Orientierung des Flansches enthält. Die Methode gibt somit möglichen resultierenden Orientierungen oriInfo als Datentyp OrientationSpace zurück.

Verhalten der Schnittstelle

  • Insbesondere wenn die Orientierung des Flansches bei der kommandierten Orientierung bekannt ist, wird dof = zero zurückgegeben und mOriZero auf die bekannte Orientierung gesetzt.

  • Wenn die Orientierung R des Flansches nur teilweise in der Form R*vU = vRot bekannt ist, wobei vU und vRot bekannte Einheitsvektoren sind, wird dof = one zurückgegeben. mOriZero wird auf eine Orientierung im erreichbaren Raum eingestellt.

  • Ansonsten wird dof = three zurückgegeben.

Ein vorgegebener Werkzeugversatz ist mit der Kinematik kompatibel, wenn die Flanschposition unter Berücksichtigung der berechneten Orientierung eindeutig berechnet werden kann. Das ist immer der Fall, wenn die berechnete Orientierung durch die Kinematik erreichbar ist. Nur wenn nicht alle Orientierungen erreichbar sind, ist der Werkzeugversatz möglicherweise inkompatibel. Wenn außerdem die Methode GetFlangeOrientationImage dof = zero zurückgibt, dann ist jeder Werkzeugversatz kompatibel. Wenn die Methode dof = one zurückgibt, dann ist nur der Werkzeugpositionsversatz v_off parallel zum Einheitsvektor vU kompatibel. In diesem Fall ist R*v_off = R*vU*x = vRot*x nicht von den unbekannten Teilen der Orientierungsmatrix R abhängig. Dazu gehört auch ein Werkzeugversatz mit v_off = 0 (mit x = 0). Wenn dof = three zurückgegeben wird, dann sind nur Positionsverschiebungen ohne Versatz in x/y/z kompatibel.

Hinweise für die Implementierung

  • Implementieren Sie für Orientierungskinematiken die Schnittstelle ISMOrientationKinematicsWithOriImage2. Dann kann bei Kopplung der Orientierungskinematik mit einer Positionskinematik ein Werkzeugversatz verwendet werden. Die Schnittstelle hat die Methode GetOrientationImage2 mit der Variablen VAR_IN_OUT CONSTANT mR_Flange vom Typ SMC_Matrix3, die die kommandierte Orientierung des Flansches enthält.

  • Die Methode gibt csTool und oriinfo mit dem Datentyp OrientationSpace zurück, im Basiskoordinatensystem der Orientierungskinematik.

  • Außerdem wird in bActive zurückgegeben, ob die Freiheitsgrade von orinfo aktiv (TRUE) oder passiv (FALSE) sind.

Beispiel für aktive Freiheitsgrade: Kin_CAxis. Die Drehung um die z-Achse wird von der Achse der Orientierungskinematik gesteuert.

Beispiel für passive Freiheitsgrade: Kin_Wrist2. Der verbleibende Freiheitsgrad ist die Drehung von X/Y um die Z-Achse, die in die vom Benutzer programmierte Richtung zeigt.

Wichtig

Wenn bei einem Werkzeugwechsel sowohl die letzte kommandierte als auch die neue Bewegung eine CP-Bewegung ist (beide Bewegungen sind linear oder kreisförmig), wird der Puffermodus der folgenden Bewegung von Blending oder Aborting auf Buffered geändert.

Wichtig

Wenn Sie nach MC_GroupInterrupt und vor MC_GroupContinue einen neuen Werkzeugversatz konfigurieren, wird für die unterbrochenen Bewegungen der alte Werkzeugversatz verwendet. Der neue Werkzeugversatz wird nur für Bewegungen verwendet, die danach kommandiert werden.

Wichtig

Wenn die Kinematik gewechselt wird (MC_SetKinTransform), dann wird der Werkzeugversatz zurückgesetzt (keine Verschiebung, keine Drehung).