25
2006-2007 Minidosa 1/25 PPE Projet “Minidosa” Problématique : Un industriel souhaite accroître la productivité de sa chaîne de remplissage de flacons de parfum. Pour cela, l'opérateur doit être assisté par un terminal de supervision utilisable depuis son ordinateur et lui permettant de contrôler la production et de visualiser en temps réel les informations liées à la productivité de la chaîne. Réalisé par : Renaud BARDET Etienne BRODU Alexis TAUGERON

PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 1/25

PPE

Projet “Minidosa”

Problématique :

Un industriel souhaite accroître la productivité de sa chaîne de remplissage de flacons de parfum. Pour cela, l'opérateur doit être assisté par un terminal de supervision utilisable depuis son ordinateur et lui permettant de contrôler la production et de visualiser en temps réel les informations liées à la productivité de la chaîne.

Réalisé par :

� Renaud BARDET � Etienne BRODU � Alexis TAUGERON

Page 2: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 2/25

Sommaire

I. Analyse fonctionnelle du système 1. Énoncé du besoin – page 3 2. Diagramme FAST (partie opérative) – page 4 3. Diagramme FAST (partie commande) – page 5

II. Délimitation du sujet 1. Rappel de la problématique – page 6 2. Cahier des charges fonctionnel – page 6 3. Liste des tâches à effectuer – page 6

III. Modifications apportées au système 1. Rappel sur le fonctionnement du système – page 7 2. Validation du conditionnement – page 7 3. Raccordement d'une entrée supplémentaire de l'automate – page 8

IV. Conception logicielle du terminal de supervision 1. Éléments de supervision active – page 9 2. Éléments de supervision passive – page 10

a) Indicateur de cadence de production b) Indicateur de rendement « flacons bouchés / flacons remplis » c) Présence ou non de flacon en début de chaîne et sous chaque poste d) Représentation du niveau de remplissage de la cuve e) Représentation du tapis de sortie

V. Conception graphique du terminal de supervision 1. Création graphique – page 17 2. Implantation des tags sous IRIS – page 18 3. Aperçu du terminal – page 19

VI. Conclusion 1. Résultats obtenus – page 20 2. Problèmes rencontrés – page 20 3. Améliorations possibles – page 21

VII. Annexe : Programme Automgen

Page 3: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 3/25

I. Analyse fonctionnelle du système

1) Enoncé du besoin

POUR FAIRE QUOI ?

Assurer le remplissage et le conditionnement (vissage du bouchon) à la chaîne des flacons de parfum.

DANS QUEL BUT ?

Accroître la productivité de la chaîne industrielle en automatisant les tâches.

A qui (A quoi) rend-il service ?

Sur qui (Sur quoi) agit-il ?

Un industriel en parfumerie

Les flacons de parfum

Minidosa

Page 4: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 4/25

2) Diagramme FAST (partie opérative)

Déplacement des flacons FP 1

Déplacement rectiligne

Ft 1.1

Déplacement rotatif

Ft 1.2

Tapis roulant

Tapis roulant

Remplissage des flacons FP 2

Stockage du parfum

Ft 2.1

Acheminement du parfum

Ft 2.2

Cuve

Pompe

Conditionnement des flacons

FP 3

Stockage des bouchons

Ft 3.1

Mise en place des bouchons

Ft 3.2

Rampe de stockage

Lamelle métallique

Maintient en position du flacon

Vissage des bouchons

Vérin pneumatique

Visseuse motorisée

Page 5: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 5/25

3) Diagramme FAST (partie commande)

En rouge : fonctions à intégrer dans le cadre du projet.

Acquérir les informations FP 1

Détecter les flacons en entrée

Ft 1.1

Détecter le flacon sous

la pompe

Ft 1.2

Capteur barrage optique

Capteur mécanique de proximité

Détecter les flacons en

sortie

Détecter les bouchons

en sortie

Fourche optique

Capteur à rechercher

Acquérir le niveau de liquide dans la cuve

3 capteurs mécaniques dans la cuve

Acquérir la position de

la visseuse

Capteurs fin de course

Donner les ordres FP 2

Via la machine

Ft 2.1

Via l'ordinateur

Ft 2.2

Pupitre de contrôle

Terminal de supervision

Page 6: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 6/25

II. Délimitation du sujet

1) Rappel de la problématique Un industriel souhaite accroître la productivité de sa chaîne de remplissage de flacons de parfum. Pour cela, l'opérateur doit être assisté par un terminal de supervision utilisable depuis son ordinateur et lui permettant de contrôler la production et de visualiser en temps réel les informations liées à la productivité de la chaîne.

