Vous êtes sur la page 1sur 66

COURS LabVIEW

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 1 sur 66

Chapitre 1 INTRODUCTION

I LA PROGRAMMATION
Un ordinateur en fonctionnement ralise des tches pour lesquelles il a t programm.

Texte Son Images mesures

Traitement Informatique Donnes Entres Rsultats Sorties

Texte Son Images mesures

Le programme est crit dans un langage de programmation, en respectant une syntaxe propre au langage choisi.

Texte => Fichier source

COMPILATEUR

Application autonome Fichier excutable

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

Logiciel install dans l'ordinateur

Exemples de langages de programmation :


Langage Evolus : C, Pascal, Fortran, Basic Visual Basic, LabVIEW

Assembleur

Compilation = Traduction

Langage Machine

Le seul comprhensible par l'ordinateur

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

Lalgorithme est indpendant du langage :


Pascal C

Fortran

Algorithme

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 - 29/01/2012 - COURS LabVIEW 12 -

Page 3 sur 66

IV STRUCTURE DUN PROGRAMME LABVIEW


LabVIEW tant plus particulirement destin linstrumentation, un programme LabVIEW apparat constitu comme un appareil de mesure : Une face avant : La face avant est linterface avec lutilisateur.

Un diagramme :

Le diagramme correspond aux circuits internes de lappareil et constitue le cur du programme

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. Variables dentres Programme Variables de sortie

Llaboration dun algorithme ncessite de bien identifier les entres/sorties.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 5 sur 66

FACE ARRIERE : DIAGRAMME

1re variable

FACE AVANT 2me 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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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).

La palette d'outils (Tool Palette)

Pour agir sur les commandes

Texte

Bouger l'ensemble (diag ou FA) Pipette (copier une couleur)

Pour cbler

Colorer un objet

Placer un point d'arrt Poser une sonde (probe)

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 7 sur 66

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

Un contenu (valeur) variable Une adresse fixe

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)

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 8 sur 66

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 - 29/01/2012 - COURS LabVIEW 12 -

Page 9 sur 66

IV TYPE DE VARIABLE
1/ CODAGE DES NOMBRES ENTIERS a Codage sur un octet
CODAGE SUR UN OCTET

Sans bit de signe


Valeurs dcimales possibles

de 00000000 11111111

de

28 -1 = 255

Type unsigned char (langage C) Type U8 en LabVIEW

Avec bit de signe

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

b - Comment changer la reprsentation dans LabVIEW ?

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 10 sur 66

c Codage sur 2 octets


CO DAG E S UR DE UX O CTE TS

S ans b i t d e si gne
V aleurs dcim ales possibles de 0 2 16 -1 = 65535

Type unsigned int (langage C ) Type U 16 en LabV IE W

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

2/ NOMBRES A VIRGULE FLOTTANTE


Un nombre virgule flottante peut toujours s'crire :

+ 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

SIMPLE PRECISION : 4 octets 1 bit 8 bits 23 bits

DOUBLE PRECISION : 8 octets 1 bit 11 bits 52 bits

PRECISION ETENDUE : 10 octets 1 bit 15 bits 64 bits

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 11 sur 66

3/ VARIABLES BOOLEENNES

Vraie : True
Variable Boolenne

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 - 29/01/2012 - COURS LabVIEW 12 -

Page 12 sur 66

Exemples de formats daffichages :

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 13 sur 66

Chapitre 3 LES TESTS


I DEFINITION Suivant le rsultat dun test, on ralise une srie dinstructions ou une autre II REPRSENTATION

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)

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

C = cest assez bien

Fin

Cet organigramme montre que les structures conditionnelles peuvent tre imbriques.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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 :

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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 rsultat boolen de la condition est connect au slecteur ?

Le diagramme cach

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

Les structures conditionnelles peuvent tre imbriques


Vrai

C'est insuffisant

Diagramme cach

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

On peut permuter dans LabVIEW

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

V BOUCLE WHILE SOUS LabVIEW

Diagramme rpt

Terminal conditionnel Terminal d'itration : compte les rptitions

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 21 sur 66

