Você está na página 1de 191

Introduction LabVIEW

Introduction
LabVIEW est un langage de programmation graphique, particulirement adapt aux montages exprimentaux. Il est la fois souple, puissant et rapide. Atouts: programmation intuitive dveloppement rapide interface utilisateur nombreuses bibliothques disponibles drivers existants pour la plupart des instruments

Introduction
Interfaage dexpriences Contrle dinstruments acquisition des donnes Analyse et traitement de donnes traitement du signal traitement statistique

LabVIEW
Prsentation et stockage de donnes Affichage courbes Stockage donnes

Vue densemble
Cours sur 2 jours prsentation de LabVIEW. Les exercices et les exemples sont disponibles sur notre site, rubrique enseignement :
http://lasim.univ-lyon1.fr/recherche/onlisno/Labview.html

LabView
Langage de programmation graphique Dvelopp par National Instruments Site web www.ni.com/labview fond sur le principe du flot de donnes programmation par cblage Trs puissant

Pour commencer
LabView 6i disponible sur vos machines (version actuelle : 7.1) lancer LabVIEW :
dmarrer programmes National Instruments LabVIEW 6 LabVIEW

Bote de dialogue au lancement

Ecrans louverture

Face avant Diagramme

Face avant - commandes


[ Clic droit ]

Diagramme - Fonctions

Outils
Position / Taille / Selection Texte Changement valeur Raccourci menu objet Dplacement fentre Sonde Prendre couleur

Cblage Point d'arrt

Choix couleur

Exemple
Cration dun VI simple : fonctions mathmatiques de base But: crer un VI permettant de raliser une opration mathmatique simple (addition) et dafficher le rsultat. Exemple: 1 + 3 -> 4

Cration dun VI
Slectionner : Nouveau VI (Virtual Instrument) Slectionner la fentre face avant (grise) clic droit Commandes Dplacer la souris sur Numrique Une sous-fentre apparat avec les commandes numriques

Indicateur numriques
Slectionner indicateur numrique (en haut gauche) : dplacer la souris dessus puis clic gauche Lindicateur numrique permettra laffichage du rsultat. Le curseur change main Dplacer le curseur sur la face avant (grise) double bote en pointills Amener cette bote la position souhaite (clic gauche)

Indicateurs numriques - suite


Une tiquette par dfaut ( Numrique ) est automatiquement cre et surligne On peut changer le texte aussitt (par exemple : rsultat ) On pourra aussi modifier ltiquette plus tard

Exemple de VI de base

Diagramme (la partie oprationnelle)


Visualiser le diagramme <ctrl+E> pour passer de face avant diagramme LabVIEW a plac un terminal sur le diagramme qui est li lindicateur plac sur la face avant On peut dplacer ce terminal o lon veut sur le diagramme, cela ne change rien en face avant En double cliquant sur un objet de face avant terminal du diagramme sur terminal du diagramme objet de face avant

Diagramme (la partie oprationnelle)

DBL est le type de sortie (rel double) On pourra changer ce type plus tard

Ajouter une fonction


Nous allons maintenant ajouter la fonction mathmatique daddition. Toujours sur diagramme, <clic droit> la palette de fonction apparat Dplacer la souris sur numrique la palette numrique apparat avec les fonctions mathmatiques Cliquer sur la fonction additionner Dplacer la souris vers le diagramme on voit la fonction sous le curseur en forme de main Placer le curseur gauche du terminal indicateur rsultat <clic gauche> pour poser la fonction

Ajouter les constantes


Toujours sur diagramme, <clic droit> la palette de fonction apparat Dplacer la souris sur numrique la palette numrique apparat avec les fonctions mathmatiques Cliquer sur la fonction constante numrique Dplacer la souris vers le diagramme on voit la fonction sous le curseur en forme de main Placer le curseur gauche loprateur somme <clic gauche> pour poser la fonction changer la valeur de la constante 1 ajouter une deuxime constante = 3

Cblage
Dans la palette doutils <shift+clic droit>, slectionner loutil de cblage (comme une bobine de fil) le curseur change de forme (bobine) positionner le curseur sur la premire constante il clignote <clic gauche>, dplacer la souris ligne en pointills Amener le curseur sur la fonction additionner (+) ...

Cblage - suite
Lorsque le curseur arrive sur la fonction, elle se met clignoter sous le curseur au niveau des terminaux de connexion De courtes lignes de connexion apparaissent aussi Convention standard : terminaux dentre gauche terminaux de sortie droite Cliquer sur le connecteur en haut gauche Le cble passe en trait continu orange : cblage valide

Cblage - directions
Les cbles vont toujours horizontalement ou verticalement, jamais en diagonale Par dfaut, il y a un changement de direction par cble, mais On peut changer la direction initiale (horizontale ou verticale) en appuyant sur <barre despace> On peut imposer des points intermdiaires par <clic gauche>

Terminer le cblage de la fonction


Cbler la deuxime constante la fonction (+) Cbler le terminal de sortie de cette fonction lindicateur rsultat

