Un projet fédérateur d'Informatique Industrielle en IUT GEII : Programmation d'un GRAFCET en langage C sur PIC 18F452

317 lecture(s)
Domaine: Sciences de l'ingénieur
Afin de préparer les futurs techniciens supérieurs aux réalités technologiques de l'informatique industrielle, le département GEII de l'IUT de Montpellier propose en 1ère et 2nde année de formation, l'étude et la mise en oeuvre d'un support matériel développé autour du PIC18F452. Cet article présente un projet couvrant la plupart des objectifs et no-tions d'Informatique Industrielle apparaissant dans le Programme Pédagogique National du DUT GEII. Le contenu s'adresse donc à un public en formation BAC+1 et BAC+2 désireux de se familiariser avec l'environnement des micro-contrôleurs de la famille PIC18. Le projet est riche en termes de notions abordées : il nécessite donc une présentation progressive et détaillée afin de faciliter l'acquisition de ces notions.

lire la suite replier

Télécharger la publication

  • Format PDF
Commenter Intégrer Stats et infos du document Retour en haut de page
sciences_de_l-ingenieur
publié par

suivre

Vous aimerez aussi

Un projet fédérateur d’Informatique Industrielle enIUT GEII :Programmation d’unGRAFCET en langage C sur PIC 18F452Didier CRESTANI, Vincent CREUZE, Xavier-François HOCHMUTH, Eric MAURINES, Eric POMMIER Didier.Crestani@univ-montp2.fr ; Vincent.Creuze@univ-montp2.fr ;Xavier-Francois.Hochmuth@univ-montp2.fr ; Eric.Maurines@univ-montp2.fr ; Eric.Pommier@univ-montp2.frIUT de Montpellier, Département GEII,99 Avenue d’Occitanie, 34296 MontpellierRESUME :Afin de préparer les futurs techniciens supérieurs aux réalités technologiques de l’informatique industrielle,le département GEII del’IUT de Montpellier propose en 1ère et 2nde année de formation,l’étude et la mise en œuvre d’unsupport matériel développé autour du PIC18F452. Cet article présente un projet couvrant la plupart des objectifs et no-tionsd’Informatique Industrielleapparaissant dans le Programme Pédagogique National du DUT GEII. Le contenus’adresse donc à un public en formation BAC+1 et BAC+2 désireux de se familiariser avec l’environnementdes micro-contrôleurs de la famille PIC18. Le projet est riche en termes de notions abordées : il nécessite donc une présentationprogressive et détailléeafin de faciliter l’acquisition de ces notions.Mots clés: maquette pédagogique, microcontrôleur, GRAFCET, langage C 
1 INTRODUCTIONA la suite de la forte évolutionde l’informatique indus-trielle et de ses applications ces deux dernières décen-nies, les compétences des techniciens supérieurs ont dûet doivent encore fortement s'enrichir. Les étudiantsdoivent connaître les matériels disponibles et posséderles savoir-faire permettant de les mettre en œuvre. Par-mi l’ensemble des microcontrôleurs utilisés dansl’industrie, le département Génie Electrique et Informa-tique Industrielle (GEII)de l’IUT de Montpellier [1] afait le choix de la famille PIC18. Cette cible évoluéeprésente nombre de fonctionnalités et propriétés per-mettant de couvrir l’ensemble des notions soulignéesdans le Programme Pédagogique National (PPN) duDiplôme Universitaire de Technologie GEII [2]. Enaccord avec les contenus du PPN, l’équipe pédago-gique choisitd’articuler sa formation en 1ère et 2nde an-née autour de projets permettant aux étudiantsd’unepart, de se familiariser avec l’environnement du PIC18et d’autre part,d’acquérir les principes fondamentauxde la programmation. Cet apprentissage s’effectue grâce à des supports matériels élaborés au départementGEII dont le développement prend en compte les né-cessaires robustesse, flexibilité et facilité de mise enœuvre qu’ils doivent présenter. Les étudiants ont doncà disposition en séance de TD et TP un outil ergono-mique adapté aux objectifs pédagogiques visés. Cet article est composé de deux parties. La premièreprésente l'environnement pédagogique et technologiquedans lequel s'inscrit le projet développé dans cet article.La seconde détaille le cahier des charges et les princi-pales étapes de sa réalisation.
2 ENVIRONNEMENT PEDAGOGIQUE ETTECHNOLOGIQUE DU PROJET2.1 Objectifs pédagogiquesPar le biais de l’élaboration d’un projet portant sur lagestion du déplacement d’un chariot mobile, l’équipepédagogique a eu le soucid’exploiter les fonctionnali-tés du PIC18 afin d’aborder la plupart des notions etfonctions fondamentales de l’informatique industrielle.Ainsi, l’outil proposépermet aux étudiants non seule-mentd’appréhender la synthèse de code en langageévoluéC ainsi qu’enlangage machine, mais aussid’acquérir la notion d’interruptiongrâce àl’élaborationde temporisations. Le projet nécessite également lamaîtrise de la gestion des entrées/sorties pour commu-niquer notamment avec les capteurs TOR de la partieopérative.Le projet nécessite aussi la gestion d’uneinterface homme-machine puisque l’état de la partieopérative doit être visualisé sur un afficheur LCD. En-fin, le cœur de la synthèse porte sur l’élaboration d’unGRAFCET qui fait appel à des fonctionnalités avan-cées du langage C (structures et unions) implantéesdans le PIC18.De plus, le support matériel utilisé pour le projet per-met la mise en œuvre de convertisseurs analogiques-numériques et numériques-analogiques ainsi quel’étude et la gestion d’une communication entre le mi-crocontrôleur et un périphérique obéissant au protocoleI2C.2.2 Le microcontrôleur MICROCHIP PIC18F452Le choix du microcontrôleura fait l’objet d’une étudemenée auprès des industriels locaux. Pour les proces-seurs 8 bits plus de 80% utilisent du MICROCHIP.Pour mémoire 10 ans auparavant la même proportionutilisait des bases 8051 pédagogiquement plus acces-sible. Un microcontrôleur plus performant 16 ou 32 bitsne se justifie pas (complexité, coût et mise en œuvre
plus importants). Les critères de choix déterminantsdans la gamme sont ensuite la possibilité de mémoireFLASH pour la reprogrammation et une taille de RAMinterne suffisante pour avoir la majorité des applica-tions uniquement en structure interne. Les critères devitesse et de consommation ne sont pas critiques. Leboitier DIP est un plus (facilité de réalisation de cartesprototypes). Le 18F452 [3] "standard milieu degamme" est retenu bien qu’il ne dispose pas en internede convertisseur Numérique/Analogique. Des modèlesintégrant du réseau CAN 18F458 ou de l’USB 18F4550quasi pin-compatibles sont disponibles pourl’évolutivité. Les principales caractéristiques sont :- Une architecture optimisée pour le langage C,- Une horloge DC > 40MHz avec PLL,- Mémoire : 32Ko FLASH, 1,5 Ko RAM- 4 timers, 2 unités Capture/Compare/PWM, - Une liaison série synchrone I2C ou SPI, - Une liaison série asynchrone UART,- Un convertisseur A/N 10 bits intégré,- Des ports E/S compatibles avec des LEDs. L’environnement de développement MPLAB fourni parle constructeur est performant et gratuit. Le compilateurC version étudiant limité, également gratuit, est suffi-sant pour les applications envisagées. Le coût logicielest donc entièrement nul. La possibilité de débogage in-situ offerte par la gamme PIC18 a introduit une évolu-tion conséquente dans la "démocratisation" des mani-pulations : souplesse de débogagesur point d’arrêt di-rectement sur carte cible sans nécessité d’émulateur.Une version simplifiée de programmateur/débogueurcompatible avec celui du constructeur est implanté surla carte qui est ainsi autonome : développement, débo-gage directement sur cible, flashage permanentd’applications. 2.3 Maquette pédagogiqueLe KIT PIC18 2007, qui a été conçu et assemblé au_ _sein du département GEII de Montpellier, est principa-lement composé de deux cartes. La carte mère (fig. 1)est utilisée en TD pour l’apprentissage de la program-mation d’un microcontrôleur aussi bien en C qu’enassembleur. La carte fille (fig. 2), en liaison avec lacarte mère, permet en TP de relier le kit à diverses ma-quettes pédagogiques. Le KIT_PIC18_2007 est cons-truit autour d’un microcontrôleur PIC18F452 cadencépar un quartz de 10MHz. La carte mère possède :- Son propre programmateur/debugger compa-tible ICD2 permettant une liaison simple(USB) avec un PC, Un afficheur LCD 2*16 caractères (mode 4-bits),- 8 LEDs de visualisation (Port D du PIC),- 4 interrupteurs connectés sur 2 entréesd’interruptions externes et sur 2 entrées ex-ternes de 2 compteurs,
- 2 entrées analogiques (CAN interne) adaptéespour pouvoir convertir du 0/+5V ou du -5V/+5V (sur fiche BNC),- 2 sorties analogiques (CNA externe série I2CMAX517) adaptées pour pouvoir convertir en0/+5V ou en -5V/+5V (sur fiche BNC),- Un capteur de température intégré DS1621avec protocole I2C, Une mémoire EEPROM externe 24LC256-- Un connecteur BD37 permettant la liaison (25lignes entrée/sortie sur les 34 du µC) avec lacarte fille ou une autre carte de développement(ex :commande d’un robot 5 axes).  
 fig 1 : Carte mère duKIT_PIC18_2007  La carte fille possède :- 5 entrées logiques protégées par des buffers(fiche banane 2mm),- 10 sorties logiques protégées par des buffers(fiche banane 2mm),- 1 sortie analogique (CNA externe parallèle 8bits AD7524) adaptée pour pouvoir convertiren 0/+5V ou en -5V/+5V (sur fiche BNC). Laliaison parallèle du CNA passant par le port Ddu PIC permet une lecture du code numériquedirectement sur les LEDs. Tous les composants intégrés du kit sont sur supportsDIP pour faciliter la maintenance. Le circuit imprimédu kit est inséré entre deux plaques de plexiglas afin deprévenir toutes mauvaises manipulations.
 