2) Cahier des charges fonctionnel

� L'opérateur doit pouvoir contrôler le système via le terminal de supervision, mais le pupitre de commande doit rester opérationnel.

� Le terminal de supervision doit pouvoir afficher des informations en temps réel afin : � d'assister l'opérateur dans le pilotage du système. � de contrôler la quantité et la qualité de la production.

� Le terminal doit afficher une représentation de la cuve et du niveau de liquide dans celle-ci. � L'arrêt de la chaîne doit rester exceptionnel afin de maintenir la cadence.

3) Liste des tâches à effectuer

� Concevoir le terminal de supervision (pupitre virtuel, boutons, voyants, boîte de messages, objets visuels) sous IRIS 2D

� Schématiser le système (plateau rotatif, tapis roulant, cuve, flacons) avec les logiciels de graphisme � Intégrer les créations graphiques au terminal sous IRIS � Produire une cuve avec 3 capteurs mécaniques (fournis) � Intégrer un capteur au système pour détecter les bouchons en sortie � Relier les capteurs de la cuve et le capteur de bouchons à l'automate � Modifier les grafcets du programme pour le rendre réactifs aux boutons du terminal � Élaborer un programme en langage littéral pour :

• compter les flacons en sortie en différenciant les flacons bouchés des flacons non bouchés • modéliser une représentation du tapis de sortie (avec les flacons et les bouchons) • calculer le niveau de liquide dans la cuve • envoyant des messages d'erreurs le cas échéant • calculer la cadence de production et le rendement du poste de vissage

� Coordonner les calculs en utilisant des grafcets de contrôle

Page 7: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 7/25

III. Modifications apportées au système

1) Rappel sur le fonctionnement du système

Le but principale du système est de remplir et de boucher des flacons à une cadence élevée et avec peu ou pas d'intervention humaine. Il est principalement composé des sous-systèmes permettant de remplir un flacon et de le visser. Le sous-système qui remplit les flacons se contente de vérifier la présence d'un flacon et de le remplir d'une quantité prédéfinie de liquide. Ce liquide est contenu dans un cuve à l'extérieur du système, en hauteur. Le sous-système visseuse est aussi simple, il bloque le flacon pour lui éviter de tourner sur lui-même. Ensuite, il visse le bouchon préalablement posé dessus en abaissant une visseuse dont l'embout est un cylindre creux muni de caoutchouc sur la surface intérieur afin d'adhérer au bouchon. Les bouchons sont stockés dans une rampe inclinée et retenus par deux barres maintenues par des ressorts à la base de cette rampe. Lorsqu'un flacon passe, il entraîne un bouchon avec lui, le libérant de la rampe ; le bouchon vient se positionner sur le flacon, prêt à être visser.

Les flacons sont acheminés entre ces deux sous-système par un plateau tournant, à chaque cycle le plateau tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie du système, sont disposé deux tapis roulants permettant de faire entrer et sortir les flacons. Autour de chaque tapis roulant, un capteur vérifie la présence des flacons. Le tout est géré par un automate TX7 programmé en grafcet.

2) Validation du conditionnement Sur le système d'origine, le capteur permettant de détecter la présence des bouchons n'était pas envisagé. Nous avons donc étudié plusieurs possibilités de capteur :

� capteur chromatique pour détecter la couleur blanche du bouchon par rapport au verre � interrupteur à contact qui serait déclenché par la différence de hauteur entre un flacon bouché et un

flacon non bouché

Page 8: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 8/25

� capteur à réflexion qui ne serait réfléchi que par la surface lisse du bouchon � capteur à réflexion dont le faisceau serait stoppé par la différence de hauteur entre un flacon bouché et

un flacon non bouché Après quelques recherches, nous avons conclu qu'un capteur chromatique serait trop coûteux et qu'un capteur à réflexion simple risquait de mal fonctionner. Nous avons testé un interrupteur à contact (capteur mécanique) mais il s'est avéré que ceux dont nous disposions étaient trop rigides et renversaient les flacons à leur passage. Une fourche optique est disposée au-dessus du tapis de sortie afin de détecter le passage des flacons. Nous avions retenu comme solution de commander un autre exemplaire de cette fourche, de la place au-dessus de l'autre de telle sorte qu'elle ne détecte que le passage des bouchons. Mais les délais de livraison ont été trop longs et nous ne l'avons pas encore reçu, d'où la nécessité de trouver une solution de remplacement à moindre coût. Elle a été trouvée en modifiant un interrupteur à contact pour lui permettre d'être beaucoup plus sensible et de ne pas renverser les bouchons. Pour cela, il a suffit de le démonter et d'écarter l'écart en deux spires du ressort afin de lui donner plus de souplesse.

