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.

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 | Werkzeuge mit Positionsversatz in Z-Richtung und Versatz in der Orientierung |
SCARA 3 Kinematik | Alle Werkzeuge |
Polarkinematik | Werkzeuge mit Positionsversatz in Z-Richtung und Versatz in der Orientierung |
3-Achs-Knickarmroboter | Werkzeuge mit Versatz in der Orientierung |
6-Achs-Knickarmroboter | Alle Werkzeuge |
4-Achs-Palletierer | Alle Werkzeuge |
Bipod | Alle Werkzeuge |
5-Achs-Portal | 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 undmOriZero
auf die bekannte Orientierung gesetzt.Wenn die Orientierung
R
des Flansches nur teilweise in der FormR*vU = vRot
bekannt ist, wobeivU
undvRot
bekannte Einheitsvektoren sind, wirddof = 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 MethodeGetOrientationImage2
mit der VariablenVAR_IN_OUT CONSTANT mR_Flange
vom TypSMC_Matrix3
, die die kommandierte Orientierung des Flansches enthält.Die Methode gibt
csTool
undoriinfo
mit dem DatentypOrientationSpace
zurück, im Basiskoordinatensystem der Orientierungskinematik.Außerdem wird in
bActive
zurückgegeben, ob die Freiheitsgrade vonorinfo
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).