fig 2 : Carte fille duKIT_PIC18_2007  Le kit peut fonctionner en mode : Debugger, sous MPLAB, en maintenant la-liaison entre le programmateur ICD2 et lePIC18F452.- Programmeur, en supprimant après program-mation, la liaison entre l'ICD2 et lePIC18F452. Les différents thèmes abordés avec le kit sont :- Commande de Moteur à courant continu(PWM),- Commande de moteur pas à pas, Mesure de la vitesse de rotation d'un moteur-(périodemètre ou fréquencemètre),- Principe de l'oscilloscope numérique (CAN &CNA),- Lecture d'un badge magnétique,- Utilisation d'un afficheur LCD 2*16 caractèresalphanumériques, - Réalisation d'un thermomètre avec affichagede la température (mise en oeuvre du proto-cole I2C ).- Programmation en langage C d'un GRAFCET.3 EXEMPLE DE PROGRAMMATION ENLANGAGE CD’UNGRAFCETLe GRAFCET [4] est un langage normalisé [5] facili-tant la spécification et la commande des systèmes au-tomatisés. Les outils mis à disposition actuellementpour programmer les automates font oublier qu'il existede nombreuses façons de mettre en œuvreun GRAF-CET de commande. Le projet que nous allons présenterprend pour prétexte la synthèse de la commandeGRAFCET d'un simple chariot sur un microcontrôleurPIC. Il permet de balayer bien des notions abordées parles étudiants. Positionné en fin de première année audébut du dernier module d'enseignement "ContrôleCommande des Systèmes Industriels", il est traité sur 3séances de 3 heures.
3.1 Cahier des chargesLe cahier des charges du projet à réaliser s'énonce de lafaçon suivante :Un chariot se déplace sur un rail rectiligne (fig. 3). Uncapteur Gauche (Droite), actif à l'état haut, détecte saprésence à l'extrémité gauche (droite) du rail. Le cha-riot est initialement du côté gauche. Un interrupteurDépart_Cycle lance le cycle de déplacement lorsqu'ilprend la valeur 1. Le chariot se déplace alors vers ladroite (Ordre Moteur_Droite). Après avoir atteint cetteextrémité, il y demeure 5 secondes avant de revenir àgauche (Ordre Moteur_Gauche) dans l'attente d'unenouvelle demande de cycle. Les ordres moteur sont desordres Tout Ou Rien. 
 fig 3 : Le chariot à commander Après avoir établit le GRAFCET correspondant ondemande de l'implanter en langage C sur la maquettepédagogique du PIC 18F452. Pour simuler la partieopérative du chariot les conventions suivantes sontadoptées : des interrupteurs reliés aux bits RB0, RB1,RC0 des ports B et C du microcontrôleur sont associésaux capteurs Gauche, Droite et Départ_Cycle respecti-vement. Les LEDs 0 et 7 reliées aux bits correspon-dants du port D permettront de visualiser l'état des_ _ pectiveordres Moteur Droite et Moteur Gauche res -ment. Enfin, pour pallier l'absence d'une visualisationdu GRAFCET et d'une partie opérative réelle, l'affi-cheur LCD sera utilisé pour renseigner sur l'étapeGRAFCET active et sur le comportement du chariot. 3.2 Principe d’implantation d’unGRAFCET enlangage CLe GRAFCET de commande du chariot est très simple(fig. 4). C'est un cycle linéaire composé de 4 étapes.Une seule des réceptivités fait appel à une relation lo-gique. Les actions correspondent à des ordres continusTOR. On peut simplement noter la présence d'une tem-porisation lorsque le chariot atteint l'extrémité droite durail. La mise en œuvre matérielle ou logicielle d'une ma-chine séquentielle nécessite le respect d'un certainnombre de principes. Le GRAFCET n'y déroge pas.Avant tout, il est indispensable de différencier l'étatcourant du système de l'état futur qu'il prendra. Dansnotre cas, celui-ci permet de rendre compte de l'activité