Le diagramme termin
Remarquer la couleur bleue des constantes et des fils Cette couleur indique le type des donnes (entier)

Remarquer le points gris indiquant le conflit entre les deux types (ce conflit nimplique cependant pas la non-execution du programme)

Changer la reprsentation dun indicateur


Nous allons donc changer le type de lindicateur : rel double entier

Pour cela, faire un <clic droit> sur lindicateur Rsultat Slectionner le menu Reprsentation Choisir le type I32
Lindicateur devient bleu

Changer les textes dtiquettes


Faire apparatre le menu outils : <shift + clic droit> faire glisser la souris sur loutil texte (lettre A) clic gauche positionner le curseur dans ltiquette modifier, diter le texte (les raccourcis habituels sont disponibles)

Texte libre
On peut aussi ajouter du texte o lon veut, en face avant ou sur le diagramme commentaires Ajouter en face avant du texte : Addition de deux constantes Changer la police de caractres : menu droulant dans la barre de menu, au milieu

La face avant termine

Excution
Changer les valeurs ( outil main puis taper valeurs ou utiliser les flches dincrmentation ) <clic gauche> sur la flche blanche dans la barre de menu (bulle daide : excuter )

Les rsultats des oprations apparaissent dans les indicateurs

Excution en continu
<clic gauche> sur la double flche :

Pour arrter, <clic gauche> sur le bouton stop :

Cration dun VI
Nous allons maintenant compliquer un peu Nous allons crer un VI permettant de raliser plusieurs oprations (+;-;/;x) sur des nombres rels qui peuvent tre changs volont. Slectionner : Nouveau VI (Virtual Instrument) Slectionner la fentre face avant (grise) clic droit Commandes Dplacer la souris sur Numrique Une sous-fentre apparat avec les commandes numriques

Indicateurs numriques
Crer quatre indicateurs numriques que vous pourrez nommer somme soustraction multiplication division

Commandes numriques
Crer deux commandes numriques que vous pourrez nommer premire valeur deuxime valeur

La face avant termine

Terminaux
Deux types de terminaux Terminal de commande : cadre en gras Terminal dindicateur : cadre fin Reste rajouter les fonctions et cbler...

Diagramme (la partie oprationnelle)


Visualiser le diagramme <ctrl+E> pour passer de face avant diagramme LabVIEW a plac des terminaux sur le diagramme qui sont lis aux objets de la face avant ( part le texte libre) chaque objet a son terminal On peut dplacer ces terminaux o lon veut sur le diagramme, cela ne change rien en face avant En double cliquant sur un objet de face avant terminal du diagramme sur terminal du diagramme objet de face avant

Ajouter les fonctions


Toujours sur diagramme, <clic droit> la palette de fonction apparat Dplacer la souris sur numrique la palette numrique apparat avec les fonctions mathmatiques Cliquer sur la fonction additionner Dplacer la souris vers le diagramme on voit la fonction sous le curseur en forme de main Placer le curseur gauche du terminal indicateur somme <clic gauche> pour poser la fonction

Cblage
Dans la palette doutils <shift+clic droit>, slectionner loutil de cblage (comme une bobine de fil) le curseur change de forme (bobine) positionner le curseur sur le terminal de commande premiere valeur il clignote <clic gauche>, dplacer la souris ligne en pointills Amener le curseur sur la fonction additionner (+) ...

Cblage - suite
Lorsque le curseur arrive sur la fonction, elle se met clignoter sous le curseur au niveau des terminaux de connexion De courtes lignes de connexion apparaissent aussi Convention standard : terminaux dentre gauche terminaux de sortie droite Cliquer sur le connecteur en haut gauche Le cble passe en trait continu orange : cblage valide

Terminer le cblage de la fonction


Cbler la commande deuxieme valeur lautre terminal dentre de la fonction (+) Cbler le terminal de sortie de cette fonction lindicateur somme Ajouter trois fonctions supplmentaires : (-), (*) et (/), en face des indicateurs correspondants

Cblage - directions
Les cbles vont toujours horizontalement ou verticalement, jamais en diagonale Par dfaut, il y a un changement de direction par cble, mais On peut changer la direction initiale (horizontale ou verticale) en appuyant sur <barre despace> On peut imposer des points intermdiaires par <clic gauche>

Raccordement aux cbles existants


Avec loutil de cblage, cliquer (gauche) sur le cble reliant la commande premiere valeur la fonction (+) (il clignote lorsquon est dessus) Descendre jusquau terminal dentre du haut de la fonction (/) Recommencer avec la commande seconde valeur Les cbles qui se croisent se voient au blanc qui est laiss de part et dautre Terminer les cblages

Le diagramme termin

Slectionner les cbles


Dans le diagramme outil : slectionner (flche)

Essayer simple, double et triple clic gauche sur un fil (cble) Une fois slectionn on peut le dplacer en utilisant souris flches du clavier ou <shift + flche> (plus rapide) Utiliser loutil bobine pour modifier les cblages Clarifier le diagramme

