III) Programmation du PIC

Slides:



Advertisements
Présentations similaires
Projet Pluri techniques encadré
Advertisements

Premier programme en C :
Introduction. Les pointeurs Bête noir des programmeurs Pas daide de Visual Studio Sauf en utilisant les « break point » Pas toujours intuitif Facile de.
La Gestion de la Configuration
Spécification et qualité du logiciel
Les démarches de développement
Les démarches de développement
Paramètres et pointeurs
Automatique 2 Parties : - Systèmes Continus - Systèmes Échantillonnés
Cinématique dans l'espace-temps d'un observateur
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
T S S.I. GRAFCET.
Cours d’Automatique MASTER OIV
Récursivité.
Algorithmique et Programmation
Automates Programmables Industriels Automates Programmables
Chapitre 2 : La fonction de transfert
TRANSMISSION DES DONNEES.
TD Table traçante - Porte stylo Simulation d’injection plastique pour valider la conception MoldFlow Plastics Advisers version 8.0.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Techniques de test Boulanger Jean-Louis.
Mesure de l’état de maturation et du taux d’humidité des fruits
Chariot de Golf Sequence pedagogique De 4 semaines.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Structures de données IFT Abder Alikacem Gestion des exceptions Département dinformatique et de génie logiciel Édition Septembre 2009.
Simulateur Robot Mobile 2006
Chapitre XI Gestion des erreurs et exceptions. 2 La gestion des erreurs et exceptions De nombreux problèmes peuvent survenir pendant lexécution dun programme:
CSI3525: Concepts des Languages de Programmation
1°) Identification Réponse du système étudié à un échelon unitaire
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Etude du GEMMA et solutions
TRADUCTION D ’UN GRAFCET EN LANGAGE API
FONCTIONNEMENT AUTOMATE
La notion de type revisitée en POO
Les adresses des fonctions
Microcontrôleurs et Langage C Les Timers diapo 1
Le GRAFCET.
Macros 16 pages de macros en parallèles Activation indépendante des macros Description des macros Une grille de programmation de 15x15 Programmation graphique.
Définitions Gestion Exemple
Introduction au Génie Logiciel
Test et Testabilité des Circuits Intégrés Digitaux
Tutorat en bio-informatique
Lecture TUSH Accès Gabiste Lancement tempo accès local Eclairage Local et voyants Ouverture electro-verrou PR1 – PR2 Activation de la tempo de présence.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Les types de maintenance
Conception d’un asservissement
Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Alain Cojan Formation “Piquet” u Baraques, accès, sécurité, particularités u Outils d’usage général u Equipment Bus u Installations pour les physiciens.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Les démarches de développement
Sujet 5 : Intégration d’une loi d’ordonnancement dans un modèle
Cours 8 La transmission.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Projet pluritechnique encadré
Martin Roy, Janvier 2010 Révisé Juillet  Un système d’équations est un ensemble de plusieurs équations.  La solution d’un système d’équations.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Réalisation d'une maquette
SAUNIER DUVAL Théma et Thémaplus
Algorithmique Boucles et Itérations
A. Lebrun. Principe de base Dans la logique combinatoire, les sorties dépendent des différentes entrées et peuvent être calculées par l’algèbre de Boole.
Guide d’Étude des Modes de Marche et d’Arrêt.
Multiplexeurs A.Lebrun.
Automates Programmables Industriels
Comment Automatisé un système par un API?
Transcription de la présentation:

III) Programmation du PIC

1) Hypothèses et choix

Contraintes Commande par un microcontroleur PIC 16F84 (pas de sortie analogiques). Variation de vitesse (CNA 8 bits) L'accélération est fonction de l'angle d'inclinaison de la bande. (roue codeuse)

Schéma structurel

Fonctions réalisées par le programme F1 : Lecture BP marche F3 : Déterminer vitesse F4 :Affecter vitesse F2 : Lecture codeuse

Actigramme de la fonction Gérer

Réalisation des rampes accélération-décélération (de la fonction F3 : Déterminer la vitesse à obtenir)

Rampe d'accélération CNA commandé sur 8 bits : pleine échelle =255 Code for(cpt=0;cpt<255;cpt++) { sortie=cpt+1; //car cpt max = 254 delay(tempoAccelDecel); } Cette méthode permet d'obtenir la rampe suivante:

