Académique Documents
Professionnel Documents
Culture Documents
Cours Labview
Cours Labview
Cours 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
http://lasim.univ-lyon1.fr/recherche/onlisno/Labview.html
LabView
Pour commencer
Ecrans louverture
Face avant
Diagramme
Diagramme - Fonctions
Outils
Position / Taille / Selection
Texte
Changement valeur
Cblage
Point d'arrt
Choix couleur
Raccourci menu
objet
Dplacement
fentre
Sonde
Prendre 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)
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)
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)
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
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 )
Excution en continu
<clic gauche> sur la double flche :
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
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
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
Excution en continu
<clic gauche> sur la double flche :
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 - 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
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
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 :
Utilisation de sousVis
pour utiliser un sousVi, dans le diagramme, choisir dans la
palette de fonctions slectionner un VI
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
Sortie
F
Sortie
F
T
Faux
entre pour Faux
Sortie
F
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
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 )
Compteur ditration
Terminal conditionnel
choix (<clic droit>) :
arrter si VRAI
arrter si FAUX
Trace pression
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
pour N = 4 i=0,1,2,3
indice de litration
en cours
(commence 0)
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 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...
La bote de calcul
Diagramme
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:
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
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
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
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
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
Multi-threading
Multi-threading
Multi-threading
Multi-threading
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)
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:
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
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 :
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???