TRAITEMENT PROGRAMMÉ - stiddsin.free.frstiddsin.free.fr/explorer/Cours-TD-TP/07a-distributeur-de...

4
TP N°6 : TRAITEMENT PROGRAMMÉ - STRUCTURE À BASE DE MICROCONTRÔLEUR ETC 3.1.4 ETC 3.1.4 TRAITEMENT DE L’INFORMATION page 1 / 4 Centres d'intérêt abordés Information Niveau d’analyse Comportemental Objectifs pédagogiques 3.1.4 Traitement de l’information Connaissances Traitement programmé : structure à base de microcontrôleur Activités (3 H) Analyser et mettre en œuvre la gestion d’entrées- sorties Ressources documentaires Cours : Traitement programmé Ressources matérielles Ordinateur avec logiciel FLOWCODE Ce TP met en œuvre le traitement programmé avec le logiciel FLOWCODE. Il a pour objectifs de contrôler les capteurs et actionneurs d’un distributeur de boissons chaudes et de réaliser l’interface homme-machine de ce distributeur. La machine « distributeur de boisson chaude » virtuelle est représentée en annexe page 4. 1. DISTRIBUTEUR DE BOISSONS CHAUDES 1.1. FONCTIONNEMENT Le distributeur étudié permet d’obtenir des cafés courts de 40ml ainsi que des cafés longs et des chocolats chauds de 110ml. La machine vérifie la production d’eau chaude. Lorsque l’utilisateur demande une boisson, elle vérifie la disponibilité des produits lyophilisés et distribue la boisson avec le volume désiré. 1.2. DESCRIPTION DES ENTRÉES - SORTIES DU MICROCONTRÔLEUR ENTRÉES EAUCH (D0) est commandé par un capteur de température. D0 = '1' quand la température de l’eau est supérieure ou égale 90°C ; CHOIX (D1, D2, D3) est un mot binaire commandé par des boutons poussoirs qui correspondent au choix de l’utilisateur. D1 = '1' quand l’utilisateur sélectionne un café court ; D2 = '1' quand l’utilisateur sélectionne un café long ; D3 = '1' quand l’utilisateur sélectionne un chocolat chaud ; PRODUITS (D4, D5) est un mot binaire commandé par des capteurs de présence de chocolat et de café lyophilisés. D4 = '1' lorsqu’il y a du chocolat lyophilisé ; D5 = '1' lorsqu’il y a du café lyophilisé; DEBIT (D6) est commandé par un débitmètre. Le débitmètre génère une impulsion tous les centilitres de boisson distribuée. SORTIES CHAUF (B0) commande la résistance de chauffe de l’eau lorsque B0 = 1 ; POMPE (B1) commande la pompe de distribution d’eau chaude quand B1 = ‘1’. VANNE (B2) commande une vanne multivoies. L’eau chaude s’écoule sur du café lyophilisé si B2 = ‘0et elle s’écoule sur du chocolat lyophilisé si B2 = 1. LCD Display (PORTA) affiche les messages à destination de l’utilisateur. 1.3. PRÉSENTATION DE L’ALGORITHME L’algorithme qui gère le distributeur de boisson chaude est constitué de trois étapes qui s’exécutent en boucle : Production d’eau chaude, gestion des défauts et Distribution des boissons. Le fichier qu’il faudra compléter s’appelle boissons.fcf 1.4. PRODUCTION D’EAU CHAUDE L’algorithme ci-contre représente la macro ProductionEauChaude qui permet d’activer la résistance chauffante lorsque l’eau est froide. Elle doit désactiver la résistance lorsque l’eau est chaude. Tester le programme en mode pas à pas détaillés (touche F8 ou icône ) en cliquant sur la chaudière pour faire changer la température de l’eau. Commenter le déroulement de la macro ProductionEauChaude en précisant pourquoi elle ne fonctionne pas correctement : On lit l’état de la température de l’eau, tant que l’eau n’est pas chaude, on active la résistance chauffante. Dès que l’eau devient chaude, on devrait ressortir de la boucle tant que pour éteindre la résistance mais cela ne se produit pas. En effet, dans la boucle tant que, on ne relit pas l’état de l’eau pour savoir si elle est devenue chaude. Il faut donc rajouter un pictogramme Entrée pour lire l’état D0 (EAUCH) Corriger la macro et tester son fonctionnement. Ajouter l’affichage suivant : FAIRE VÉRIFIER LA SIMULATION PAR LE PROFESSEUR

Transcript of TRAITEMENT PROGRAMMÉ - stiddsin.free.frstiddsin.free.fr/explorer/Cours-TD-TP/07a-distributeur-de...

