Sur un robot ABB, la valeur de calibration de chaque axe est inscrite à deux endroits : sur l’étiquette de calibration du manipulateur et dans les paramètres système du contrôleur. Sur IRC5, il y en a même un troisième, la mémoire de la SMB, dans le bras lui-même. En temps normal, les trois concordent. Quand l’étiquette et le système divergent, il y a une raison, et mieux vaut la trouver avant de toucher à quoi que ce soit.
Tout ce qui suit concerne ABB. Des manipulateurs de plusieurs générations portent cette étiquette. La section de paramètres que nous comparons avec elle, nous la lisons dans les sauvegardes IRC5 (RobotWare 6 compris), et elle apparaît aussi dans des sauvegardes plus anciennes de l’époque S4C/S4C+, où les axes sont nommés autrement.
Ce que porte l’étiquette de calibration du manipulateur
ABB l’appelle silver label ou label for resolver values. Elle porte le numéro de série du robot et un tableau « Axis | Resolver values » avec une valeur par axe. Ces valeurs sont en radians, entre 0 et 2π (6,2832), avec 4, 5 ou 6 décimales selon l’étiquette. Sur les robots à moins de six axes, comme un palettiseur à quatre axes, certains axes restent vides : il ne manque rien, ces axes n’existent tout simplement pas.
Son emplacement dépend du modèle. Sur l’IRB 6620, par exemple, le manuel la situe sur le bras inférieur ou sur l’embase. L’essentiel est qu’elle est fixée sur le bras et porte son numéro de série : elle identifie ce manipulateur, et non le contrôleur auquel il est associé aujourd’hui.
Où le contrôleur enregistre sa propre calibration
Dans la sauvegarde, la calibration système se trouve dans le dossier SYSPAR, fichier MOC.cfg, section MOTOR_CALIB. Elle contient un enregistrement par axe, de rob1_1 à rob1_6, chacun avec son cal_offset : c’est la valeur que nous comparons avec l’étiquette. Dans les anciennes sauvegardes S4C/S4C+, les axes apparaissent sous la forme irb_1 au lieu de rob1_1. Dans les versions récentes, l’enregistrement comporte aussi -factory_calibration_method et -latest_calibration_method, qui gardent la trace de la méthode de calibration d’usine et de la dernière appliquée.
Le décalage de commutation (Commutator Offset) est une autre affaire. Le MOC.cfg ne le contient pas sous forme de valeur, seulement sous forme d’indicateur de validité (-valid_com_offset, comme -valid_cal_offset pour la calibration). Pour le lire, il faut passer par le contrôleur lui-même : Panneau de commande → Configuration → thème Motion → Motor Calibration → l’axe → Commutator Offset.
Le troisième emplacement : la mémoire SMB
Sur IRC5, la calibration est également enregistrée dans la mémoire de la SMB du manipulateur. Si l’on remplace le contrôleur ou la SMB, le contrôleur détecte l’écart et le signale par l’événement 50296, « Robot memory data difference » (« SMB memory data difference » selon les versions) : « Data in robot memory is not same as in controller for mechanical unit ». Cet écart-là, le robot le signale. Celui qu’il ne signale jamais, c’est l’écart entre l’étiquette et le système : l’étiquette est une plaque imprimée fixée sur le bras, et personne ne la contrôle, sauf à le faire exprès.
Mettre à jour les compteurs de tours, ce n’est pas calibrer
C’est la confusion la plus fréquente. Lorsque le système de mesure perd l’alimentation de sa batterie, l’événement 20032 apparaît, « Rev.Counter not updated » : « Revolution counter is not updated. One or several absolute measurement axes are not synchronized. » L’action indiquée est « Move the axes to the sync position and update the revolution counters ». C’est la situation que nous détaillons dans compteur de tours non mis à jour et batterie SMB.
Mettre à jour les compteurs de tours et réaliser une calibration fine (Fine calibration) sont deux opérations distinctes, qu’ABB traite séparément. En pratique, la calibration fine est réservée aux cas où un moteur a été démonté ou remplacé. Si quelqu’un en fait une après un 20032 « au cas où », les valeurs du système ne correspondent plus à l’étiquette, et le robot ne vous préviendra pas.
Ce que peut signifier un écart entre l’étiquette et le système
- Une calibration fine justifiée, sans mise à jour de l’étiquette. Après un remplacement de moteur, l’axe est recalibré et la valeur système change. Les manuels ABB (ceux de l’IRB 6620 et de l’IRT 710, par exemple) demandent alors : « Update the label for resolver values with new calibration values ». Si personne ne l’a fait, l’étiquette d’origine ne vaut plus pour cet axe.
- Une calibration fine faite sans nécessité. Typiquement, parce qu’on l’a confondue avec la mise à jour des compteurs de tours. L’axe peut alors travailler avec une valeur qui n’est pas la sienne.
- Un remplacement du contrôleur ou de la SMB. Le 50296 signale que le contrôleur et la mémoire SMB ne concordent pas. À ce moment-là, l’étiquette et la sauvegarde précédente sont deux références indépendantes pour savoir quelles données sont les bonnes avant d’accepter les unes ou les autres.
Un écart n’est pas en soi une panne. Ce qu’il faut, c’est son explication par écrit : quel axe, quand il a changé et pourquoi. S’il n’y en a pas, on ne recalibre pas pour « faire coïncider » et on n’écrase pas de paramètres : on cherche d’abord dans l’historique du robot ce qui a été touché.
Ce que nous contrôlons à chaque révision d’un ABB
C’est notre propre critère, pas une exigence du constructeur, même s’il va dans le même sens : le Product Manual de l’IRB 6620, lors de la calibration de référence, demande de vérifier que les valeurs actives correspondent à l’étiquette. À chaque révision :
- Nous photographions l’étiquette. Certaines sont montées à l’envers, encrassées, givrées, rouillées ou ont un chiffre masqué. Avec la photo archivée dans le dossier du robot, la donnée n’est pas perdue, même si l’étiquette se dégrade.
- Nous faisons la sauvegarde lors de la même visite et lisons la section MOTOR_CALIB du MOC.cfg. Comparer l’étiquette avec une sauvegarde vieille de plusieurs mois ne dit rien de l’état du robot aujourd’hui.
- Nous lisons la commutation sur le contrôleur, axe par axe, puisque la sauvegarde ne la contient pas sous forme de valeur.
- Nous consignons le tout dans le rapport, axe par axe : calibration de l’étiquette, calibration système et commutation, côte à côte.
- Nous comparons. Si un axe ne concorde pas, nous le signalons et cherchons l’explication avant de proposer toute intervention.
Cela coûte peu : une photo et une sauvegarde que toute maintenance préventive sérieuse prévoit déjà. En échange, on obtient une alerte que le robot ne donne pas de lui-même. Cela fait partie de la maintenance de robots ABB que nous réalisons.
Quand les comparer en dehors de la révision
- Après un remplacement de moteur, en vérifiant que l’étiquette a bien été mise à jour avec les nouvelles valeurs.
- Après un remplacement du contrôleur ou de la SMB, surtout si le 50296 est apparu.
- Après le chargement d’un système ou la restauration d’une sauvegarde, par précaution.
- Avant d’envisager une calibration fine : si le problème ne concernait que les compteurs de tours, elle n’est pas nécessaire.
Pour tout cela, il faut avoir sous la main, robot par robot, la photo de l’étiquette et une sauvegarde récente. Si la seule trace est l’étiquette fixée sur le bras et qu’elle est illisible, la comparaison n’est plus possible.