Exemple : compte rebours


Pseudo : code correspondant : Exercice

Dessiner Variable lorganigramme compt type entier correspondant ce diagramme N 100


Faire compt N-1 afficher compt attendre 1s tant que N >0 Fin

Variable N type entier

Attente (configure 1s) 2 possibilits

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

Ces instructions sont rptes N fois pour i variant de 0 N-1

Instructions rpter

i= i+1

NO

i<N

OUI

Incrmente le compteur ditrations

Suite

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

ENTREES SORTIES : - Pas dentre - Une sortie S, afficheur numrique.

ORGANIGRAMME

Dbut i varie de 0 10 Il y aura donc 11 itrations.

Pour i = 0 10

S=5*i

Attendre 2s

Fin

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 25 sur 66

VII BOUCLE FOR EN LabVIEW Clic droit dans le diagramme, puis tendre la palette. Aller sur programmation puis structures.

Diagramme :

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 26 sur 66

REMARQUE :

Avec 10 tours de boucle, i voluera de 0 9

Diagramme rpt Nombre de tours de boucle Terminal d'itration : compte les rptitions

VIII COMMANDES ET INDICATEUR DANS OU HORS DE LA BOUCLE


Modifications par l'utilisateur prises en compte

Valeur transmise au premier tour de boucle. Toute intervention de l'utilisateur devient inutile Valeur obtenue au dernier tour de boucle

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 27 sur 66

Chapitre 6 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)

Exemple : Tableau nomm Tab de 3 entiers type U8 Chaque lment du tableau est repr par un indice i allant de 0 N-1

LA MEMOIRE : Empilement d'octets

Tab[0] Tab[1] Tab[2]

Les trois lments se retrouvent trois adresses diffrentes qui se suivent

II TABLEAUX DANS LabVIEW


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

Clic droit sur la face avant

Tableau vide

Indice du 1er lment visible

Tableau de variables numriques

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 28 sur 66

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 - 29/01/2012 - COURS LabVIEW 12 -

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 31 sur 66

Chapitre 7 - LES GRAPHES I LES ECHELLES


1/ ECHELLE LINEAIRE

N+1 points rgulirement espacs ime point a i+1 me point b

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

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

On a une suite gomtrique de premier terme x0 = a et de raison q = (b/a)1/N

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

Boucle For Terminal graphe quivalent un tableau

Boucle For Terminal graphe reoit 2 tableaux XY

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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 :

x = [ Xmax Xmin ] / (N-1)


Echelle log :

Il faut suffisamment de points pas priode ! ! ! T = Te = T/N Cela entrane : Te << T Fe >> F

x = [ Xmax/Xmin] 1/ (N-1)

Si on veut reprsenter plusieurs priodes : reprsenter k priodes.

T = Te = kT/N

T = T/N et calculer kN points

En veillant ce que Te << T !

Linaire : x = Xmin + i x Log : x = Xmin . (x)i/N

t = i T

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 34 sur 66

IV ORGANIGRAMME
Dbut

1/ GRAPHE DEROULANT
Saisir Te i=0

Calculer y(iTe) Afficher y(iTe)

i = i+1

Attente Te

OUI

STOP = Vrai

NON

Fin

2/ GRAPHE
Dbut Dbut

3/ GRAPHE XY

Dbut Saisir Xmax, Xmin, N Pour i = 0 N


x = (Xmax Xmin) / N

Saisir T, N, k Saisir T, N, k Pour i = 0 N Te = kT/N Calculer yi (iTe) Pour i = 0 N


x = (Xmax Xmin) / N

Calculer yi (ix)

xi = i x Calculer yi (xi)

Afficher yi

Afficher yi

Afficher yi (xi)

Fin

Fin

Fin

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 35 sur 66

Chapitre 8 GRAPHES DANS LABVIEW


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.

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 :

Gnration d'un nombre alatoire

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 36 sur 66

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. 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.

Les donnes sont gnralement calcules dans une boucle

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 37 sur 66

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

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 38 sur 66

Utilisation dans LabVIEW :

Connecter le tableau des abscisses ici

