Code d’erreur : Mixed Logic / BG Logic / Macros · Catégorie : Programmation · Contrôleurs : R-30iB, R-30iB Plus, CRX-10i
Le client demande un changement « simple » : activer une sortie de vacuum quand le robot franchit une position, et seulement pendant que le convoyeur tourne. Vous ajoutez une ligne de Mixed Logic. Ça fonctionne sur le banc d’essai. Ça brise dès que la cellule monte à la vraie cadence de production, parce que la Mixed Logic ne peut traiter que des comparaisons simples pendant le mouvement. La solution n’est pas d’ajouter plus de Mixed Logic, mais de déplacer ce comportement dans la Background Logic ou dans un Condition Monitor. Chez Probot Systèmes, nous voyons ce décalage entre l’outil et le besoin sur la plupart des cellules où plusieurs intégrateurs ont touché au code au fil des ans.
Cet article s’adresse aux techniciens qui programment des contrôleurs R-30iB, R-30iB Plus et CRX-10i, qui ont besoin d’un comportement en parallèle et qui ne savent pas quelle structure de contrôle utiliser. Nous couvrons la Mixed Logic, la Background Logic, les macros et le Condition Monitor, dans l’ordre où vous devriez les évaluer.
Il n’existe pas d’alarme FANUC unique appelée « mauvaise utilisation de la Mixed Logic ». Les symptômes apparaissent plus loin sous forme d’INTP-254 Parameter not found (paramètre introuvable), de PRIO-620 PNIO(C) station deactivated (station PNIO(C) désactivée) lorsqu’une tâche BG Logic fait référence à une E/S qui a disparu, ou simplement d’un comportement qui ne correspond pas au programme tel qu’il est écrit.
Selon le manuel des codes d’erreur FANUC au sujet d’INTP-254 : « Paramètre introuvable. Cause : le nom de paramètre spécifié est introuvable. Solution : vérifier le nom du paramètre. » L’alarme se déclenche quand une ligne de Mixed Logic, une tâche BG Logic ou une macro fait référence à une variable système ou à un paramètre qui n’existe pas dans le firmware en service. La solution consiste à lire le manuel correspondant à ce firmware, pas à colmater le symptôme.
Selon le manuel au sujet de PRIO-620 : « L’appareil dont le réglage Show error when deactivated est à ON est désactivé. Solution : vérifier la station correspondant au numéro de station indiqué et l’activer. » Celle-ci frappe quand un programme BG Logic interroge une E/S de bus de terrain qui perd la communication, et que la logique d’interrogation n’est pas conditionnée par le signal de communication OK.
La réalité de l’atelier : la Mixed Logic, la BG Logic, les macros et le Condition Monitor ont chacun une tâche pour laquelle ils sont bons. Utilisez le mauvais et vous obtenez soit une alarme en aval, soit un comportement qui dérive en production.
IF DI[3], DO[5]=ON). Empilez trois conditions et vous obtenez une synchronisation imprévisible. Le manuel de l’option Mixed Logic est explicite sur cette contrainte.Étape 1. Déterminez ce qui doit s’exécuter en parallèle avec le mouvement. Une seule comparaison d’E/S ? Candidat pour la Mixed Logic. Une mise à jour d’état continue (indicateur d’alarme, convoyeur en marche) ? Candidat pour la BG Logic. Une réaction à un changement d’E/S pendant le mouvement ? Candidat pour le Condition Monitor. Un raccourci de bouton IHM ? Candidat pour une macro.
Étape 2. Ouvrez MENU > SETUP > BG Logic. Lisez la liste des tâches en cours. Si elle est vide, aucune BG Logic ne s’exécute. Les essais de BG Logic qui fonctionnent en T1 mais pas en AUTO échouent souvent parce que la tâche BG n’est pas assignée au démarrage AUTO.
Étape 3. Lisez l’historique des alarmes si le comportement est incorrect. INTP-254 signifie qu’un nom de paramètre dans votre code n’existe pas. INTP-258 signifie une erreur d’accès au port de soudage et n’a aucun lien avec la structure logique (mentionné dans le manuel). PRIO-620 signifie qu’une référence d’E/S est hors ligne.
Étape 4. Pour les macros, vérifiez MENU > SETUP > Macro. Chaque macro est liée à un bouton ou à un signal UI. Confirmez que l’association est bien celle à laquelle vous vous attendez.
Étape 5. Pour le Condition Monitor, ouvrez le programme de mouvement concerné et cherchez les conditions WHEN en ligne avec les instructions de mouvement. Le Condition Monitor fait partie du programme de mouvement, ce n’est pas une tâche distincte.
Pour une Mixed Logic trop complexe :
Déplacez la partie complexe dans la BG Logic. Ne laissez qu’une seule comparaison dans la ligne de Mixed Logic, ou retirez complètement la Mixed Logic et laissez la BG Logic piloter l’E/S. Une discussion de la communauté DIY Robotics sur le démarrage d’un robot par un bouton de sortie (« Starting a Robot by an output button ») montre la bonne approche : la BG Logic associe les signaux UI à des indicateurs, et le programme principal lit ces indicateurs (référence).
Pour une BG Logic qui ne roule pas :
MENU > SETUP > BG Logic. Ajoutez la tâche. Réglez « AUTO start » pour qu’elle démarre à la mise sous tension, et pas seulement lorsqu’on la lance manuellement. Sauvegardez et redémarrez le contrôleur. La liste des tâches devrait indiquer que votre programme est en cours d’exécution.
Pour une BG Logic qui en fait trop :
Divisez-la. La BG Logic préfère de petites tâches ciblées. Un programme BG monolithique de 200 lignes est plus difficile à déboguer et plus susceptible de buter sur une instruction restreinte. Plusieurs tâches BG de 20 lignes sont plus propres.
Pour une macro qui pilote un long mouvement :
Restructurez. La macro ne devrait rien faire d’autre que CALL my_motion_program puis revenir. Le programme de mouvement s’exécute dans son propre groupe, avec son propre contrôle du mouvement. Cela évite les problèmes de synchronisation liés au fil d’exécution des macros et permet au programme de mouvement d’utiliser l’ensemble des fonctions TP.
Pour un Condition Monitor non utilisé :
Remplacez la combinaison Mixed Logic + mouvement par une instruction Condition Monitor. La syntaxe (CMR[n] et le mot-clé WHEN) est documentée dans le manuel de programmation TP de FANUC. L’avantage : la réaction de l’E/S est indépendante de l’exécution de la ligne de mouvement.
Pour une sortie numérique sur alarme ou état UO :
Utilisez la BG Logic. Une approche propre est documentée dans la communauté DIY Robotics : « Vous pouvez créer un programme BG Logic avec DO XX = UO 6 Fault » (référence). Une seule ligne de BG Logic et le voyant du panneau reflète toujours l’état d’alarme.
Deux situations justifient un appel de service :
Vous avez hérité d’une cellule où quelqu’un a utilisé la Mixed Logic, la BG Logic et les macros de façon interchangeable, et le comportement est difficile à prévoir. Démêler tout ça, c’est un audit de programmation. Nous en faisons régulièrement, et le livrable est une carte documentée de qui exécute quoi et quand.
Vous devez ajouter une réaction d’E/S critique pour la sécurité pendant le mouvement (mise en sourdine d’un rideau lumineux, pause sur capteur d’effort, replanification guidée par la vision). C’est au minimum du ressort du Condition Monitor, souvent avec un mappage DCS Safe IO derrière. Le câbler sans conception de sécurité, c’est comme ça que des cellules se retrouvent avec un comportement intermittent que l’auditeur refusera de certifier.
Contactez-nous pour une revue de programmation, ou planifiez une visite de maintenance préventive afin que l’inventaire de la BG Logic et des macros soit documenté en même temps que l’entretien mécanique.
Probot Systèmes est un intégrateur FANUC établi à Lévis (Québec) qui dessert le Canada et les États-Unis. Nous concevons les structures de Mixed Logic, de BG Logic, de macros et de Condition Monitor de chaque cellule que nous livrons, et nous les retravaillons sur les cellules de clients où l’intégrateur d’origine a choisi le mauvais outil. Si votre comportement en parallèle est imprévisible, parlons-en : contactez-nous.
Remplissez le formulaire ci-dessous et nous vous contacterons dans les plus brefs délais.