labview

32
- 1 - 2009-2010 ____________________________________________________________ Travaux pratiques Découverte de LabVIEW TP n°1 : Fonctions de base Exercice 0 – Ouvrir et exécuter un instrument virtuel Exercice 1 – Création d’un VI simple Exercice 2 – Création d’un sous VI Exercice 3 – Utilisation des graphes Exercice 4 – Utilisation des boucles FOR Exercice 5 – Utilisation des structures SEQUENCE Exercice 6 – Registres à décalage Exercice 7 – Clusters d’erreur & Traitement TP n°2 : Acquisition de données Exercice 0 – Configuration et test de carte d’acquisition Exercice 1 : Acquisition d’entrées numériques Exercice 2 – Acquisition de température Exercice 3 – Analyse et Sauvegarde des données Exercice 4 – Application : alarme de température TPn°3 : Utilisation des chaînes de caractères et des fichiers Exercice 1 – Chaînes de caractères Exercice 2 – Gestion de fichiers d’entrée/sortie Exercice 3 : Communication série Exercice 4 : Application à l’analyse des mesures TP n°2bis : Appareils de mesure programmables par une liaison GPIB TP n°3bis : Exercices d’application

Upload: tortorou

Post on 31-Oct-2014

167 views

Category:

Documents


10 download

DESCRIPTION

Pratical work

TRANSCRIPT

Page 1: Labview

- 1 -

2009-2010 ____________________________________________________________

Travaux pratiques Découverte de LabVIEW

TP n°1 : Fonctions de base Exercice 0 – Ouvrir et exécuter un instrument virtuel Exercice 1 – Création d’un VI simple Exercice 2 – Création d’un sous VI Exercice 3 – Utilisation des graphes Exercice 4 – Utilisation des boucles FOR Exercice 5 – Utilisation des structures SEQUENCE Exercice 6 – Registres à décalage Exercice 7 – Clusters d’erreur & Traitement TP n°2 : Acquisition de données Exercice 0 – Configuration et test de carte d’acquisition Exercice 1 : Acquisition d’entrées numériques Exercice 2 – Acquisition de température Exercice 3 – Analyse et Sauvegarde des données Exercice 4 – Application : alarme de température TPn°3 : Utilisation des chaînes de caractères et des fichiers Exercice 1 – Chaînes de caractères Exercice 2 – Gestion de fichiers d’entrée/sortie Exercice 3 : Communication série Exercice 4 : Application à l’analyse des mesures TP n°2bis : Appareils de mesure programmables par une liaison GPIB TP n°3bis : Exercices d’application

Page 2: Labview

- 2 -

Conseils généraux pour le bon déroulement du TP et la

rédaction des compte-rendus.

• Utiliser l’aide contextuelle et l’aide en ligne • Utiliser les outils de débogage • Sauvegarder les fichiers VI dans votre répertoire personnel. • Dans votre compte-rendu (quand il sera demandé), apparaîtra :

- Pour chaque programme, les nouvelles fonctions ou commandes que vous avez utilisées - Pour les exercices d’application (moins guidés), une explication détaillée du programme (organigramme, par exemple) et l’impression du diagramme et de la face-avant Bibliographie : Francis COTTET, LabVIEW - Programmation et applications, Dunod Manuel d’Initiation à LabVIEW, National Instruments Ressources Web (ni.com) : NI Developer Zone (zone.ni.com) Polycopié de TP LabView, David Frey, GEII- IUT de Grenoble

Page 3: Labview

- 3 -

TRAVAUX PRATIQUES n°1 : FONCTIONS DE BASE

Pas de compte-rendu pour ce TP. Exercice 0 – Ouvrir et exécuter un instrument virtuel Ouvrir LabView 8.x dans le répertoire National Instruments. Examiner le fichier “Signal Generation and Processing.vi” (dans Ouvrir\exemples\analyse et Traitement des Signaux\Filtrage et conditionnement\ ) et exécuter le. Changer les différents paramètres du programme et visualiser le résultat. Face avant (Front Panel) Cliquer sur le bouton Run de la barre d’outils pour exécuter le VI. Ce VI détermine le résultat du filtrage et du fenêtrage du signal généré. Cet exemple donne aussi le spectre en puissance pour ce signal. Les graphes sur la face avant, sont montrés dans la figure ci-dessous.

Utiliser la main dans la palette d’outils pour modifier les différents paramètres Appuyer sur le bouton More Info… ou [F5] pour obtenir plus d’informations sur les fonctions d’analyse. Appuyer sur le bouton Stop ou [F4] pour arrêter le VI.

Page 4: Labview

- 4 -

Diagramme (Block Diagram) Sélectionner Fenêtre» afficher le diagramme ou appuyer sur <Ctrl-E> pour afficher le diagramme du VI Signal Generation and Processing. Ce bloc contient plusieurs éléments basiques, incluant les sous-VI, les fonctions et structures, qui seront détaillées dans la suite de ces exercices. Sélectionner Fenêtre» afficher la face avant Panel ou appuyer sur <Ctrl-E> pour revenir à la face avant.

Fermer le VI sans sauvegarder. Exercice 1 – Création d’un VI simple Construire un VI L’objectif est de créer un VI qui prenne un nombre représentant des degrés Celsius et le convertisse en degrés Fahrenheit. Face avant

