Upload
mohamed-berriri
View
337
Download
7
Embed Size (px)
Citation preview
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 1 sur 55
COURS LabVIEW
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 2 sur 55
Chapitre 1 INTRODUCTION
I LA PROGRAMMATION Un ordinateur en fonctionnement ralise des tches pour lesquelles il a t programm.
Donnes
Traitement Informatique
Rsultats
TexteSonImagesmesures
TexteSonImagesmesures
Entres Sorties
Le programme est crit dans un langage de programmation, en respectant une syntaxe propre au langage choisi.
COMPILATEUR
Langage de programmation
Application autonome
Texte => Fichier source
Fichier excutable
Logiciel install dans l'ordinateur
crire en respectant la syntaxe d'un langage, la suite des tches devant tre excutes par l'ordinateur, de faon logique et structure
Exemples de langages de programmation :
Langage Machine
Assembleur
Langage Evolus :C, Pascal, Fortran, BasicVisual Basic, LabVIEW
Le seul comprhensible par l'ordinateur
Compilation = Traduction
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 3 sur 55
II ALGORITHME Programmer, cest crire en respectant la syntaxe d'un langage, la suite des tches devant tre excutes par l'ordinateur, de faon logique et structure. On ne se lance pas crire un programme sans avoir rflchi au problme pos, et la faon de le rsoudre. Il faut laborer un algorithme :
S u ite d 'in s t r u c t io n s q u i u n e fo is e x c u t e s c o r re c te m e n t c o n d u it u n r s u l ta t d o n n
A lg o r it h m e
A lg o r i th m iq u e S c ie n c e q u i tu d ie la s t r u c tu re lo g iq u e d e s p ro g ra m m e s
Lalgorithme est indpendant du langage :
Algorithme
CPascal
Fortran
Basic
LabVIEW Visual Basic L'algorithme se ramne une combinaison de 4 familles d'instructions :
- Affectation de variables - Lecture criture
- Tests - Boucles
III QUEST CE QUE LabVIEW ? LabVIEW est un logiciel cr en 1985. Cest un logiciel de dveloppement dapplications dinstrumentation plus particulirement destin lacquisition des donnes de mesure et leur traitement. Il utilise un langage de programmation graphique. Cet enseignement a t mis en place en DUT MP Montbliard en 1995. La version utilise en TP est la version 7.1 sous Linux ou Windows.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 4 sur 55
IV STRUCTURE DUN PROGRAMME LABVIEW LabVIEW tant plus particulirement destin linstrumentation, un programme LabVIEW apparat constitu comme un appareil de mesure : Une face avant : Un diagramme :
V LES ENTREES SORTIES 1/ DEFINITION Un programme informatique manipule des donnes fournies par lenvironnement extrieur :
- Entres au clavier par lutilisateur - Acquises par une carte dacquisition (mesure de Temprature par exemple)
- Dlivres par un appareil de mesure (Voltmtre, via une liaison informatique)
- Tires dun fichier tableur - Etc
Ces donnes constituent des variables dentre. Leur traitement (par exemple : filtrage, analyse frquentielle ) donne naissance des rsultats (affichage dun graphe dvolution de la temprature mesure) ou engendre des actions de commande dlivres par lordinateur (commande darrt de chauffage). Ces informations constituent des variables de sortie. Llaboration dun algorithme ncessite de bien identifier les entres/sorties.
La face avant est linterface avec lutilisateur.
Le diagramme correspond aux circuits internes de lappareil et constitue le cur du programme
Programme Variables de sortie
Variables dentres
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 5 sur 55
2/ ENTREES SORTIE DANS LabVIEW Les entres sorties sont dposes sur la face avant sous la forme dobjets tels que :
o boutons poussoirs o interrupteurs o potentiomtres rotatifs ou glissire o Afficheur numrique en lecture. o Etc
o crans doscilloscope o Afficheurs numriques en criture (affichage) o Vu-mtres o Etc
Ces objets sont disponibles dans la palette de commandes qui apparat par clic droit sur la face avant. On les place par gliss dpos .
VI LE PROGRAMME LabVIEW Le programme est crit en langage graphique dans une deuxime fentre diagramme indissociable de la face avant. Les entres sorties apparaissent alors sous la forme de terminaux.
entres
sorties
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 6 sur 55
FACE AVANT
1re variable
2me variable
FACE ARRIERE : DIAGRAMME
Lcriture du programme consiste relier entre eux les terminaux dentres sorties en utilisant :
o des oprateurs arithmtiques o des oprateurs boolens o des fonctions de calcul toutes prtes o des structures de programmation (boucles, tests etc )
Ces outils sont disponibles dans la palette fonction apparaissant par clic droit dans le diagramme.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 7 sur 55
Les liaisons sont ralises laide de la bobine de la palette doutils disponible par le menu Fentre/palette doutils (Windows/tools palette).
La palette d'outils (Tool Palette)
Pour agir sur les commandes
Pour cbler
Texte
Colorer un objet
Pipette (copier une couleur)
Poser une sonde (probe)
Placer un point d'arrt
Bouger l'ensemble(diag ou FA)
Lensemble face avant + diagramme constitue un programme LabVIEW encore appel VI (Virtual Instrument). Ce VI peut tre encapsul cest dire mis en bote sous la forme dune icne constituant un sous programme, une fonction pouvant tre utilise dans un autre diagramme.
VII - EXERCICES CHAPITRE 1
EXERCICE 1.1 Raliser un programme qui affiche sur un indicateur numrique la somme, la diffrence, le produit et le quotient de deux nombres a et b. Sauvegarder ce travail EXERCICE 1.2 Raliser un programme qui allume un afficheur boolen si deux interrupteurs K1 et K2 sont enfoncs. EXERCICE 1.3 Raliser un programme qui affiche sur un indicateur chane de caractre unique le contenu deux commandes de chanes de caractre.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 8 sur 55
Chapitre 2 LES VARIABLES ARITHMETIQUES
I DECLARATION DE VARIABLE
Un programme manipule des valeurs contenues dans des variables. A chaque variable correspond un emplacement mmoire repr par une adresse prcise, et dont le contenu est la valeur prise par la variable au cours de lexcution du programme.
LA MEMOIRE :
Empilement d'octets
Lorsque lon dpose une variable dentre ou sortie sur la face avant dun VI, on dfinit :
o Le nom de la variable : son tiquette o La reprsentation ou le type de la variable : la place en octet occupe par la variable
et le mode de codage.
II ENTREES SORTIES DANS LabVIEW
PALETTE DE COMMANDES
Les commandes (sauf tableaux)
Palette complte : il suffit de la parcourir pour tout comprendre (ou presque)
Une adresse fixe
Un contenu (valeur) variable
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 9 sur 55
PALETTE DE COMMANDES
Les indicateurs (sauf tableaux)
Palette complte : On retrouve les commandes et les indicateurs
III INITIALISATION
Initialiser la variable, cest lui donner une valeur quelle prendra ds le dbut du programme. Pour cela un clic droit sur lobjet, puis oprations sur les donnes puis valeur actuelle par dfaut.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 10 sur 55
IV TYPE DE VARIABLE 1/ CODAGE DES NOMBRES ENTIERS a Codage sur un octet
CODAGE SUR UN OCTET
de 00000000 11111111
de 0 28 -1 = 255Valeurs dcimales possibles
Type unsigned char (langage C) Type U8 en LabVIEW
de 00000000 01111111
de 0 27 -1 = 127
de 11111111 10000000
de -1 - 27 = -128
positif
ngatif
A v e c b it d e s ig ne
Type char (langage C) Type I8 en LabVIEW
Complment deux
S a ns b it d e s ig ne
b - Comment changer la reprsentation dans LabVIEW ?
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 11 sur 55
c Codage sur 2 octets
CODAGE SUR DEUX OCTETS
de 0 216 -1 = 65535Valeurs dcimales possibles
S a n s b it d e s ig n e
A v e c b it d e s ig n e
Type unsigned int (langage C) Type U16 en LabVIEW
de 0 215 -1 = 32767
de -1 - 215 = -32768
positif
ngatif
Type int (langage C) Type I16 en LabVIEW
Complment deux
2/ NOMBRES A VIRGULE FLOTTANTE
Un nombre virgule flottante peut toujours s'crire :
+ 0,662 * 2 - 26
Signe : 1 bit Mantisse : 23 bitsExposant :8 bits
Valeurs extrmes possibles : Nombre nul : 0Nombre positifs de : 1,21 10 -38 3,40 10 38Nombres ngatifs de : - 1,21 10 -38 - 3,40 10 38
Type : Float en C, Type SGL en LabVIEW
SIMPLE PRECISION : 4 octets
1 bit 8 bits 23 bits
PRECISION ETENDUE : 10 octets
1 bit 15 bits 64 bits
DOUBLE PRECISION : 8 octets
1 bit 11 bits 52 bits
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 12 sur 55
3/ VARIABLES BOOLEENNES
Variable Boolenne
Vraie : True
Fausse : False
Codage sur 1 seul bit
N'existe pas dans tous les langages :
OK en labVIEW mais pas en C !
V FORMATS DAFFICHAGE
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 13 sur 55
Exemples de formats daffichages :
VI - EXERCICES CHAPITRE 2
EXERCICE 2.1 Reprendre le programme de lexercice 1.1 et modifier le type des variables a et b. Excuter le programme, noter et commenter les rsultats surprenants obtenus. EXERCICE 2.2
Raliser un programme qui calcule les racines dune quation du second degr si >0. On pourra utiliser la bote de calcul. EXERCICE 2.3 Raliser un programme qui convertit un nombre de mois, de jours, dheures, de minutes et de secondes en secondes. EXERCICE 2.4 Raliser un programme qui convertit un nombre de secondes en mois, jours, heures, minutes et secondes.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 14 sur 55
Chapitre 3 LES TESTS
I EXEMPLE
Contact fin de course
Le wagon doit s'arrter quand il rencontre l'obstacle.
Organigramme Pseudo code
Variable Mav boolenneVariable contact boolenneMav 1Lire contactSi contact = 1
alors Mav 0 sinon aller 4me ligne fin
non
Marche avant
Contact appuy ?oui
Arrt moteur
Lire contact
II - DEFINITION
Une structure conditionnelle (structure de choix) permet de raliser une suite d'instructions ou une autre, en fonction du rsultat d'un test.
Dbut
Conditionoui
Instructions 1
non
Instructions 2
Suite
DbutSi condition vraie
alors instructions 1sinon instructions 2
Suite
En LabVIEW : excution d'un diagramme ou d'un autre suivant le rsultat vrai ou faux d'un test
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 15 sur 55
III EN LabVIEW
Diagramme dlimit, excut si condition vraie
Condition crire
Cliquer pour visualiser le diagramme ralis si condition fausse
Un seul diag visible la fois
Le diagramme
cach
La condition :
met en jeux
un oprateur
de
comparaison
Le rsultat boolen de la
condition est connect au
slecteur ?
La transmission des
donnes se fait via un
tunnel d'entre ou de
sortie.
Les tunnels de sortie
doivent tre relis dans les deux
diagrammes conditionnels
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 16 sur 55
IV LA CONDITION
La comparaison peut tre simple : elle met en oeuvre un oprateur de comparaison (>,
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 17 sur 55
VI - EXERCICES CHAPITRE 3
EXERCICE 3.1
Ecrire un programme qui : - compare deux nombres a et b
- allume une led si a > b
- affiche sur un afficheur numrique a si a < b - affiche b sur le mme afficheur si a > b.
EXERCICE 3.2 Reprendre le programme de lexercice 2.2 de calcul des racines de lquation du second degr et traiter en utilisant la structure conditionnelle tous les cas possibles en fonction de la valeur du discriminant. On utilisera la reprsentation complexe pour les indicateurs numriques affichant les solutions de lquation.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 18 sur 55
Chapitre 4 LES BOUCLES
I EXEMPLE 1
Contact fin de course
Le wagon doit s'arrter quand il rencontre l'obstacle.
Organigramme Pseudo code
Variable Mav boolenneVariable contact boolenneMav 1Faire tant que contact = 0
Lire contactMav 0fin
Ici, on lit l'tat du contact tant qu'il n 'a pas t enfonc
non
Marche avant
Contact appuy ?oui
Arrt moteur
Lire contact
II DEFINITION BOUCLE WHILE
La boucle While permet la rptition d'une suite d'instruction tant qu' une condition est vraie.
Dbut
Conditionoui
Instructions rpter
non
Suite
Instructions du dbutFaire
instructions rptertant que condition
suite du programme
While = Faire... tant que ....
Toujours ralis au moins une fois !
Remarque : Le nombre ditrations nest pas dtermin priori.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 19 sur 55
III BOUCLE WHILE SOUS LabVIEW
Diagramme rpt
Terminal conditionnel
Terminal d'itration : compte les rptitions
Exemple : compte rebours
Attente (configure 1s)
2 possibilits
Pseudo code correspondant :
Variable N type entierVariable compt type entierN 100Faire
compt N-1afficher comptattendre 1stant que N >0
Fin
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 20 sur 55
III EXEMPLE 2
Le wagon doit faire 10 aller-retour.
Dbut
i = 9oui
i 0
non
Fin
aller-retour
i i+1
Organigramme Pseudo code
La variable i compte les rptitions(itrations)
Variable i type entierPour i = 0 9
aller-retouri i+1
fin
IV DEFINITION BOUCLE FOR
Remarque : Le nombre ditrations est dtermin priori.
La boucle FOR permet la rptition d'une suite d'instructions un nombre prdtermin de fois
Instructions du dbut Pour i = 0 N-1, faire :
instructions rpter i i+1
suite du programme
FOR = Pour ... faire ...
Dbut
i = N-1 oui
i 0
non
Suite
Instructions rpter
i i+1
Organigramme Non ralis si N = 0
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 21 sur 55
V BOUCLE FOR SOUS LabVIEW
Diagramme rpt
Terminal d'itration : compte les rptitions
Nombre de tours de boucle
Avec 10 tours de boucle, i voluera de 0 9
VI COMMANDES ET INDICATEUR DANS OU HORS DE LA BOUCLE
Modifications par l'utilisateurprises en compte
Valeur transmise au premiertour de boucle.
Toute intervention de l'utilisateurdevient inutile
Valeur obtenue au dernier tour
de boucle
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 22 sur 55
VII EXERCICES CHAPITRE 4 Exercice 4.1 Raliser un programme qui gnre et affiche toutes les secondes un nombre alatoire entier compris entre 0 et 20 tant que lon na pas appuy sur un bouton STOP. Afficher galement la moyenne des derniers entiers gnrs sur un afficheur numrique. Exercice 4.2 Raliser un programme qui calcule n! (factorielle n). n est un nombre entier positif On rappelle que n! = n*(n-1)*(n-2)* . 2*1 et que 0! = 1 Exercice 4.3 Raliser un programme qui affiche successivement toutes les secondes les 20 premires valeurs de la suite gomtrique dfinie par son premier terme u0 et sa raison q entrs au clavier sur des afficheurs numriques. Rappel : un = u0 * q
n
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 23 sur 55
Chapitre 5 LES TABLEAUX
I DEFINITION
Un tableau permet de regrouper plusieurs variables numriques de mme type sous une mme appellation. Les diffrents lments du tableau (array) sont alors reprs par un indice (index). Le nombre N dlments du tableau constitue sa taille (array size)
LA MEMOIRE :
Empilement d'octets
Exemple : Tableau nomm Tab de 3 entiers type U8
Tab[0]Tab[1]Tab[2]
Chaque lment du tableau est repr par un indice i allant de 0 N-1
Les trois lments se retrouvent trois adresses diffrentes qui se suivent
II TABLEAUX DANS LabVIEW
Clic droit sur la face avant
Tableau vide
Tableau de variables numriquesIndice du 1er
lment visible
Quand on dpose le tableau sur la face avant, il est vide. Il convient donc de le remplir laide du type de variable choisi : tableau de variables numriques, tableau de boolens, tableaux de chanes de caractres etc
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 24 sur 55
Tableau vide
Tableau de variables numriques
III OPERATIONS SUR LES TABLEAUX En plus des oprations arithmtiques classiques, il existe des fonctions spciales :
Les fils de liaisons des donnes tableaux sont en traits pais de la couleur du type de la variable : ici, on a des tableaux de variables numriques virgule flottante, les connexions sont donc de couleur orange. Indice et taille du tableau sont des entiers donc couleur bleue.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 25 sur 55
IV INDEXATION
1/ En entre
Lors du cblage, l'indexation se ralise automatiquement.
Indexation : Au ime tour de boucle, le ime lment du tableau
est transmis par le tunnel d'entre.
Tous les lments du tableausont multiplis par i
chaque tour de boucle
Pas d'indexation : le tableau est transmis chaque tour de boucle dans son intgralit
par le tunnel d'entre.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 26 sur 55
2/ En sortie
indexation : un tableau des valeurs calcules chaque tour de boucle est transmis via le tunnel de sortie quand la boucle est termine
Pas d'indexation : la dernire valeur
calcule au dernier tour de boucle est transmise
via le tunnel de sortie
#Page 124
V EXERCICES EXERCICE 5.1 Raliser un programme qui gnre automatiquement un tableau de 10 nombres entiers compris entre 0 et 20. Modifier ce programme pour afficher successivement toutes les secondes les lments du tableau sur un afficheur numrique. EXERCICE 5.2 Raliser un programme qui gnre automatiquement un tableau de 10 nombres entiers compris entre 0 et 20. (faire un copier coller de la 1re partie de lexercice prcdent). Une fois le tableau gnr, on souhaite liminer les 5 lments les plus petits sans les remplacer, et afficher sur un afficheur numrique la moyenne des lments du tableau.
a) Aprs avoir raliser le tri du tableau b) Sans trier pralablement le tableau et sans changer lordre des lments
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 27 sur 55
EXERCICE 5.3 : abscisses dune chelle linaire. Gnrer un tableau de N+1 points dabscisse x compris entre a et b dune graduation linaire. N, a et b sont des commandes numriques saisies par lutilisateur du programme.
ECHELLE LINEAIRE Pas : distance entre deux points. On a : pas = (b a) / N Passage d'un point l'autre : xi = x i-1 + pas Ainsi : xi = a + i . pas On a une suite arithmtique de premier terme x0 = a et de raison q = pas
EXERCICE 5.4 : abscisses dune chelle logarithmique Gnrer un tableau de N+1 points dabscisse x compris entre a et b dune chelle logarithmique. N, a et b sont des commandes numriques saisies par lutilisateur du programme.
ECHELLE LOGARITHMIQUE
Pas : distance entre deux points. On a : pas = (log b log a) / N = log (b/a)1/N
Passage d'un point l'autre : log xi = log x i-1 + pas Ainsi : log xi = log a + i . pas = log a + i log (b/a)1/N = log a + log (b/a)i/N
= log [ a . (b/a)i/N ] Donc : xi = a . (b/a)i/N xi = a . (b/a)i-1/N . (b/a)1/N xi = xi-1 . (b/a)1/N ou xi = a . [(b/a)1/N ] i
On a une suite gomtrique de premier terme x0 = a et de raison q = (b/a)1/N
a b
ime point
N+1 points rgulirement espacs
i+1 me point
N+1 points rgulirement espacs
log a log b
ime point
i+1 me point
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 28 sur 55
Chapitre 6 LES GRAPHES
I GRAPHE DEROULANT : Waveform Chart
Le rle du graphe droulant : Waveform Chart est d'afficher l'volution temporelle d'une donne variable dans le temps.
A chaque instant le graphe ne reoit qu'une donne la fois : Ce n'est pas un tableau de valeurs.
Par programmation, il faut donc rpter l'envoides donnes au graphe, le terminal graphe
doit donc tre dans une boucle while.
historique Partie visible
Donnesperdues
Exemple dans LabVIEW :
Le Graphe droulant est un indicateur.Par dfaut son type est DBL.
Ce n'est pas un tableau de valeur (trait fin):Cet indicateur ne reoit qu'une valeur la fois,
il doit tre dans la boucle.
Gnration d'un nombre alatoire
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 29 sur 55
Certains paramtres du graphe peuvent tre ajusts : clic droit sur lobjet graphe dans la face avant.
LE FORMATAGE DU GRAPHE
II GRAPHES : Waveform Graph
Le rle du graphe est de reprsenter graphiquement un tableau de donnes.
Le graphe reoit simultanment l'ensemble des donnes
sous forme d'un tableau de valeurs.
Par programmation, il ne faut envoyerles donnes au graphe qu'une seule fois,
le terminal graphe doit donc tre hors de la boucle.
donne01234567
510152025303540
Les donnes sont gnralement calcules dans une boucle
Le tableau peut tre obtenu par indexationdu tunnel de sortie de la boucle
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 30 sur 55
Exemple dans LabVIEW :
L'indice du point (n ligne du tableau)
Le Graphe est un indicateur de type tableau.
Par dfaut son type est DBL.
Cet indicateur reoit toutes les valeurs la fois,il doit tre hors de la boucle.
III GRAPHE XY
Donne X
Le rle du graphe XY est de reprsenter graphiquement un tableau de donnes Y en fonction d'un tableau de donnes X
Le graphe reoit simultanment l'ensemble des donnes
sous forme de 2 tableaux de valeurs.
Par programmation, il ne faut envoyerles donnes au graphe qu'une seule fois,
le terminal graphe XY doit donc tre hors de la boucle.
Donne Y0,10,20,30,40,50,60,70,8
510152025303540
Les donnes sont gnralement calcules dans une boucle
Les 2 tableaux sont obtenus directement au niveau des 2 tunnels de sortie de la boucle.
Ils sont assembls pour former un cluster.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 31 sur 55
Utilisation dans LabVIEW :
Connecter le tableau des abscisses ici
Connecter le tableau des ordonnes ici
Exemple dans LabVIEW :
apparat automatiquement
On dispose icid'un cluster
(assemblage)de 2 tableaux.
Trac de courbe, chelle linaire :
xi = xd + i * (xf-xd)/N
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 32 sur 55
IV - EXERCICES EXERCICE 6.1 : Graphe droulant Raliser un programme qui affiche sur un graphe droulant une sinusode bruite. La fonction sinusodale sera y = 10 sinx Le bruit est gnr par un nombre alatoire dont lamplitude est rglable grce une commande situe sur la face avant. Le programme sarrtera lors de lappui sur un bouton STOP. EXERCICE 6.2 : Graphe Reconsidrer le programme prcdent pour afficher deux priodes de la sinusode bruite. 100 points seront calculs.
EXERCICE 6.3 : Graphe XY chelle linaire
Ecrire le programme permettant dafficher sur un graphe la fonction f(t) = U sin (2pif t + ) pour t compris entre 0 et Tmax.
Le nombre de points N, f, et Tmax seront modifiables sur la face avant. Le graphe doit tre gradu en temps. Lchelle temporelle est linaire. EXERCICE 6.4 : Graphe XY chelle logarithmique Ecrire un programme permettant dafficher sur un graphe la courbe de rponse en frquence dun
circuit RC : G (f) = 20 log [ 1 / ( 1 + (RC.2pif) 2 ) ] R et C sont modifiables grce une commande numrique. Le nombre de points N est modifiable galement sur la face avant. Le graphe utilisera en abscisses une chelle logarithmique (points rgulirement espacs) qui sera gradue en Hz.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 33 sur 55
Chapitre 7 LES REGISTRES A DECALAGE OU NUDS DE RETROACTION
I EXEMPLE DUTILISATION
EXEMPLE : Programmer n!
On sait que n! = (n-1)! . n
Variable facto type entierVariable i type entierfacto 1Pour i = 1 N faire
facto facto.ii i+1
afficher factofin
Pour calculer n!, il faut avoir d'abord calcul (n-1)!Pour calculer (n-1)!, il faut avoir d'abord calcul (n-2) !Pour calculer (n-2)!, il faut avoir calcul (n-3)!
Etc ....
A la ime itration, on utilise le rsultatcalcul l'itration
prcdente
En Labview cela se fait grce au registre dcalage
Structure itrative boucle for
II REGISTRE A DECALAGE DANS LabVIEW
On utilise des registres dcalage dans les boucles For et dans les boucles While pour transmettre des valeurs d'une itration l'itration suivante.
i = N-1
Calcul
i = N
Calcul
i = N+1
Calcul
Au ime tour de boucle, la valeur calcule est fonction
de la valeur calcule au tour prcdent
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 34 sur 55
Exemple : factorielle n avec registre dcalage :
Clic droit sur le bord de la boucle
Valeurs au dernier tour de boucle
Factorielle n
La valeur calcule la dernire itration sort par
le tunnel du registre
III DECALAGES MULTIPLES
1/ EXEMPLE
Exemple : Calculer et mettre jour la moyenne M des 3 dernires mesures mi
On a Mi = ( m
i + m
i -1 + m
i 2 ) / 3
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 35 sur 55
On rpte la mesure priodiquement => boucle while
Pour calculer Mi, on a besoin des valeurs mesures dans les deux itrations prcdentes.
i = N-1
Acquisition
Calcul Affichage
i = N
Acquisition
Calcul Affichage
i = N+1
Calcul
Acquisition
Affichage
Ce qui donne dans LabVIEW :
Tirer avec la souris pour disposer de la donne transmise par la i-2me itration
mi
mi-1
mi-2
La mesure est simule par la gnration d'un nombre alatoire
Affichage sur un graphe droulant de la moyenne des trois derniers nombres alatoires gnrs
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 36 sur 55
IV NOEUDS DE RETROACTION
Dans une boucle, si on retourne la valeur calcule sur l'entre d'un oprateur, il apparat un noeud de rtroaction, fonctionnant comme le registre dcalage.
Noeud de rtroaction
Initialisation du noeud de rtroaction pour le 1er tour de boucle
Par rapport au registre dcalage, le nud de rtroaction simplifie le cblage et fait apparatre clairement lappel du rsultat du calcul du tour de boucle prcdent. V EXERCICES EXERCICE 7.1 Avec laide de ce chapitre, reprendre lexercice 4.2 en utilisant un nud de rtroaction : Raliser un programme qui calcule n! (factorielle n). n est un nombre entier positif. EXERCICE 7.2 Reprendre lexercice 4.3 en utilisant le registre dcalage : Raliser un programme qui affiche successivement toutes les secondes les 20 premires valeurs de la suite gomtrique dfinie par son premier terme u0 et sa raison q entrs au clavier sur des afficheurs numriques. Rappel : un = un-1 * q EXERCICE 7.3 Tableaux et boucles imbriques (ne concerne pas forcment ce chapitre)
Gnrer un tableau de 15 lignes et 10 colonnes laide de nombres entiers alatoires compris entre 10 et +10. Modifier le programme pour remplacer les nombres pairs par 0.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 37 sur 55
Chapitre 8 LES SEQUENCES
I INTRODUCTION
Langage classique :
Flot d'instructions
Les instructions crites s'excutent squentiellement
Langage LabVIEW :
Flot de donnes
On ne matrise pasl'ordre d'excution
des instructions
II LA STRUCTURE SEQUENCE DANS LabVIEW
La structure squence dans LabVIEW :
La structure squence se prsente commeune succession d'tapes
semblable la pellicule d'un film
Dans chaque tape (frame) : un diagramme.Les tapes successives sont excutes dans l'ordre.
tape 1diag 1
tape 2diag 2
tape 3diag 3
Etc ...
Comme pour la structure condition, un seul diagramme n'est visible.Comme pour une boucle, on peut passer des valeurs d'une tape l'autre.
Les diffrentes tapes peuvent tre empiles (une seule visible la fois) ou droules. On retrouve cette structure dans la palette de fonctions, contrles dexcution.
La structure squence permet de reprendre le contrle de lordre dexcution du programme
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 38 sur 55
On ajoute les tapes grce au menu local apparaissant par clic droit sur le bord de la squence.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 39 sur 55
III EXEMPLE
Etape 0 : Acquisition du tempsGnration du nombre alatoire
tant qu'il est diffrent du nombre atteindre
Etape 1 : Acquisition du tempsCalcul et affichage de la dure
IV UTILISATION EN INFORMATIQUE DINSTRUMENTATION
Cette structure est souvent utilise en informatique d'instrumentation
Cette structure peut galement tre utilise galement pour commander un systme squentiel (feux de carrefour)
tape 1Configuration
carte d'acquisition
tape 2Acquisition
Sortie Commandetape 3
RAZ carte daq
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 40 sur 55
V PASSAGE DE VALEURS DANS LA SEQUENCE Le passage de valeurs dune tape lautre dune squence droule se fait naturellement au moyen dun tunnel.
Par contre dans une squence empile, il faut utiliser variable locale de squence : clic droit sur le bord de la squence. On dispose alors dune flche entrante distribuant la donne dans les autres tapes de la squence.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 41 sur 55
VI EXERCICE EXERCICE 8.1 : Ecrire un programme simulant et grant les feux de signalisation dun carrefour routier. Les 4 feux fonctionnant 2 par 2 sont raliss avec des leds colores.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 42 sur 55
Chapitre 9 COMPLEMENTS
I VARIABLES LOCALES Pour simplifier le cblage (liminer des fils de trop grande longueur), on peut avoir recours une variable locale. La variable locale cre prend le nom de la variable dorigine, et peut tre utilise en lecture ou en criture, forant ainsi la donne changer de valeur.
Dans lexemple ci-dessous, la variable locale est en lecture (variable dentre) et apparat comme une copie de a. Le terminal de sortie affichera donc (10+a)*a.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 43 sur 55
Dans lexemple ci dessous, la variable locale est en criture. Si la valeur de a tait 1 au lancement du programme, elle se transforme en 11 lors de son arrt.
II SOUS PROGRAMMES : ENCAPSULATION Nous souhaitons crer un sous programme encore qualifi de sous VI, de calcul du discriminant de lquation du second degr. Un Clic droit en haut gauche sur licne LabVIEW permet douvrir le menu local donn ci-dessous. Choisir Visualiser le connecteur.
LabVIEW sait que le programme manipule trois variables dentre et une sortie, et propose le connecteur correspondant. Il peut cependant tre chang. Il convient ensuite dassocier chaque rectangle du connecteur une variable dentre ou sortie. Pour cela il faut cliquer laide de loutil bobine, dabord sur lobjet de la face avant correspondant la variable, puis sur le rectangle de licne.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 44 sur 55
Ensuite, on peut modifier licne correspondant ce sous programme : Choisir modifier licne dans le menu local obtenu par clic droit sur le connecteur.
Il apparat alors la fentre ci-dessous permettant de modifier, grce une palette de dessin, lapparence de licne associe au sous VI.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 45 sur 55
Il convient ensuite de sauvegarder ce sous VI lemplacement dsir. Appel au sous dans un programme principal : Dans le diagramme du programme principal, on utilise la palette de fonction :
Une bote de dialogue invite ouvrir le sous VI souhait. On dpose ainsi licne correspondante dans le diagramme et elle peut tre utilise comme nimporte quel VI LabVIEW. (Voir ci-dessous).
Slectionner cette case de la palette de fonction
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 46 sur 55
III - EXERCICES DE SYNTHESE EXERCICE 9.1 : Comparateur hystrsis Un comparateur a hystrsis comporte deux seuils diffrents selon le sens de variation de la grandeur dentre. Le fonctionnement est dcrit par la caractristique de transfert s(e) donne ci-dessous. 1/ Ecrire un programme affichant sur un graphe droulant (waveform chart) la sortie s(t) pour une entre triangulaire priodique (priode T par exemple de 20 ms) tant que lon na pas appuy sur un bouton stop. 2/ Faire apparatre la caractristique de transfert s(e) sur un graphe XY.
s
+10
-10
e 5 -1
Quand e(t) augmente, s bascule 10 quand e > 5.
Quand e(t) diminue, s bascule +10 quand e < -1
+8
- 8
e(t)
t
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 47 sur 55
IUT BELFORT MONTBELIARD Dpt MESURES PHYSIQUES
EXAMEN PARTIEL DINFORMATIQUE 2004/2005 Sujet D Dure 3h
Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits Sauvegardez priodiquement votre travail EXERCICE 9.2 7 pts (2+2+3) Un rcepteur inductif aliment sous U = 220 V consomme une puissance active P . Lintensit du courant quil absorbe est I. P et I sont des commandes (potentiomtre rotatifs) sur la face avant. 0 < P < 5000 W et 0 < I < 50 A.
1/ Afficher sur un vu-mtre le cos.
2/ Ajouter une commande sur la face avant reprsentant un condensateur en parallle. Afficher le nouveau cos obtenu sur un second vu-mtre. Afficher le courant nouveau courant I consomm sur un indicateur. Rappel :
Qc = - C 100 pipipipi U2 tg = (Q+Qc)/P P = UI cos = U I cos
3/ Modifier le programme pour que la valeur idale de C conduisant cos dsir plac sur une commande en face avant soit trouve automatiquement et affiche sur un indicateur numrique. EXERCICE 9.3 6 pts (4+1+1) Un projectile est lanc dans le champ de pesanteur terrestre avec une vitesse initiale V0 faisant un
angle avec lhorizontale, partir dune position initiale de coordonnes (0,0). Les frottements tant ngligs, les quations horaires des coordonnes cartsiennes du centre dinertie sont :
y = - g t / 2 + ( V0 sin ) t x = ( V0 cos ) t
V0 et son des commandes sur la face avant telles que 0 < V0 < 100 et 0 < < 90 (attention, labVIEW calcule le cos ou sin dun angle en radians).
Tout contrle continu est soumis au rglement des examens de luniversit.
Toute tentative de fraude ou fraude avre, sous quelque forme que ce soit, met immdiatement fin lexamen, est immdiatement sanctionne par la note zro et est passible du conseil de discipline de luniversit.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 48 sur 55
1/ Faire apparatre dans un graphe xy la trajectoire du centre dinertie. Le programme devra tourner en boucle avec arrt par appui sur un bouton STOP. 2/ Modifier le VI pour faire apparatre sur un indicateur la flche (la hauteur maximale) de la trajectoire. 3/ Modifier le VI pour faire apparatre sur un indicateur la porte du tir : distance atteinte quand la coordonne y redevient nulle.
N.B : Avec les valeurs de V0 et de proposes, le pas temporel pourra tre t = 0,1 et le nombre de points N = 100. EXERCICE 9.4 7 pts (3,5+3,5) 1/ Raliser un programme qui affiche la variable yi pour i allant de 0 9 sur un graphe droulant sachant qu la ime itration :
yi = (xi /2 + x i-1/4 + x i-2 / 8) xi est un tableau de commandes numriques initialis (1, 0, 0.) Le droulement du graphe sera temporis par une attente de 100 ms. Lensemble du programme tournera en boucle et sarrtera par appui sur un bouton STOP.
N. B : Pour extraire llment dindice i dun tableau : palette fonction/tableau/index array : 2/ Raliser un programme qui affiche la variable yi pour i allant de 0 9 sur un graphe droulant sachant qu la ime itration :
yi = (xi + y i-1 ) / 2 xi est un tableau de commandes numriques initialis (1, 0, 0.) Le droulement du graphe sera temporis par une attente de 100 ms. Lensemble du programme tournera en boucle et sarrtera par appui sur un bouton STOP.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 49 sur 55
EXAMEN PARTIEL DINFORMATIQUE 2005/2006 Sujet A Dure 3h
Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits Sauvegardez priodiquement votre travail Traiter les exercices dans lordre impos
EXERCICE 10.1 Drivation dun sinus 1/ Tracer sur un graphe normal (waveform graphe) la courbe reprsentant la fonction sin(t) (On calculera N points pour quelques priodes).
2/ Sachant que la drive y(ti) = [ y(ti) y(ti-1) ] / t, laborer un tableau des valeurs de la drive chaque instant et superposer la courbe reprsentant y sur le mme graphe que y. N.B : On nutilisera pas de vi express pour laborer la drive, ni doutils labVIEW de drivation. EXERCICE 10.2 Cyclode Une roue de charrette de rayon R roule sans frottements ni glissement sur un plan horizontal la frquence de rotation n en tours/s. Les coordonnes dun point M de la roue vrifient les quations paramtriques suivantes :
x(t) = R [ 2pin t - sin( 2pint) ] et y(t) = R [ 1 cos(2pint) ] 1/ Raliser un programme qui affiche la courbe sur un graphe xy.
On calculera N = 1000 points, le pas temporel pourra tre t = 0,001s. R, n et t seront des commandes situes sur la face avant. 2/ Complter le programme pour afficher sur un indicateur numrique : La distance d parcourue par le point M cest dire la longueur des arches de cyclodes dessine reprsentes, sachant que :
d = { [x(t)]2 + [y(t)]2} On utilisera le procd ralis au 2/ de lexercice 1 pour laborer x et y. Pour lintgration, on pourra utiliser un VI express en choisissant le calcul par segments, et en divisant le rsultat par le nombre de points.
EXERCICE 10.3 Le Zanzibar Ce jeux se joue avec trois ds et deux joueurs. Le premier joueur (que l'on dterminera comme on veut mais sans dispute!) lance les ds. S'il fait un as (ou 1) il marque 100 points, s'il fait un 6 il marque 60 points, les autres faces du d indiquant le nombre de points correspondant (2= 2 points, 3= 3 points, 4= 4 points, 5= 5 points)
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 50 sur 55
= 100 points
= 2 points
= 3 points
= 4 points
= 5 points
= 60 points Chaque joueur joue alternativement en un lancer de 3 ds et on fait 3 tours. Le gagnant est celui qui a le plus de points. Laction de jeu sera lance par lappui par le joueur concern sur un bouton poussoir. Les points de chaque joueurs seront affichs sur deux indicateurs numriques. Afficher le joueur gagnant.
EXAMEN PARTIEL DINFORMATIQUE 2005/2006 Sujet B Dure 3h
Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits Sauvegardez priodiquement votre travail sous h:\ le fichier sera nomm : aa-votrenom1.vi pour lexo1 etc
I - Exercice 11.1
Une courbe cardiode est dfinie par son quation polaire : r = 1 + cos .
Les coordonnes cartsiennes en fonction de sont donc : x = (1+ cos ) cos et y = (1 + cos ) sin
Tracer sur un graphe XY la courbe cardiode.
On prendra 100 points sur une priode de 2pi. Le fichier sera nomm : a-votrenom1.vi
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 51 sur 55
II EXERCICE 11.2 Un nombre alatoire compris entre 0 et 10 est gnr toute les 500 ms pour simuler un signal audio. Les variations de ce signal sont visualises grce un vu-mtre. Une deuxime aiguille (clic droit sur le vu-mtre) permet de suivre lvolution de la crte du signal : elle affiche la valeur max des 5 dernires valeurs gnres. Les volutions du signal et de la crte seront galement observes sur un graphe droulant. Lappui sur un bouton Stop mettra fin lvolution. Le fichier sera nomm : a-votrenom2.vi
III EXERCICE 11.3 Simuler le fonctionnement dun chenillard constitu de 10 leds. Dans un premier temps, les leds sallument successivement. Ce cycle recommence trois fois conscutives. Dans un deuxime temps les 10 leds clignotent 4 fois simultanment (allumage pendant seconde). Dans un troisime temps, pendant s les leds de n impair sont allumes pendants que les n pairs sont teints puis inversement pendant s, ce cycle recommenant 3 fois. Les trois phases doivent se succder jusqu larrt par appui sur un bouton Stop. On pourra utiliser des tableaux de leds
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 52 sur 55
EXAMEN PARTIEL DINFORMATIQUE 2006/2007 Sujet A Dure 3h
Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits Web mail interdits N.B : Rseau sous surveillance Sauvegardez priodiquement votre travail Le fichier sera nomm : a-votrenom3.vi EXERCICE 12.1 On souhaite reprsenter sur un graphe XY la courbe dquation paramtrique :
x(t) = r(t) cos (t) et y(t) = r(t) sin(t) R(t) et (t) sont les coordonnes polaires donnes par :
r(t) = V t et (t) = t
V et sont des variables numriques dentres : commandes sur la face avant. Ecrire le programme permettant dafficher le graphe XY sur la face avant : On calculera 200 points pour : 0 < t < .
EXERCICE 12.2 Soit P une population danimaux prdateurs (Lynx) et H une population de proies (Livre). Lvolution de ces deux populations sont troitement lies. Elles sont modlises de la faon suivante : Pi+1 = a p Pi Hi + (1 - d) Pi Hi+1 = (r + 1) Hi p Hi Pi r : taux daccroissement naturel de la population de proies p : proportion de rencontres entranant la mort dune proie (efficacit du prdateur) d : taux de mortalit du prdateur a : fraction de lnergie apporte par la capture dune proie convertie en naissance. r, p, a, d sont des commandes numriques places sur la face avant. On prendra les coefficients suivants :
r 0,05 p 0,001 a 0,2 d 0,03
H0 et P0 populations linstant initial sont des commandes situes en face avant initialises H0 = 200 et P0 = 50.
Tout contrle continu est soumis au rglement des examens de luniversit.
Toute tentative de fraude ou fraude avre, sous quelque forme que ce soit, met immdiatement fin lexamen, est immdiatement sanctionne par la note zro et est passible du conseil de discipline de luniversit.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 53 sur 55
Ecrire le programme LabVIEW permettant de visualiser sur un mme graphe droulant lvolution des populations des prdateurs et des proies. Le programme sarrtera par lappui sur un bouton STOP.
EXERCICE 12.3 4 boutons (potentiomtres rotatifs) de type U8 rgls pour permettre une variation de 0 9 sont placs sur la face avant. Ces 4 boutons permettent loprateur de saisir son code pouvant tre modifi tant quil na pas appuy sur un bouton poussoir VALID. Le code secret sera : 1789. Si le code entr correspond au code secret, le programme allumera une led en vert et le programme sarrtera. Si le code entr ne correspond pas au code secret, le programme allumera la mme led en rouge. Loprateur aura droit trois essais pour entrer le bon code. Au del, le programme sarrtera. 1/ Ecrire lorganigramme de ce programme au verso de cette feuille 2/ Raliser le programme LabVIEW.
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 54 sur 55
EXAMEN PARTIEL DINFORMATIQUE 2007/2008 Sujet C
Dure 3h - Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits Web, mail, cls USB interdits N.B : Rseau sous surveillance Sauvegardez priodiquement votre travail la racine de votre rpertoire personnel sous un nom du type : A_votrenom_nexo.vi
EXERCICE 1 30 min Reprsenter sur un graphe droulant le signal modul en amplitude :
h(t) = sin (2pi fm t) sin(2pi fp t) fp est la frquence porteuse et fm est la frquence modulante : fm V => b0 = 1 puis, on ajoute Uref/2
2 V Si X < V => b0 = 0 puis, on enlve Uref/2
2 V 2) on compare X V nouvellement obtenu : = Uref/21 + ou - Uref/22 Si X > V => b1 = 1 puis, on ajoute Uref/2
3 V Si X < V => b1 = 0 puis, on enlve Uref/2
3 V Ainsi de suite jusqu avoir dtermin b11
V. Chollet - 19/02/2009 - COURS LabVIEW 09.doc - Page 55 sur 55
La valeur de V obtenue alors donne la valeur approche de V qui sera convertie ; le mot binaire (b0, b1, b2, b3, , b10, b11) constitue la conversion numrique de X, b0 tant le bit de poids le plus fort et b11 celui de poids le plus faible. 1/ Dessiner lorganigramme du programme schmatisant lalgorithme permettant de dterminer la valeur approche V de X et dafficher le mot binaire (b0, b1, b2, b3, , b10, b11) sur un tableau de 12 leds. 2/ Raliser le programme LabVIEW correspondant. X et Uref commandes numriques en face avant. Uref initialise 12 V. V indicateur numrique en face avant (b0, b1, b2, b3, , b10, b11) tableau de 12 leds. EXERCICE 3 30 min On considre un chariot pouvant se dplacer sur des rails, en marche avant ou arrire. 2 capteurs C1 et C2 tout ou rien (boolen) sont 1 quand le chariot est dans la position correspondante. C1 et C2 sont deux boutons poussoirs sur la face avant. Lorsque le capteur C1 est 1 (wagon en position initiale) et lorsque loprateur appuie sur le bouton poussoir dpart cycle (commande boolenne sur la face avant), le chariot attend 2 s, puis passe en marche avant. Quand il arrive en bout de rail, le capteur C2 passe 1 (appuyer sur le bouton poussoir), le moteur sarrte alors pendant 3s puis la marche arrire senclenche. Quand le chariot arrive en position initiale (appuyer sur le bouton poussoir), le capteur C1 passe 1, le moteur sarrte, et le systme attend un nouveau dpart cycle. 1/ Dessiner lorganigramme 2/ Raliser le programme LabVIEW correspondant.
Capteur C2 Commande dpart cycle
Led Tmoin moteur : vert Marche avant.
Led Tmoin moteur : rouge Marche arrire.
Capteur C1