3) Raccordement d'une entrée supplémentaire de l'automate Le capteur de détection de la présence des bouchons n'étant pas installé d'origine, il a fallu le raccorder à l'automate du système. Nous avons choisi les entrées libres qui suivaient celles utilisées pour tester le niveau de cuve. La première tâche fut de trouver les fils correspondant à ces entrées. Sur la nappe qui contenait les entrées pour la cuve, il restait plusieurs fils inutilisés dont seulement 2 étaient de couleur unie, comme les fils utilisés pour les capteurs de la cuve. Nous avons donc commencé par tester ces fils en visualisant la deuxième série d'entrée de l'automate et en créant un contact entre la masse et le fil. Le premier essai fut le bon et l'entrée choisie fut l'entrée i23. Nous avons donc raccordé ce fil à une prise femelle permettant de câbler le capteur. La prise fut fixée sur une baie plastique en façade. Le capteur a donc pus être câblé sur cette entrée et sur la masse commune.

Page 9: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 9/25

IV. Conception logicielle du terminal de supervision

1) Éléments de supervision active Le fil conducteur du projet étant la réalisation d'un terminal de supervision, nous avons dû nous familiariser avec le module IRIS du logiciel Automgen. Dans un premier temps, nous avons essayé de reproduire les principaux boutons du pupitre de commande (cycle automatique, cycle manuel, étape suivante, arrêt d'urgence). Sans nous soucier de l'aspect graphique, nous avons donc intégré ces différents boutons à notre ébauche de terminal.

Le procédé pour lier un bouton au programme est simple :

� on assigne un bit utilisateur (exemple : b200) au bouton via IRIS ; lorsque le bouton est actif, b200= 1 ; lorsque le bouton est au repos, b200 = 0

� on intègre l'état haut du bit en question à l'une des réceptivités d'un des grafcet du programme Le plus délicat est, d'abord de trouver précisément le grafcet et la réceptivité contrôlant l'action voulu, puis d'intégrer correctement le bit utilisateur à l'équation logique (via un ET ou un OU logique, selon le besoin). Exemple : le bouton « Cycle automatique » est lié au bit b200. La réceptivité à modifier se trouve dans le grafcet de conduite et son équation est au départ : « _MARCHE_ . _AUTO_ . /_PURGE_ », ce qui signifie que, pour que le cycle automatique se lance, il faut que le bouton de mise en marche soit actif, que le mode sélectionné soit le mode automatique et que le cycle de purge ne soit pas en cours. On doit ici indiquer que le cycle automatique peut se lancer dans ses conditions, si le mode sélectionné via le pupitre de commande est le mode automatique OU si le bouton « Cycle automatique » est actif dans le terminal de supervision. L'équation devient alors : « _MARCHE_ . (_AUTO_ + b200) . /_PURGE_ ». Nous avons ainsi reproduit le pupitre de commande dans notre terminal et légèrement modifié :

� au lieu de sélectionner un mode puis d'appuyer sur un bouton de mise en marche, le superviseur lance directement le cycle désiré en appuyant sur le bouton correspondant. Il désactive ce bouton pour stopper le cycle.

� un bouton « Etape suivante » apparaît lorsque le cycle manuel est actif, permettant d'évoluer dans le cycle.

� un bouton « Visser » permet de faire descendre la visseuse sans lancer un cycle, car en cas d'arrêt en urgence du système juste avant le vissage, le flacon est évacué sans avoir vissé le bouchon au moment de la remise en service.

Page 10: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 10/25

2) Éléments de supervision passive Une fois notre terminal de supervision « active » complet, nous y avons ajouté tous les éléments qui nous ont parus nécessaires pour une supervision « passive » :

� indicateur de cadence de production � indicateur de rendement « flacons bouchés / flacons remplis » � présence ou non de flacons en début de chaîne et sous chaque poste � représentation du niveau de remplissage de la cuve � représentation du tapis de sortie

On peut classer ces différents éléments en deux catégories :

� ceux qui ne nécessitent que la lecture de l'état d'un capteur � ceux qui font appel à des opérations plus complexes (temporisations, compteurs, masques, calculs...)