1. Sélectionner Fichier»Nouveau pour ouvrir une nouvelle face-avant.

2. (en option) Pour visualiser la face-avant et le diagramme côte à côte,

sélectionner Fenêtre » Mosaïque verticale. 3. Créer une commande numérique. Vous utiliserez cette commande pour entrer

la valeur des degrés Celsius à convertir. a. Sélectionner la commande numérique dans la palette

Commande »Numérique. Si la palette de Commande n’est pas visible, cliquer-droit sur une partie vide de la face-avant afin de la faire apparaître.

b. Déplacer la commande de la palette et cliquer pour la placer sur la face-avant.

c. Taper deg C à l’intérieur de l’étiquette puis cliquer à l’extérieur de l’étiquette ou cliquer sur le bouton Entrée.

4. Créer un indicateur numérique pour afficher la valeur des degrés Fahrenheit. a. Sélectionner l’indicateur numérique dans la palette

Commande »Numérique. b. Le placer sur la face-avant. c. Taper deg F à l’intérieur de l’étiquette.

LabVIEW crée les terminaux associés à la commande numérique et à l’indicateur numérique dans le diagramme. Les terminaux représentent le type

Page 5: Labview

- 5 -

de données de la commande ou de l’indicateur. Par exemple, un terminal DBL représente une commande ou un indicateur numérique flottant, en double précision.

Remarque Les terminaux des commandes ont des bords plus épais que les terminaux des indicateurs.

Diagramme 5. Visualiser le diagramme en cliquant dessus ou en sélectionnant

Fenêtre»Afficher le diagramme.

Remarque: les terminaux dans le diagramme peuvent être visualisés soit sous forme de terminaux soit sous forme d’icônes. Pour passer d’une visualisation à l’autre, cliquer-droit sur le terminal et sélectionner Visualiser sous la forme d’une icône.

6. Sélectionner les fonctions Multiplier et Additionner dans la palette

Fonctions»Numérique et placer dans le diagramme. Si la palette Fonctions n’est pas visible, cliquer-droit dans le diagramme

7. Sélectionner la constante numérique dans la palette Fonctions»Numérique et en placer deux dans le diagramme.

8. Taper 1.8 dans une constant et 32.0 dans l’autre. 9. Utiliser l’outil bobine (palette d’outils) pour relier les différentes icônes.

• Pour relier un terminal à un autre, utiliser l’outil bobine en cliquant sur le premier terminal, en déplaçant l’outil vers le second terminal et en cliquant sur le second terminal.

• Pour identifier les nœuds des terminaux, cliquer-droit sur les fonctions

Multiplier et Additionner et sélectionner Eléments visibles »Terminaux pour faire apparaître les connecteurs. Revenir aux icônes après avoir placé les fils.

Page 6: Labview

- 6 -

• Quand vous approchez l’outil bobine d’un terminal, la partie du terminal clignote, indiquant que cliquer connectera le fil.

• Pour détruire un fil commencé, appuyer sur <Esc>, cliquer-droit, ou cliquer sur le terminal source.

10. Sauver ce VI dans votre répertoire personnel au nom de Convert C to

F.vi car il sera utilisé plus tard. 11. Entrer un nombre dans la commande numérique et exécuter le programme à

l’aide de la flèche dans la barre 12. Sélectionner Fichier »Fermer pour fermer Convert C to F.vi.

Exercice 2 – Créer un sousVI Face avant

1. Ouvrir Convert C to F.vi. La face-avant suivante apparaît :

2. Cliquer-droit sur l’icône située dans le coin en haut à droite de la face-vant et

sélectionner Editer l’icône à partir du menu. La boîte de dialogue Editeur d’icônes apparaît.

3. Double-cliquer sur l’outil Sélectionner (rectangle pointillé) pour sélectionner l’icône par défaut.

4. Appuyer sur <Suppr> pour enlever l’icône par défaut. 5. Double-cliquer sur l’outil Rectangle pour redessiner la bordure. 6. Créer l’icône suivant (ou un autre de votre choix…)

Remarque Pour dessiner des lignes verticales ou horizontales, appuyer sur <Shift>quand vous utilisez l’outil Crayon pour entraîner le curseur.

a. Utiliser l’outil Sélectionner et les flèches du clavier pour déplacer ce qui a déjà été crée.

Page 7: Labview

- 7 -

b. Sélectionner l’icône N&B et sélectionner 256 Couleurs dans le champ Copier à partir de pour créer une icône noir et blanc, qu’utilise LabVIEW pour l’impression.

c. Quand l’icône est terminée, cliquer sur OK pour fermer l’Editeur d’icônes. L’icône créée apparaît alors dans le coin haut droit du diagramme et de la face avant.

7. Cliquer-droit sur l’icône de la face-avant et sélectionner Visualiser le connecteur à partir du menu pour définir les entrées-sorties associées.

8. LabVIEW crée un connecteur basé sur le nombre de commandes et d’indicateurs sur la face-avant. Par exemple, cette face-avant a deux terminaux, deg C and deg F, ainsi LabVIEW crée un connecteur avec deux terminaux.

9. Assigner les terminaux à la commande numérique et à l’indicateur numérique. a. Sélectionner Aide»Aide contextuelle pour faire apparaître la fenêtre

