Exemple Robot Perceur Solution

29
1 ELE4202 Commande des procédés industriels (automatisation) Exemple complet de conception (complément au chapitre II du cours) Conception et réalisation d’un automatisme pour le perçage de pièces sur un poste robotisé Conçu par Cédric Demers-Roy École Polytechnique de Montréal Septembre 2002

Transcript of Exemple Robot Perceur Solution

Page 1: Exemple Robot Perceur Solution

1

ELE4202 Commande des procédés industriels (automatisation)

Exemple complet de conception (complément au chapitre II du cours)

Conception et réalisation d’un automatisme

pour le perçage de pièces sur un poste robotisé

Conçu par Cédric Demers-Roy

École Polytechnique de Montréal Septembre 2002

Page 2: Exemple Robot Perceur Solution

2

Cahier des charges Un robot perceur industriel est chargé de percer des trous dans deux types de pièces qui arrivent via un convoyeur lié au poste de perçage. Pour la production actuelle, le robot a deux types de pièces à traiter et il peut les distinguer par leur longueur : la première fait 25 cm de longueur et la deuxième 50 cm de longueur. Le convoyeur a été conçu de sorte que la largeur des pièces conviennent aux bandes d’entraînement, soit 25 cm. Le poste de perçage (voir figure 1) possède les éléments suivants :

- trois moteurs de déplacement (Mx, My et Mz) - deux moteurs de convoyeur (ME et MS) - un moteur pour la mèche à percer (MP) - trois interrupteurs de présence de pièce

- PP, pièce présente - GP, grande pièce - AP, autre pièce

- deux interrupteurs de limite de hauteur - Z1, proximité de la pièce - Z2, pièce traversée

- deux encodeurs optiques reliés aux moteurs de déplacement MX et MY - ONX, RESETX, VALUEX - ONY, RESETY, VALUEY

- trois interrupteurs de configuration des compteurs SX, SY et SZ - une console de commande (voir figure 2)

- boutons X+,X-,Y+,Y-,Z+,Z-,P,START,STOP,MANUEL,ON,OFF *l’interrupteur P et le bouton STOP sont à enclenchement; tous les autres boutons sont momentanés

- diodes DP (problème), DR (en route) et DM (mode manuel) Le robot doit pouvoir effectuer le perçage automatique des pièces qui se présentent sur le convoyeur en appliquant un plan de perçage dépendant de la dimension de la pièce. Les figures 3 et 4 illustrent les plans de perçage en fonction de la longueur de la pièce. Le démarrage de l’automatisme se fait par la pression du bouton START sur la console. Cette séquence assurera le positionnement de la pièce, le perçage de tous les trous, l’éjection de la pièce terminée et la prise d’une éventuelle pièce suivante sur le convoyeur. L’interruption de la séquence se fait suivant la pression du bouton STOP qui interrompt le traitement temporairement sur une première pression (le traitement est repris si START est pressé ensuite) et qui arrête complètement la machine sur une deuxième pression. Lors d’une interruption, le système est figé et attend la suite des événements. Les actions doivent être inhibées durant cette interruption. Avant d’éjecter la pièce à la fin de la séquence de perçage, le robot attend 2 secondes pour voir si l’opérateur veut passer en mode manuel (pression du bouton MANUEL sur la console). Dans ce cas, le système entre en mode manuel et permet les commandes via les sept boutons de contrôle manuel de la console. C’est le seul moment où ces boutons

Page 3: Exemple Robot Perceur Solution

3