ou non d'une étape donnée du GRAFCET. Ainsi lors del'initialisation, il est nécessaire d'une part de définirl'état courant initial (étape(s) initiale(s) active(s)) etd'autre part d'appliquer les commandes correspondant àla position de départ de la partie opérative (Mo-_ _ )teur Gauche = Moteur Droit = 0 .Ensuite, la lecture de l'état des capteurs et leur mémori-sation permettent de déterminer quelles conditionsd'évolution sont satisfaites (réceptivités vraies) à l'ins-tant de scrutation. L'état futur peut alors être calculé àpartir de la connaissance de l'état courant (étapes ac-tives), des conditions d'évolution présentes, de la struc-ture du GRAFCET (lien étape(s) / transition(s) /étapes(s)) en appliquant les règles d'évolution duGRAFCET. Dès lors, il ne reste qu'à exécuter les ac-tions associées aux étapes actives de l'état futur. Avantd'itérer le processus en lisant le nouvel état des cap-teurs, il convient de désigner l'état futur comme deve-nant l'état courant. On peut évidemment remarquer quetoute évolution de la partie opérative entre deux ins-tants de scrutation des capteurs ne peut être pris encompte. 
 fig 4 : GRAFCET de commande du chariotLes principes qui viennent d'être présentés sont synthé-tisés par l'organigramme de la figure 5 qui présente lecycle d'exécution qui doit être suivi lors de l'implanta-tion du GRAFCET sur le microcontrôleur. 
 fig 5 : Cycle d'exécution d'une machine séquentielle