d’aide contextuelle. Visualiser chaque connexion dans cette fenêtre. b. Cliquer sur le terminal gauche dans le connecteur. L’outil se change

automatiquement en bobine et le terminal devient noir. c. Cliquer sur la commande deg C. Le terminal gauche devient orange

grisé, et des pointillés entourent la commande. d. Cliquer sur une zone vide de la face-avant. Les pointillés disparaissent

et le terminal prend la couleur du type de données de la commande indiquant la connexion correcte.

e. Refaire la même démarche avec l’indicateur numérique deg F et le terminal droit.

10. Sauvegarder puis fermer votre VI. Exercice 3 – Utilisation des graphes Face-avant

1. Ouvrir un nouveau VI et construire la face-avant suivante :

Page 8: Labview

- 8 -

a. Créer un graphe à partir de la palette Commandes»Graphes. Utiliser

l’outil Flèche (palette d’outils) pour déplacer la légende de la courbe sur le côté et l’agrandir pour faire apparaître deux courbes. Utiliser l’outil texte (palette d’outils) pour changer le nom des courbes et la page de propriétés pour choisir les différentes couleurs de vos courbes.

b. Placer un bouton Stop sur la face-avant. c. Placer deux glissières à curseur verticales à partir de la palette

Commandes» numérique. Utiliser à nouveau la page propriétés pour changer les couleurs des glissières.

Diagramme

2. Construire le diagramme suivant :

a. Placer une boucle While b. Placer un Attendre un multiple de ms dans la palette Fonctions»

»Temps& Dialogue et créer une constante de valeur 100. c. Placer deux VI Express Simuler, de la palette

Fonctions»Express»Entrées. Laisser le signal sinus pour le premier et modifier le deuxième pour obtenir un carré. Relier les sorties des deux VI Express au graphe. La boîte Fusionner des signaux sera insérée automatiquement.

d. Agrandir les VI Express pour visualiser une autre entrée/sortie. Par défaut, la sortie d’erreur devrait apparaître. Changer cette sortie en Fréquence en cliquant dessus (avec l’outil Doigt- palette d’outils) et en choisissant Fréquence.

3. Sauvegarder ce VI sous le nom Multiplot Graph.vi. 4. Exécuter ce VI puis fermer le après vos différents tests.

Page 9: Labview

- 9 -

Exercice 4 – Utilisation de la boucle FOR L’objectif de l’exercice est d’exécuter les différentes étapes afin de créer un VI qui génèrera des nombres aléatoires jusqu’à ce qu’un des nombres généré corresponde à une valeur que vous avez choisie. La boucle comptera le nombre d’itérations jusqu’à obtention de l’égalité. Face avant

1. Ouvrir un nouveau VI. 2. Construire la face-avant suivante :

La valeur Number to match correspond au nombre que l’on a choisi. La valeur Current Number indique la valeur générée par le générateur de nombre aléatoires. La valeur #of iterations indique le nombre d’itérations avant qu’on ait égalité. Utiliser l’option Data Range pour éviter que l’utilisateur ne sélectionne une valeur incompatible avec le générateur de nombres. Vous pouvez ignorer l’erreur ou alors limiter la valeur. Pour limiter les valeurs entre 0 et 10000 avec un incrément de 1 et une valeur par défaut de 50, réalisez les étapes suivantes :

3. Cliquer droit sur Number to match control et sélectionner Data Range du menu déroulant. La boîte de dialogue apparaît.

4. Enlever la croix de la boîte Use Defaults 5. Sélectionner les options comme ci-dessous :

6. Cliquez sur OK

Page 10: Labview

- 10 -

Par défaut, LabView affiche les contrôles numériques et les indicateurs avec deux chiffres décimaux. Utiliser l’option Format&Precision pour changer la précision ou afficher les contrôles et indicateurs numériques en affichage « scientific, engineering ou hour/minute.second notation ».

7. Mettre la précision à 0 comme ci-dessous pour les trois variables Number to match, Current Number et #of iterations.

Diagramme

8. Construire le diagramme suivant :

La fonction « Round To Nearest » permet de conserver la partie entière. Cette fonction arrondit la variable à l’entier le plus proche.

Page 11: Labview

- 11 -

Le carré bleu situé sur le bord de la boucle While est appelé un tunnel : il sert à faire entrer ou sortir des données de la boucle. La donnée sort à chaque fois que la boucle est terminée et ne s ‘exécute que lorsque la donnée en entrée est arrivée. La boucle s’exécute tant que l’égalité n’est pas vraie. A chaque fois que la boucle s ‘exécute, le compteur est incrémenté. Il faut l’incrémenter de 1 en sortie car le compteur commence à 0.

9. Sauver le VI sous Auto Match.vi 10. Afficher la face avant et changer le nombre dans Number to match 11. Lancer le VI. Changer à nouveau Number to match et relancer le VI.

Current Number est mis à jour à chaque itération de la boucle While car il est à l’intérieur de la boucle. # of iterations ne se met à jour qu’à la fin car il est hors de la boucle.

12. Pour voir comment le VI fonctionne en interne, vous pouvez cliquer sur le bouton Highlight Execution. Le flot de données sera animé, ce qui permettra de voir comment il se déroule et les valeurs générées

13. Changer le Number to Match pour qu’il ait une valeur hors de la plage 0-10000.