Accélérations et angles D'après les calculs de mécanique : amax=(-0,1737α+1,9666) Après intégration, vmax=(-0,1737α+1,9666)tmax D'où tmax=vmax/(-0,1737α+1,9666) avec vmax = 0,26m/s tmax=[0,26/(-0,1737α+1,9666)] Δt=tmax /255 Δt=[0,26/(-0,1737α+1,9666)]/255

Calcul de la tempo d'accélération Durée microdelay(n) : T = 3n +1 (microsecondes) n = (T-1)/3

Les différentes versions du programme du cycle

Programme n°1 un cycle programme correspond à un cycle de la bande. Pas de roue codeuse. pas d'arrêt possible en cours de programme

Gestion des tests Simulation lancer la simulation -->(les sorties doivent rester à 0) mise à 1 entrée Ra1 (bouton poussoir marche) --> les sorties clignotent/stabilisent à 1/clignotent/stabilisent à 0 résultats des tests : test OK. La valeur de temporisation a du être adaptée pour que le clignotement soit perceptible. validation sur maquette: test OK

Environnement de développement : Devpic84c

Programme n°2 Objectif : décodage roue codeuse. Gestion des fonction, appels de sous programme pour garantir évolutivité , lisibilité et maintenabilité du programme. Principe: un cycle programme = un cycle de la bande. L'accélération dépend de la valeur codée depuis la roue codeuse.

Programme n°2 : fonction main() Structure identique au prog 1. Appel fonctions lirecodeuse() calculTempoAccel() calculTempoDecel() L'appel de fonction après « marche ».

Spécificité : lecture de la roue codeuse

Gestion des tests Gestion des tests (simulation) Validation décodage roue codeuse : affectation de codeuse sur port B, pendant le palier vitesse. Résultats des tests : test OK Validation sur maquette: test OK Nécessité de complémenter les voies de la roue codeuse pour avoir un signal cohérent.

Programme n°3 Objectif : Autoriser l'arrêt du cycle à tout instant Simplifier la gestion des entrées.

Principe de fonctionnement Scrutation permanente des E/S Fonctionnement programmé sous forme d'un grafcet (4 étapes) Détection de fronts montants du bp_marche. Utilisation d'une table de codage pour la temporisation accélération (en fonction de la variable codeuse.)

Grafcet décrivant les phases du programme

Spécificité : programme type automate void main() { /*Initialisation des paramètres de conception*/ /*Initialisation des paramètres de réglage*/ lecture_entree(porta); // suppression du font initial ; /******************Debut boucle infinie******************/ sortie = 0; phase = 0; for(;;) /***************Attente marche***********************/ lecture_entree(porta); evoluer_phase(); vitesse = piloter_vitesse(vitesse); sortie = vitesse; } //fin for(;;) } //fin void main()

détection des fronts montants Principe de la fonction lecture_entrees() :

Programmation grafcet évoluer phase void evoluer_phase() { switch (phase) { case 0 :{ // ATTENTE if ((bp_marche==1)&&(bp_marche_precedent==0)) {phase = 1; } break;} case 1 :{ // ACCELERATION if (vitesse>= vitesse_max ) { phase = 2; } if ((bp_marche==1)&&(bp_marche_precedent==0)) { phase = 3; } break;} Case 2 :{ // PALIER VIT CONSTANTE if (deplacement>=deplacement_max[codeuse]) phase = 3; } if ((bp_marche==1)&&(bp_marche_precedent==0)) { phase = 3; } break; case 3 :{ // DECELERATION if (vitesse<=vitesse_arret) { phase = 0; } break;} } }

fonction piloter_vitesse()

utilisation d'une variable comme pointeur dans une table

Tests programme 3 Simulation : Test OK

Défaillance - Diagnostic Test sur maquette ==> comportement aléatoire Hyp 1 : Programme : Vérification simulation --> Comportement OK en simulation Hyp 2 : PIC : Échange standard -->Sans effets (Comportement aléatoire) Hyp 3 : Config. E/S : Chargement programme initial -->Sans effets (Comportement aléatoire) Hyp 4 : C.N.A. : Échange standard C.N.A. --> Pilotage correct de la bande