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 = zerozurückgegeben undmOriZeroauf die bekannte Orientierung gesetzt.Wenn die Orientierung
Rdes Flansches nur teilweise in der FormR*vU = vRotbekannt ist, wobeivUundvRotbekannte Einheitsvektoren sind, wirddof = onezurückgegeben.mOriZerowird auf eine Orientierung im erreichbaren Raum eingestellt.Ansonsten wird
dof = threezurü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 MethodeGetOrientationImage2mit der VariablenVAR_IN_OUT CONSTANT mR_Flangevom TypSMC_Matrix3, die die kommandierte Orientierung des Flansches enthält.Die Methode gibt
csToolundoriinfomit dem DatentypOrientationSpacezurück, im Basiskoordinatensystem der Orientierungskinematik.Außerdem wird in
bActivezurückgegeben, ob die Freiheitsgrade vonorinfoaktiv (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).