14. Lancer le VI. LabView modifie la valeur hors plage en la valeur la plus proche contenue dans la plage.

15. Fermer le VI.

Exercice 5 – Utilisation des structures « Séquence » Le but de ce VI est de déterminer le temps que met la fonction Random pour être égale à une valeur donnée. Face avant

1. Ouvrir le VI Auto Match, crée dans l’exercice précédent. 2. Modifier la face avant comme ci-dessous :

a. Changer Number to match, Current Number et #of iterations en

representation I32 b. Changer Time to Match en représentation DBL avec 3 décimales de

précision.

Page 12: Labview

- 12 -

3. Sauver le VI sous Time to match.vi Diagramme

4. Modifier le diagramme comme ci-dessous :

a. Placer une structure Séquence dans la palette Fonctions>Structures b. Cliquer sur le bord droit de la structure et ajouter Add Frame After. 5. Sauver le VI. 6. Afficher la face avant, entrer un nombre dans Number to Match et lancer

le VI. Dans le cas 0, le Vi exécute la boucle While tant que Current Number n’est pas égal à Number to Match. Dans le cas 1, la fonction Tick Count (ms) lit la valeur de l’horloge du système d’exploitation. Le Vi soustrait la nouvelle valeur à celle qui a été mesurée au départ et retourne le temps écoulé.

7. Fermer le VI.

Page 13: Labview

- 13 -

Exercice 6 – Registre à décalage Il s'agit de construire un VI qui génère et affiche des données aléatoires immédiates plus la moyenne glissante des quatre dernières données. Il faut donc que dans chaque itération de la boucle, on ait accès aux valeurs du générateur de nombres aléatoires obtenues lors d'itérations précédentes. Cela se fait en utilisant des registres à décalage (shift registers). Un sélecteur en face-avant permettra d'ajuster la durée de la boucle entre 0 et 2 s et un interrupteur permettra d'arrêter le programme. Face-avant Réaliser la face-avant suivante.

Diagramme Le diagramme à obtenir est le suivant :

Page 14: Labview

- 14 -

On fait apparaître un registre à décalage en cliquant-droit sur les bords verticaux de la boucle WHILE et en sélectionnant Ajouter un registre à décalage. Il apparaît les symboles et sur ces bords. La borne de droite est l'entrée sur laquelle on va brancher la valeur actuelle de la grandeur, et la borne de gauche est la sortie où l'on récupère (si elle est disponible) sa valeur lors de l'itération antérieure. On peut rajouter des sorties pour obtenir les valeurs aux itérations i -1, i - 2, i - 3,… en choisissant "ajouter un élément" dans le menu surgissant du registre, pour obtenir quelque chose du type :

Les registres de gauche doivent être initialisés ("par la gauche", c'est-à-dire par l'extérieur de la boucle) pour garantir leur contenu. La fonction Moyenne (Mean.vi) se trouve dans la palette Fonctions »Analyse »Mathématiques »Probabilités et statistiques. L'afficheur accepte plusieurs entrées si elles sont mises en faisceau (bundle). On trouve l'outil nécessaire dans Fonctions »Cluster »Assembler

Le nœud résulte du redimensionnement à la souris de l'objet "Construire un tableau", toujours dans Fonctions »Tableaux. Enregistrer sous le nom "moyenne glissante.vi" dans votre bibliothèque de VI. EXERCICE FACULTATIF EN FONCTION DE L’AVANCEMENT : Si l'on veut faire la moyenne d'un nombre plus grand et variable de valeurs, on peut réaliser le diagramme suivant

Page 15: Labview

- 15 -

où l'on s'est servi de l'icône Initialiser un tableau qui crée et initialise un tableau, de l'icône Rotation dans un tableau 1D et de l'icône Remplacer une portion du

tableau . Le principe est en quelque sorte de créer un registre à décalage sous forme de tableau. Le décalage se fait explicitement par la rotation du tableau. Les valeurs les plus récentes sont rajoutées au début du tableau. Exercice 7 – Clusters d’erreur & Traitement Face-avant

1. Ouvrir un nouveau VI et construire la face-avant suivante :

a. Créer une commande numérique et un indicateur numérique et changer

leurs étiquettes comme indiqués b. Placer Entrée d’erreur 3D dans Commandes»Tableaux et Clusters c. Placer Sortie d’erreur 3D dans Commandes»Tableaux et Clusters

Diagramme

2. Construire le digramme suivant :

Page 16: Labview

- 16 -

a. Placer une Structure Condition, dans la palette Fonctions»Stuctures.

b. Placer un Plus grand ou égal à 0 ? de la palette Fonctions» Comparaison» et relier le au terminal Condition de la structure Condition.

Dans le cas VRAI: c. Placer la fonction racine carrée (Fonctions»Numérique)

Dans le cas FAUX:

d. Créer une constante numérique égale à 9999.90. e. Placer Assembler par nom (Fonctions» Clusters). Relier l’entrée

d’erreur au terminal central de Assembler par nom pour faire apparaître status. Créer les constantes. Relier à la sortie d’erreur.

3. Sauvegarder le VI sous le nom Square Root.vi. 4. Exécuter ce VI puis fermer le après vos différents tests.

Page 17: Labview

- 17 -

