Configuration d'un décalage d'outil
Vous pouvez définir le décalage entre le système de coordonnées de bride de la cinématique (XYZ) et le système de coordonnées TCP de la cinématique (X'Y'Z') en configurant une correction d'outil. Cette correction d'outil agit sur tous les déplacements ultérieurs.

TCP : point central de l'outil
La correction d'outil est spécifiée par un décalage v=(x,y,z)
et une rotation r=(A,B,C)
dans les angles d'Euler ZYZ. Le décalage et la rotation sont exprimés par rapport au système de coordonnées de bride de la cinématique.
Lorsque vous configurez un correcteur d'outil, celui-ci peut être incompatible avec la cinématique actuelle. En conséquence, un décalage d'outil peut empêcher la cinématique d'atteindre les orientations. Dans cette situation, une erreur est émise et le correcteur d'outil est ignoré. Par exemple, vous pouvez configurer un correcteur d'outil dans la direction Z pour la cinématique Kin_Scara2_Z
. En revanche, un décalage avec des pièces dans la direction X ou Y entraîne une erreur. Lorsque les cinématiques présentent ce type de restrictions, elles sont décrites avec le cinématique.
Bloc fonction : SMC_GroupSetTool
Le bloc fonction configure la correction d'outil spécifiée à l'entrée ToolOffset
(taper MC_COORD_REF
) pour un groupe d'axes. Cependant, tant que le groupe d'axes est dans l'état GroupDisabled
ou GroupErrorStop
, non la correction d'outil peut être configurée.
Si l'outil n'est pas compatible avec la cinématique actuelle, alors le POU émet l'erreur SMC_AXIS_GROUP_TOOL_OFFSET_INCOMPATIBLE_WITH_KINEMATICS
. Cette erreur est également émise si l'interface ISMKinematicsWithOrientationImage
n'a pas été implémenté pour la description de la cinématique.
Bloc fonctionnel : SMC_GroupReadTool
Ce bloc fonction lit la correction d'outil : sortie ToolOffset
(taper MC_COORD_REF
). Dans ce processus, l'entrée ReadMode
détermine si l'outil du mouvement actif, le dernier mouvement commandé ou l'outil actuellement défini dans le groupe d'axes doit être lu.
Cinématiques compatibles
Toutes les cinématiques ne prennent pas en charge toutes les corrections d'outil. La liste suivante indique quels outils sont adaptés à quelle cinématique.
Cinématique | Outil compatible |
---|---|
Cinématique SCARA 2 | Outils avec décalage de position dans la direction Z et décalage dans l'orientation |
Cinématique SCARA 3 | Tous les outils |
Cinématique polaire | Outils avec décalage de position dans la direction Z et décalage dans l'orientation |
Robot articulé 3 axes | Outils avec un décalage dans l'orientation |
Robot articulé 6 axes | Tous les outils |
Palettiseur 4 axes | Tous les outils |
Bipied | Tous les outils |
Portique 5 axes | Tous les outils |
Systèmes de portique | Tous les outils |
Système de portique en H | Tous les outils |
Système de portique en T | Tous les outils |
Trépied rotatif ou linéaire | Tous les outils |
Astuce
Si un système cinématique n'a pas 3 degrés de liberté pour l'orientation, il se peut que toutes les corrections d'outil ne soient pas compatibles.
Pour une cinématique personnalisée
Afin d'utiliser votre cinématique personnalisée avec un correcteur d'outil, vous devez implémenter le ISMKinematicsWithOrientationImage
interface. Pour ajouter un correcteur d'outil pour votre cinématique de position personnalisée, vous devez d'abord implémenter l'interface ISMPositionKinematics2
.
Interface : ISMKinematicsWithOrientationImage
L'interface cinématique fournit la méthode GetFlangeOrientationImage
avec la variable mR_Flange
du type de données SMC_Matrix3
, qui contient l'orientation commandée de la bride. En conséquence, la méthode renvoie les orientations résultantes possibles oriInfo
comme type de données OrientationSpace
.
Comportement de l'interface
En particulier, lorsque l'orientation de la bride dans l'orientation commandée est connue,
dof = zero
est retourné etmOriZero
est réglé sur l'orientation connue.Si l'orientation
R
de la bride n'est que partiellement connue sous la formeR*vU = vRot
(oùvU
etvRot
sont des vecteurs unitaires connus), alorsdof = one
est retourné.mOriZero
est réglé sur une orientation dans l'espace accessible.Autrement,
dof = three
est retourné.
Une correction d'outil spécifiée est compatible avec la cinématique si la position de la bride peut être calculée de manière unique en tenant compte de l'orientation calculée. C'est toujours le cas lorsque l'orientation calculée peut être obtenue par la cinématique. La correction d'outil peut être incompatible uniquement si toutes les orientations ne peuvent pas être atteintes. De plus, si la méthode GetFlangeOrientationImage
Retour dof = zero
, alors chaque correction d'outil est compatible. Si la méthode retourne dof = one
, alors seul le décalage de la position de l'outil v_off
parallèle au vecteur unitaire vU
est compatible. Dans ce cas, R*v_off = R*vU*x = vRot*x
ne dépend pas des parties inconnues de la matrice d'orientation R
. Cela inclut également un décalage d'outil avec v_off = 0
(où x = 0). Si dof = three
est renvoyé, alors seuls les décalages de position sans décalage en x/y/z sont compatibles.
Remarques sur la mise en œuvre
Implémenter l'interface
ISMOrientationKinematicsWithOriImage2
pour la cinématique d'orientation. Ensuite, une correction d'outil peut être utilisée pour coupler la cinématique d'orientation avec la cinématique de position. L'interface a la méthodeGetOrientationImage2
avec la variableVAR_IN_OUT CONSTANT mR_Flange
du type de donnéesSMC_Matrix3
, qui contient l'orientation commandée de la bride.La méthode retourne
csTool
etoriinfo
avec le type de donnéesOrientationSpace
dans le repère de base de la cinématique d'orientation.De plus, la méthode revient dans
bActive
si les degrés de liberté deorinfo
sont actifs (TRUE
) ou passif (FALSE
).
Exemple de degrés de liberté actifs : Kin_CAxis
. La rotation autour de l'axe z est contrôlée par l'axe cinématique d'orientation.
Exemple de degrés de liberté passifs : Kin_Wrist2
. Le degré de liberté restant est la rotation de X/Y autour de l'axe Z, qui pointe dans la direction programmée par l'utilisateur.
Important
Lorsque le dernier mouvement commandé et le nouveau mouvement sont des mouvements CP (les deux mouvements linéaires ou rotatifs) lors d'un changement d'outil, le mode tampon du mouvement suivant passe de Blending
ou Aborting
à Buffered
.
Important
Si vous configurez une nouvelle correction d'outil après MC_GroupInterrupt
et avant MC_GroupContinue
, l'ancienne correction d'outil est utilisée pour les déplacements interrompus. La nouvelle correction d'outil n'est utilisée que pour les mouvements commandés ultérieurement.
Important
Lorsque la cinématique est modifiée (MC_SetKinTransform
), la correction d'outil est réinitialisée (pas de décalage, pas de rotation).