ÉCOLE DE TECHNOLOGIE SUPÉRIEURE DÉPARTEMENT DE GÉNIE DE LA PRODUCTION AUTOMATISÉE Chargé de cours: Ahmed Joubair Session: Été 2017 GPA546 ROBOTS INDUSTRIELS PROJET #4 : Simulation d un robot multitâche 1 - OBJECTIFS - Être capable d'utiliser les zones d ateliers et les interruptions ; - Être capable de travailler avec des orientations non triviales de l outil. 2 - DESCRIPTION DU LABORATOIRE Description générale. Ce projet consiste à programmer un robot ABB pour une tâche de manutention, ainsi qu une tâche de soudure (simulée) sur demande. La plaque inclinée doit être positionnée sur la table pour accueillir les patrons et une feuille doit être collée sur la table pour la soudure. Le robot devra produire à répétition les deux patrons présentés dans ce laboratoire. Une variable de type tooldata, tcrayon, sera utile pour réaliser les séquences avec le crayon. Les robtargets obligatoires sont rretrait, rmaintenance, rprisegli et rdepotgli. Les autres robtargets et référentiels sont optionnels, selon votre approche. Par contre, il est important de noter que la plaque inclinée ainsi que la feuille peuvent être déplacés sur la table et que le système doit pouvoir s ajuster avec un minimum d enseignements à refaire. Séquence de travail. Le programme exécute une seule soudure en effectuant les séquences suivantes : a) Avant d effectuer ses mouvements, le robot doit faire les initialisations appropriées. b) Avant d effectuer ses mouvements, le système doit s assurer que les articulations 1, 2 et 3 du robot sont à moins de 1 par rapport aux valeurs articulaires du robot lorsque celui-ci est précisément à rretrait. Les articulations 4, 5 et 6 doivent être à moins de 5 des valeurs articulaires du robtarget rretrait. Si la validation est réussie, alors le système passe au point suivant, sinon le programme avorte en affichant un message approprié, indiquant toutes les articulations en échec et quitte son exécution. c) Le robot créé au centre de la plaque inclinée la forme géométrique A montrée à la figure 1, en tenant compte des approches et des retraits nécessaires. Une fois celle-ci complétée, le robot retourne au robtarget rretrait et attend 3 secondes avant d enlever les blocs de la plaque en
les déposants dans la glissoire. Une fois la plaque inclinée vide, le robot réalise la forme B de la figure 1 toujours au centre de la plaque inclinée. Le robot attend à rretrait 3 secondes avant de vider la plaque inclinée et de recommencer l étape c). * Il n est pas nécessaire que les blocs se touchent si l outil passe trop juste. Figure 1 - Les deux formes à réaliser d) En tout temps durant la manutention (mais pas durant la maintenance), un opérateur peut décider de demander la soudure d un assemblage en appuyant sur la touche programmable 1 du FlexPendant. Dès que la touche 1 est appuyée, le robot doit aviser qu il va traiter la demande de soudure après le bloc en cours. Le robot complète le bloc en cours, puis va prendre le crayon et effectue le parcours de soudure (dont la forme est donnée en annexe) à une vitesse constante de 100 mm/s. Une fois la soudure terminée, le robot revient à l assemblage en cours et reprend son exercice d assemblage. L activation du fusil à souder DO05_EE_LampOr doit débuter 0,5 s avant de toucher la feuille et s arrêter 0,25 s avant la fin. Lors d une demande de maintenance durant le parcours de soudure, on arrête immédiatement le fusil et on le remet en marche une fois de nouveau en contact avec la feuille. e) Lors de l exécution du programme, un opérateur peut décider d effectuer la maintenance du crayon de la cellule robotisée en appuyant sur la touche programmable 2 du FlexPendant. Dès que la touche 2 est appuyée, le robot doit traiter la demande le plus rapidement possible, en prenant le crayon si nécessaire et en se rendant au robtarget rmaintenance. Si un bloc est dans le préhenseur, le robot doit compléter le dépôt avant d accomplir la demande de maintenance. f) Une fois la maintenance terminée, l opérateur relance l opération normale en appuyant sur la touche programmable 2 du boîtier de commande. Dès que la touche programmable 2 est appuyée, le robot revient à la configuration dans laquelle il était lors de l appui sur la touche 2 et reprend son opération normale. Le robot ne doit faire les dégagements que si nécessaire.
g) La sortie de ro bot DO04_EE_LampBlu du robot devra être active à chaque fois que l outil s approche à moins de 150 mm du robtarget rretrait, peu importe l outil utilisé. À noter que la table, la feuille ou le plan d assemblage peuvent parfois être déplacés et que le système doit rapidement redémarrer (le système doit redémarrer en moins de 5 minutes). * Autre point importants: Vous devez vous assurer que plusieurs demandes d interruptions ne causent pas un débordement de pile. Points importants à considérer : - Vous devez utiliser des noms appropriés (alias) et significatifs pour les entrées et les sorties (exemple : DI10_ZS0102 = DI_BlocTrouAGauche). Vous ne devez pas utiliser les noms par défaut. - L opérateur doit avoir le temps de lire les messages qui lui sont envoyés. Il doit confirmer la lecture du message par l appuie d une touche. - Vous devez activer et désactiver les configurations des moteurs seulement lorsque c est nécessaire. - Votre programme doit être concis avec des noms de variables significatifs. Vous ne devez pas répéter des lignes de code inutilement. - Lorsque vous interagissez avec l opérateur, vous ne devez pas faire de fautes de français. - La mise en page de votre programme doit être bien réalisée (respect des indentations, pas d espaces inutiles entre les lignes de code, constance des déclarations et des expressions). - Vos procédures et vos fonctions doivent accomplir une seule tâche. Par exemple, vous ne devez pas avoir une fonction qui s appelle CalculerVolumeSphere qui calcule le volume d une sphère et qui déplace le robot en même temps. Elle doit seulement faire la tâche que son nom indique. Vous devez bien découper votre programme en sous-fonctions. - Vous devez respecter vos propres conventions de programmation. En tant que spécialiste en robotique, vous devez : - Respecter les consignes de sécurité émises au laboratoire #1 ; - Minimiser le temps d exécution du programme tout en respectant les contraintes suivantes : 1) Vitesses d approche et de retrait réelles à 600 mm/s (avec VelSet 25,1000, la vitesse réelle est de 150 mm/s); 2) Distances d approche et de retrait de 200 mm;
3) Le programme gère certaines conditions limites : configuration non atteignable, mauvais choix entré par l opérateur, etc.; 4) Vous devez suivre la procédure décrite dans le document «Procédures au laboratoire A-0610». Vous devez examiner le manuel de référence technique «RAPID Instructions, fonctions et types de données» dont une copie électronique est disponible sur le site web du cours. 3 - FONCTIONNEMENT La durée du projet est de quatre séances (avec présence d un chargé de laboratoire). La première séance est consacrée à écrire un programme sans erreurs de syntaxe avec le logiciel de simulation RobotStudio (en contexte industriel, la programmation hors ligne permet d'éviter l'arrêt de la production pour écrire le programme). Au début de la deuxième séance, vous devrez remettre un programme de base fonctionnel et sans erreurs de compilation incluant les étapes a), b) et c) complétées. De plus, tant que vous n aurez pas produit un programme de base et obtenu l approbation écrite de votre chargé de laboratoire, l'utilisation de votre robot vous sera interdite. Les deuxième et troisième séances vous permettront de mettre au point votre programme. À la quatrième séance, vous remettre votre programme final, puis faire une démonstration de votre travail. Consignes pour la transmission électronique de votre programme par courriel. Aucune copie papier ne sera corrigée. Adresse courriel : alexandre.bernier.3 @ ens.etsmtl.ca Titre du courriel : GPA546 Remise du laboratoire XX Nom du fichier.zip à transmettre : LabXX - ÉquipeXX - Prénom Nom - Prénom Nom Le fichier.zip doit contenir les éléments suivants : Fichier(s).mod de votre programme complet Fichier.pdf de votre programme complet Vous devez transmettre votre programme AVANT le début de la deuxième séance pour l approbation et AVANT votre évaluation lors de la quatrième séance pour le programme final, sans quoi vous perdrez 10% sur la note du laboratoire. Date de remise pour l'approbation : 10 ou 13 juillet selon votre séance Date de remise pour la démonstration : 24 ou 27 juillet selon votre séance
GPA546 Été 2017 - Barème de correction Laboratoire #4 Noms : Équipe : Approbation /25 points a) Routine d'initialisation (1) b) Sécurité : Pas de déplacement avant la validation (3), valeurs des articulations maximales respectées (3) message de sécurité approprié incluant la valeur des articulations en échecs (3), le message en cas d'échec demande l'approbation de l'opérateur (2), le programme termine son exécution si la sécurité échoue (2) c) Forme A et B : Formes effectuées correctement et au bon endroit (5), sans accrochage (2), retour à rretrait (2), délais de 3 secondes respectés (2) Démonstration sur le robot /60 points d) Soudure : Touche programmable 1 (2), message pour aviser l'opérateur que la demande de soudure sera traitée (2), demande traitée selon la priorité (dépose le bloc avant) (3), vitesse de soudure respectée (3), suivi du parcours de soudure (3), retour fonctionnel à l'assemblage (3), activation du fusil (temps + fonctionnel) (3), arrêt et réactivation du fusil lors du retour de maintenance (3) e) Maintenance : Touche programmable 2 (2), maintenance immédiate quand le fusil à soudure est en main (3), maintenance immédiate lorsque la pince est vide (3), maintenance fonctionnelle dans les zones d'approche et de retrait (3), retrait seulement si nécessaire (3), rmaintenance montre le fusil à soudure à l'opérateur (1) f) Retour de maintenance : Retour fonctionnel à l'assemblage (3), retour fonctionnel à la soudure (3), robustesse générale de la maintenance (2) g) Lumière bleue s'active à 150 mm de rretrait (3) Respect de la vitesse d'approche et de retrait (2) et des interpolations maximales demandées (2) Pas de débordements de pile par trop de demandes d'interruption (3) Optimisation des mouvements, donc pas de mouvements inutiles (5) Programmation Les fautes de français lors de l'interaction avec l'opérateur (3) Alias appropriés pour les entrées et les sorties (3) Noms significatifs pour les variables et les routines (3) Respect des indentations (2) Commentaires pertinents et complets (3) Segmentation du programme (3) Seulement des appels de routine dans le main, sans calculs intermédiaires (3) /20 points Note pour le laboratoire /105 points
Annexe