3.3 ProgrammationQuoique simple sur le principe, la mise en œuvre de laboucle décrite ci-dessus implique une structuration ri-goureuse du code. Ainsi, nous le décomposons en fonc-tions, mais surtout nous représentons l’état complet dusystème en structurant la mémoire comme suit.3.3.1 Organisation de la mémoirePour chacune des variables d’état du système (état d’uninterrupteur, état d’une étape, etc.), nous utilisons un bitdans la RAM du PIC. Les bits relatifs à des types devariables d’état identiques sont rassemblés au seind’octets (états des interrupteurs, états des étapes…). Sur la figure 6, par exemple, on observe l’octet_Etat courant rassemblant les valeurs binaires desquatre étapes du GRAFCET (les quatre autres bits nonutilisés sont positionnés à 0). Dans cet exemple, seulel’étape 1 est active (état initial). Cette structuration facilite la manipulation des va-riables, conserve la généricité du programme (il suffitde réaffecter les bits pour modifier les capteurs et lesactionneurs) et accélère, en fin de cycle, la copie del’état futur dans l’état présent. octetEtat courant.etat _  1 0 0 0 - - - -     bits inutilisés Etat courant.Etape 4_ _ tat de l’étape 4de l’état courant)_ _Etat courant.Etape 3 tat de l’étape 3 de l’état courant)Etat courant.Etape 2_ _ tat de l’étape2de l’état courant)Etat courant.Etape 1_ _ tat de l’étape 1 de l’état courant)fig 6 : Structuration des variables dans la RAM3.3.2 Déclaration des variables d’état Pour exploiter les variables sous la forme décrite pré-cédemment, nous utilisons des « unions », sur le mo-dèle des déclarations des registres du fichierp18f452.h de Microchip(PORT, TMR…). Parexemple, l’union Etat_G7 est utilisée pour les variablesEtat courant et Etat futur. Elle est accessible au niveau_ _de l’octet en appelant Etat_courant.etat et au niveau dubit en appelant Etat_courant.EtapeX (fig. 5). union Etat G7{_ unsigned char etat; struct etat bf {_ unsigned Etape 1:1;_ unsigned Etape 2:1; __ unsigned Etape 3:1;_ unsigned Etape 4:1;_ unsigned E vide:4; }; } Etat courant, Etat futur ; _ _
On procède de la même manière pour les autres va-riables d’état : entrées, réceptivités, actionneurs. Deplus, pour simplifier l’accès des fonctions aux variablesd’état, ces dernières sont déclarées en tant que variablesglobales.3.3.3 Fonctions de gestion du GRAFCETLes actions de gestion de l’évolution duGRAFCETaccomplies à chaque itération de la boucle principalesont décomposées en fonctions déclarées ainsi : void Init G7(void);__void lecture entrees(void);void calcul receptivites(void);__ _void calcul etat futur(void);void affectation sorties(void);_ Le calcul de l'évolution du GRAFCET est accompli par_ _la fonctioncalcul etat futur(). Cette fonctiondébute par une mise à zéro de l'octet_Etat futur.etat, suivie du test de l'étatEtat_present.etat (actif ou non) de chaque étape(voir exemple ci-dessous). Si une étape est active, laréceptivité associée à la transition "aval" détermine lafuture étape active. Exemple pour l'étape 1:  if(Etat courant.Etape 1)_ _ { if(receptivites.Recep1) Etat futur.Etape 2 = 1;_ _ else_ _ Etat futur.Etape 1 = 1;} Ce mécanisme permet de traduire à la fois la structura-tion du GRAFCET de commande et les règles d'évolu-tion du GRAFCET.  3.3.4 Fonctions secondairesAux fonctions précédentes, s’ajoutent des fonctionssecondaires d’initialisation, de gestion de la temporisa-tion et d’affichage.   TemporisationPour les temporisations, nous utilisons par défaut lesfonctions de la bibliothèque<delays.h> inclusedans Microchip C18. Par exemple, De-lay10KTCYx(250) nous permet d’attendre 1s avec unPIC cadencé à 10MHz. Aux étudiants souhaitant aller plus loin, nous propo-sons d’utilisercomme suit le TIMER 1 pour réaliser latemporisation de 5s : #pragma code HIGH INTERRUPT VECTOR=0x08 _ _void vecteur(void){__ _ asm goto tempo 5s endasm}
#pragma code #pragma interrupt tempo 5s__void tempo 5s(void){_ temps mesure--;  TMR1H = 0x0B; TMR1L = 0xDC;  PIR1bits.TMR1IF = 0; _ if(temps mesure == 0) { T0CONbits.TMR0ON 0; = INTCONbits.GIE = 1;  receptivites.Tempo=1;  }}  Affichage LCDAfin de visualiser l’évolution duGRAFCET (étapeactive), les étudiants utilisent dans un premier temps lesLEDs de la maquette. Lorsque le programme fonc-tionne, nous leur proposons d’utiliserun afficheur LCDdéjà étudié durant les travaux d’Etudes & Réalisations(4 bits de données, 3 bits de contrôle, 2 lignes de 16caractères).Cet afficheur permet d’annoncer le numérode l’étape active et l'action correspondante, puis devisualiser la position du chariot et son déplacement sinécessaire (voir figure 7). Pour ce dernier point, il fautcréer un caractère spécial en forme de chariot lors del’initialisation du module au début du programme. 
 
 
 
 
 fig 7 :Exemples d’utilisation de l’afficheur LCD 3.3.5 Programme principalGrâce à la structuration du projet présentée précédem-ment, le programme principal devient particulièrementsimple et lisible (voir ci-dessous). Ainsi, les étudiantspeuvent comprendre aisément le principe qui sous-tendlefonctionnement interne d’un automate program-mable.