Connecter le tableau des ordonnes ici

Exemple dans LabVIEW :

Trac de courbe, chelle linaire : xi = xd + i * (xf-xd)/N apparat automatiquement

On dispose ici d'un cluster (assemblage) de 2 tableaux.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 39 sur 66

Chapitre 9 LES REGISTRES A DECALAGE OU NUDS DE RETROACTION


I EXEMPLE DUTILISATION
EXEMPLE : Programmer n! On sait que n! = (n-1)! . n 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 .... Structure itrative boucle for Variable facto type entier Variable i type entier facto 1 Pour i = 1 N faire facto facto.i i i+1 afficher facto fin A la ime itration, on utilise le rsultat calcul l'itration prcdente En Labview cela se fait grce au registre dcalage

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. Au ime tour de boucle, la valeur calcule est fonction de la valeur calcule au tour prcdent Calcul

i = N-1

Calcul

i=N

Calcul

i = N+1

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 40 sur 66

Exemple : factorielle n avec registre dcalage :

Factorielle n

Valeurs au dernier tour de boucle La valeur calcule la dernire itration sort par le tunnel du registre

Clic droit sur le bord de la boucle

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

Ce qui donne dans LabVIEW :

La mesure est simule par la gnration d'un nombre alatoire

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 43 sur 66

Chapitre 10 LES SEQUENCES


I INTRODUCTION
Langage classique : Flot d'instructions Langage LabVIEW : Flot de donnes

Les instructions crites s'excutent squentiellement

On ne matrise pas l'ordre d'excution des instructions

La structure squence permet de reprendre le contrle de lordre dexcution du programme

II LA STRUCTURE SEQUENCE DANS LabVIEW


La structure squence dans LabVIEW : La structure squence se prsente comme une succession d'tapes semblable la pellicule d'un film Dans chaque tape (frame) : un diagramme. Les tapes successives sont excutes dans l'ordre.

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 44 sur 66

On ajoute les tapes grce au menu local apparaissant par clic droit sur le bord de la squence.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 45 sur 66

III EXEMPLE

Etape 0 : Acquisition du temps Gnration du nombre alatoire tant qu'il est diffrent du nombre atteindre

Etape 1 : Acquisition du temps Calcul et affichage de la dure

IV UTILISATION EN INFORMATIQUE DINSTRUMENTATION


Cette structure est souvent utilise en informatique d'instrumentation

tape 1 tape 2 Configuration Acquisition carte d'acquisition Sortie Commande

tape 3 RAZ carte daq

Cette structure peut galement tre utilise galement pour commander un systme squentiel (feux de carrefour)

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 46 sur 66

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 - 29/01/2012 - COURS LabVIEW 12 -

Page 47 sur 66

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

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 - 29/01/2012 - COURS LabVIEW 12 -

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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 :

Slectionner cette case de 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).

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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)

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 55 sur 66

TPn4 BOUCLE WHILE (Ch4)

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 56 sur 66

TPn5 BOUCLE FOR (Ch5)

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

TPn7 TABLEAUX GRAPHES (Ch6, 7, 8)

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 59 sur 66

TP n8 et 9 BOUCLES ET REGISTRES A DECALAGE (Ch 8, Ch 9)


EXERCICE 8.1

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)

1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI


EXERCICE 8.3 Soit un filtre numrique dfini par son quation de rcurrence :

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

1/ Donner lorganigramme. 2/ Dessiner le diagramme correspondant sur feuille 3/ Raliser le VI

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 60 sur 66

TP n 10 LES SEQUENCES (Ch 10)


EXZECICE 10.1 DCy BP1 Led2 Led1 BP2 Capteur position initiale

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

OUI Pour i = 0 9 Led 1 = Vrai Attente 3s Led 1 = Faux

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 62 sur 66

EXERCICE 10. 6 Feux de carrefour

Raliser cette face avant

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).

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

Tracer la courbe et exporter les donnes en fichier tableur.

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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 ?

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

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

V. Chollet - 29/01/2012 - COURS LabVIEW 12 -

Page 66 sur 66