Tolérances pour la précision du chemin
Des tolérances pour la précision de la trajectoire peuvent être définies pour les groupes d'axes. En cas de mouvement inattendu d'un repère dynamique, ces tolérances permettent à un groupe d'axes de rattraper ce repère au lieu de s'arrêter avec erreur SMC_AXIS_GROUP_MAX_AXIS_LAG_EXCEEDED
, SMC_AXIS_GROUP_MAX_POSITION_LAG_EXCEEDED
, ou SMC_AXIS_GROUP_MAX_ORIENTATION_LAG_EXCEEDED
.
Aperçu
Pourquoi des tolérances sont-elles nécessaires pour la précision de la trajectoire ? Idéalement, le groupe d’axes devrait suivre exactement le chemin. Cependant, si un système de coordonnées dynamiques est utilisé (par exemple, un objet sur une courroie ou une table rotative, ou un système de coordonnées spécifié par un autre groupe d'axes), il n'est dans certains cas pas possible de suivre le chemin.
Exemple : Un robot doit placer une pièce sur un tapis roulant. La courroie se déplace à une vitesse constante, mais juste avant que le robot n'atteigne la position de placement de la pièce, la courroie accélère de manière inattendue. Dans cette situation, la trajectoire de mise en place de la pièce a déjà été calculée, mais en supposant que la bande continue de se déplacer à vitesse constante. Par conséquent, le mouvement restant peut désormais conduire à une violation de l'accélération maximale de l'un des axes du robot.
Dans des situations comme celle-ci, les tolérances sont importantes. Ils permettent au groupe d'axes de s'écarter du chemin dans les limites spécifiées et de rattraper le système de coordonnées.
La précision du chemin est contrôlée par un filtre. Le filtre reçoit la trajectoire prévue (q_ref
) et les dernières positions cibles calculées (q_set
) comme entrée. La sortie du filtre sont les positions cibles (q_set
), qui sont transférés aux lecteurs. Si q_ref
viole l'une des limites de l'axe, le filtre quitte alors la trajectoire et suit au plus près la trajectoire prévue sans violer une limite de l'axe. Tant que le décalage entre q_set
et q_ref
est dans les tolérances, aucune erreur n'est générée.

Les tolérances pour la précision de trajectoire se composent de plusieurs valeurs :
Décalage maximum du TCP en unités techniques (valeur par défaut :
1 u
)Erreur d'orientation maximale du TCP en degrés angulaires (valeur par défaut :
1 deg
)Retard maximum autorisé de chaque axe en unités techniques de l'axe (valeur par défaut : infini)
Effet sur les blocs fonctionnels d'administration
Les valeurs de position, de vitesse, d'accélération et d'à-coup renvoyées par le SMC_GroupReadSetPosition
, SMC_GroupReadSetVelocity
, SMC_GroupReadSetAcceleration
, et SMC_GroupReadSetJerk
les blocs fonctionnels sont calculés en fonction de la trajectoire prévue (q_ref
). Ils ne contiennent donc pas la contribution du filtre.
D'autre part, les valeurs réelles de position, de vitesse et d'à-coup - qui sont renvoyées par le MC_GroupReadActualPosition
, MC_GroupReadActualVelocity
, et MC_GroupReadActualAcceleration
blocs fonctionnels – sont calculés sur la base de la position réelle des entraînements du groupe d’axes. Ils contiennent donc également la contribution du filtre.
La dynamique du chemin qui est renvoyée par SMC_GroupReadPathDynamics
avec Source = MC_SOURCE.SET
est basé sur la trajectoire prévue (q_ref
) et n'est donc pas influencé par le filtre. (Pour les autres valeurs du Source
entrée, la contribution du filtre est incluse)
Les déclencheurs font toujours référence à la trajectoire prévue (q_ref
). L'heure qui est renvoyée par MC_GroupReadTrigger
est le moment où la trajectoire prévue atteint le déclencheur. Lorsque le filtre est actif (q_ref<>q_set
), le groupe d'axes n'atteint généralement pas exactement la position et/ou l'heure du déclenchement.
Remarque : Un mouvement signale Done
seulement lorsque la trajectoire prévue (q_ref
) a atteint la fin du mouvement et le filtre n'est pas (ou plus) actif (c'est-à-dire qu'un éventuel décalage a été éliminé). Puis la position réglée (q_set
) correspond à la position cible du mouvement.
Définition des tolérances et surveillance de l'écart de trajectoire
Les tolérances peuvent être définies à l'aide du SMC_GroupSetPathTolerance bloc fonctionnel.
L'état du filtre et le décalage actuel entre la trajectoire prévue q_ref
et les valeurs définies q_set
du groupe d'axes peut être surveillé avec le InSync
, PositionLag
, et OrientationLag
sorties de MC_GroupReadStatus. InSync = TRUE
signifie que q_ref = q_set
et que le filtre n'est pas actif. InSync = FALSE
signifie que q_ref<>q_set
et que le filtre est actif.