void main(void){initialisation maquette();__Init G7();  do {_ lecture entrees();_ calcul receptivites();_ _ calcul etat futur();_ affectation sorties();   Etat courant.etat =_Etat futur.etat;_ }while(1);} 3.3.6 SynopsisLe projet d'informatique industrielle qui vient d'êtreprésenté constitue un excellent exercice de synthèsepour les étudiants. Il les sensibilise tout d'abord au rôlefondamental joué par la notion de machine séquentielledans la réalisation de dispositif de contrôle/commande.La complexité du sujet, pourtant d'apparence simple,les oblige à structurer leur travail et leur programma-tion pour mener à bien le projet. Il démontre aussi con-crètement l'intérêt d'utiliser les environnements d'édi-tion GRAFCET proposés pour la programmation desautomates programmables (Unity Pro [6] dans notredépartement) par rapport à la démarche programmée debas niveau. Il permet enfin de faire une large synthèsede bien des enseignements abordés depuis le début del'année au niveau du microcontrôleur PIC, de sa pro-grammation en langage C, et du langage GRAFCET(figure 8). 
 fig 8 : Synopsis du projet de commande d'un chariot4 CONCLUSIONBien que ce TP semble très simple au premier abord, lacomplexité du code développé (500 lignes et 17 fonc-tions) surprend les étudiants et les sensibilise à l’intérêtde faire appel aux outils intégrés de programmationGrafcet et aux Automates Programmables. Les étu-diants sont aussi satisfaits de mener à bien un projetd’envergure mobilisant de nombreuses compétences. 