TRAVAUX PRATIQUES n°2 : ACQUISITION DE DONNEES

Exercice 0 – Configuration et test de carte d’acquisition Nous utiliserons une carte d’acquisition NI-PCI 6221 ainsi qu’un boîtier de test BNC 2120 dont la face-avant est décrite ci-dessous. Ce boîtier permet de récupérer les différentes entrées-sorties ; il dispose de plus d’un générateur de fonctions, d’un capteur de température, d’un codeur incrémental…

La carte PCI 6221 est une carte de conversion analogique/numérique multifonctions connectée sur le port PCI de l’ordinateur (250 kS/s, 16 bits, 16 entrées analogiques, deux sorties analogiques, 24 I/O numériques) On vérifiera tout d’abord que les drivers de la carte sont correctement installés : à partir de Windows, lancer l’utilitaire de configuration « Measurement &Automation ».(on peut aussi lancer cet utilitaire depuis LabView : Outils »Measurement&Automation

Page 18: Labview

- 18 -

Explorer). Dans le volet de gauche, sélectionner « Périphériques et interfaces » (ou « Devices and Interfaces »). Cliquer-droit sur PCI-6024 (ou PCI 6221) afin de faire apparaître un menu contextuel. Sélectionner « Propriétés ». Relever le numéro de périphérique affecté par le driver NI-DAQ à la carte d’acquisition. Ce numéro qui identifie la carte auprès du système sera nécessaire par la suite.

Test de la carte : Cliquer sur le bouton Self-Test pour tester la carte. Ce test doit être réalisé avec succès. Pour tester individuellement les différentes fonctionnalités de la carte (entrées/sorties analogiques, numériques..), cliquer sur Test Panels : une boîte de dialogue apparaît. Cliquer dans Analog Input pour tester les différentes voies d’entrée analogique. La voie Dev1/ai0 est reliée au capteur de température du DAQ Signal Accessory (voir description ci-dessous). Cliquer sur le bouton Start pour aquérir les données de la voie 0 des entrées analogiques. Placer votre doigt sur le capteur et visualiser alors l’augmentation de température. Vous pouvez aussi tester l’influence du bruit (switch Noise). Cliquer sur le bouton STOP Cliquer sur Analog Output pour envoyer un tension continue ou un signal sinusoïdal sur une des voies de sortie analogique. Générer un signal sinusoïdal vers la voie 0 de sortie analogique. Relier cette voie à la voie 1 des entrée analogiques et visualiser le signal sinusoïdal. Exercice 1 – Acquisition d’ entrées numériques L’objectif est de commander l’allumage de 4 lampes du boîtier d’interface (associé à la carte d’acquisition PCI6024), en fonction d’un état initial fixé par un tableau de booléens.

Page 19: Labview

- 19 -

1- Ouvrir un nouveau fichier 2- Créer un tableau de 4 leds circulaires et un placer un bouton STOP (voir face-avant ci-dessous). Face-avant :

Diagramme : 3- Réaliser le diagramme ci-dessous 4- Configurer le DAQ Assistant en sélectionnant Digital Output Port. 5- Exécuter le programme et expliquer en détail le diagramme.

Modifier le programme pour obtenir un chenillard, c’est-à-dire un allumage successif des lampes. On utilisera pour cela un registre à décalage, ainsi que la fonction Rotation dans un tableau 1D. Exercice 2 – Acquisition de température Pour réaliser cet exercice, il faut utiliser le capteur de température disponible sur le boîtier d’interface avec la carte d’acquisition PCI6024 ou PCI6221. Face-avant

1. Ouvrir un nouveau fichier.

Construire un tableau

Page 20: Labview

- 20 -

2. Créer l’indicateur de température comme indiqué ci-dessous. L’afficheur numérique est obtenu en cliquant-droit sur le thermomètre et en sélectionnant Etiquette »Afficheur numérique.

3. Créer la commande verticale de switch Diagramme

4. Sélectionner le diagramme. 5. Construire le diagramme suivant.

a. Placer l’Assistant Express DAQ situé dans la palette

Fonctions»Express »Entrée. Entrer les configurations suivantes : i. Sélectionner Analog Input pour le type des mesures.

ii. Sélectionner Voltage. iii. Sélectionner ai0 comme voie de la carte d’acquisition. iv. Dans la section Task Timing, sélectionner Acquire 1 sample.

b. Placer la fonction Convertir des données dynamiques située dans la palette Fonctions»Express»Manipulation et sélectionner Scalaire unique pour le type de données résultantes.

c. Sélectionner dans Fonctions»Sélectionner Convert C to F.vi, construit dans le TP1-Exercice 2, et placer ce VI sur le diagramme (attention à ne pas le laisser dans une boucle While).

d. Réaliser le reste du diagramme. 6. Sélectionner la face-avant et exécuter le programme en continu. 7. Placer votre doigt sur le capteur de température et noter l’augmentation de la

température. 8. Arrêter le VI. 9. Créer l’icône suivante pour utiliser ce programme comme un sous-VI.

Page 21: Labview

- 21 -

10. Sauvegarder le fichier en tant que Thermometer.vi dans votre répertoire

personnel et fermer le VI.