Rq: on peut aussi utiliser <barre espace> pour passer de loutil bobine loutil slection

Excution en continu
<clic gauche> sur la double flche :

Pour arrter, <clic gauche> sur le bouton stop :

flot de donnes
<ctrl-E> diagramme, puis cliquer sur animer lexcution , puis excuter en continu

Oprations boolennes
Raliser la face avant et le diagramme dun VI montrant quelques oprations boolennes : ET OU OU exclusif (XOR) opration compose (plusieurs entres)

Boolens - face avant

Boolens - diagramme

Changements dchelle
crer un nouveau VI Ajouter une commande numrique bouton rotatif Ajouter un indicateur numrique rservoir <clic droit> sur le rservoir ; slectionner afficheur numrique dans le menu lments visibles relier le bouton rotatif au rservoir Changer les chelles (outil main ou texte ) diter les valeurs min ou max affiches lchelle change Explorer les menus <clic droit>

Face avant

Diagramme

Ajouter une jauge de temprature


Ajouter un thermomtre (indicateur numrique) Ajouter un gnrateur de nombres alatoires, une fonction multiplier une constante numrique Changer la valeur de la constante 100

Ajouter une jauge de temprature


Relier les lments de faon multiplier par 100 la sortie du gnrateur alatoire (entre 0 et 1) :

Noter les diffrentes couleurs <clic droit> sur la constante, reprsentation DBL changement couleur

Types de donnes
Comme dans des langages de programmation classiques, diffrents types de donnes, par exemple : Entiers (bleu) mot long (32), mot (16), octet (8) Rels (orange) prcision tendue (64), double (32), simple (16) Boolens (vert) Chanes (magenta)

Sous VIs

quivalent des fonctions avec entres multiples sorties multiples Aident allger les diagrammes, les rendre plus lisibles Peuvent tre utiliss plusieurs fois dans le mme VI

Exemple de sousVIs
Crer un nouveau VI : calcul de pente entre deux points On peut le documenter : Fichier proprits du VI catgorie: documentation diter l'icne : <clic droit> sur l icne en haut droite

diter l'icne
utiliser les outils pour dessiner l icne on peut utiliser la couleur dessiner en 256 couleurs puis faire copier partir de 256 couleurs pour noir et blanc et 16 couleurs

Calcul de pente
crer la face avant et le diagramme :

Ajouter les terminaux au connecteur

terminaux dentre ( gauche) paramtres dentre terminaux de sortie ( droite) valeurs de sortie <clic droit> sur carr icne face avant visualiser le connecteur choisir un modle avec assez dentres et de sorties outil bobine cliquer sur un terminal face avant, puis sur le terminal connecteur souhait (ou inversement) sauvegarder le VI (par exemple: calc_pente.vi )

Utilisation de sousVis
pour utiliser un sousVi, dans le diagramme, choisir dans la palette de fonctions slectionner un VI choisir le sousVI, ouvrir le dposer sur le diagramme on peut le relier aux autres lments on peut avoir une vue densemble du sousVI avec laide en ligne <ctrl-H>

r-utilisation de sousVIs

Fonction slectionner
cest lquivalent de cond ? vrai : faux en C/C++ Crer un nouveau VI Dans le diagramme, importer capteur_pression.vi qui fournit une pression lue en hPa Ajouter un vumtre sur la face avant, le nommer pression Relier la sortie du capteur au vumtre Observer lexcution en continu

fonction slectionner
Remarquer que le curseur est bloqu au maximum Adapter lchelle (pour se guider on peut utiliser lafficheur numrique) On pourrait vouloir choisir entre un affichage en hPa ou en mmHg

fonction slectionner

entre pour Vrai T condition entre pour Faux ? F Sortie

Chemin des donnes si Vrai

entre pour Vrai T Vrai ? F Sortie

Chemin des donnes si Faux

T Faux entre pour Faux ? F Sortie

Slectionner - face avant


Ajouter un interrupteur horizontal ( unite ) de la palette boolens Ajouter deux textes libres hPa et mmHg Agrandir le vumtre et linterrupteur Changer la taille de caractres des textes agrandir : < ctrl+ = > diminuer : < ctrl+ - >

Slectionner - face avant

Slectionner - diagramme
Ajouter une fonction slectionner (palette comparaison ) Relier la commande boolenne unite lentre selecteur Relier la sortie pression lentre cas faux diviser 732 par 1013 et multiplier la pression par le rsultat, relier la sortie lentre cas vrai excuter en continu et changer dunit

Slectionner - diagramme

slectionner : affichage units