a) Indicateur de cadence de production La méthode retenue pour mesurer la cadence de production est de calculer, à chaque passage de flacon en sortie, le temps qui s'est écoulé depuis le passage du flacon précédent. Pour cela, on utilise un grafcet qui incrémente un compteur à intervalle régulier (nous avions au départ choisi un intervalle d'une seconde, puis nous l'avons descendu à une demi seconde pour plus de précision). Lorsqu'un flacon est détecté en sortie, on copie la valeur de ce compteur dans une variable de calcul et on remet le compteur à zéro. Parallèlement, et en permanence, on effectue un calcul afin de convertir cette variable dans une unité utilisable. Ici, on récupère une période en demi secondes. Pour afficher une fréquence en flacons par minute, il faut calculer « 60 / T » quand T est en secondes, donc ici « 120 / T ». On effectue ce calcul dans une « boîte de code littéral » sous Automgen, et on affiche le résultat avec un objet « Valeur digitale » correctement paramètre dans IRIS.

b) Indicateur de rendement « flacons bouchés / flacons remplis » Ici le principe est simple : à chaque passage de flacon en sortie, on incrémente un compteur X, et si un bouchon est détecté par le capteur de bouchon, on incrémente aussi un compteur Y. Cela permet d'avoir en temps réel le nombre de flacons en sortie de chaîne et le nombre de bouchons. On calcule ensuite le rendement en pourcentage « (Y / X)*100 » et on l'affiche dans le terminal IRIS.

Page 11: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 11/25

c) Présence ou non de flacon en début de chaîne et sous chaque poste Pour ces éléments, il suffit de lire certaines entrées de l'automate. Un capteur optique de type « barrage » placé à l'entrée de la chaîne permet de vérifier la présence ou non de flacons sur le tapis roulant. Un capteur à lamelle mécanique est placé au poste de remplissage. En revanche, n'ayant pas de capteur permettant de vérifier réellement la présence de flacon sous la visseuse, nous avons choisi de lire l'état du vérin de bridage. Pour chaque poste, on crée un voyant sous IRIS qu'on lie directement à l'entrée correspondante de l'automate.

Page 12: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 12/25

d) Représentation du niveau de remplissage de la cuve La cuve est représentée dans le terminal de supervision par un objet lié à une variable, prenant 4 aspects différents selon la valeur de cette variable (cuve vide, remplie au tiers, remplie aux deux tiers ou pleine). Les capteurs sont de type « NF » (normalement fermés), ils s'ouvrent (et passent à 0) lorsque le liquide atteint un certain niveau dans la cuve. Dans une boîte de code, on exécute le programme suivant :

Capteurs : cuve bas cuve milieu cuve haut Variables : niveau de cuve Code: Tant que (=1) *On répète le programme à l'infini avec cette boucle*

{ *On commence par mettre le niveau de cuve à 0 (vide)*

0 -> niveau de cuve Si (cuve bas = 0) {

*Si le capteur du bas est actif, le niveau de cuve est à 1 (bas)*

1 -> niveau de cuve Si (cuve milieu = 0) {

*Si le capteur du milieu est actif, le niveau est à 2 (moitié)*

2 -> niveau de cuve Si (cuve haut = 0) {

*Si le capteur du haut est actif, la cuve est pleine*

3 -> niveau de cuve }

} }

}

On teste les capteurs de bas en haut. Ainsi, si le capteur du haut a un dysfonctionnement et prend pour valeur 0 alors que la cuve est vide, elle ne sera pas affichée comme étant pleine. Un problème réside tout de même dans le fait que, si le capteur du bas est en panne (fil coupé), la cuve ne sera jamais affichée comme vide. Pour palier à ce problème, il faudrait remplacer les capteurs par des capteurs normalement ouverts. La consigne n'étant pas de reprendre entièrement le système de détection du niveau de cuve, mais simplement d'intégrer le projet du groupe de l'an passé au nôtre, nous avons préféré en rester là et nous concentrer sur notre objectif principal : le terminal de supervision.

Page 13: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 13/25

e) Représentation du tapis de sortie La représentation du tapis de sortie permet de contrôler visuellement ce que le système a produit. Pour cela nous avons ajouté à l'interface un schéma du tapis de sortie avec les flacons tels qu'ils sont détectés à la sortie du système. Le schéma est géré par un programme intégré placé dans une boîte de code sous Automgen :

Capteurs : présence flacon présence bouchon Variables : histogramme flacons nombre flacons histogramme bouchons nombre bouchons Code: Tant que (=1) *On répète le programme à l'infini avec cette boucle*

