KUKA KRC4 $POS_ACT Position Mismatch After Loop: Advance Run Troubleshooting — figure 1

KUKA KRC4 $POS_ACT : écart de position après une boucle — dépannage de l’exécution anticipée

KUKA KRC4 $POS_ACT renvoie le double du décalage A des données outil après le premier cycle de la boucle du programme. La cause première a été attribuée au c...

Sur les contrôleurs KUKA KRC4 exécutant KSS 8.2 ou 8.3, les programmeurs observent parfois que $POS_ACT indique un décalage A de l’outil environ deux fois supérieur à la valeur prévue après la première itération d’une boucle de mouvement. Le robot n’a pas effectué de saut physique ; le pointeur d’exécution anticipée a continué vers les instructions suivantes tandis que $POS_ACT reflétait encore une pose commandée, dépendante de l’outil et de la base, qui ne correspondait plus à la mesure que le programmeur s’attendait à enregistrer ou à utiliser comme référence de repère.

KUKA KRC4 : discordance de position de $POS_ACT après une boucle : diagnostic de l’exécution anticipée — figure 1 Affichage du pupitre KUKA KRC4 comparant $POS_ACT commandé et $POS_ACT_MES mesuré pendant l’exécution d’un programme de mouvement en boucle.

$POS_ACT correspond à la position réelle commandée, au sens de la pose programmée par le contrôleur, transformée selon l’outil et la base actifs. Elle dépend donc du moment où l’interpréteur avance. $POS_ACT_MES correspond à la position mesurée issue de la chaîne de retour d’information du robot ; c’est la variable la plus sûre lorsque vous avez besoin de la pose physique à un point de synchronisation. Confondre les deux produit des symptômes de « double décalage » qui ressemblent à une erreur d’étalonnage de l’outil après le premier cycle, en particulier lorsqu’un décalage d’outil sur l’axe A est appliqué dans une boucle que l’exécution anticipée a déjà partiellement évaluée.

Le pointeur d’exécution anticipée comme mécanisme

L’exécution anticipée de KUKA exécute les instructions suivantes avant que le robot n’atteigne l’extrémité exacte du mouvement en cours. Cette prélecture est essentielle pour le mélange des trajectoires, mais elle signifie que les affectations et les calculs de repères qui lisent $POS_ACT peuvent se déclencher plus tôt que ne le suggère le modèle mental humain du moment où le robot « arrive ». Lors de la première itération, la synchronisation peut sembler correcte par coïncidence. Lors de la deuxième itération, un décalage appliqué par rapport à une valeur $POS_ACT lue prématurément peut se cumuler avec la transformation de l’outil et apparaître comme une composante de décalage A d’environ 2× sur les affichages ou les traces.

KUKA KRC4 : discordance de position de $POS_ACT après une boucle : diagnostic de l’exécution anticipée — figure 2 Illustration du pointeur d’exécution anticipée poursuivant la logique de la boucle tandis que le robot termine encore le segment de mouvement précédent.