Exercice 3 – Analyse et Sauvegarde des données Suivre les étapes suivantes pour construire un VI qui mesure la température toutes les 0.25s pendant 10s. Pendant l’acquisition, le VI doit afficher les mesures en temps réel sur un graphe déroulant. Une fois l’acquisition terminée, le VI trace les données sur un graphe et calcule le minimum, maximum, et la moyenne des températures. Face-avant

1. Ouvrir un nouveau VI et construire la face-avant ci-dessous. • Ne pas créer pour le moment les indicateurs Mean, Max, et Min.

Il faudra les créer dans le diagramme et ils apparaîtront alors dans la face-avant.

Page 22: Labview

- 22 -

Diagramme

2. Construire le diagramme suivant.

3. a. Sélectionner Fonctions»Sélection d’un VI… et choisir

Thermometer.vi (de l’exercice précédent). b. Placer Attendre un multiple de ms situé dans la palette

Fonctions»Temps & Dialogue et créer une constante égale à 250. c. Placer la fonction Max & Min d’un tableau de la palette

Fonctions»»Tableaux. Cette fonction retourne la température maximale et minimale.

d. Placer le VI Moyenne de la palette Fonctions»Analyse» Mathématiques»Probabilités et Statistiques. Ce VI retourne la moyenne des mesures de température.

e. Créer les indicateurs Max, Min, et Mean. f. Placer le VI Express Write LabVIEW Measurements situé dans

Fonctions»Express »Sortie. LabVIEW insérera automatiquement la fonction Convertir en données dynamique ( DDT) sur le fil connecté à l’entrée du signal.

3. Sauvegarder le VI sous le nom Temperature Logger.vi. 4. Afficher la face-avant et exécuter le VI. 5. Après avoir appuyer sur STOP, une boîte de dialogue apparaîtra. Entrer le nom du fichier pour sauvegarder le tableur. 6. Ouvrir le fichier tableur pour s’assurer que le fichier a été correctement crée en utilisant par exemple Notepad ou en créant un VI pour lire le fichier de la manière suivante :

Page 23: Labview

- 23 -

• Créer le diagramme suivant :

• Placer le VI Express Read LabVIEW Measurement de la palette

Fonctions»Express »Entrée. • Configurer correctement le VI • Cliquer-droit sur la sortie Signaux et choisir créer un indicateur

graphe. 7. Exécuter le VI. 8. Sauvegarder et fermer les deux VIs.

Exercice 4 – Application : alarme de température Objectif : Modifier le programme précédent pour détecter un seuil de température fixé par l’utilisateur. Si la température dépasse ce seuil, l’ordinateur doit « bipper » une LED, placée sur la face-avant, ainsi qu’une LED placée sur le boîtier (sortie numérique) doivent s’allumer. Tracer le seuil sur le graphe de température.

On utilisera pour cela la fonction ou la fonction EXPRESS en

la configurant convenablement, la structure Condition et la fonction

Bip.vi (dans Fonctions »Graphismes et sons »Sons) pour réaliser le BIP de l’ordinateur.

Page 24: Labview

- 24 -

TRAVAUX PRATIQUES n°3

Utilisation des chaînes de caractères et des fichiers

COMPTE-RENDU A RENDRE EN FIN DE TP

Exercice 1 – Chaînes de caractères a) Concaténation de chaînes Le but du VI est de créer une chaîne de caractères du type : « la tension mesurée est de XX volts » par exemple, où XX sera une valeur en flottant convertie en chaîne de caractères avec 2 chiffres après la virgule. Vous devrez également afficher la chaîne de caractères définitive ainsi que la longueur de la chaîne. Sauvegarder le VI. Créer une icône et un connecteur.

Fonctions à utiliser : b) Extraire un nombre d’une chaîne de caractères Le but de ce VI est d’extraire un nombre d’une chaîne de caractères. On devra entrer une chaîne de caractères du type « Il est : 14 heures ». Il faudra indiquer la chaîne en entrée, le séparateur (ici, « : »)et en sortie, indiquer la valeur numérique, ainsi que l’offset du nombre par rapport au début de la chaîne de caractères. Sauvegarder le VI.

Fonctions à utiliser : Exercice 2 – Gestion de fichiers d’entrée/sortie a) Stockage dans un fichier texte Le but de ce VI est d’utiliser le VI de l’exercice 1 a) comme sous VI de celui-ci. La chaîne concaténée sera enregistrée dans un fichier dont l’utilisateur devra choisir le nom à l’aide d’une boîte de dialogue.

Fonction à utiliser : b) Ouverture d’un fichier texte Le but de ce VI est d’ouvrir un fichier et d’afficher le contenu du fichier sur la face avant.

Fonction à utiliser :

Page 25: Labview

- 25 -

Exercice 3 : Communication série Nous allons mettre en œuvre la liaison série RS232. La configuration d’une liaison de communication est toujours la même :

• Ouvrir la communication • Ecrire/ lire les données • Fermer la communication

Nous allons dans un premier temps communiquer entre un programme LabView et l’hyperterminal. Pour cela nous allons relier le port COM1 (utilisé par LabView) au port COM2 utilisé par l’hyperterminal). Certains PC ne disposant plus de deux ports série, nous utiliserons des adaptateurs USB/série et le port USB utilisé sera le port COM4.