LabVIEW - debugage
animer lexcution indicateurs intermdiaires (<clic droit> crer indicateu outil sonde outil point darrt mode pas pas (en entrant dans les sousVIs ou non)

Trace pression
objectif: tracer au cours du temps la pression crer un nouveau VI trace_pression.vi sur la face avant, poser un bouton STOP un graphe droulant (palette graphe )

LabVIEW - boucle while


Placer sur le diagramme une boucle while (palette structures ) Ltirer de faon contenir les lments ncessaires La boucle while continuera jusqu ce que son terminal conditionnel reoive faux Elle sexcute au moins une fois (cest plutt une boucle repeat until ) Elle contient un compteur ditration

LabVIEW - boucle while

Compteur ditration

Terminal conditionnel choix (<clic droit>) : arrter si VRAI arrter si FAUX

Trace pression
Dans la boucle while, poser le sousVI capteur_pression.vi Relier sa sortie au graphe droulant Relier le bouton STOP au terminal conditionnel de la boucle Configurer arrter sur condition vraie Crer un indicateur numrique nombre de valeurs , relier au compteur ditrations (essayer <clic droit> sur le compteur crer un indicateur

Observer lexcution (une fois) trs rapide ! ajuster lchelle

Trace pression -face avant

Trace pression -diagramme

boucle while -temporisation


On peut ralentir l excution de faon contrle : Ajouter dans la boucle attendre un multiple de ms (mtronome dans la palette temps et dialogue ) Crer une molette numrique delai (ms) , la relier lentre du mtronome excuter, changer la valeur du dlai (ajuster lchelle du dlai au besoin) examiner les diffrents modes de mise jour du graphe

Trace pression 2 - face avant

Trace pression 2 - diagramme

LabVIEW - registres dcalage


Le signal prcdent est assez bruit ; on pourrait vouloir afficher une moyenne continue des 4 prcdentes valeur, par exemple Ceci peut tre ralis en ajoutant un registre dcalage la boucle

LabVIEW - registres dcalage


Un registre dcalage prend des donnes du ct droit et les reporte du ct gauche litration suivante Cration: <clic droit> sur un des bords de la boucle ajouter un registre dcalage <clic droit> sur le registre pour rajouter un lment On peut le dplacer en hauteur (les deux cts restent aligns)

LabVIEW - registres dcalage


On peut placer plusieurs registres dcalage sur une boucle Chaque registre naccepte quune valeur dentre ( droite) Le type de cette valeur fixe le type du registre (ex: DBL) ce sera aussi le type des valeurs restitues ( gauche) Un registre peut restituer la valeur fournie vi, mais aussi vi-1, vi-2, ... en rajoutant des lments

Trace pression - moyenne


sauvegarder le VI prcdent sous trace_pression_average.vi Ajouter un registre dcalage Ltendre 4 lments Ajouter une fonction Oprateur arithmtique (palette numrique) ltendre 4 lments Sassurer que son mode est bien addition (<clic droit>) Relier les 4 sorties de registre (gauche) aux entres de l oprateur

Trace pression - moyenne


Diviser la sortie de loprateur arithmtique par 4 Relier la sortie au graphe Relier la sortie du capteur de pression lentre du registre ( droite) Crer une constante numrique lextrieur de la boucle, La relier aux sorties (gauche) du registre : Ceci assure linitialisation des valeurs restitues par le registre Excuter

Trace pression - moyenne

Trace pression - moyenne

Plan
Nous allons voir maintenant : boucle FOR structure condition structure squence

boucles FOR
Nouveau VI diagramme : ajouter une boucle for (structures Boucle For) nombre ditrations raliser indice de litration en cours (commence 0)

pour N = 4 i=0,1,2,3

Boucles FOR - exemple


Illustration : cration dun VI pour dterminer le plus petit de 100 nombres alatoires face avant : 2 indicateurs numriques : nombre et minimum

Boucles FOR - exemple


Diagramme ajouter une structure boucle FOR imposer 100 itrations en connectant une constante numrique au terminal N remarque: la constante doit tre lextrieur de la boucle placer un gnrateur de nombre alatoire dans la boucle (fonction numrique) placer une fonction/comparaison/max&min

Boucles FOR - exemple


diagramme : ajouter un registre dcalage la boucle FOR relier la sortie du gnrateur alatoire lindicateur nombre ( nombre doit tre dans la boucle) relier aussi cette sortie lentre x de la fonction max&min

Boucles FOR - exemple


diagramme : relier la sortie min(x,y) lentre du registre dcalage ( droite) connecter une constante numrique de valeur 1 au registre dcalage ( gauche) pour linitialisation

Boucles FOR - exemple


diagramme : relier la valeur de sortie externe du registre dcalage lindicateur minimum ( droite, lextrieur de la boucle) relier la sortie interne du registre dcalage lentre y de la fonction max&min ( gauche, lintrieur de la boucle) excuter (1 fois, pas en continu) : la valeur minimum parmi 100 nombres alatoires est affiche

Boucles FOR - exemple

Quelles modifications apporter pour calculer aussi le max ?

Structure Condition
Permet dexcuter diffrentes actions en fonction de la valeur dune entre. (cf. switch/case en C) Par dfaut, entre boolenne, mais on peut relier aussi une entre numrique, chane, numration... la structure sadapte au type dentre

Structure Condition
pour visualiser les diffrentes valeurs possibles, utiliser les flches

valeur dentre

Structure Condition
On peut ajouter/supprimer des cas possibles (<clic droit>) Un cas par dfaut doit tre spcifi pour grer les valeurs non prcises

Structure Condition - exemple


Crer un nouveau VI - on veut calculer le racine carre dun nombre, en grant les nombres ngatifs Face avant : Une commande nombre Un indicateur racine carree

Structure Condition - exemple


diagramme : Ajouter une structure condition ajouter une fonction de comparaison >= 0 nombre et >= 0 doivent tre l extrieur, gauche de la structure condition relier nombre lentre de >= 0 ; la sortie est un boolen, relier lentre de la structure condition [?] pour la contrler.

Structure Condition - exemple


diagramme : slectionner loption Vrai dans la structure condition Ajouter une fonction numrique racine carre dans la structure condition Placer lindicateur racine carree lextrieur, droite de la structure condition

Structure Condition - exemple


diagramme : Relier nombre lentre de la fonction racine carre remarquer le tunnel (carr orange) dans la paroi gauche de la structure Relier la sortie de la fonction racine carre lindicateur racine carree remarquer le tunnel dont lintrieur est blanc car aucune valeur nest encore fournie dans le cas Faux dailleurs le VI n est pas encore excutable (flche brise)

Structure Condition - exemple


diagramme : Slectionner le cas Faux dans la structure condition Placer dedans une constante numrique -999 relier au tunnel de sortie Remarquer quil se remplit et que le VI est excutable Placer une fonction Temps et dialogue/Bote de dialogue 1 bouton Relier une chane Erreur, nombre ngatif la 1re entre Relier une chane Ok, mea culpa la 2e entre

Structure Condition - exemple


Sauver Changer nombre (positif puis ngatif ) et excuter (1 fois, pas en continu cause de la boite de dialogue) vrifier que tout va bien.

Structure Condition - exemple

Structure Squence
Permet de programmer diffrents sous-diagrammes excuter squentiellement A utiliser seulement bon escient

Squence - exemple
A titre d exemple, mesurer le temps entre deux pressions de boutons Face avant : Deux boutons start et stop Action mcanique : commutation jusquau relchement Trois indicateurs numriques : temps initial (ms), temps final (ms), duree ecoulee (ms) reprsentations : U32

Squence - exemple

Squence - exemple
Diagramme : ajouter une structure Squence <clic droit> sur la structure, ajouter une tape aprs la squence doit alors comprendre deux tapes 0..1 Recommencer jusqu ce quil y ait 4 tapes (0..3) Slectionner la premire tape (0) en utilisant les flches

Squence - tape 0
Crer les diagrammes des diffrentes tapes, comme indiqu :

boucle while

start

arrter sur condition vraie

Squence - tape 1
Crer les diagrammes des diffrentes tapes, comme indiqu :

Squence - tape 2

start

Squence - tape 3
Incomplet pour linstant Il faut le temps initial...

Variable locale de Squence


Pour disposer de la valeur du temps initial, on va utiliser une variable locale de squence slectionner la 2e tape (1) <clic droit> sur le bord infrieur de la structure, ajouter une variable locale de squence un carr jaune apparat. relier ce carr au fil existant (voir transparent suivant)

Variable locale de Squence

Une variable locale de squence permet de transmettre une valeur aux tapes suivantes (pas aux prcdentes) Rq. la flche pointe vers l extrieur

Variable locale de Squence


Slectionner la dernire tape relier la variable la fonction - Rq: la flche pointe vers lintrieur, indiquant que la valeur est disponible

Variable locale de Squence


Excuter (1 fois) Cliquer sur le bouton start , puis stop La sortie indique le temps (en ms) entre les deux clics Voir si la valeur est disponible aussi aux tapes 0 et 2 Il est possible davoir plusieurs variables locales de sequences

La bote de calcul

La fonction bote de calcul est disponible dans le sous-menu Structures Permet dintgrer des formules dans un diagramme sans utiliser un cblage compliqu Un nombre limit de fonctionnalits est disponible (voir laide Labview pour plus de dtails)

Bote de calcul - exemple


Dmarrer un nouveau VI Crer sur la face avant: Une commande numrique X (gamme 1-100 , Incrment 1 , entier) Un indicateur numrique

Bote de calcul - exemple


Crer sur le diagramme: Une bote de calcul Ecrire dans la bote la formule mathmatique : Y=X**2 + 2*X +7;
Remarques: - Noter que ** est la fonction puissance (ne pas confondre avec ^ qui est la fonction OU exclusif ) - Ne pas oublier le point-virgule la fin de chaque ligne de commande!

Bote de calcul - exemple


Sur le diagramme: Faire un clic droit sur le ct gauche de la bote de calcul et slectionner ajouter une entre que lon renommera X Faire un clic droit sur le ct droit de la bote de calcul et slectionner ajouter une sortie que lon renommera Y

Bote de calcul - exemple


Sur le diagramme: Connecter la commande numrique X lentre X de la bote de calcul Connecter lindicateur numrique Y la sortie Y de la bote de calcul

Bote de calcul - exemple


On obtient alors: Face-avant

Diagramme

Faire tourner plusieurs fois la programme avec plusieurs valeurs de X et vrifier le bon fonctionnement

Bote de calcul - exemple

Une bote de calcul peut contenir plusieurs lignes de commande (chaque ligne tant termine par ; ) Des choix peuvent tre inclus (par exemple une fonction if else ) Mme sil est possible de placer des entres et des sorties nimporte quelle position sur la bote de calcul, il est conseill dappliquer la convention suivante:

entres sur le ct gauche et sorties sur le ct droit

Bote de calcul - exemple

Les tableaux sous Labview


Dmarrer un nouveau VI Sur la face avant:
Crer un tableau, fonction dans le sous-menu Tableau et Cluster Noter lapparence du tableau sur la face-avant: il apparat vide lorsque aucun type de donne lui a t assign:

Faire glisser un indicateur numrique dans le tableau. Noter alors la modification daspect du tableau:

Les tableaux sous Labview


Sur le diagramme: Noter comment le symbole tableau a t modifi en orange ce qui indique quon lui a assign un type de donne (ici double prcision)

Il est galement possible de modifier le type et la reprsentation par un clic-droit (cf. indicateurs numriques)

Les tableaux sous Labview


Sur la face-avant: Le tableau par dfaut a une seule dimension. Il est possible dajouter des dimensions supplmentaires par les deux mthodes suivantes: - clic-droit et slectionner ajouter une dimension - tendre la souris la bote dindice Des dimensions peuvent tre galement supprimes Remarquer que les valeurs dans le tableau sont grises indiquant quelles nont pas t initialises
Exemple : un tableau 3 dimensions

Les tableaux sous Labview


Sur la face-avant: Dans un tableau une dimension, slectionner lindice 10 et initialiser le la valeur 5 (noter le changement daffichage) Slectionner un indice en dessous de 10 : la valeur est toujours 0.00 mais son apparence nest plus grise indiquant que les valeurs des cellules ont t initialises Observer les cellules dindice suprieur 10

Les tableaux sous Labview


Sur la face-avant: Retourner lindice 10, positionner le curseur au dessus de la valeur de la cellule, puis faire un clic-droit et slectionner la fonction oprations sur les donnes/rinitialiser la valeur par dfaut Toutes les cellules indexes de 0 10 sont maintenant initialises 0.00 (les cellules dindices suprieurs 10 apparaissent encore grises, donc non initialises)

Les tableaux sous Labview


Sur la face-avant: Faire un clic-droit sur la bote dindice et slectionner nouveau la fonction oprations sur les donnes/rinitialiser la valeur par dfaut Cette fois-ci, toutes les cellules du tableau sont grises signifiant que le tableau est vide Les tableaux peuvent avoir une ou plusieurs dimensions, chaque dimension pouvant contenir jusqu 2147483647 lments (231 1)

Tableaux auto-indexation
Si un tableau est connect une boucle FOR ou WHILE, on peut initialiser les lments du tableau, lindice du tableau tant li au compteur de la boucle Cette facilit est active par dfaut dans une boucle FOR Elle est dsactive par dfaut dans une boucle WHILE Le prochain exemple illustre cette mthode

Auto-indexation exemple
Crer un nouveau VI Sur la face avant, crer un tableau et ajouter dans ce tableau un indicateur numrique Sur le diagramme: ajouter une boucle FOR et dfinir la valeur darrt N 100 (le tableau devant se trouver lextrieur de la boucle) lintrieur de la boucle, ajouter un gnrateur de nombre alatoire (0-1) Connecter le gnrateur de nombre alatoire au tableau

Auto-indexation exemple
On obtient alors:
Face-avant: Diagramme:

Aprs excution, vrifier que le tableau soit rempli jusqu lindice 100

Auto-indexation exemple
On peut galement remplir un tableau laide dune boucle while. Faire un nouveau VI permettant cette initialisation jusqu lindice 100. A VOUS DE JOUER!!!!

Auto-indexation exemple
Linitialisation dun tableau laide dune boucle WHILE:

Faire un clic-droit ici pour activer lindexation

Se souvenir que lindexation nest pas possible par dfaut dans une boucle WHILE!!!

Initialisation dun tableau


Si on souhaite initialiser tous les lments dun tableau une valeur identique, il existe une fonction dans labview qui permet de le raliser trs simplement. Sur le diagramme, slectionner la fonction initialiser un tableau dans le sous-menu tableau

Initialisation dun tableau


On peut galement construire un tableau, lments aprs lments, dimension aprs dimension. Sur le diagramme, slectionner la fonction construire un tableau dans le sous-menu tableau

Tableaux - fonctions
Il existe galement une fonction permettant de retourner la taille dun tableau Sur le diagramme, slectionner la fonction taille dun tableau dans le sous-menu tableau

Tableaux - fonctions
Il est possible dextraire la valeur de nimporte quelle cellule dun tableau Sur le diagramme, slectionner la fonction indexer un tableau dans le sous-menu tableau

On peut galement extraire une ligne avec cette fonction

Tableaux - fonctions
Il est possible dextraire une partie dun tableau Sur le diagramme, slectionner la fonction sous-ensemble dun tableau dans le sous-menu tableau

Chanes de caractres
Dans cette partie, nous prsenterons la manipulation de chanes de caractres sous Labview. Crer un nouveau VI Sur la face dentre: crer deux commandes chane que lon nommera respectivement dbut et fin (menu chane&chemin ) Ajouter un indicateur chane chane sortie Ajouter une commande numrique Nombre

Formater en chanes
Sur le diagramme, ajouter la fonction formater en chane dans le sous-menu Chane Chane de format (spcifie la conversion) Chane dentre

Entre(s) additionnelles (nombres, chanes)

Chane en sortie

Formater en chanes
Sur le diagramme: Connecter Dbut lentre de chane de la fonction formater en chane Ajouter une deuxime entre supplmentaire Connecter Nombre la premire entre supplmentaire Connecter Fin la deuxime entre supplmentaire

Contrles de chanes
Sur le diagramme, faire un clic-droit sur la commande de chane Slectionner mettre jour la valeur pendant la saisie , option permettant une mise jour du contenu de la chane sans avoir presser sur entre ou sur le bouton Remarque: On peut galement slectionner loption limiter

une seule ligne

Formater en chanes
Sur le diagramme, connecter la sortie de la fonction lindicateur chane sortie Lancer lexcution en continu Ajouter du texte dans les commandes dbut et fin et un nombre dans la commande numrique Nombre Lindicateur de chane chane sortie doit montrer la concatnation des trois entres

Formater en chanes

Formater en chanes
Maintenant, il serait intressant de mieux contrler laffichage de la chane de sortie. Ceci peut tre ralis en spcifiant le format de la chane de sortie. Ces chanes de caractres permettant cette spcification sont semblables celles utilises en C (pour les fonctions printf, scanf ) Sur le diagramme, faire un clic-droit sur la fonction formater en chane Slectionner loption Editer la chane de format

Formater en chanes
Slectionner justifier droite , combler en utilisant des espaces , largeur de champ min=5 et prcision=3 Slectionner format chane , justifier droite , largeur de champ min=5 Noter comment la chane de formatage est modifie dans la fentre chane de format correspondante Cliquer sur OK et noter que la chane gnre a t ajoute au diagramme Lancer lexcution du VI et observer

Formater en chanes

Formater en chanes

On peut remarquer quil nest pas possible de modifier laffichage du texte Dbut (chane dentre) Ceci peut tre quand mme ralis en considrant le texte Dbut comme une entre supplmentaire et en laissant la chane dentre vide

Extraire dune chane


Il est galement possible dextraire dune chane de caractres des lments individuels qui composent cette chane Crer un nouveau VI Sur la face-avant crer: 3 commandes numriques Longueur chane, Offset chane et Offset nombre 1 commande chane Chane initiale 1 indicateur chane Sous-chane 1 indicateur numrique Nombre

Extraire dune chane


On obtient une face dentre de ce type:

Extraire dune chane


Sur le diagramme crer: Une fonction Balayer une chane Une fonction Sous-ensemble d'une chane Faire le diagramme suivant:

Extraire dune chane


Entrer un texte dans Chane initiale (ex: Aujourdhui, la temprature est de 25,6 C) Lancer lexcution du VI en continu Modifier les diffrents paramtres Longueur chane, Offset chane et Offset nombre

Extraire dune chane


On voit ici que lextraction du nombre 25,6 dpend fortement de la valeur de Offset nombre Pour viter lutilisation de cet offset, on peut galement balayer chaque sous-chanes existantes entre chaque espace Cependant, cette technique ncessite de connatre lavance le contenu de la chane

Extraire dune chane


Cette chane de format dfinit les diffrents mots de la chane

Remarque: il nest pas ncessaire de connecter toutes les sorties un indicateur.

Fichiers entres/sorties
Il y a trois types de fichiers: Fichiers ASCII (qui peuvent tre lus par dautres logiciels comme Excel, Origin) Fichiers datalog (format propre Labview et qui peut contenir de multiple formats de donnes) Fichiers binaires (les plus rapides et petits) Dans ce cours, nous nous limiterons aux fichiers ASCII

Fichiers E/S ASCII


5 fonctions basiques sont disponibles, chacune pouvant tre trouves dans le sous-menus E/S sur fichiers dans palette Fonctions : crire des caractres dans un fichier crire une chane dans un nouveau fichier ou ajouter une chane dans un fichier dj existant Lire des caractres dans un fichier Lire un nombre spcifi de caractres dans un fichier

Fichiers E/S ASCII


Lire des lignes dans un fichier Une ligne tant dfinie par un retour chariot ou caractre spcifique (EOF) crire dans un fichier tableur Converti un tableau 1D ou 2D en une forme lisible par un logiciel tableur (ex: excel) Lit dans un fichier tableur Lit un nombre spcifi de lignes partir dun fichier numrique et places les donnes en tableaux 2D

Fichiers E/S ASCII


Exercice: Crer un nouveau VI Crer un tableau, un graphe et une commande numrique Utiliser la fonction Gnrer un signal (rpertoire Labview6\activity) Lobjectif de cet exercice est de gnrer un signal avec la fonction, dafficher le contenu sur un graphe (et dans un tableau 1D de 100 points), et de sauver le rsultat dans un fichier tableur sur 2 colonnes: n point | valeur de la fonction

Fichiers E/S ASCII

Fichiers E/S ASCII

Fichiers E/S ASCII


Un autre exemple.

Fichiers E/S ASCII

Multi-threading

Dans cette partie, nous prsenterons le multifentrage sous Labview Ouvrir le fichier multithread1.vi Lancer lapplication

Multi-threading

Multi-threading

Multi-threading

La vitesse de chaque boucle peut tre contrle Si on appuie sur un des boutons STOP : La boucle concerne sarrte sans altrer le fonctionnement de lautre boucle MAIS, il nest pas possible de redmarrer la boucle sans arrter lautre Modifions maintenant le VI de manire avoir un seul bouton commandant larrt des 2 boucles

Multi-threading

Supprimer le 2me bouton STOP

Multi-threading

Connecter le 1er bouton la condition de sortie de la 2me boucle

Multi-threading
Mme si cette connexion est accepte, le programme ne sexcute pas correctement (la boucle 2 ne dmarre jamais)

Essayons une autre possibilit : placer le boolen en dehors des deux boucles

Multi-threading

Multi-threading
Les deux boucles fonctionnent, mais on ne peut pas les stopper Pour rsoudre ce problme, nous allons utiliser des variables locales ce qui permettra de rendre accessible la variable STOP bouton1 dans les deux boucles 2 faons de crer une variable locale: Sous-menu Structures de la palette Fonctions Clic-droit sur la commande ou lindicateur de la variable

Variables locales
Si on cre la variable locale partir du sous-menu Structures , celle-ci apparatra sous la forme suivante:

Ceci indique quaucune variable na t assigne pour linstant la variable locale

Variables locales
Pour raliser cette assignation, il suffit de faire un clic-droit sur lobjet et de choisir la variable dans le menu slectionner un lment Slectionner un lment entranera le fait que la variable locale prendra le nom et le type de llment slectionn Dans notre exemple, la variable locale prendra le nom STOP boucle 1 et sera de type boolen:

Variables locales
Il ny a pas de limites aux nombre de variables locales que lon peut associer une variable Une variable locale peut tre de deux types: Variable locale en lecture Variable locale en criture On peut modifier le type lecture/criture par un clic-droit sur la variable locale Reprenons maintenant notre VI multithread.vi

Multi-threading
Variable locale en criture

Les 2 boucles sont maintenant contrles par le mme bouton STOP


Variable locale en lecture

Variables globales
Nous allons maintenant introduire la notion de variables globales Une variable globale agit de faon similaire une variable locale except le fait que lon peut transfrer cette variable dun VI un autre Nous allons voir cette application travers un exemple similaire au prcdent

Variables globales
Crer un nouveau VI boucle1.vi Sur la face dentre, crer: un bouton-poussoir (boolen) stop un graphe droulant (chelle Y: 01) un bouton rotatif dlai (U32, chelle 0500) Sur le diagramme, crer: une boucle WHILE un gnrateur de nombre alatoire une fonction attendre un multiple de ms

Variables globales

Sarrter sur condition vraie

Variables globales
Sur le diagramme, crer: une variable globale partir du sous-menu structures et la placer ct de la variable stop On doit avoir lcran le symbole suivant: double cliquer sur licne (ce qui ouvre une nouvelle fentre) ajouter un bouton-poussoir boolen gStop sauver le VI sous le nom stop_global.vi fermer le VI

Variables globales
Sur le diagramme de boucle1.vi : clic-droit sur la variable globale slectionner llment gStop vrifier que la variable soit en criture connecter stop la variable globale gstop

Variables globales
Diagramme de boucle1.vi :

Variables globales
Faire un nouveau VI boucle2.vi , semblable boucle1.vi sans le bouton stop:

Variables globales
Diagramme de boucle2.vi :
Variable globale en lecture

Variables globales
Lancer les deux VI boucle1.vi et boucle2.vi comme prcdemment, on peut contrler de manire indpendante la vitesse de chaque boucle Si on presse sur le bouton stop de boucle1.vi, on arrte lexcution des deux Vis Remarque: Il nest pas possible de dmarrer boucle2.vi avant davoir lancer boucle1.vi Pourquoi???