Cours Labview 09
Cours Labview 09
Cours Labview 09
Page 1 sur 66
Chapitre 1 INTRODUCTION
I LA PROGRAMMATION
Un ordinateur en fonctionnement ralise des tches pour lesquelles il a t programm.
Le programme est crit dans un langage de programmation, en respectant une syntaxe propre au langage choisi.
COMPILATEUR
Langage de programmation
crire en respectant la syntaxe d'un langage, la suite des tches devant tre excutes par l'ordinateur, de faon logique et structure
Assembleur
Compilation = Traduction
Langage Machine
Page 2 sur 66
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 :
A lg o r it h m e
S u it e d 'in s t r u c t io n s q u i u n e f o is e x c u t e s c o r r e c t e m e n t c o n d u it u n r s u lt a t d o n n S c ie n c e q u i t u d ie la s t r u c t u r e lo g iq u e d e s p ro g ra m m e s
A lg o r ith m iq u e
Fortran
Algorithme
Basic
LabVIEW
Visual Basic
L'algorithme se ramne une combinaison de 4 familles d'instructions : - Affectation de variables - Lecture criture - Tests - Boucles
Page 3 sur 66
Un diagramme :
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. Variables dentres Programme Variables de sortie
Page 4 sur 66
2/ ENTREES SORTIE DANS LabVIEW Les entres sorties sont dposes sur la face avant sous la forme dobjets tels que : o o o o o o o o o boutons poussoirs interrupteurs potentiomtres rotatifs ou glissire Afficheur numrique en lecture. Etc crans doscilloscope Afficheurs numriques en criture (affichage) Vu-mtres Etc
entres
sorties
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.
Page 5 sur 66
1re variable
Lcriture du programme consiste relier entre eux les terminaux dentres sorties en utilisant : o o o o des oprateurs arithmtiques des oprateurs boolens des fonctions de calcul toutes prtes des structures de programmation (boucles, tests etc )
Ces outils sont disponibles dans la palette fonction apparaissant par clic droit dans le diagramme.
Page 6 sur 66
Les liaisons sont ralises laide de la bobine de la palette doutils disponible par le menu Fentre/palette doutils (Windows/tools palette).
Texte
Pour cbler
Colorer un objet
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.
Page 7 sur 66
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.
PALETTE DE COMMANDES
Page 8 sur 66
PALETTE DE COMMANDES
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.
Page 9 sur 66
IV TYPE DE VARIABLE
1/ CODAGE DES NOMBRES ENTIERS a Codage sur un octet
CODAGE SUR UN OCTET
de 00000000 11111111
de
28 -1 = 255
de 00000000 01111111
positif
Type char (langage C) Type I8 en LabVIEW
de
27 -1 = 127
de 11111111 10000000
f ngati
Complment deux de -1 - 27 = -128
Page 10 sur 66
S ans b i t d e si gne
V aleurs dcim ales possibles de 0 2 16 -1 = 65535
A vec b i t d e si gne
p o s it i
Type int (langage C) Type I16 en LabV IE W
f
de 0 2 15 -1 = 32767
n g at
Com plm ent deux
if
de -1 - 2 15 = -32768
+ 0,662 * 2 - 26
Signe : 1 bit Exposant :8 bits Mantisse : 23 bits
Valeurs extrmes possibles : Nombre nul : 0 Nombre positifs de : 1,21 10 -38 3,40 10 38 Nombres ngatifs de : - 1,21 10 -38 - 3,40 10 38
Type : Float en C, Type SGL en LabVIEW
Page 11 sur 66
3/ VARIABLES BOOLEENNES
Vraie : True
Variable Boolenne
Fausse : False
V FORMATS DAFFICHAGE
Page 12 sur 66
Page 13 sur 66
OUI
TEST
NO
Instructions 1
Instructions 2
Suite
REMARQUES : - Pas de rgle sur le choix gauche ou droite du ct OUI et du cot NON. - Un des blocs Instructions 1 ou 2 peut tre vide (ne rien faire). Il suffit de ne pas faire apparatre le cadre. III LE TEST Le test est la relation permettant de raliser laiguillage. Le test met en uvre des oprateurs de comparaison <, >, , , =, . Il peut tre aussi lvaluation dune simple variable boolenne (test de lappui sur un bouton poussoir) Le rsultat du test est un boolen : il ne peut prendre que 2 valeurs : OUI ou NON. Le test peut tre simple du type a < b ou plus complexe : (a < b) ET (a < c)
Page 14 sur 66
Les relations de comparaisons sont alors relies entre elles par des oprateurs logiques : ET, OU, NON ET, NON OU, OU Exclusif, etc La relation correspondant au test est crite dans le losange. IV EXEMPLE Saisir une note N au clavier. Afficher sur une chane de caractre le message cest bien si N 12 Afficher cest assez bien si 9 N < 12 Afficher cest insuffisant si N < 9 ENTREES SORTIES : - Une entre nomme N de type commande numrique. - Une sortie nomme C afficheur chane de caractre. ORGANIGRAMME :
Dbut
Saisir N
OUI
N 12 OUI
NO NO
C = cest bien
N<9
C = cest insuffisant
Fin
Cet organigramme montre que les structures conditionnelles peuvent tre imbriques.
Page 15 sur 66
V STRUCTURE CONDITIONNELLE DANS LabVIEW Un clic droit dans le diagramme permet douvrir la palette de fonctions. Cliquer sur licne contrle dexcution. On trouve alors la structure condition. Le rsultat boolen du test est connect sur le point dinterrogation vert. Les instructions ralises si le rsultat du test est OUI sont crites lintrieur de la structure lorsque VRAI apparat en haut du rectangle dlimit. Les instructions ralises si le rsultat du test est NON sont crites lintrieur de la structure lorsque FAUX apparat en haut du rectangle dlimit. Un seul cas est visible simultanment, cliquer sur les triangles pour passer de lun lautre.
Cliquer pour visualiser le diagramme ralis si condition fausse Diagramme dlimit, excut si condition vraie Condition crire Un seul diag visible la fois
EXEMPLE :
Page 16 sur 66
VI - REMARQUES
La transmission des donnes se fait via un tunnel d'entre ou de sortie. La condition : met en jeux un oprateur de comparaison
Les tunnels de sortie doivent tre relis dans les deux diagrammes conditionnels
Le diagramme cach
Page 17 sur 66
La comparaison peut tre simple : elle met en oeuvre un oprateur de comparaison (>, <, etc ... ou d'galit) comme dans l'exemple prcdent. Elle peut tre plus complexe et mettre en oeuvre galement des oprateurs logiques.
C'est insuffisant
Diagramme cach
Page 18 sur 66
Chapitre 4 LA BOUCLE WHILE I DEFINITION La boucle While permet de rpter une suite dinstructions en fonction du rsultat dun test. Un tour de boucle est appel itration". Les instructions se rptent chaque itration cest dire chaque tour de boucle. Dans LabVIEW, on peut rgler la rptition en fonction du rsultat VRAI ou FAUX du test. Par dfaut cest le rsultat FAUX qui permet la rptition. II ORGANIGRAMME
Instructions rpter
OUI
TEST
NO
Suite
Page 19 sur 66
III LE TEST Comme pour la structure conditionnelle : Le test est la condition permettant de raliser la rptition. Il est valu aprs chaque itration. Le test met en uvre des oprateurs de comparaison <, >, , , =, . Il peut tre aussi lvaluation dune simple variable boolenne (test de lappui sur un bouton poussoir) Le rsultat du test est un boolen : il ne peut prendre que 2 valeurs : OUI ou NON. Le test peut tre simple du type a < b ou plus complexe : (a < b) ET (a < c) Les relations de comparaisons sont alors relies entre elles par des oprateurs logiques : ET, OU, NON ET, NON OU, OU Exclusif, etc La relation correspondant au test est crite dans le losange. REMARQUES : Le test est rpt la fin de chaque tour de boucle. Il est donc ncessairement plac lintrieur de la boucle. La boucle ralise ncessairement au minimum un tour de boucle : Le bloc dinstructions rpter est ralis au moins une fois. IV EXEMPLE
1/ LA BOUCLE DATTENTE
Attendre lappui sur un bouton poussoir BP pour allumer une led L. ENTREES SORTIES : - Une Entre boolenne : bouton poussoir nomm BP. Action mcanique : BP sans verrouillage. - Une sortie boolenne : Led L.
Page 20 sur 66
ORGANIGRAMME :
Dbut L = FAUX
Boucle dattente
OUI L = VRAI On ne fait rien tant que lon nappuie pas sur le BP ! BP appuy NO
Fin
Diagramme rpt
Page 21 sur 66
Page 22 sur 66
Chapitre 5 - LA BOUCLE FOR I DEFINITION La boucle for permet de rpter une suite dinstructions un nombre prdtermin de fois. Avec la boucle While, on ne connat pas lavance le nombre ditrations qui seront ralises. Pour compter le nombre de rptitions, la boucle for utilise un compteur ditrations. Cest une variable entire i variant de 0 N-1 lorsque la boucle se rpte N fois. La boucle for utilise donc aussi une variable N entire donnant le nombre de tour de boucle. II ORGANIGRAMME
i=0
Instructions rpter
i= i+1
NO
i<N
OUI
Suite
Page 23 sur 66
III - AFFECTATION Lcriture i = 0 ne peut pas scrire 0 = i. En effet il ne sagit pas dune galit au sens mathmatique. Cette instruction est une affectation : On affecte la valeur 0 la variable i. Une affectation en informatique seffectue toujours de la droite vers la gauche.
De mme lcriture i = i + 1 nest pas non plus une galit au sens mathmatique. En effet une telle criture en mathmatique conduit 0 = 1 ! ! ! ! Cest une galement une affectation : On prend la valeur de la variable i, on lui ajoute 1. La nouvelle valeur obtenue est alors redonne la mme variable i. IV AUTRE ORGANIGRAMME POUR LA BOUCLE FOR Pour simplifier, on peut reprsenter la boucle for ainsi :
Pour i = 0 N-1
Instructions rpter
Suite
Page 24 sur 66
VI - EXEMPLE Compter toutes les deux secondes de 5 en 5 jusqu 50, le rsultat tant affich sur un afficheur numrique.
ORGANIGRAMME
Pour i = 0 10
S=5*i
Attendre 2s
Fin
Page 25 sur 66
VII BOUCLE FOR EN LabVIEW Clic droit dans le diagramme, puis tendre la palette. Aller sur programmation puis structures.
Diagramme :
Page 26 sur 66
REMARQUE :
Diagramme rpt Nombre de tours de boucle Terminal d'itration : compte les rptitions
Valeur transmise au premier tour de boucle. Toute intervention de l'utilisateur devient inutile Valeur obtenue au dernier tour de boucle
Page 27 sur 66
Exemple : Tableau nomm Tab de 3 entiers type U8 Chaque lment du tableau est repr par un indice i allant de 0 N-1
Tableau vide
Page 28 sur 66
Tableau vide
Page 29 sur 66
IV INDEXATION
1/ En entre
Indexation : Au ime tour de boucle, le ime lment du tableau est transmis par le tunnel d'entre. Lors du cblage, l'indexation se ralise automatiquement.
Tous les lments du tableau sont 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.
Page 30 sur 66
2/ En sortie
Pas d'indexation : la dernire valeur calcule au dernier tour de boucle est transmise via le tunnel de sortie
indexation : un tableau des valeurs calcules chaque tour de boucle est transmis via le tunnel de sortie quand la boucle est termine
#Page 124
Page 31 sur 66
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
2/ ECHELLE LOGARITHMIQUE N+1 points rgulirement espacs ime point log a i+1 me point log b
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
Page 32 sur 66
II LES DIFFERENCES
Graphes droulants
Graphes
Graphes XY
Boucle While Terminal graphe droulant quivalent un indicateur numrique Graphe dans la boucle
Graphe boucle
hors
de
la
Graphe boucle
hors
de
la
Une nouvelle ordonne est calcule chaque itration et est transmise au graphe qui droule tant que lon ne met pas fin la boucle (appui sur stop par exemple) La boucle while peut tre cadence par lutilisation dune attente. Le graphe peut tre gradu en temps.
Toutes les ordonnes des points sont calcules dans la boucle for. Une fois la boucle termine, les valeurs sont envoyes sous forme de tableau dordonnes En abscisse du graphe on retrouve lindice de chaque point : 0, 1, 2, 3 etc
Toutes les ordonnes et abscisses sont calcules dans la boucle for. Une fois la boucle termine, les valeurs sont envoyes sous forme de tableaux distincts : - un tableau dordonnes - un tableau dabscisses.
Page 33 sur 66
III - PERIODE DECHANTILLONNAGE Quelle que soit la reprsentation graphique, il faut dfinir un pas entre deux points de calcul ou dacquisition. Dans le cas dune reprsentation temporelle, on parle de priode dchantillonnage.
On dispose de : - Xmax et Xmin - du nombre de point N. On dispose de : - La priode minimale T (frquence maxi)
Echelle linaire :
Il faut suffisamment de points pas priode ! ! ! T = Te = T/N Cela entrane : Te << T Fe >> F
x = [ Xmax/Xmin] 1/ (N-1)
T = Te = kT/N
t = i T
Page 34 sur 66
IV ORGANIGRAMME
Dbut
1/ GRAPHE DEROULANT
Saisir Te i=0
i = i+1
Attente Te
OUI
STOP = Vrai
NON
Fin
2/ GRAPHE
Dbut Dbut
3/ GRAPHE XY
Calculer yi (ix)
xi = i x Calculer yi (xi)
Afficher yi
Afficher yi
Afficher yi (xi)
Fin
Fin
Fin
Page 35 sur 66
Donnes perdues
historique
Partie visible
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'envoi des donnes au graphe, le terminal graphe doit donc tre dans une boucle while.
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.
Page 36 sur 66
Certains paramtres du graphe peuvent tre ajusts : clic droit sur lobjet graphe dans la face avant.
LE FORMATAGE DU GRAPHE
Le rle du graphe est de reprsenter graphiquement un tableau de donnes. 0 1 2 3 4 5 6 7 donne 5 10 15 20 25 30 35 40 Le graphe reoit simultanment l'ensemble des donnes sous forme d'un tableau de valeurs.
Par programmation, il ne faut envoyer les donnes au graphe qu'une seule fois, le terminal graphe doit donc tre hors de la boucle. Le tableau peut tre obtenu par indexation du tunnel de sortie de la boucle
Page 37 sur 66
III GRAPHE XY
Le rle du graphe XY est de reprsenter graphiquement un tableau de donnes Y en fonction d'un tableau de donnes X Donne X Donne Y Le graphe reoit simultanment 0,1 5 l'ensemble des donnes 10 0,2 sous forme de 2 tableaux de valeurs. 0,3 15 0,4 20 0,5 25 Les donnes sont gnralement 30 0,6 calcules dans une boucle 35 0,7 0,8 40 Par programmation, il ne faut envoyer les donnes au graphe qu'une seule fois, le terminal graphe XY doit donc tre hors de la boucle. Les 2 tableaux sont obtenus directement au niveau des 2 tunnels de sortie de la boucle. Ils sont assembls pour former un cluster.
Page 38 sur 66
Page 39 sur 66
i = N-1
Calcul
i=N
Calcul
i = N+1
Page 40 sur 66
Factorielle n
Valeurs au dernier tour de boucle 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 M = ( m + m +m ) /3 i i i -1 i2
Page 41 sur 66
On rpte la mesure priodiquement => boucle while Pour calculer Mi, on a besoin des valeurs mesures dans les deux itrations prcdentes.
Acquisition Calcul Affichage i = N-1 Acquisition Calcul Affichage Acquisition Calcul i = N+1 Affichage
i=N
Tirer avec la souris pour disposer de la donne transmise par la i-2me itration
Affichage sur un graphe droulant de la moyenne des trois derniers nombres alatoires gnrs
mi mi-1 mi-2
Page 42 sur 66
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.
Page 43 sur 66
tape 1 diag 1
tape 2 diag 2
tape 3 diag 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.
Page 44 sur 66
On ajoute les tapes grce au menu local apparaissant par clic droit sur le bord de la squence.
Page 45 sur 66
III EXEMPLE
Etape 0 : Acquisition du temps Gnration du nombre alatoire tant qu'il est diffrent du nombre atteindre
Cette structure peut galement tre utilise galement pour commander un systme squentiel (feux de carrefour)
Page 46 sur 66
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.
Page 47 sur 66
Page 48 sur 66
Chapitre 10 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.
Page 49 sur 66
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.
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.
Page 50 sur 66
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.
Page 51 sur 66
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 :
Page 52 sur 66
TP n 1 et 2 ENTREES SORTIES, OPERATEURS (Ch1 et Ch2) EXERCICE 1.1 Soient 2 variables a et b numriques places en face avant. Afficher sur 4 sorties diffrentes : s1 = a+b, s2 = a b, s3 = a*b et s4 = a / b EXERCICE 1.2 Soit a une variable dentre de type entier. Sur un afficheur numrique, afficher a sous le format binaire, hexadcimal et dcimal. (Cf page 12) Changer la reprsentation de a et s : U8, I8, U16, I16 et observer les valeurs extrmes prises en charges par ces diffrentes reprsentations. (Cf page 10) EXERCICE 1.3 Dans lexercice prcdent, ajouter une deuxime variable entire dentre b et afficher a+b. Donner les valeurs limites des diffrentes reprsentations U8, I8, U16, I16. Que se passe t-il quand le rsultat dpasse les valeurs extrmes ? EXERCICE 1.4 Ralisation dun calcul 1/ Utilisation doprateurs Le gain en dB dun circuit RC est donn par G = 20 log [ 1/(1 + RC2f)2 ) ] Afficher sur un indicateur numrique le rsultat de calcul de G pour les valeurs de R, C et f affiches sur des contrleurs numriques en face avant. Exemple de valeurs ralistes : R = 4,7 k, C = 10 nF, f 1000 Hz. 2/ Utilisation dune boite de formule Mme question en utilisant la boite de formule (express/arithmtique) 3/ Utilisation dune boite de calcul Mme question en utilisant la boite de calcul (programmation/bote de calcul)
Page 53 sur 66
EXERCICE 1.5 On veut galement afficher le dphasage : = - arctan (RC2f) 1/ Modifier le programme de lexo 4 1/ pour afficher le gain et le dphasage 2/ Idem avec les boites de formules 3/ Idem avec une boite de calcul unique. EXERCICE 1.6 Oprateurs boolens Raliser un programme qui : - allume un afficheur boolen L1 si deux interrupteurs K1 et K2 sont enfoncs. - allume un afficheur boolen L2 si deux interrupteurs K1 ou K2 sont enfoncs. - allume un afficheur boolen L3 si deux interrupteurs K1 ou K2 sont enfoncs, mais pas les deux. EXERCICE 1.7 Nombres complexes Raliser un programme qui calcule les racines dune quation du second degr (ax2+bx+c = 0) en utilisant deux afficheurs numriques de reprsentation complexe double prcision (CDB). Les coefficients a, b et c sont des contrleurs numriques sur la face avant, reprsentation nombre virgule flottante double prcision (DBL). EXERCICE 1.8 Oprateur division euclidienne 1/ Raliser un programme qui convertit un nombre de mois, de jours, dheures, de minutes et de secondes en secondes. 2/ Raliser un programme qui convertit un nombre de secondes en mois, jours, heures, minutes et secondes. EXERCICE 1.9 Chanes de caractres Raliser un programme qui affiche sur un indicateur chane de caractre unique le contenu deux commandes de chanes de caractre.
Page 54 sur 66
TPn3 TESTS ET STRCTURE CONDITIONNELLE (Ch3) EXERCICE 3.1 On place 2 potentiomtres glissire a et b sur la face avant. Si a > b allumer une led, si a b teindre la led EXERCICE 3.2 On place 2 potentiomtres glissire a et b sur la face avant et un afficheur numrique s Si a > b alors s = a + (b-a)/2 Si a b alors s = b + (a b)/2 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI EXERCICE 3.3 - Testeur de batterie La tension dune batterie 12 V est simule par un potentiomtre U glissire en face avant. Le rsultat du test de la batterie est affich sur 3 leds diffrentes. Si 10 < U < 12 => Led Verte allume Si 8 < U < 10 => Led Orange allume Si 0 < U => Led Rouge allume 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI
Page 55 sur 66
EXERCICE 4.1 Boucle dattente Raliser un programme qui attend lappui sur un bouton poussoir avant dafficher le rsultat de a+b. N. B : On ne lancera pas lexcution du vi par lexcution rcurrente ! 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI EXERCICE 4.2 Lecture un point Ecrire un programme qui lit en permanence un potentiomtre plac en face avant et affiche la partie entire de la valeur prise. Larrt du programme est ralis par appui sur un bouton poussoir stop plac en face avant. On ne lancera pas lexcution du vi par lexcution rcurrente ! La valeur lue sera actualise toutes les N s (N est une commande numrique en face avant) 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI EXERCICE 4.3 - Suite arithmtique Raliser un programme qui affiche successivement toutes les secondes les valeurs de la suite gomtrique dfinie par son premier terme u0 et sa raison r. Le programme sarrte par appui sur un bouton stop. Rappel : un = u0 + n r U0 et n sont des contrleurs numriques sur la face avant. 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI 4/ Examiner linfluence de la position des terminaux de U0 et q dans la boucle ou hors de la boucle. Quelle est la bonne solution ? EXERCICE 4.4 Nombre alatoire Raliser un programme qui affiche sur un indicateur numrique un nombre alatoire compris entre 0 et 20 gnr priodiquement toutes les 0,5 s. Le programme sarrtera par appui sur un bouton stop. 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI
4/ Complter le vi de lexo prcdent de faon afficher : a) Le n de litration (n du tour de boucle en cours de ralisation). b) Le nombre total ditrations ralises aprs appui sur le bouton stop.
Page 56 sur 66
EXERCICE 5.1 Nombre alatoire Raliser un programme qui affiche sur un indicateur numrique trente nombres alatoires compris entre 0 et 20 gnrs toutes les 0,5 s. 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI EXERCICE 5.2 - Suite gomtrique 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. Rappel : un = u0 * q n U0 et q sont des contrleurs numriques sur la face avant. 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI 4/ Examiner linfluence de la position des terminaux de U0 et q dans la boucle ou hors de la boucle. Quelle est la bonne solution ?
TPn6 TABLEAUX (Ch6)
EXERCICE 6.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 6.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
Page 57 sur 66
EXERCICE 6.3 Indexation en sortie Ecrire un programme qui gnre un nombre alatoire entier compris entre 0 et 100 toutes les 0,5 s et qui sarrte par appui sur un bouton stop. Afficher alors dans 2 tableaux distincts les nombres pairs et impairs gnrs. EXERCICE 6.4 Tableaux et boucles imbriques 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. 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI
EXERCICE 7.1 Abscisses dune chelle linaire (Cf p 32-35) 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. EXERCICE 7.2 Graphe droulant Ecrire un programme qui gnre et visualise sur un graphe droulant une sinusode damplitude 10 V modifiable en face avant, de frquence 1 Hz modifiable par une commande en face avant. La priode dchantillonnage (intervalle de temps servant cadencer la boucle) sera compatible avec la priode de la sinusode et modifiable en face avant. On affichera galement la priode de la sinusode sur un indicateur numrique. La fonction sinus est disponible dans la palette de fonctions mathmatiques. 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI 4/ Est-il prfrable de placer les commandes damplitude et de frquence dans ou hors de la boucle ?
EXERCICE 7.3 - Graphe Ecrire un programme qui gnre un tableau de N valeurs de la fonction y(t) = 10 sin (2 f t). f sera rglable par un terminal en face avant mais ne doit pas tre modifiable pendant le calcul des points. On reprsentera deux priodes de cette fonction avec N points pour la reprsentation.
Page 58 sur 66
N sera rglable en face avant mais doit tre tel quil y ait suffisamment de points calculs dans une priode ! 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI 4/ Doit-on placer la commande de frquence dans ou hors de la boucle ? EXERCICE 7.4 Graphe XY Modifier le programme prcdent pour gnrer galement un tableau des valeurs dabscisse t de faon afficher la courbe y(t) sur un graphe XY gradu en temps.
EXERCICE 7.5 - Abscisses dune chelle logarithmique (Cf p 32-35) 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.
EXERCICE 7.6 - 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.2f) 2 ) ] R et C sont modifiables grce une commande numrique. Le nombre de points N est modifiable galement sur la face avant. La courbe sera trace de fa = 10 Hz ff = 100000 Hz On prendra R = 4700 , C = 10 nF. Le graphe utilisera en abscisses une chelle logarithmique (points rgulirement espacs) qui sera gradue en Hz. 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI
Page 59 sur 66
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 1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI
EXERCICE 8.2 Tracer sur un graphe la courbe reprsentant les 10 premires valeurs de la suite rcurrente dfinie par : u0 = -0,5 et un+1 = ( un + 1)
xn
Filtre numrique
yn
y(n) = x(n) - 1,6180x(n- 1) + x(n- 2) + 1,5161y(n - 1) - 0,8780y(n - 2) Initialement on a : y -1 = 0 et y 2 = 0 Tracer sur un graphe la courbe reprsentant la suite des valeurs de yn en rponse une squence dentre chelon : xn = {1,1,1 . } pour n > 0. xn = 0 pour n <0.
x 1 n
Page 60 sur 66
La marche avant est simule par lallumage dune led verte (led1) La marche arrire est simule par lallumage dune led rouge (led2). Le wagon tant en position initiale, lappui sur le bouton DCy (dpart cycle) lancera la marche avant. Le contact avec le mur est simul par appui sur un bouton poussoir BP1 Simuler le fonctionnement du chariot qui attend lappui sur DCy pour avancer et qui doit faire marche arrire quand le bouton poussoir BP1 est enfonc. Le retour en position initiale est dtect par le contact simul par un bouton poussoir BP2. 1/ Donner lorganigramme. 2/ Dessiner le diagramme sur feuille 3/ Raliser le vi en utilisant la structure squence. N. B : On ne lancera pas lexcution du vi par lexcution rcurrente ! EXERCICE 10.2 Dbut
BP1 = Vrai
NON
Fin 1/ Quelles sont les variables dentres et sorties apparaissant dans cet organigramme ? 2/ Expliquer la fonction ralise par cet organigramme 3/ Transcrire cet organigramme en diagramme LabVIEW.
Page 61 sur 66
EXERCICE 10.3 Mme dispositif. Simuler le fonctionnement du chariot qui attend lappui sur DCy pour avancer et qui effectue 10 aller-retour dtects par appui sur le bouton poussoir BP. Le retour en position initiale est signal par le capteur simul par un bouton poussoir BP2 en face avant. 1/ Donner lorganigramme. 2/ Dessiner le diagramme sur feuille 3/ Raliser le vi en utilisant la structure squence. EXERCICE 10. 4 Jeu de lumires On utilise un chenillard constitu dun tableau 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 teintes puis inversement pendant s, ce cycle recommenant 3 fois. Les trois phases doivent se succder jusqu larrt par appui sur un bouton Stop.
EXERCICE 10. 5 Mesure dun temps dexcution Raliser un programme qui mesure le temps dexcution dune boucle for qui ralise 1000 fois la gnration dun nombre alatoire. On utilisera obligatoirement la structure squence. 1/ Donner lorganigramme. 2/ Dessiner le diagramme sur feuille 3/ Raliser le vi en utilisant la structure squence.
Page 62 sur 66
Raliser en utilisant la structure squence, la programmation du fonctionnement normal des feux de circulation. Les trois leds de chaque feu seront regroupes dans un cluster. Pour utiliser la mme variable dans diffrentes tapes dune squence, on cre une variable locale mise en criture (Cf Chapitre 9 du fascicule).
Page 63 sur 66
TP n 11 EXPORT EN FICHIER TABLEUR EXERCICE 11.1 Crer un tableau 2 colonnes constitu de 500 points correspondant au trac de la courbe reprsentative de la fonction f dfinie par : f : [ 0 , 10 ] t E et sont des commandes en face avant. Ajouter du bruit sur la courbe : le bruit est simul par la gnration dun nombre alatoire. Lamplitude du bruit est une commande en face avant. 1/ Ecrire le programme fabriquant le tableau et permettant le trac de la courbe sur un graphe XY. 2/ Par programmation, exporter le tableau en fichier tableur. 3/ Ecrire un nouveau programme qui ouvre le fichier cr et qui trace la courbe sur un graphe XY. 4/ Raliser un traitement destin filtrer le bruit et afficher la courbe obtenue aprs traitement. EXERCICE 11.2 Lenregistrement de la vitesse de rotation dune roue de voiture a permis de reprsenter la variation de la vitesse du vhicule au cours du temps. Crer un VI LabVIEW qui simule ce roulage. (utiliser la structure squence et les boucles).
V (vitesse) km/h
R E ( 1 exp ( -t / ) )
120
100 90 60 50
3 5 t (min)
8,5 9
9,5
10,5 11
Page 64 sur 66
EXERCICE 11.3 Post traitement des donnes Crer un VI qui ouvre le fichier tableur prcdent et qui trace la courbe. Complter le VI de faon traiter les donnes : Dterminer lacclration du vhicule suppos se dplacer en ligne droite. Dterminer la distance parcourue Tracer ces deux courbes. Dterminer les instants o les roues ont patin ou se sont bloques. Eliminer du tableau des vitesses les phnomnes de patinage ou de blocage des roues. Exporter les donnes traites dans un nouveau fichier tableur.
EXERCICE 11.4 Reprendre lexercice 2 en ajoutant un bruit alatoire damplitude raliste sur la mesure de la vitesse. Reprendre lexercice 3 en ralisant en plus le filtrage de ce bruit.
EXERCICE 11.5 Moyenne glissante La moyenne glissante ou moyenne mobile est un type de moyenne statistique utilise pour analyser des sries ordonnes de donnes, le plus souvent des sries temporelles, en supprimant les fluctuations transitoires de faon en souligner les tendances plus long terme. Cette moyenne est dite mobile parce qu'elle est recalcule de faon continue, en utilisant chaque calcul un sousensemble d'lments dans lequel un nouvel lment remplace le plus ancien ou s'ajoute au sousensemble. Ce type de moyenne est utilis gnralement comme mthode de lissage de valeurs, en particulier dans le domaine financier pour l'analyse technique de cours boursiers. Le site mentionn ci-dessous, donne les mesures de la pollution de lair Montbliard concernant divers polluants. On sintresse au polluant PM10 (poussires microscopiques 10 m) sur 48h pour Montbliard centre. http://www.atmo-franche-comte.org/pages/fr/menu1/les_mesures_en_direct_50.html Ces donnes sont disponibles sur mpeea.free.fr page LabVIEW : fichier data tlcharger et enregistrer. Utiliser loutil LabVIEW qui permet douvrir un fichier tableur. Placer ces donnes dans un tableau. Tracer le graphe correspondant. Tracer galement sur ce mme graphe la moyenne glissante sur 8h. Quel type de filtrage sur les donnes introduit la moyenne glissante ?
Page 65 sur 66
TP n 12 EXERCICES COMPLEMENTAIRES EXERCICE 12.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. s +10 -1 -10 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. e(t) +8 t -8 2/ Faire apparatre la caractristique de transfert s(e) sur un graphe XY. EXERCICE 12.2 Reprsenter sur un graphe droulant le signal modul en amplitude : h(t) = sin (2 fm t) sin(2 fp t) fp est la frquence porteuse et fm est la frquence modulante : fm << fp. fm et fp sont des variables numriques disponibles sur la face avant. Elles seront initialises fm = 0,1 Hz et fp = 1 Hz. On souhaite disposer de 20 points par priode de la porteuse tout en visualisant sur lcran deux priodes du signal modulant. 5 e Quand e(t) augmente, s bascule 10 quand e > 5. Quand e(t) diminue, s bascule +10 quand e < -1
Page 66 sur 66