peuvent fonctionner. Lors de l’attente et pendant toute la durée du mode manuel, la diode DM s’allume pour indiquer la situation à l’opérateur. La sortie du mode manuel se fait suivant la pression du bouton STOP (une seule fois). Lors de la prise d’une pièce, le convoyeur d’entrée (MS) est alimenté pendant 5 secondes, ou jusqu’à ce que l’interrupteur PP se ferme. Si au bout du délai l’interrupteur est toujours ouvert, le traitement s’arrête et la diode de problème (DP) sur la console s’allume. L’opérateur doit alors manuellement replacer le système et lancer une nouvelle séquence (START). La diode s’éteint alors. Le même comportement doit être adopté si l’éjection de la pièce échoue. La diode de traitement normal (DR) doit être allumée tant que la séquence se déroule normalement et que le robot n’est pas en mode d’attente ou en mode manuel. Les compteurs servant à lire les encodeurs optiques de déplacement fonctionnent en mode asynchrone. Ils doivent donc être activé et remis à zéro avant toute séquence de travail pour s’assurer de leur fonctionnement. Pour ce faire, chaque compteur possède deux bits de configuration : RESET et ON (en pratique : RESETX, RESETY, ONX,ONY). Veillez à tenir compte de ces contrôles. Lorsqu’ils fonctionnent, les compteurs vont compter le nombre d’impulsions retournées par les encodeurs qui surveillent les déplacements en X et en Y. Il faut donc effectuer la conversion entre le nombre d’impulsions retournées et la distance parcourue afin de se positionner correctement selon le plan de perçage. Or, les encodeurs sont reliés à des poulies d’entraînement des câbles de déplacement qui sont reliés, eux, aux moteurs de déplacement. Dû à des contraintes mécaniques, ces poulies n’ont pas la même dimension pour les déplacements en X et en Y, ce qui donne un facteur de conversion différent pour chaque axe. Ainsi, les déplacements en X donnent 200 impulsions par centimètre de déplacement et les déplacements en Y donnent 250 impulsions par centimètre de déplacement. Les interrupteurs limite SX,SY et SZ servent au positionnement à zéro du robot perceur pour permettre la remise à zéro des compteurs. Lors de l’allumage (ON) ou suite à une mise hors fonction (OFF), le robot doit aller en cette position et mettre ses compteurs à zéro. Le positionnement de la mèche en X et Y doit se faire en boucle fermée et le déplacement en Z ne se fait qu’une fois la position atteinte en X et Y. On suppose que les moteurs de déplacements en X et Y ont une impédance assez haute pour arrêter le déplacement dès que la commande est nulle (pas de vitesse résiduelle ni de dépassement). Matériel disponible Pour réaliser cet automatisme, vous disposez de :

- un poste de perçage tel qu’illustré à la figure 1

Page 4: Exemple Robot Perceur Solution

4

- sa console de commande - un automate de la compagnie Télémécanique contenant :

- module processeur (adresse 0) - module d’entrées (adresse 1) - module de sorties logiques (adresse 5) - module de sorties à relais (adresse 6) - module de comptage rapide (adresse 3)

- le logiciel de programmation PL7-Pro 3.4

Page 5: Exemple Robot Perceur Solution

5

Les adresses utilisables dans cet automate sont énumérées comme suit : - OBJET ADRESSE SYMBOLE

- mémoires - bits %M0 à %M31 (À ASSIGNER) - octets %MB0 à %MB31 (À ASSIGNER) - mots %MW0 à %MW31 (À ASSIGNER) - double mots %MD0 à %MD31 (À ASSIGNER)

- constantes - octets %KB0 à %KB31 (À ASSIGNER) - mots %KW0 à %KW31 (À ASSIGNER) - double mots %KD0 à %KD31 (À ASSIGNER)

- entrées - logiques %I1.0 à %I1.31 (À ASSIGNER)

- sorties - logiques %Q5.0 à %Q5.15 (À ASSIGNER) - relais %Q6.0 à %Q6.15 (À ASSIGNER)

- compteurs rapides - alimentation C0 %Q3.0 ONX - alimentation C1 %Q3.1 ONY - remise à zéro C0 %Q3.0.1 RESETX - remise à zéro C1 %Q3.1.1 RESETY - valeur C0 %ID3.0 VALUEX - valeur C1 %ID3.1 VALUEY

- blocs fonctionnels - temporisateurs %T0 à %T7 (À ASSIGNER) - compteurs %C0 à %C7 (À ASSIGNER)

Travail à réaliser

- Affectation des adresses et des mémoires ( entrées / sorties, états temporaires, constantes, variables)

- Traitements préliminaires - Séquence de traitement ( Grafcet de niveau I et II) - Traitements postérieurs assurant les actions

Page 6: Exemple Robot Perceur Solution

6

Page 7: Exemple Robot Perceur Solution

7

Page 8: Exemple Robot Perceur Solution

8

Page 9: Exemple Robot Perceur Solution

9

SOLUTION

Page 10: Exemple Robot Perceur Solution

10

