Cours Lab View 12
Cours Lab View 12
Traitement
Informatique
Texte Texte
Son Son
Images Données Résultats Images
mesures mesures
Entrées Sorties
" # $
!
Texte Application
=> Fichier source COMPILATEUR autonome
Fichier
exécutable
$ %
Langage Evolués :
C, Pascal, Fortran, Basic
Visual Basic, LabVIEW
Compilation = Traduction
Assembleur
, ) - " , +
!
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 é
A lg o r ith m iq u e
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
' %
Pascal
C
Fortran
Algorithme Basic
( - , . ( %
/0 )
/
/1
/2
7 1 8& , 8 3446!
) 1& ) 9!3 $ :!
!
- , ' " ;
%
) %
La face avant est
l’interface avec
l’utilisateur.
% Le diagramme
correspond aux circuits
internes de l’appareil et
constitue le cœur du
programme
"# $
' ) $ %
- ) '
- 0 ' < 1 $ =
- 7 ) < - ") =
- 1 '
- >
) ' !
) !
Variables Variables de
Programme
d’entrées sortie
' ' ? !
%"#
) ' @ %
o
o
entrées o - , -
o 0 !
o >
o '
o 0 < =
sorties
o / -
o >
@ ; ) !
A B!
$- * A B
) !
$!
!
FACE ARRIERE : DIAGRAMME
1ère variable
FACE AVANT
2ème variable
' , $ $ ' %
o
o
o *
o < " >=
!
, ' '
C * ? ' < :? =!
Bouger
Pour agir sur les l'ensemble
commandes Texte
(diag ou FA)
Pipette (copier
une couleur)
' ) D <
=!
* A B ' , ; ' E
" ) * !
"
% !
!
) ) !
0 ) "
) ) ' $ !
LA MEMOIRE :
Empilement
d'octets
Un contenu
(valeur) variable
Une adresse fixe
o ) %
o # ) % )
!
PALETTE DE COMMANDES
#
PALETTE DE COMMANDES
$
& !
"# !
'( ) *+ +, '-
de 00000000 à 11111111
Sans bit de signe
positif
de 0 à 27 -1 = 127
Type char (langage C)
Type I8 en LabVIEW de 11111111 à 10000000
f
négati
Complément à deux de -1 à - 27 = -128
. '// , - ,) 0 1* , ', ( ,*
- '( ) *+ % '- *
CO DAG E S UR DE UX O CTE TS
S ans b i t d e si gne
A vec b i t d e si gne
f
p o s it i
de 0 à 2 15 -1 = 32767
Type int (langage C)
Type I16 en LabV IE W
if
n ég at
de -1 à - 2 15 = -32768
Com plém ent à deux
%"# ! $
+ 0,662 * 2 - 26
Vraie : True
Variable Booléenne
Fausse : False
$ $$
$ ' %
2
$
OUI NO
TEST
Instructions 1 Instructions 2
Suite
80 F %
- & - $ E G G!
- 3 H * ) < =!
; !
' !
% H) % G G!
* # J $ %< J = 1< J =
%
1" " G G 1" G G " $ " >
G ) !
0 ; - A ' B G M 3H
0 A ' P B 4 L G J 3H
0 A ' B GJ4
G1 1 %
- G # !
- ; - !
Q0G Q 088 %
Début
Saisir N
OUI NO
N M 3H
OUI NO
NJ4
C = « c’est bien »
Fin
) * !
!
' ) !
' E E ' $ ! ) !
' ) !
, '
0 ; !
G G , '
C0 R ; !
) " ' ,
' !
R 8& %
.
La transmission des
données se fait via un
« tunnel » d'entrée ou de
sortie.
"
La comparaison peut être simple : elle met en oeuvre un opérateur de
comparaison (>, <, etc ... ou d'égalité) comme dans l'exemple précédent.
Elle peut être plus complexe et mettre en oeuvre également des opérateurs
logiques.
Les structures
conditionnelles
peuvent être
imbriquées
Diagramme caché
#
5 !
' '
!
A S!
- , ' , , !
7 " 0 C0 R
!
& ' C0 R !
Instructions
à
répéter
NO
TEST
OUI
On peut permuter
dans LabVIEW
Suite
$
%
! ) -
!
% H) %
G G!
* # J $ %< J = 1< J =
80 F %
, ! ,
' !
%
' , !
"# !
0 ' 2& !
G1 1 %
/ % 2&! 0 % 2&
) !
/ % !
Q0G Q 088 %
Début
L = FAUX
!'+-0
( ,
BP NON
appuyé
On ne fait rien
tant que l’on
L = VRAI
n’appuie pas
sur le BP !
Fin
Diagramme répété
Terminal conditionnel
Terminal d'itération :
compte les répétitions
$ % ,
2 possibilités
6. ! $
) G -
!
i=0
OUI Incrémente le
i<N
compteur
d’itérations
Suite
. $$
' NT ' TN !
' ' !
% ) T, ) !
' @ ) !
7 * ' N D 3 '
!
,TN3UUUU
' % ) ) "
@ 3! ) ) , * ) !
! $
& " %
Pour i = 0 à N-1
Instructions à répéter
Suite
VI - EXEMPLE
$ 6 6@ ', 6T"
!
G1 1 %
- & '
- " !
Q0G Q 088
Début
i varie de 0 à 10
Il y aura donc 11
Pour i = 0 à 10 itérations.
S=5*i
Attendre 2s
Fin
!
! $
" ! 0
!
7 %
80 F %
Diagramme répété
Nombre de tours de
boucle
Terminal d'itération :
compte les répétitions
Valeur obtenue
au dernier tour
de boucle
"
9 ! 4
$
Un tableau permet de regrouper plusieurs variables numériques de même type sous une même
appellation.
Les différents éléments du tableau (array) sont alors repérés par un indice (index).
Le nombre N d’éléments du tableau constitue sa taille (array size)
Quand on
dépose le
Clic droit sur la tableau sur la
face avant face avant, il
est vide.
Il convient
donc de le
remplir à
l’aide du type
de variable
Tableau vide choisi :
tableau de
variables
numériques,
tableau de
Tableau de variables booléens,
numériques tableaux de
Indice du 1er chaînes de
élément visible caractères
etc…
#
Tableau vide
Tableau de variables
numériques
! 4
" $ %
Les fils de
liaisons des
données
tableaux sont
en traits épais
de la couleur
du type de la
variable : ici,
on a des
tableaux de
variables
numériques à
virgule
flottante, les
connexions
sont donc de
couleur
orange. Indice
et taille du
tableau sont
des entiers
donc couleur
bleue.
$
4
"# , , 1
Pas d'indexation :
la dernière valeur
calculée au dernier tour
de boucle est transmise
via le tunnel de sortie
"#
& % $ ! % *;< =#
& ( , ( % $ N$ /3 D
0 % $N D !
%"#
ième point
& ( , ( % $N $ /3 D
N W ! < ? = ?G X
! !
" "
# #
%
-
$ -
% &" '" ("
) *
.
F " $
' ! 7 ' "
' !
, ( * '* ( A , ( * '* ( A
/ 4/ ? 4/ , . 1 '( / , / 0
- (+ ,'/ ( ', 8 <7 1>+ ,- / ? =
%
UUU
∆x = [ Xmax – Xmin ] / (N-1)
∆1 N 1 N 1?G
% ; %
∆x = [ Xmax/Xmin] 1/ (N-1) 1 JJ 1 C KK C
∆1 N 1 N Y1?G ∆1 N 1?G YG
, B 00 , C - >+
DD E
Boucle For
Graphe XY à
l’extérieur
% N ∆1 Gradué en temps :
$NR D ∆$ simulation
temporelle, pas de
temps réel
%
$NR ! <∆$= ?G Boucle For, Graphe
ou Graphe XY à
l’extérieur
Début
"#
Saisir Te
i=0
Déroulement en
temps ≈ réel
Calculer y(iTe)
Afficher y(iTe) i = i+1
Attente Te
Fin
Début
Début Début
Saisir Xmax,
Xmin, N Saisir T, N, k Saisir xmin, xmax et N
Pour i = 0 à N
Pour i = 0 à N Pour i = 0 à N
∆x = (Xmax – Xmin) / N
∆x = (Xmax – Xmin) / N
Calculer yi (i∆x) Te = kT/N
xi = i ∆x
Calculer yi (iTe)
Calculer yi (xi)
Afficher yi
Afficher Afficher yi (xi)
yi(iTe)
Fin
Fin
Fin
!
F !
A B 7' /
Données
perdues
? / 0 ( ,* A
Génération d'un
nombre aléatoire
LE FORMATAGE DU GRAPHE
A B 7' /
"
? / 0 ( ,* A
L'indice du point
(n° ligne du tableau)
4&
#
0* ', ( ,* A
Connecter le tableau
des abscisses ici
Connecter le tableau
des ordonnées ici
? / 0 ( ,* A
Tracé de courbe,
échelle linéaire :
xi = xd + i * (xf-xd)/N
apparaît
automatiquement
On dispose ici
d'un cluster
(assemblage)
de 2 tableaux.
$
G
H
EXEMPLE : Programmer n!
Etc ....
Structure itérative
boucle for
A la ième itération,
Variable facto type entier on utilise le résultat
Variable i type entier calculé à l'itération
facto 1 précédente
Pour i = 1 à N faire
facto facto.i
En Labview cela se fait
i i+1
grâce au registre à décalage
afficher facto
fin
On utilise des registres à décalage dans les boucles For et dans les
boucles While pour transmettre des valeurs d'une itération à l'itération
suivante.
Au ième tour de boucle, la valeur
calculée est fonction
de la valeur calculée au tour précédent
Calcul
i = N-1 Calcul
i=N Calcul
i = N+1
Exemple : factorielle n avec registre à décalage :
Factorielle n
La valeur calculée à la
dernière itération sort par
Clic droit sur le bord de la boucle le tunnel du registre
1°/ EXEMPLE
$ % ,@ # 8 Z -
8 N< D D = ?Z
/3 VH
On répète la mesure périodiquement => boucle while
Pour calculer Mi, on a besoin des valeurs mesurées dans les deux
itérations précédentes.
Acquisition
Calcul Affichage
i = N-1 Acquisition
Calcul Affichage
Acquisition
i=N
Calcul Affichage
i = N+1
Affichage sur un
graphe déroulant de
la moyenne des trois
derniers nombres
Tirer avec la aléatoires générés
souris pour
disposer de la mi
donnée
transmise par mi-1
la i-2ème
mi-2
itération
Dans une boucle, si on retourne
la valeur calculée sur l'entrée
d'un opérateur, il apparaît un
noeud de rétroaction,
fonctionnant comme le registre à
décalage.
Noeud de rétroaction
Initialisation du noeud
de rétroaction pour
le 1er tour de boucle
& , " I ;
' !
@
La structure séquence
permet de reprendre le
contrôle de l’ordre
On ne maîtrise pas d’exécution du
Les instructions écrites programme
l'ordre d'exécution
s'exécutent séquentiellement
des « instructions »
) * < ) , = !
) " E ' $ !
@ !
!
4
Étape 1 Étape 2
Étape 3
Configuration Acquisition
RAZ carte daq
carte d'acquisition Sortie Commande
Par contre dans une séquence empilée, il faut utiliser variable locale de séquence : clic droit sur le
bord de la séquence. On dispose alors d’une flèche entrante distribuant la donnée dans les autres
étapes de la séquence.
"
#
@
!
& < =" ) ,
) ! ) ) ' " *
" + , ) !
$
7 ' $ " ) ! ) 3
" 33 *!
G "
' !
, ' E ' ) / !
!
) ' "
! * ! ) ' ,
) ' ! & , ' '
" ' ' @ ) , ) " ' E !
!
" ' E , % ' E
!
; * /
" , "
' ' E !
!
) ) , ' !
0 %
7 " %
; ) , ) !
' E * '
!< / =!
!
," % I < %=
4 8
H) ) !
0 . % 3N D " HN V " ZN [ .N ?
4 8%
) ' # !
" " $ !< 3H=
4 82
4 85 1 0* ', ( +, - 0-+0
3^? '
H^? '
8* < $ ? =
Z^? '
8* < ? ; =
!
4 86
) %ϕN/ < Hπ =
H^? )
Z^? ) !
4 89 1 + * ''01 ,*
/ 3 $ `3 `H !
/ H $ `3 `H !
/ Z $ `3 `H " $!
4 8: '/ * -'/ 0 ? *
4 8F 1 + ( B * ', +-0 ( ,,
4 8G J, * ( - -K *
; - $
; - !
!
,"2 < 2=
4 28
H - , - ) !
K " ≤
4 28%
H - , - )
K N D < / =?H
≤ N D < V =?H
3^? 7 ' !
H^? 7
Z^?
4 282 . 1
' 3H - , - ) !
Z !
, '& - - '( ./ 0
, 1 - - '& ./ 2
, & - - 1 ./ 3
3^? 7 ' !
H^? 7
Z^?
!!
,"5 ! < 5=
4 58 !'+-0 ( ,
' ) ' D !
G! 2 % ' $ ) ' $ U
3^? 7 ' !
H^? 7
Z^?
4 58% -+ +, ' ,
- )
- ) ! ' *
) ! ' $ ) ' $ U
) G <G ) =
3^? 7 ' !
H^? 7
Z^?
4 582 . + /1 >+
) )
T ! ' *
! 3 % . & 4
T E ) !
3^? 7 ' !
H^? 7
Z^?
.^? $ ' $ T !
F ]
T
HT T"6 ! ' * !
3^? 7 ' !
H^? 7
Z^?
.^? ) ' $ + , %
= ^ ' < ^ =!
= ' - !
!
,"6 ! $ < 6=
4 68 '/ 01 '
T HT T"6 !
3^? 7 ' !
H^? 7
Z^?
) HT - )
T ! 3 % . & 5
T E ) !
3^? 7 ' !
H^? 7
Z^?
.^? $ ' $ T !
F ]
,"9 ! 4< 9=
4 98
- 3T
T HT!
8 )
!
4 98%
- 3T
T HT! < 3- ' $ =!
" 6 "
# !
= 0 - )
= '
!"
4 982 ,( ? ', , *'
- T 3TT T"6
' * !
0 H $ !
Q 36 3T , ' V
3T D3T!
8 T!
3^? 7 ' !
H^? 7
Z^?
,": ! 4 < 9I :I F=
4 :8 *- ** * ( +, 1- 00 0 ,1 < 7 2%.26=
4 :8% (1 '+0 ,
- ) a ' 3T
) " 3 _P ) !
' < ) ) , = )
a ) !
a !
!
3^? 7 ' !
H^? 7
Z^?
.^? / ' ]
4 :82 .
- G) #< = N 3T <H π =!
) *
!
$ ) G !
!#
G ) * ' #
U
3^? 7 ' !
H^? 7
Z^?
.^? 7 / ]
4 :85 4&
8 ) ' +
, #< = Rb !
' '
%
Q < = N HT W3?√<3D< !Hπ = H = X
, !
G ) !
N 3T _P , N 3TTTTT _P
N .9TT Ω" N 3T C!
< - =
_P!
3^? 7 ' !
H^? 7
Z^?
!$
,"F G ! < FI G=
4 F8
) HT - )
T )
! % N /3 [
3^? 7 ' !
H^? 7
Z^?
4 F8%
1 3T - ) %
T N /T"6 D3 N√< D 3=
3^? 7 ' !
H^? 7
Z^?
4 F82
xn Filtre yn
numérique
% # /3 N T # VH N T
1 ) # ,
' % $ N c3"3"3 >! d K T! $ N T JT!
x
1
n
3^? 7 ' !
H^? 7
Z^?
," @ < @=
4L @8
DCy
BP1
Led2 Led1
BP2
Capteur position initiale
' 7 # )
- 2&3 !
2&H!
3^? 7 ' !
H^? 7
Z^? ) !
G! 2 % ' $ ) ' $ U
4 @8%
Début
OUI NON
BP1 = Vrai
Pour i = 0 à 9
Led 1 = Vrai
Attente 3s
Led 1 = Faux
Fin
3^? F ) ' ]
H^? $
Z^? 1 !
4 @82
8* ! ' 7 # )
3T / 2&!
2&H ) !
3^? 7 ' !
H^? 7
Z^? ) !
4 @8 5 M + ( 0+/ K *
' 3T !
7 " ' ) ! #
) !
7 $- 3T . < e =!
7 - " e ^ ^
) e " # + Z !
) @ ', ' * !
4 @8 6 *+ ( +, / * ( ?1-+ ',
3^? 7 ' !
H^? 7
Z^? ) !
4 @8 9 $ +? ( - 7'+
" $
!
4 8
, H 6TT
) %
% W T " 3T τ X
τ ) !
0@ % ' !
' ) !
3^? Rb!
Z^? ) ) Rb!
.^? , - !
4 8%
' ) ' ) )
) ) !
!< =!
<) =
Y ? 120
100
90
60
50
1 $ !
4 82 '* / , ( * (',,1 *
) !
+ , %
7 ' ) !
7
1 $ !
7 f !
) - !
$ ) !
4 85
' $ H @ ' ) !
' $ Z !
4 86 'N ,, )0 ** ,
# # # # #
" ) "
+ , , ! #
( + " , /
( ) ( @ /
!
# # ) "
( # !
/ " ' , 8
) ! ' &83T < - 3T g = .5
8 !
%??:::! / / ! ? ? ? 3? h h h h6T!
! ! % , ,
!
' ' ) !& !
1 !
1 * # 5 !
F # # ]
!
," % 4
4 %8 A '/ + C N* 1 1* *
# $ )
' !
< = / !
s
e(t)
+8
t
-8
H^? C ; < = Rb!
4 %8%
%
<=N <Hπ = <Hπ =
%
JJ !
) ) ! ,
N T"3 _P N 3 _P!
HT ) ' $
!