Page 1: TRAITEMENT PROGRAMMÉ - stiddsin.free.frstiddsin.free.fr/explorer/Cours-TD-TP/07a-distributeur-de boissons... · bien dans Flowcode) et afin qu¶elle agisse sur les actionneurs (vanne

TP N°6 : TRAITEMENT PROGRAMMÉ - STRUCTURE À BASE DE MICROCONTRÔLEUR ETC 3.1.4

ETC 3.1.4 TRAITEMENT DE L’INFORMATION page 1 / 4

Centres d'intérêt abordés Information

Niveau d’analyse Comportemental

Objectifs pédagogiques 3.1.4 Traitement de l’information

Connaissances Traitement programmé : structure à base de

microcontrôleur

Activités (3 H) Analyser et mettre en œuvre la gestion d’entrées-

sorties

Ressources documentaires Cours : Traitement programmé

Ressources matérielles Ordinateur avec logiciel FLOWCODE

Ce TP met en œuvre le traitement programmé avec le logiciel FLOWCODE. Il a pour objectifs de

contrôler les capteurs et actionneurs d’un distributeur de boissons chaudes et de réaliser l’interface

homme-machine de ce distributeur. La machine « distributeur de boisson chaude » virtuelle est

représentée en annexe page 4.

1. DISTRIBUTEUR DE BOISSONS CHAUDES

1.1. FONCTIONNEMENT

Le distributeur étudié permet d’obtenir des cafés courts de 40ml ainsi que des cafés longs et des

chocolats chauds de 110ml.

La machine vérifie la production d’eau chaude. Lorsque l’utilisateur demande une boisson, elle vérifie

la disponibilité des produits lyophilisés et distribue la boisson avec le volume désiré.

1.2. DESCRIPTION DES ENTRÉES - SORTIES DU MICROCONTRÔLEUR

ENTRÉES

– EAUCH (D0) est commandé par un capteur de température. D0 = '1' quand la température de

l’eau est supérieure ou égale 90°C ;

– CHOIX (D1, D2, D3) est un mot binaire commandé par des boutons poussoirs qui

correspondent au choix de l’utilisateur. D1 = '1' quand l’utilisateur sélectionne un café court ;

D2 = '1' quand l’utilisateur sélectionne un café long ; D3 = '1' quand l’utilisateur sélectionne un

chocolat chaud ;

– PRODUITS (D4, D5) est un mot binaire commandé par des capteurs de présence de chocolat et

de café lyophilisés. D4 = '1' lorsqu’il y a du chocolat lyophilisé ; D5 = '1' lorsqu’il y a du café

lyophilisé;

– DEBIT (D6) est commandé par un débitmètre. Le débitmètre génère une impulsion tous les

centilitres de boisson distribuée.

SORTIES

– CHAUF (B0) commande la résistance de chauffe de l’eau lorsque B0 = 1 ;

– POMPE (B1) commande la pompe de distribution d’eau chaude quand B1 = ‘1’.

– VANNE (B2) commande une vanne multivoies. L’eau chaude s’écoule sur du café lyophilisé si

B2 = ‘0’ et elle s’écoule sur du chocolat lyophilisé si B2 = 1.

– LCD Display (PORTA) affiche les messages à destination de l’utilisateur.

1.3. PRÉSENTATION DE L’ALGORITHME

L’algorithme qui gère le distributeur de boisson chaude est constitué de trois étapes qui s’exécutent en

boucle : Production d’eau chaude, gestion des défauts et Distribution des boissons.

Le fichier qu’il faudra compléter s’appelle boissons.fcf

1.4. PRODUCTION D’EAU CHAUDE

L’algorithme ci-contre représente la macro ProductionEauChaude qui

permet d’activer la résistance chauffante lorsque l’eau est froide. Elle

doit désactiver la résistance lorsque l’eau est chaude.

Tester le programme en mode pas à pas détaillés (touche F8 ou

icône ) en cliquant sur la chaudière pour faire changer la température

de l’eau.

Commenter le déroulement de la macro ProductionEauChaude en

précisant pourquoi elle ne fonctionne pas correctement :

On lit l’état de la température de l’eau, tant que l’eau n’est pas chaude,

on active la résistance chauffante. Dès que l’eau devient chaude, on

devrait ressortir de la boucle tant que pour éteindre la résistance mais

cela ne se produit pas. En effet, dans la boucle tant que, on ne relit pas

l’état de l’eau pour savoir si elle est devenue chaude. Il faut donc

rajouter un pictogramme Entrée pour lire l’état D0 (EAUCH)

Corriger la macro et tester son fonctionnement. Ajouter l’affichage suivant :

FAIRE VÉRIFIER LA SIMULATION PAR LE PROFESSEUR

Page 2: TRAITEMENT PROGRAMMÉ - stiddsin.free.frstiddsin.free.fr/explorer/Cours-TD-TP/07a-distributeur-de boissons... · bien dans Flowcode) et afin qu¶elle agisse sur les actionneurs (vanne

TP N°6 : TRAITEMENT PROGRAMMÉ - STRUCTURE À BASE DE MICROCONTRÔLEUR ETC 3.1.4

ETC 3.1.4 TRAITEMENT DE L’INFORMATION page 2 / 4

1.5. GESTION DES DÉFAUTS

La macro GestionDefauts permet de vérifier la présence des produits lyophilisés et d’en informer

l’utilisateur. La présence ou non des produits est mémorisée dans une variable PRODUITS.

On souhaite obtenir l’affichage suivant. On rappelle, ci-dessous, les noms des bits du PORTD :

Compléter et tester en mode pas à pas la macro GestionDefauts en utilisant le modèle ci-dessous.

Ajouter les cas nécessaires au pictogramme Multi-Décision.

Est-il vraiment nécessaire de traiter les 4 cas avec le

pictogramme Multi-Décision ?

Trois cas suffisent : Machine Vide, Plus de Chocolat et

Plus de Café car l’afficheur a déjà été effacé dans la

macro ProductionEauChaude

Quelles sont les valeurs de test utilisées dans la

Multi-Décision ?

Machine Vide -> valeur 0

Plus de Café -> valeur 16

et Plus de Chocolat -> valeur 32

Sortie par Défaut non utilisée

FAIRE VÉRIFIER LA SIMULATION PAR LE PROFESSEUR

1.6. DISTRIBUTION DES BOISSONS

La macro Distribution permet d’actionner la vanne multivoies et de mettre en marche la pompe de

distribution d’eau chaude en fonction du choix de l’utilisateur et des éventuels défauts. Elle informe

également l’utilisateur de l’opération en cours.

Dans un premier temps, les volumes de boissons seront contrôlés par des durées d’activation de la

pompe :

- 5 secondes d’activation pour un volume de 40 ml,

- 14 secondes d’activation pour un volume de 110 ml.

La présence ou non des produits a été mémorisée précédemment dans la variable PRODUITS lors de

l’exécution de la macro GestionDefauts. Le choix de l’utilisateur sera mémorisé dans la variable

CHOIX.

1.6.1. DISTRIBUTION SANS GESTION DU DÉBITMÊTRE

La séquence d’affichage à obtenir dans la macro Distribution est illustrée dans le diagramme d’état ci-

dessous.

Compléter les transitions du diagramme comme indiquées en exemple. On rappelle les noms des

bits du PORTD :

D5 D4 D3 D2 D1

Présence Café

Présence Chocolat

Demande Chocolat

Demande Café Long

Demande Café Court

D5 D4

Présence Café

Présence Chocolat

After(5s)

After(5s)

After(14s)

After(14s) After(14s)

After(14s)

Page 3: TRAITEMENT PROGRAMMÉ - stiddsin.free.frstiddsin.free.fr/explorer/Cours-TD-TP/07a-distributeur-de boissons... · bien dans Flowcode) et afin qu¶elle agisse sur les actionneurs (vanne

TP N°6 : TRAITEMENT PROGRAMMÉ - STRUCTURE À BASE DE MICROCONTRÔLEUR ETC 3.1.4

ETC 3.1.4 TRAITEMENT DE L’INFORMATION page 3 / 4

L’algorithme ci-dessous est une solution inachevée de la macro Distribution. Elle ne gère que

l’affichage et ne traite pas tous les cas de figure.

Reproduire la macro Distribution comme indiqué ci-dessus.

Tester votre programme pas à pas. Pour allez

directement à la macro Distribution, il est possible de

mettre un point d’arrêt en faisant un click droit sur

cette dernière dans la macro Principal :

Lancer ensuite la simulation, elle se met

automatiquement en pause à l’endroit du point d’arrêt.

Poursuivre en appuyant sur la touche F8 (pas à pas

détaillé).

Justifier les valeurs 16 et 32 pour la variable PRODUITS et 8, 2, 4 pour la variable CHOIX :

Pour la variable PRODUITS, 16 correspond à D5 = 0 et D4 = 1 donc il n’y a plus de café mais il reste

du chocolat

32 correspond à D5 = 1 et D4 = 0 il n’y a plus de chocolat mais il reste du café

Pour la variable CHOIX, 8 correspond à D3 = 1, D2 = 0 et D1 = 0 donc l’utilisateur à sélectionné du

chocolat

2 correspond à D3 = 0, D2 = 0 et D1 = 1 donc l’utilisateur à sélectionné du café court

4 correspond à D3 = 0, D2 = 1 et D1 = 0 donc l’utilisateur à sélectionné du café long

Commenter le déroulement de cette macro Distribution

Lorsqu’il n’y a plus de café, la machine fait du chocolat si l’utilisateur à sélectionné la valeur 8.

Lorsqu’il n’y a plus de chocolat, la machine fait du café court si l’utilisateur à sélectionné la valeur 2

ou du café long si l’utilisateur à sélectionné la valeur 4

Sinon il ne se passe rien

En quoi est-elle incomplète ?

Il manque le cas où la machine ne manque ni de café et ni de chocolat. De plus, la vanne et la pompe ne

sont pas commandées.

Compléter la macro Distribution afin qu’elle traite tout les cas de figure (le copier-coller fonctionne

bien dans Flowcode) et afin qu’elle agisse sur les actionneurs (vanne et pompe). Ne pas oublier

d’arrêter la pompe après la distribution. Tester tous les cas de figure. Observer la position de la

vanne et la mise en marche de la pompe sur le panneau de Flowcode.

FAIRE VÉRIFIER LA SIMULATION PAR LE PROFESSEUR.

1.6.2. DISTRIBUTION AVEC GESTION DU DÉBITMÊTRE

Le débitmètre sera simulé par un bouton poussoir. On rappelle que le débitmètre génère une impulsion

tous les centilitres de boisson distribuée.

Sur le panneau, placer un bouton de type poussoir et de fonctionnement momentané. Ajuster ses

paramètres de connexion pour qu’il soit relié à D6.

Remplacer les temporisations de 14s et 5s par les macros ml110 et ml40. Tester et observer le

fonctionnement de ces macros.

Page 4: TRAITEMENT PROGRAMMÉ - stiddsin.free.frstiddsin.free.fr/explorer/Cours-TD-TP/07a-distributeur-de boissons... · bien dans Flowcode) et afin qu¶elle agisse sur les actionneurs (vanne

TP N°6 : TRAITEMENT PROGRAMMÉ - STRUCTURE À BASE DE MICROCONTRÔLEUR ETC 3.1.4

ETC 3.1.4 TRAITEMENT DE L’INFORMATION page 4 / 4

Commenter le déroulement de la macro ml110

On initialise une variable n à 0 pour compter les impulsions du débitmètre

Tant que n < 11 soit que le débit est inférieur à 110ml,

On lit l’entrée D6 (débitmètre)

Si DEBIT est à 0 on ne fait rien car on attend une impulsion au niveau

haut

Une fois que DEBIT est à 1

On relit l’entrée D6 (débitmètre) tant que DEBIT est à 1 car on attend

qu’elle repasse à 0

Puis on incrémente la variable n (11 fois pour 110ml)

Remarque : il faut attendre que l’entrée D6 repasse à ‘0’ avant

d’incrémenter n car, le microcontrôleur étant extrêmement rapide, n

atteindrait la valeur 11 au moment même où D6 passe à

‘1’

1.7. AMÉLIORATION DE L’AFFICHAGE (FACULTATIF)

Les afficheurs LCD sont des périphériques très lents. Pour éviter les effets de scintillement, une astuce

consiste à ne jamais effacer l’afficheur mais à réécrire sur les textes déjà affichés.

Supprimer la macro composant effacer de la macro ProductionEauChaude, ajouter un cas = 0 dans

la Multi-Décision PRODUITS de la macro Distribution où on ne fera rien et mettre du texte dans le

cas par défaut de cette même macro (ex : « bonjour en service »). Tester en mode pas à pas,

débugger et optimiser la position des textes à afficher.

Recenser les bugs ?

- Si les bacs à produit son pleins avant que l’eau soit chaude alors l’affichage n’est pas actualisé lorsque

l’eau devient chaude : il faut ajouter un texte (ex : « bonjour en service ») dans la branche défaut dans

l’autre Multi-Décision PRODUITS de la macro Distribution

- Divers textes non recouverts par les textes qui suivent donc il vaut mieux commencer à la colonne

x=0 de l’afficheur et mettre des textes de 16 caractères avec des espaces

FAIRE VÉRIFIER LA SIMULATION PAR LE PROFESSEUR.

2. ANNEXE : MACHINE VIRTUELLE

Résistance Chauffante

Chaudière à Eau

Réserve de Chocolat Lyophilisé

Bouton Café Court

Écran LCD

Pompe à Eau Chaude

Réserve de Café

Lyophilisé

Vanne Multivoies

Débitmètre

Bouton Café Long

Bouton Chocolat