Affectation des adresses et des mémoires Les adresses non mentionnées dans ces tableaux indiquent les objets non utilisés pour la conception / réalisation de l’automatisme demandé. Tableau 1 : Affectation des blocs fonctionnels Adresse Symbole Description %C0 NbStop Compteur du nombre de stop %T0 T_tapis Temporisateur de 5 secondes pour introduction / éjection %T1 T_manuel Temporisateur de 2 secondes pour l’entrée en mode manuel Tableau 2 : Assignation des constantes Adresse Symbole Valeur Description %KD0 X1P 5 cm Position en X, premier trou, petite pièce %KD2 Y1P 20 cm Position en Y, premier trou, petite pièce %KD4 X2P 20 cm Position en X, deuxième trou, petite pièce %KD6 Y2P 20 cm Position en Y, deuxième trou, petite pièce %KD8 X3P 12.5 cm Position en X, troisième trou, petite pièce %KD10 Y3P 20 cm Position en Y, troisième trou, petite pièce %KD12 X1G 5 cm Position en X, premier trou, grande pièce %KD14 Y1G 5 cm Position en Y, premier trou, grande pièce %KD16 X2G 5 cm Position en X, deuxième trou, grande pièce %KD18 Y2G 45 cm Position en Y, deuxième trou, grande pièce %KD20 X3G 20 cm Position en X, troisième trou, grande pièce %KD22 Y3G 45 cm Position en Y, troisième trou, grande pièce %KD24 X4G 20 cm Position en X, quatrième trou, grande pièce %KD28 Y4G 5 cm Position en Y, quatrième trou, grande pièce %KD28 KX 200 imp/cm Constante de conversion de comptage en X %KD28 KY 250 imp/cm Constante de conversion de comptage en Y

Page 11: Exemple Robot Perceur Solution

11

Tableau 3 : Assignation des variables (bits, octets, mots et double mots) Adresse Symbole Description

Bit %M0 To_up Fin du délai de 5 secondes (introduction / éjection de pièce) %M1 2stop Double pression du bouton STOP (arrêt permanent demandé) %M2 T1_up Fin du délai de 2 secondes (entrée dans le mode manuel) %M3 Pause Arrêt temporaire demandée (stop) %M4 Quit Arrêt permanent demandé (2stop ou OFF) %M5 Start_BF Départ du positionnement en boucle fermée %M6 Out_BF Sortie du positionnement en boucle fermée %M7 Start_P Départ de la séquence de perçage %M8 Out_p Sortie de la séquence de perçage %M9 Fin_BF Position atteinte en boucle fermée (permission de sortie) %M10 In_MAN Mode manuel activé

Double mot %MD0 XD Position en X à atteindre pour la boucle fermée %MD2 YD Position en Y à atteindre pour la boucle fermée Tableau 4 : Assignation des entrées Adresse Symbole Description %I1.0 SX Interrupteur de position zéro en X %I1.1 SY Interrupteur de position zéro en Y %I1.2 SZ Interrupteur de position zéro en Z %I1.3 Z1 Interrupteur de position de proximité de pièce pour l’axe Z %I1.4 Z2 Interrupteur de position de pièce traversée pour l’axe Z %I1.5 PP Interrupteur de présence de pièce pour perçage %I1.6 GP Interrupteur indiquant une pièce de grande dimension %I1.7 AP Interrupteur indiquant la présence d’une prochaine pièce %I1.8 ON Bouton de mise en fonction %I1.9 OFF Bouton de mise hors fonction %I1.10 START Bouton de départ de séquence / confirmation %I1.11 STOP Bouton de pause / fin de séquence %I1.12 MANUEL Bouton de passage en mode manuel %I1.13 X+ Bouton de commande de déplacement positif selon X %I1.14 X- Bouton de commande de déplacement négatif selon X %I1.15 Y+ Bouton de commande de déplacement positif selon Y %I1.16 Y- Bouton de commande de déplacement négatif selon Y %I1.17 Z+ Bouton de commande de déplacement positif selon Z %I1.18 Z- Bouton de commande de déplacement négatif selon Z %I1.19 P Interrupteur de mise en marche du moteur de perçage

Page 12: Exemple Robot Perceur Solution

12

Tableau 5 : Assignation des sorties (logiques et à relais) Adresse Symbole Description

Logique %Q5.0 DR Indicateur (DEL) de déroulement de séquence %Q5.1 DP Indicateur (DEL) de problème %Q5.2 DM Indicateur (DEL) de présence en mode manuel

Relais %Q6.0 MX+ Alimentation du moteur de l’axe X (déplacement positif) %Q6.1 MX- Alimentation du moteur de l’axe X (déplacement négatif) %Q6.2 MY+ Alimentation du moteur de l’axe Y (déplacement positif) %Q6.3 MY- Alimentation du moteur de l’axe Y (déplacement négatif) %Q6.4 MZ+ Alimentation du moteur de l’axe Z (déplacement positif) %Q6.5 MZ- Alimentation du moteur de l’axe Z (déplacement négatif) %Q6.6 ME Alimentation du moteur du convoyeur d’entrée %Q6.7 MS Alimentation du moteur du convoyeur de sortie %Q6.8 MP Alimentation du moteur de perçage Tableau 6 : Assignation des compteurs rapides Adresse Symbole Description

Contrôle de fonctionnement (bits) %Q3.0 ONX Contrôle d’activation du compteur 0 (position en X) %Q3.0.1 RESETX Contrôle de remise à zéro du compteur 0 %Q3.1 ONY Contrôle d’activation du compteur 1 (position en Y) %Q3.1.1 RESETY Contrôle de remise à zéro du compteur 1