Techniques correctives

  • Insérez WAIT SEC 0 au point de synchronisation où vous devez interrompre l’exécution anticipée avant de lire ou d’écrire des données liées à la pose.
  • Appelez BAS(#INITMOV,0) lors de la réinitialisation des paramètres de mouvement afin que les mouvements suivants démarrent à partir d’un état de base propre, plutôt que d’hériter d’un contexte partiellement évalué.
  • Définissez $ADVANCE=0 dans les sections qui effectuent une capture critique de pose, des calculs de décalage d’outil ou des mises à jour de repères transmises d’une itération à l’autre ; rétablissez ensuite une valeur d’avance non nulle pour le rendement en production.
  • Préférez $POS_ACT_MES lorsque l’application a besoin de la pose cartésienne mesurée plutôt que de la valeur commandée dépendante du pointeur.
; Exemple de modèle de synchronisation (conceptuel)
$ADVANCE=0
WAIT SEC 0
; Capturer maintenant la pose mesurée
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; Rétablir l’avance pour le mélange selon les besoins de la cellule
$ADVANCE=3

Séquence de diagnostic

  1. Enregistrez $POS_ACT et $POS_ACT_MES sur la même ligne de programme lors des itérations 1 et 2 de la boucle défaillante.
  2. Vérifiez que les numéros d’outil et de base actifs n’ont pas changé entre les itérations.
  3. Définissez temporairement $ADVANCE=0 et effectuez un nouveau test ; si le double décalage A disparaît, l’interaction avec l’exécution anticipée est confirmée.
  4. Remplacez les lectures de pose utilisées pour les calculs de décalage par $POS_ACT_MES ou protégez-les avec WAIT SEC 0.
  5. Réintroduisez l’exécution anticipée uniquement en dehors de la section critique et validez le temps de cycle par rapport à la qualité de trajectoire.
Variable / appel Signification Quand l’utiliser
$POS_ACT Pose commandée (dépendante de l’outil et de la base) Contexte général de mouvement ; prudence avec l’exécution anticipée
$POS_ACT_MES Pose mesurée Enregistrement, inspections, calculs de décalage aux points de synchronisation
WAIT SEC 0 Interrompt l’exécution anticipée Avant les lectures/écritures critiques
BAS(#INITMOV,0) Réinitialise la base de mouvement Après une synchronisation ou un changement de mode
$ADVANCE=0 Désactive l’exécution anticipée Sections sensibles à la pose (KSS 8.2/8.3)

Confirmer la pose mesurée par rapport à la pose commandée après la synchronisation

Réétalonner l’outil parce que $POS_ACT « semble doublé » peut endommager définitivement un TCP correct. De même, l’ajout de décalages compensatoires dans l’automate programmable ou dans un interpréteur Submit, sans comprendre l’exécution anticipée, crée des corrections empiriques dépendantes de la version. Documentez la version de KSS utilisée par la cellule — 8.2 ou 8.3 — lorsque vous capturez des traces pour l’assistance du fournisseur, et indiquez si des options de précision absolue ou des bases spéciales sont actives.

Les cellules d’intégration robot-automate qui échangent des poses via un bus de terrain doivent définir si le repère partagé est commandé ou mesuré et inscrire cette définition dans la spécification d’interface. La définition de ce contrat en amont évite les mises au rebut injustifiées lorsqu’un séquenceur d’automates PLC et de systèmes PAC se déclenche sur une pose que l’exécution anticipée n’a pas encore réellement atteinte.

À propos de l’autrice

Elena Vogt | Ingénieure en intégration robotique – KUKA / cellules discrètes

Elena Vogt est spécialisée dans la mise en service des systèmes KUKA KRC4/KSS, le diagnostic des repères d’outil et les échanges de signaux entre automates et robots dans des cellules discrètes mixtes. Ses travaux portent sur les effets secondaires de l’exécution anticipée, les variables de pose mesurée et commandée, ainsi que sur les compromis stables entre temps de cycle.

KUKA KRC4 $POS_ACT : écart de position après une boucle — dépannage de l’exécution anticipée

KUKA KRC4 $POS_ACT renvoie le double du décalage A des données outil après le premier cycle de la boucle du programme. La cause première a été attribuée au comportement du pointeur d’exécution anti...

Sur les contrôleurs KUKA KRC4 exécutant KSS 8.2 ou 8.3, les programmeurs observent parfois que $POS_ACT indique un décalage A de l’outil environ deux fois supérieur à la valeur prévue après la première itération d’une boucle de mouvement. Le robot n’a pas effectué de saut physique ; le pointeur d’exécution anticipée a continué vers les instructions suivantes tandis que $POS_ACT reflétait encore une pose commandée, dépendante de l’outil et de la base, qui ne correspondait plus à la mesure que le programmeur s’attendait à enregistrer ou à utiliser comme référence de repère.

KUKA KRC4 : discordance de position de $POS_ACT après une boucle : diagnostic de l’exécution anticipée — figure 1 Affichage du pupitre KUKA KRC4 comparant $POS_ACT commandé et $POS_ACT_MES mesuré pendant l’exécution d’un programme de mouvement en boucle.

$POS_ACT correspond à la position réelle commandée, au sens de la pose programmée par le contrôleur, transformée selon l’outil et la base actifs. Elle dépend donc du moment où l’interpréteur avance. $POS_ACT_MES correspond à la position mesurée issue de la chaîne de retour d’information du robot ; c’est la variable la plus sûre lorsque vous avez besoin de la pose physique à un point de synchronisation. Confondre les deux produit des symptômes de « double décalage » qui ressemblent à une erreur d’étalonnage de l’outil après le premier cycle, en particulier lorsqu’un décalage d’outil sur l’axe A est appliqué dans une boucle que l’exécution anticipée a déjà partiellement évaluée.

Le pointeur d’exécution anticipée comme mécanisme

L’exécution anticipée de KUKA exécute les instructions suivantes avant que le robot n’atteigne l’extrémité exacte du mouvement en cours. Cette prélecture est essentielle pour le mélange des trajectoires, mais elle signifie que les affectations et les calculs de repères qui lisent $POS_ACT peuvent se déclencher plus tôt que ne le suggère le modèle mental humain du moment où le robot « arrive ». Lors de la première itération, la synchronisation peut sembler correcte par coïncidence. Lors de la deuxième itération, un décalage appliqué par rapport à une valeur $POS_ACT lue prématurément peut se cumuler avec la transformation de l’outil et apparaître comme une composante de décalage A d’environ 2× sur les affichages ou les traces.

KUKA KRC4 : discordance de position de $POS_ACT après une boucle : diagnostic de l’exécution anticipée — figure 2 Illustration du pointeur d’exécution anticipée poursuivant la logique de la boucle tandis que le robot termine encore le segment de mouvement précédent.

Techniques correctives

  • Insérez WAIT SEC 0 au point de synchronisation où vous devez interrompre l’exécution anticipée avant de lire ou d’écrire des données liées à la pose.
  • Appelez BAS(#INITMOV,0) lors de la réinitialisation des paramètres de mouvement afin que les mouvements suivants démarrent à partir d’un état de base propre, plutôt que d’hériter d’un contexte partiellement évalué.
  • Définissez $ADVANCE=0 dans les sections qui effectuent une capture critique de pose, des calculs de décalage d’outil ou des mises à jour de repères transmises d’une itération à l’autre ; rétablissez ensuite une valeur d’avance non nulle pour le rendement en production.
  • Préférez $POS_ACT_MES lorsque l’application a besoin de la pose cartésienne mesurée plutôt que de la valeur commandée dépendante du pointeur.
; Exemple de modèle de synchronisation (conceptuel)
$ADVANCE=0
WAIT SEC 0
; Capturer maintenant la pose mesurée
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; Rétablir l’avance pour le mélange selon les besoins de la cellule
$ADVANCE=3

Séquence de diagnostic

  1. Enregistrez $POS_ACT et $POS_ACT_MES sur la même ligne de programme lors des itérations 1 et 2 de la boucle défaillante.
  2. Vérifiez que les numéros d’outil et de base actifs n’ont pas changé entre les itérations.
  3. Définissez temporairement $ADVANCE=0 et effectuez un nouveau test ; si le double décalage A disparaît, l’interaction avec l’exécution anticipée est confirmée.
  4. Remplacez les lectures de pose utilisées pour les calculs de décalage par $POS_ACT_MES ou protégez-les avec WAIT SEC 0.
  5. Réintroduisez l’exécution anticipée uniquement en dehors de la section critique et validez le temps de cycle par rapport à la qualité de trajectoire.
Variable / appel Signification Quand l’utiliser
$POS_ACT Pose commandée (dépendante de l’outil et de la base) Contexte général de mouvement ; prudence avec l’exécution anticipée
$POS_ACT_MES Pose mesurée Enregistrement, inspections, calculs de décalage aux points de synchronisation
WAIT SEC 0 Interrompt l’exécution anticipée Avant les lectures/écritures critiques
BAS(#INITMOV,0) Réinitialise la base de mouvement Après une synchronisation ou un changement de mode
$ADVANCE=0 Désactive l’exécution anticipée Sections sensibles à la pose (KSS 8.2/8.3)

Confirmer la pose mesurée par rapport à la pose commandée après la synchronisation

Réétalonner l’outil parce que $POS_ACT « semble doublé » peut endommager définitivement un TCP correct. De même, l’ajout de décalages compensatoires dans l’automate programmable ou dans un interpréteur Submit, sans comprendre l’exécution anticipée, crée des corrections empiriques dépendantes de la version. Documentez la version de KSS utilisée par la cellule — 8.2 ou 8.3 — lorsque vous capturez des traces pour l’assistance du fournisseur, et indiquez si des options de précision absolue ou des bases spéciales sont actives.

Les cellules d’intégration robot-automate qui échangent des poses via un bus de terrain doivent définir si le repère partagé est commandé ou mesuré et inscrire cette définition dans la spécification d’interface. La définition de ce contrat en amont évite les mises au rebut injustifiées lorsqu’un séquenceur d’automates PLC et de systèmes PAC se déclenche sur une pose que l’exécution anticipée n’a pas encore réellement atteinte.

À propos de l’autrice

Elena Vogt | Ingénieure en intégration robotique – KUKA / cellules discrètes

Elena Vogt est spécialisée dans la mise en service des systèmes KUKA KRC4/KSS, le diagnostic des repères d’outil et les échanges de signaux entre automates et robots dans des cellules discrètes mixtes. Ses travaux portent sur les effets secondaires de l’exécution anticipée, les variables de pose mesurée et commandée, ainsi que sur les compromis stables entre temps de cycle.

Laisser un commentaire

Veuillez noter que les commentaires doivent être approuvés avant d'être publiés.