a) Envoi d’une chaîne de caractères Le but est de réaliser un programme LabView capable d’envoyer une chaîne de caractère par la liaison série. L’appui sur le bouton envoyer enverra la donnée. La transmission se fera à 9600 bauds, sans parité, 8 bits de données, 1 STOP, sans contrôle de flux.

1. Dans un premier temps, utiliser une boucle While classique pour l’attente du bouton « Envoyer » et une structure SEQUENCE par exemple. Regarder le temps de charge CPU (faire CTRL+ ALT+ SUPPR, aller dans le gestionnaire de tâche\performances et regarder l’utilisation de l’UC donc du processeur)

Fonction à utiliser : 2. Remplacer la boucle While de scrutation du bouton envoi par une boucle cadencée à 10 ms. En d’autres termes, on ne regardera l’état du bouton poussoir que toutes les 10 ms. Regarder à nouveau l’occupation du processeur. Conclure.

b) Réception d’une chaîne de caractères

Votre programme devra cette fois envoyer un message qui demandera au destinataire de renvoyer un nombre. Il devra attendre que ce nombre soit retourné et ensuite l’afficher à l’écran.

Fonction à utiliser :

Page 26: Labview

- 26 -

Exercice 4 : Application à l’analyse des mesures a) Etalonnage d’une sonde de température par régression linéaire. On réalise une sonde de température à partir d’un capteur de température bas coût. Cette sonde délivre une tension Vmes(t) fonction de la température t, exprimée en °C, à laquelle elle est soumise. Pour étalonner cette sonde, on la place dans une enceinte thermostatée dont on fait varier la température sur l’étendue de mesure EM = [0°C,100°C]. Celle-ci est mesurée à l’aide d’une sonde thermométrique Pt100 de précision (100Ω à 0°C et 138,5 Ω à 100°C). On réalise ainsi un étalonnage indirect pour lequel on considère que la température donnée par la sonde Pt100 est parfaitement exacte. Les résultats des mesures sont consignés dans le fichier de données LabView etalonnage.lvm (qui se trouve dans le répertoire prof vers élèves sous Gandalf (ou Legolas ?)) et seront lues avec le VI express :

à l’aide du bouton « charger les données » .

1) Sur l’étendue de mesure EM, on cherche à modéliser le comportement de la sonde par l’approximation linéaire Vmes(t) = Vmes0+a.t. Déterminer à l’aide du VI

Express la valeur de Vmes0 et de a. 2) Tracer la courbe réelle et son approximation linéaire sur le même graphe. 3) Estimer la sensibilité du capteur

4) Donner l’écart de linéarité εL, plus grand écart sur l’étendue de mesure entre la caractéristique réelle et l’approximation linéaire donnée par la droite. On tracera la différence entre la caractéristique réelle et l’approximation linéaire donnée par la droite en fonction de t (en°C) (sortie résiduel)

5) Calculer l’erreur relative de linéarité (en%) eL, écart de linéarité normalisé à l’excursion de Vmes(t) sur l’étendue de mesure.

Page 27: Labview

- 27 -

b) Simulation sous LabView d’une variable aléatoire gaussienne et de sa moyenne. L’objectif de cet exercice est de comparer la moyenne et l’écart-type d’une variable aléatoire gaussienne et de sa moyenne.

1) Tracer le signal temporel et l’histogramme d’une variable aléatoire X de

distribution gaussienne de moyenne nulle et d’écart-type 4. On prendra 1000 échantillons pour X

2) Tracer l’histogramme de la moyenne de cette variable aléatoire notée Y, et

comparer la moyenne et l’écart-type des deux variables aléatoires. On prendra 10000 échantillons pour Y.

Pour calculer la moyenne, on utilisera la fonction L’histogramme est le graphe obtenu sous forme de barres en portant la valeur des signaux en abscisse et la fréquence d’obtention en ordonnée (en % ou en amplitude). On utilisera le VI express suivant :

Page 28: Labview

- 28 -

TRAVAUX PRATIQUES n°3bis :

Exercices d’application

Exercice 1 - Application : Simulation d’un oscilloscope et analyseur de spectre (2 heures) Le but est d'étudier l'effet dû à la manière dont un signal est échantillonné sur le spectre qui est obtenu par transformation de Fourier discrète. Le cahier des charges est le suivant : Génération de signaux 1) Pouvoir générer un signal sinusoïdal, triangulaire ou rectangulaire ; l'utilisateur choisit la fréquence du signal en Hz, le nombre de périodes (pas forcément entier) et la fréquence d’échantillonnage. 2) Afficher ce signal avec en abscisse, le temps (en seconde). Fenêtrage 3) Pouvoir choisir une fonction de fenêtrage (aucune, Hamming, triangle) par laquelle multiplier le signal généré avant d'en faire la TFD. 4) Afficher le signal résultant de la multiplication du signal généré et de la fonction de fenêtrage. 5) Afficher la transformée de Fourier discrète avec en abscisse, la fréquence (en Hz). Le VI réalisé pourrait ressembler à celui représenté à la fin. Différentes options Vous pouvez également inclure une option pour représenter soit le spectre en amplitude (module de la TFD), en échelle linéaire ou logarithmique, soit celui en puissance, soit la phase de la TFD. Outils : -les générateurs de waveforms dans la palette "Analyse - génération de waveforms" ; -les outils de TFD dans la palette "Analyse - traitement des signaux " ; -les fonctions de fenêtrage dans "Analyse – Traitement du Signal-Fenêtres" ; En face-avant, on utilisera la commande Enum dans Menus déroulants et Enumérations pour proposer le choix de la fonction de fenêtrage. Pour choisir entre affichage linéaire et logarithmique par programmation, il faut créer pour l'afficher un Noeud de propriétés, en cliquant-droit sur le terminal de l'afficheur.