{ Tant que ( présence flacon = 0 )

{ *On bloque le programme en attendant un front montant du capteur* } Tant que ( présence flacon = 1 ) { *Tant que le flacon est devant le capteur de sortie, on reste dans cette boucle

afin de détecter un éventuel bouchon*

Si ( présence bouchon = 1 ) { histogramme bouchons OU 1 -> histogramme bouchons *Si on détecte un bouchon, on passe le bit de poids faible de l'histogramme

des bouchons à 1*

} } Si ( (histogramme bouchons ET 1) = 1 ) { nombre bouchons ++ *Si le premier bit de l'histogramme des bouchons est à 1, on incrémente le

compteur de bouchons*

} nombre flacons ++ histogramme flacons OU 1 -> histogramme flacons *Puisque le passage d'un flacon a été détecté précédemment, on incrémente le compteur de

flacons et on passe le bit de poids faible de l'histogramme des flacons à 1*

histogramme flacons * 2 -> histogramme flacons histogramme bouchons * 2 -> histogramme bouchons

*On effectue un décalage vers la gauche des deux histogrammes. Cette opération est

comparable à une multiplication par 10 en base décimale. On revient ensuite au début du

programme*

}

Ce programme utilise plusieurs variables et entrées. La détection des flacons et des bouchons en sortie est assurée par les capteurs intégrés au système. Ces capteurs sont représentés par les mnémoniques présence flacon et présence bouchon. Ils peuvent adopter deux états suivant que le capteur est activé ou non.

Page 14: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 14/25 Pour mémoriser l'état du tapis de sortie, l'idée a été d'utiliser une variable binaire dont chaque bit représenterait un bouchon ou flacon. Ainsi, par exemple, si 3 flacons sont passés, dont le deuxième sans bouchon, les variables auraient ces valeurs :

• histogramme flacons : 00000111 • histogramme bouchons : 00000101

Deux autres variables sont utilisées pour mémoriser le nombre de flacons et de bouchons passés sous forme décimale. Le principe simplifié du programme est le suivant:

� Tant qu'aucun flacon n'est détecté, on ne fait rien. � Pendant qu'un flacon est détecté, on teste si celui-ci a un bouchon ; si oui, on modifie les variables

« bouchons » en conséquence. � Une fois que le flacon est passé, on modifie les variables « flacons » en conséquence. � On attend un autre flacon en bouclant le programme au début.

Les deux principales opérations binaires que le programme effectue sur les variables sont un OU binaire et un décalage. Les opérations binaires sont effectués bit par bit, le OU renvoie un 1 si au moins un des deux bits en entrée est égal à 1. Par exemple : 011 OU 101 = 111

OU 0 1 1

1 0 1

= 1 1 1 Nous avons utilisé cette opération pour forcer à 1 le bit de poids faible d'une variable tout en gardant le reste de la variable intacte. Le décalage est une multiplication. De même qu'en base 10, multiplier par 10 revient à décaler vers la gauche tous les chiffres et à rajouter un 0 à droite, en base 2, multiplier par 2 décale tous les bits vers la gauche, exactement comme le tapis de sortie pousse les flacons vers la sortie. Ce procédé comporterait un défaut dans le cas d’un fonctionnement industriel sur une chaîne ininterrompue, car on allonge les mots « histogramme flacon » et « histogramme bouchon » d’un bit à chaque nouveau flacon. Si aucune régulation de cet allongement n’est opérée, ces deux variables finiront par atteindre leurs limites. Il suffirait pour résoudre ce problème de supprimer les bits inutilisés (à partir du 8eme en l’occurrence). Traitant un système plus réduit nous avons préféré ne pas intégrer cette régulation afin de préserver de la mémoire. Le OU binaire est utilisé pour mettre le bit de poids faible des variables histogrammes à 1 lorsqu'un flacon ou un bouchon est détecté. Ces mêmes variables sont immédiatement décalées vers la gauche. Le bit de poids faible est en fait un « bit tampon », dans le sens où il n'est à 1 qu'au moment où le flacon passe, puisque le décalage a lieu juste après. Lorsque l'on souhaitera afficher dans l'ordre les flacons sur le terminal, on ira lire le deuxième bit de notre histogramme, puis le troisième etc...

Page 15: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 15/25 En réalité, le code du programme a été adapté pour fonctionner correctement sous Automgen, mais le principe reste le même. Ce programme nous fournira donc le nombre de flacons et de bouchons détectés depuis la mise en service du système, et les variables histogrammes. Cependant celles ci doivent être découpées afin d'obtenir uniquement l'état d'un flacon et non de tout le tapis de sortie. En effet, le tapis de sortie est représenté sur le terminal par une image de fond sur laquelle on place sept objets IRIS. Ces objets représentent chacun une position du tapis et peuvent soit ne rien afficher, soit afficher un flacon (avec ou sans bouchon). Pour cela, on lie chacun de ces objets à une variable qui prendra la valeur 0, 1 ou 2. Nous devions donc réaliser un autre programme affectant les bonnes valeurs à ces variables en fonction des deux histogrammes. Nous avons pour cela utilisé des masques : L'opération binaire ET ne renvoie un 1 que si les deux bits en entrée sont égaux à 1, ce qui permet de forcer à 0 une partie d'une variable tout en gardant intacte l'autre partie, exemple : Par exemple : 10110101 ET 00001111 = 00000101

