Skip to main content

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.

_sm_tool_and_flange_cooordinate_system.png

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 Kin_Scara2_Z

Outils avec décalage de position dans la direction Z et décalage dans l'orientation

Cinématique SCARA 3 Kin_Scara3_Z

Tous les outils

Cinématique polaire Kin_Polar, Kin_Polar_Z

Outils avec décalage de position dans la direction Z et décalage dans l'orientation

Robot articulé 3 axes Kin_Pos_RRR

Outils avec un décalage dans l'orientation

Robot articulé 6 axes Kin_ArticulatedRobot_6DOF

Tous les outils

Palettiseur 4 axes Kin_4AxisPalletizer

Tous les outils

Bipied Kin_Bipod_Rotary

Tous les outils

Portique 5 axes Kin_5Axes

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é et mOriZero est réglé sur l'orientation connue.

  • Si l'orientation R de la bride n'est que partiellement connue sous la forme R*vU = vRot (où vU et vRot sont des vecteurs unitaires connus), alors dof = 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éthode GetOrientationImage2 avec la variable VAR_IN_OUT CONSTANT mR_Flange du type de données SMC_Matrix3, qui contient l'orientation commandée de la bride.

  • La méthode retourne csTool et oriinfo avec le type de données OrientationSpace 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é de orinfo 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).