La maquette servant de support à ce TP apporte uneréponse concrète, performante et évolutive aux besoinspédagogiques précédemment exprimés.Elle est utilisée dans la quasi-totalité des TP et des TDsur microcontrôleur PIC18F452.Pour l’aspect matériel, l’ergonomie de la carte et lerapport performance/coût sont tels que de nombreuxétudiants réalisent leur propre carte personnelle surcette base pour développer leurs applications de projetstutorés et même de stage.Pour l’aspect logiciel, les possibilités "classiques de"développement d’applications par organigramme enassembleur et en Csont complétées par l’approched’implantations enGRAFCET (habituellement réser-vées aux automates industriels) ou en machines d’état(souvent cantonnées aux CPLD). Les étudiants décou-vrent ainsi toutes les possibilités de résolution de pro-blèmes sur une plateforme unique et peuvent compareren fonction de l’option initialement choisie :- L’efficacité de l'approche,- La pertinence du temps de développement,- L’impact sur les ressources matérielles, - Le résultat en fonctionnement réel.Une maquette semblable destinée aux étudiants de se-conde année et de licence professionnelle, disposant deconnectivités USB et TCP/IP Ethernet, fera l’objetd’une prochaine publication.Bibliographie[1] Site département GEII de Montpellier :http://iut.geii.montp2.free.fr  [2] Programme Pédagogique National du DUT "GénieElectrique et Informatique Industrielle", pp. 1 ,-Septembre 2005. site Ministère de l'éducation , del'enseignement supérieur et de la recherche,http://media.education.gouv.fr/file/76/8/768.pdf  [3] Site Microchip :http://www.microchip.com  [4]N. Bouteille, P. Brard, G. Colombari, N. Cotaina,D. Richet, "Le GRAFCET", Editions CEPADUES,144 p, 1992.[5] Norme NF EN 60848 Indice de classement C 03890, "Langage de spécification GRAFCET pourdiagrammes fonctionnels en séquence", Août 2002. [6] Site Schneider :http://www.schneider-electric.fr    
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.

 
Lisez à volonté, où que vous soyez
1 mois offert, Plus d'infos