ET 1 0 1 1 0 1 0 1

0 0 0 0 1 1 1 1

= 0 0 0 0 0 1 0 1

Grâce à des masques bien choisis nous avons pu obtenir l'état de chacun des flacons à partir des variables histogrammes.

Page 16: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 16/25 Par exemple : On souhaite afficher le dernier flacon détecté. On doit donc lire le deuxième bit de nos histogrammes (rappelons que le premier bit est un « bit tampon »). Admettons que la variable contrôlant l'objet IRIS correspondant à cette position du tapis soit la variable numérique M270.

Si ( (histogramme flacons ET 2) = 2) {

*Si le 2e bit de l'histogramme des flacons est à 1, on vérifie la présence du bouchon*

Si ( (histogramme bouchons ET 2) = 2) {

*Si le 2ème bit de l'histogramme des bouchons est à 1, on affiche un flacon

bouché*

2 -> M270 } Sinon {

*Sinon, on affiche un flacon débouché*

1 -> M270 }

} Sinon {

*S'il n'y a pas de flacon, on affiche rien*

0 -> M270 }

Ici, on utilise le masque 2 (en décimal), qui équivaut en binaire à 00000010. Le résultat de l'opération « ET 2 » sera donc 2 (00000010) si le deuxième bit de l'histogramme est à 1, et 0 (00000000) si le deuxième bit est à 0. De même, pour lire le cinquième bit (donc le quatrième flacon en partant de la fin), on aurait utilisé le masque 16 (00010000). On répète ainsi ce raisonnement pour les bits 2 à 8 des histogrammes (notre représentation du tapis de sortie comporte 7 emplacements).

Page 17: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 17/25

V. Conception graphique du terminal de supervision

1) Création graphique Le terminal de commande et de contrôle fonctionne sous le module IRIS d’Automgen et a pour but de rendre plus claire, complète et intuitive l’utilisation de l’outil de production. Pour cela nous avons choisi de représenter graphiquement le système et son panneau de commande. En parallèle à la conception logicielle du terminal et du programme, nous avons créé des représentations graphiques de certains organes du système ainsi que des matières d’œuvre entrantes et sortantes. Une fois la mise au point des fonctions du terminal terminée nous avons implanté ces représentations graphiques dans le module IRIS. La création des icônes s’est effectuée entièrement par ordinateur grâce à plusieurs logiciels de création graphique, principalement Paint et Paint.net. La qualité graphique demandée par la mise au point d’un terminal intuitif n’étant pas excessivement élevée nous n’avons pas eu besoin d’utiliser de logiciels très performants, nous avons utilisé une technique de dessin pixel par pixel appelée « Pixel art ».

Le module IRIS d’Automgen utilise des objets (tags) ayant pour base des images bitmap. Le bitmap est

un format d’image simple, chaque pixel est caractérisé indépendamment, qui utilise le mode RGB (Red Green Blue). Cela signifie que chaque pixel possède trois coordonnées colorimétriques correspondant à un taux de rouge, de vert et de bleu codé chacune sur 8 bits.

Notre terminal comprend une représentation de la cuve et une représentation de la chaîne de

conditionnement sous deux angles différents comprenant l’affichage de la présence d’un flacon à l’entrée de la chaîne, l’affichage de la présence d’un flacon à l’atelier de remplissage, l’affichage de la présence d’un flacon à l’atelier de vissage et l’affichage du résultat du conditionnement des sept derniers flacons sortis de la chaîne. Les icônes (ou tags) sont contenus dans des fichiers bitmap séparés, lus un à un par Automgen et interprétés selon la variable à laquelle ils sont associés.

Page 18: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 18/25

Tous les bitmaps sont réalisés sur un fond rose, cette couleur dite « de transparence » sert à indiquer les zones non remplies, c’est à dire qui ne sont ni colorées ni blanches. Nous l’avons choisit selon deux critères :

• elle ne doit pas être utilisée en tant que couleur dans le dessin • elle doit être reconnaissable facilement (cette couleur a pour code RGB R:255 G:0 B:255)

Lors de l’implantation des tags dans le terminal, cette couleur est renseignée en tant que « couleur de