Valeur des compteurs (mots doubles) %ID3.0 VALUEX Valeur en nombre d’impulsions du compteur en X %ID3.1 VALUEY Valeur en nombre d’impulsions du compteur en Y

Page 13: Exemple Robot Perceur Solution

13

Traitements préliminaires Les traitements préliminaires contiennent essentiellement le traitement des variables de fonctionnement et la configuration des différents modules suivant la valeur des entrées lors du balayage par l’automate. Normalement, toutes les sorties qui ne dépendent pas des étapes séquentielles devraient se trouver dans cette section sauf, bien sûr, si la sortie en question sert comme état temporaire à l’affectation d’une sortie qui dépend d’une étape séquentielle. En effet, la division de la programmation entre les deux sections (préliminaires et postérieurs) ne doit jamais mettre en péril la clarté du programme final. Habituellement, l’affectation des variables et le calcul des conditions complexes (ceux affectés à des bits de mémoire) se font dans les traitements préliminaires. Les comportements spéciaux (ex. : création d’un oscillateur indépendant) peuvent aussi se faire dans cette section en affectant ce comportement à un bit de mémoire et en l’utilisant plus loin dans les traitements postérieurs. Les pages manuscrites qui suivent illustrent les traitements préliminaires programmés pour l’automatisation du robot perceur.

Page 14: Exemple Robot Perceur Solution

14

Page 15: Exemple Robot Perceur Solution

15

Page 16: Exemple Robot Perceur Solution

16

Séquence d’actions (Grafcet) La programmation des séquence d’actions se fait toujours dans la section dédiée au Grafcet. Cette dernière est divisée en plusieurs pages qui contiennent chacune une partie du graphe séquentiel complet. En effet, il est de loin préférable de diviser la tâche en plusieurs petits Grafcet synchronisés qui effectuent chacun leur part du traitement plutôt que d’essayer de tout programmer dans une grande séquence qui deviendra vite illisible, voir même impossible à compléter. Dans le cas du robot de cet exemple, nous utiliserons cinq Grafcet synchronisés afin de répondre au cahier des charges :

- un Grafcet maître qui régit le déroulement général; - un Grafcet pour le plan de perçage des petites pièces; - un Grafcet pour le plan de perçage des grandes pièces; - un Grafcet pour le déplacement en boucle fermée; - un Grafcet pour le perçage des trous.

Une autre bonne raison de diviser la tâche de cette façon est que la plupart de ces séquences seront utilisées plus d’une fois durant le traitement d’une pièce. En effet, puisqu’il y a plusieurs trous à percer sur chaque pièce, il est préférable de réutiliser les séquences de positionnement et de perçage plutôt que de les programmer de nouveau pour chaque trou. La synchronisation servira à décider du moment de l’appel de chacune de ces séquences. Les pages manuscrites qui suivent présentent la solution proposée à l’exemple du robot perceur. Les réceptivités des transitions dépendent de l’affectation des objets réalisée plus tôt et des traitements préliminaires qui fixent la valeurs des variables et des bits de condition complexe.

Page 17: Exemple Robot Perceur Solution

17

Page 18: Exemple Robot Perceur Solution

18

Page 19: Exemple Robot Perceur Solution

19

Page 20: Exemple Robot Perceur Solution

20

Page 21: Exemple Robot Perceur Solution

21

Page 22: Exemple Robot Perceur Solution

22

Traitements postérieurs Cette section contient la programmation des sorties de l’automate. Ainsi, la plupart des conditions contiendront une référence à une ou plusieurs étapes du Grafcet afin de fixer la valeur de chacune des sorties. Il est très important de noter que chaque bobine de sortie ne doit être présente qu’une seule fois dans les déroulements de cette section (même condition pour les traitements préliminaires d’ailleurs) sinon la valeur de cette dernière sera indéterminée (à notre point de vue). En effet, si une condition en première ligne affecte la valeur 1 à la bobine et que la dernière ligne affecte la valeur 0 à cette même bobine, alors c’est la deuxième conditions (la dernière balayée par l’automate) qui sera validée… Les pages qui suivent contiennent la solution proposée à l’exemple du robot perceur présenté dans ce document.

Page 23: Exemple Robot Perceur Solution

23

Page 24: Exemple Robot Perceur Solution

24

Page 25: Exemple Robot Perceur Solution

25

Page 26: Exemple Robot Perceur Solution

26

Page 27: Exemple Robot Perceur Solution

27

Page 28: Exemple Robot Perceur Solution

28

Page 29: Exemple Robot Perceur Solution

29