Page 29: Labview

- 29 -

Ensuite, en cliquant-droit sur aller dans le menu

Propriétés »Echelle X »Représentation pour créer . Changer

en écriture pour obtenir et aller dans Aide pour Représentation pour modifier le bon paramètre. Analyse Exécuter le programme en faisant varier les différents paramètres. Vérifier le théorème de Shannon (en faisant varier la fréquence d’échantillonnage) et analyser l’influence du fenêtrage temporel sur la réponse fréquentielle. Face-avant à obtenir :

Page 30: Labview

- 30 -

Exercice 2 - Lecture, traitement, et écriture d’un fichier de données (2 heures) Le but est de traiter une chaîne complète d’ouverture de fichier de données comportant des caractères et des valeurs numériques, de traitement des données numériques et des chaînes de caractères, et de réécriture dans un fichier de sortie. On dispose d’un fichier de données « anglelabview.dat ». Ouvrir ce fichier à l’aide de l’éditeur de votre choix. Ce fichier est composé d’une première ligne de caractères puis de données numériques sous forme de tableau de dimension 9001x29. Le cahier des charges se décrit en 4 parties : Ouverture et lecture du fichier de données Ouvrir le fichier de données à l’aide d’une boîte de dialogue, lire les valeurs numériques du fichier (et les convertir en tableau 2D) et les chaînes de caractères, afficher le tableau complet des valeurs numériques, la taille du tableau, ainsi que la ligne de caractères (première ligne du fichier). On pourra utiliser les VI suivants :

Extraction des données numériques et des caractères utiles On dispose d’un tableau 2D des valeurs numériques et de la ligne de caractères. On veut maintenant extraire les première et troisième colonnes du fichier sous la forme de deux lignes séparées, l’une donnant le temps, l’autre un angle. A partir de ces deux lignes, tracer grâce à un graphe XY, les angles en fonction du temps. On veut par ailleurs extraire de la chaîne de caractères complète la chaîne de caractères qui se trouve sur la première colonne et s’en servir pour aller modifier automatiquement la légende de l’axe des x de la courbe. On pourra utiliser les VI suivants :

(nœud de propriétés) Affichage des données dans un graphe XY, filtrage et affichage des données filtrées. Les données obtenues seront filtrées à l’aide d’un filtre de Butterworth passe-bas d’ordre 2. Choisir la fréquence de coupure de manière à ne garder que le fondamental. Tracer les données filtrées en fonction du temps à l’aide d’un graphe XY. On pourra utiliser les VI suivants :

Page 31: Labview

- 31 -

Ecriture des données filtrées dans un fichier texte sous la forme de 2 colonnes avec sur la première ligne une chaîne de caractères. Les données filtrées obtenues seront enregistrées dans un fichier tableur avec sur la première colonne : la chaîne de caractères « temps » puis les différents instants, et sur la deuxième colonne : la chaîne de caractères « données filtrées » puis les valeurs des données filtrées. Le nom du fichier sera choisi à l’aide d’une boîte de dialogue. On pourra utiliser les VI suivants :

Page 32: Labview

- 32 -

TRAVAUX PRATIQUES n°2bis : Pilotage d’appareils de mesure

(En salle E49)

Tracé automatique d’un diagramme de Bode à l’aide d’un multimètre et d’un GBF pilotable par un bus GPIB

Au départ, le GPIB (General Purpose Interface Bus) fut développé par Hewlett-Packard (HP) au début des années 70, afin de connecter et contrôler des instruments programmables produits par HP. Cependant, avec l'introduction de commandes numériques et d'équipements de test programmables, il a été nécessaire de créer un standard, le IEEE 488, qui réponde à certaines spécifications. Ce standard a été amélioré par la suite et a conduit successivement à la norme IEEE 488.1 puis au driver IEEE 488.2, qui apporte des atouts supplémentaires au système par la mise en place de commandes de logiciels. Groupe 1 : Gestion du multimètre GPIB (34401 Agilent) Câbler rapidement un filtre passe-bas RC ayant une fréquence de coupure de 1kHz. Mettre en entrée un générateur de fonctions non piloté et relever à l’aide du multimètre les valeurs des tensions en sortie du filtre quand vous faites varier la fréquence d’entrée du GBF. Réaliser la fonction qui permet de calculer le gain en dB du filtre sachant que l’amplitude de l’entrée sera donnée par le groupe 2. Groupe 2 : Gestion du générateur de fonction GPIB (HM8130 Hameg ou 33220 Agilent) Générer un signal sinusoïdal d’amplitude 5 V dont la fréquence varie de 100Hz à 100kHz avec 100 points entre les deux fréquences. Récupérer dans un programme LabView l’amplitude et les fréquences. Groupe 1 et 2 : tracé du diagramme de Bode Assembler vos deux programmes pour tracer automatiquement le diagramme de Bode (amplitude uniquement du filtre réalisé).