transparence », un pixel ainsi coloré prendra la couleur du pixel qu’il recouvre (pixel appartenant au fond ou à un autre tag). Cet artifice est nécessaire dans le mode de fonctionnement RGB, il existe d’autres modes de codage de la couleur, inutilisables dans Automgen, permettant de se passer de cette « couleur de transparence » qui prive le dessin d’une couleur.

2) Implantation des Tags sous IRIS Le cas le plus simple est celui de l’association du tag à une variable à deux états, l’un « absent » l’autre « présent ». Par exemple, le bitmap ci-dessous a été créé pour être lu comme un tag de 60 pixel par 100 pixel possédant deux états. Le bitmap a donc une résolution de 60 pixel par 200 pixel et contiens les deux états du tag l’un au dessus de l’autre tel qu’il seront lu, selon la variable à deux états assimilée, comme suit : _______ | 0 | |____| | 1 | |____|

Un autre cas tout aussi simple est celui de l’association du tag à une variable à trois états (cf. flacon ci-dessous). La seule différence ici est la nature de la variable qui n’est plus une variable binaire mais une variable à « n » états qui ne peut donc pas être associée directement à une entrée de l’automate. En l’occurrence la variable associée à ce tag est le fruit de la combinaison des variables binaires « présence d’un flacon » et « présence d’un bouchon ». Enfin, dernier cas, le tag lu dans le bitmap possède quatre états (cf. représentation de la cuve), il est assimilé à une variable à 4 états. Comme dans le cas précèdent cette variable n’est pas lisible directement sur les entrées de l’automate, elle est le résultat de la combinaison de trois variables binaires : « cuve niveau haut », « cuve niveau intermédiaire » et « cuve niveau bas ».

Page 19: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 19/25

3) Aperçu du terminal

Page 20: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 20/25

VI. Conclusion

1) Résultats obtenus Parmi toutes les tâches à accomplir aucune n'a été oubliée, nous avons rencontré des difficultés pour chacune mais au final, toutes ont pu aboutir. Nous avons placé les capteurs d'acquisition du niveau de cuve sur une cuve provisoire et avons utilisé les entrées déjà existantes pour les relier. L'interface transmet correctement le niveau de la cuves comme il était demandé. Nous avons placé au même endroit que le capteur optique de sortie du système le capteur de détection des bouchons. Il détecte correctement les bouchons et a été raccordé à l'automate avec succès. L'interface reçoit correctement les informations concernant les bouchons. Pour ce qui est du terminal IRIS, toutes les visualisations attendues ont été réalisées. Les informations concernant la cuve servent à animer une cuve schématisée, ainsi le niveau réelle est visible très facilement. La modélisation du tapis de sortie est entièrement achevée et permet de voir l'état des 7 derniers flacons facilement en un coup d'oeil, vu de coté et vu de haut. Si un bouchon manque, l'opérateur le verra immédiatement. La cadence de rendement et le nombre de bouchons et de flacons sont calculés directement dans le programme et sont affichés sur l'interface, ce qui permet un formatage de l'information clair et concis. Le système de messages d'erreur permet d'afficher dans un cadre les dernières erreur rencontrées par le système de manière simple et explicite. Cependant il ne bloque pas le système et ne sert qu'à titre informatif. L'arrêt du système en cas d'erreur est géré directement par le grafcet.

2) Difficultés rencontrées Au fur et à mesure que nous avancions dans la conception du terminal, nous avons rencontré un certain nombre de problèmes. Nous en avons surmonté la plupart en trouvant des solutions alternatives. Le premier obstacle a été de maîtriser les subtilités du langage littéral Automgen. En effet, celui-ci est assez rigide et ne supporte pas certaines syntaxes approximatives qu’on utiliserait par exemple en C. Nous nous y sommes cependant habitués, aidés par la documentation fournie avec le logiciel. Le capteur de remplacement que nous avons bricolé pour la détection des bouchons a aussi été une source de réflexion. En effet, après avoir étudié le placement du capteur et installé celui-ci, nous nous sommes rendus compte que le ressort de l’interrupteur à contact n’était pas assez souple et que les flacons bouchés se renversaient lorsqu’ils passaient sous le capteur. Nous avons donc dû démonter celui-ci afin d’augmenter l’écart entre deux spires du ressort. Ainsi le capteur est plus souple et la détection se fait sans renverser les flacons. Enfin, le problème qui nous a limité durant les dernières séances de travail est la mémoire de l’automate. Notre programme étant devenu trop gros, l’automate refusait de l’exécuter. Nous avons donc dû travailler à l’optimisation du code et supprimer certaines fonctions qui ne nous paraissaient pas indispensables.

Page 21: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 21/25

3) Améliorations possibles Pour être pleinement utilisable par un industriel, on peut imaginer un certain nombre d’améliorations à apporter au système dans le cadre d’un autre projet. La première serait d’installer le capteur de détection des bouchons que nous avons commandé au départ. Il serait aussi intéressant d’utiliser un automate et une liaison plus rapide dans le cas où la cadence de production serait plus rapide. De même, nous avons choisi de représenter les sept derniers flacons à être sortis du système car notre tapis de sortie nous limitait à sept flacons, mais un industriel pourrait vouloir une représentation plus large. Nous avions aussi prévu une représentation du niveau de liquide dans la cuve plus fidèle à la réalité. Le principe consistait à stocker le niveau de liquide en % dans une variable et de décrémenter cette variable d’une constante calculée au préalable à chaque passage de flacon. Les capteurs situés dans la cuve serviraient alors à corriger la valeur de cette constante en cas d’erreur. La mémoire de l’automate ne nous ayant pas permis d’intégrer ce programme, c’est une amélioration qui reste à apporter.

Page 22: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 22/25

VII. Annexe : Programme Automgen /*Gestion de la matière d’oeuvres sortante*/

IF (M255=0._bourrage_) THEN M250=[M250|$1] M255=[1] ENDIF IF (M255=1._bouchon_) THEN M256=[M251&1] IF (M256=0) THEN M251=[M251|$1] ENDIF ENDIF M253=[M250&1] IF (M253=1.M255=0) THEN M260=[M260+1] M252=[M251&1] IF ( M252=1 ) THEN M261=[M261+1] ENDIF M250=[M250*2] M251=[M251*2] ENDIF M256=[M250&2] M257=[M251&2] IF (M256=2.M257=0) THEN M270=[1] ENDIF IF (M256=2.M257=2) THEN M270=[2] ENDIF IF (M256=0) THEN M270=[0] ENDIF IF (M256=0)

Page 23: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 23/25

THEN M270=[0] ENDIF M256=[M250&4] M257=[M251&4] IF (M256=4.M257=0) THEN M271=[1] ENDIF IF (M256=4.M257=4) THEN M271=[2] ENDIF IF (M256=0) THEN M271=[0] ENDIF M256=[M250&8] M257=[M251&8] IF (M256=8.M257=0) THEN M272=[1] ENDIF IF (M256=8.M257=8) THEN M272=[2] ENDIF IF (M256=0) THEN M272=[0] ENDIF M256=[M250&16] M257=[M251&16] IF (M256=16.M257=0) THEN M273=[1] ENDIF IF (M256=16.M257=16) THEN M273=[2] ENDIF IF (M256=0) THEN

Page 24: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 24/25

M273=[0] ENDIF M256=[M250&32] M257=[M251&32] IF (M256=32.M257=0) THEN M274=[1] ENDIF IF (M256=32.M257=32) THEN M274=[2] ENDIF IF (M256=0) THEN M274=[0] ENDIF M256=[M250&64] M257=[M251&64] IF (M256=64.M257=0) THEN M275=[1] ENDIF IF (M256=64.M257=64) THEN M275=[2] ENDIF IF (M256=0) THEN M275=[0] ENDIF M256=[M250&128] M257=[M251&128] IF (M256=128.M257=0) THEN M276=[1] ENDIF IF (M256=128.M257=128) THEN M276=[2] ENDIF

Page 25: PPE Projet “Minidosa”jgkeg9.free.fr/ppe/Dossier%20Minidosa%20(PPE%20d%E... · tourne d'un sixième de tour, entraînant un flacon et en libérant un. A l'entrée et a la sortie

2006-2007 Minidosa 25/25

/*Productivité du système*/ M280=[M261*100/M260] M202=[120/M201] IF (M250=0) THEN M202=[0] ENDIF /*Messages d’erreur*/

M282=[$ffff] M283=[$ffff] M284=[$ffff] M285=[$ffff] M286=[$ffff] IF (_pasflacentree_) THEN M281=[1] ENDIF IF (M300=1) THEN M281=[2] ENDIF IF (_cuvevide_) THEN M281=[3] ENDIF IF (_flacentree_.M300=0.M301=0._cuvebas_) THEN M281=[4] ENDIF /*Niveau de liquide dans la cuve*/ M295=[0] IF (_cuvebas_) THEN M295=[1] IF (_cuvemilieu_) THEN M295=[2] IF (_cuvehaut_) THEN M295=[3] ENDIF ENDIF ENDIF