Académique Documents
Professionnel Documents
Culture Documents
I. Introduction
II. Environnement LabView
III. Acquisition de données
IV. Les variables, les tests, les boucles
V. Simulation
2
I. Introduction
Labview (Laboratory Virtual Instrument Engineering WorkBench) est un
logiciel cree en 1985. C’est un logiciel de développement de programmes
d’application.
LabView utilise un langage de programmation essentiellement graphique
dédié au contrôle, à l'acquisition, l'analyse et la présentation de données.
En LabView, on n'écrit pas de lignes de programme dans un langage textuel
comme Pascal ou C, Basic ou Fortran. On manipule des objets graphiques
Labview est dédié à la programmation conçue pour le pilotage d'instruments
électronique ! Avec Labview on construit graphiquement des modules logiciels
appelés des « VI » (Visual Instruments) au lieu d'écrire du code dans un langage
informatique textuel.
Le rôle d'un VI est d'acquérir des données issues par exemple de fichiers, du
clavier ou encore de cartes électroniques d'Entrée/Sorties », de les analyser, et de
les présenter au travers d'interfaces hommes-machines graphiques (encore
appelées « face avant » par analogie avec la face avant permettant de piloter un
appareil électronique).
Labview, ce qu'on appelle la « face avant » est donc l'interface utilisateur
permettant d'exploiter, de piloter, le programme. 3
I. Introduction
Pourquoi utiliser LabVIEW ?
LabVIEW vous permet de construire vos propres solutions pour des systèmes
scientifiques et techniques.
4
II. Environnement LabView
Acquisition avec LabVIEW
LabVIEW permet l’acquisition de données
par l’intermédiaire de diverses connectiques :
• PCI (Peripheral Component Interconnect)
• CompactFlash
• LAN (Local Area Network)
• USB (Universal Serial Bus)
• GPIB (IEEE 488) (General Purpose Interface Bus)
• PXI (PCI eXtensions for Instrumentation)
• Wi-Fi (IEEE 802.11 b/g/n) (Wireless Fidelity)
• Bluetooth
• IrDA (Infrared Data Association)
écrans d’oscilloscope
sorties Afficheurs numériques en écriture (affichage)
Vu-mètres
Etc …
Ces objets sont disponibles dans la palette de commandes qui apparait
par clic droit sur la face avant.
On les place par ≪ glisse depose ≫. 6
Analyse avec LabVIEW
LabVIEW inclut des outils pour
l’analyse des données :
7
Les programmes LabVIEW appelés Instruments
Virtuels ou Virtual Instruments (VI)
8
Les VI se composent de trois
Composantes d’un VI éléments principaux :
- Face avant
• Interface utilisateur
« Contrôles » = entrées
« Indicateurs » = sorties
- Icône/Connecteur 9
Face avant d’un VI
Palette de commandes
(disponible à partir de la
fenêtre face avant par un clic
droit avec la souris ou dans la
barre des menus : “
Fenêtre”).
Palettes de fonctions
(disponible à partir de la
fenêtre diagramme par un
clic droit avec la souris ou
dans la barre des menus : “
Fenêtre”).
Outil d’écriture
Outil de sélection
Outil de défilement
Placer des points d’arrêt
dans les VIs
17
Créer un nouveau VI
Fenêtre du diagramme
Fenêtre de la face avant
18
Exemple 1: fonctions mathématiques de base
Face avant
But: créer un VI permettant
de réaliser des opérations
mathématique simples (+, -, x,
/) et d’afficher les résultats.
Face arrière
19
Exemple 1: fonctions mathématiques de base
Face avant
But: créer un VI permettant
de réaliser des opérations
mathématique simples (+, -, x,
/) et d’afficher les résultats.
Face arrière
20
Création d’un VI
• Sélectionner : Nouveau VI (Virtual Instrument)
• Sélectionner la fenêtre face avant (grise)
• clic droit → Commandes
• Déplacer la souris sur ‘ Numérique ’
• Une sous-fenêtre apparaît avec les commandes numériques
Indicateurs numériques
Créer quatre indicateurs numériques
que vous pourrez nommer
• ‘ somme ’
• ‘ soustraction ’
• ‘ multiplication ’
• ‘ division ’ 21
Commandes numériques
Créer deux commandes numériques
que vous pourrez nommer
• ‘ première valeur ’
• ‘ deuxième valeur ’
24
flot de données
<ctrl-E> → diagramme, puis
cliquer sur ‘ animer l’exécution ’, puis exécuter en
continu
25
Exercice: Opérations booléennes
But: Calculer c=(b+a)²/((a-b)*(a+b))
26
Exercice: Opérations booléennes
27
Exercice: Opérations booléennes
28
Opérations booléennes
Insérer les fonctions ET, NON et OU
Câbler L’équation L= a* b + a * b
29
Quelques raccourcis clavier
30
Exercice: Opérations booléennes
But: Moyenne de 3 nombres écrits au clavier
Pour modifier le type d’une variable En clique dessus avec le bouton droit et en
sélectionnant l'option « représentation ».
Le type des données que manipule LabView est semblable à ceux des autres langages
informatiques :
Données de type réel : de couleur orange en labview,
Données de type entier : de couleur bleue en labview
Données de type booléen : de couleur verte en labview
Données de type « chaîne de caractère » : de couleur violette en labview 34
Les variables
35
Les variables Codage des nombres entiers
de 00000000 à 11111111
Sans bit de signe
de 00000000 à 01111111
Avec bit de signe
si t if
po
de 0 à 27 -1 = 127
+0,662 * 2-16
Exposant :8
Signe : 1 bit
Mantisse : bits
Valeurs extrêmes possibles:
23 bits
Nombre nul : 0
Nombre positifs de : 1,21 10-38 à 3,40 1038 Type Float (langage C) Type SGL en
Nombre négatifs de : -1,21 10-38 à -3,40 1038 LabView
Vraie : True
Variable
Booléenne
Fausse : False
Codage sur 1 seul bit
39
Les variables Résumé différentes variables
40
Les variables Résumé différentes variables
Flottants
Booléens
Chaînes de caractères
41
Exercice
- Conversion de °C en °F et en K
Conversion de °C en K : K = °C + 273,15
43
Exercice
44
Création d'un sous VI
Sous VI
Un « sous VI » est un programme VI, utilisé par un autre programme VI de
plus haut niveau; C'est l'équivalent des « sous-programmes ».
(X-Y)
• Une icône représente un VI dans un autre
X 50 diagramme d’un VI de plus haut niveau.
1 case en sortie
pour l’indicateur
46
Création d'un sous VI
Créer une icône
Cliquez avec le bouton droit sur l’icône de la face avant (en haut à
droite), ou sur l’icône du diagramme et choisir “Éditer l’icône”.
La personnalisation de l’icône est tout à fait facultative et ne
changera rien au fonctionnement du sous VI.
Visualiser le connecteur
Cliquer avec le bouton droit sur l’icône (face avant seulement) et choisir
“Visualiser le connecteur”.
47
Création d'un sous VI
Assigner les terminaux
En général, on choisira de mettre les entrées à gauche et les sorties à droite.
Modèles
Lorsque l’on assigne les connecteurs il est possible de définir leur importance en
leur attachant un des trois termes suivants : «Nécessaire», «Recommandée»,
«Optionnelle».
Icône :
3 entrées
3 sorties
En gris : terminaux optionnels (Nom de l’image,
Couleur?,…)
Normal : terminaux recommandés (Image masquée)
48
En gras : terminaux nécessaires (Chemin d’accès)
Création d'un sous VI
Sauvegarde du VI
49
Création d'un sous VI
51
Application
52
Graphiques
54
Graphiques Utilisation d’une boucle
55
Les graphes
Plusieurs types de graphes : déroulant, XY, simple, déroulant d’intensité,
d’intensité, numérique et 3D. Tous ces graphes ont des particularités différentes
mais sont tous paramétrables par un click droit (notamment la modification des
axes, l’ajout d’échelle, modification de couleur ….). Graphe et légende
Conversion du flux
Conversion du
de lumière (photons)
signal analogique en
en courant électrique
signal numérique
(électrons)
58
Rappel -Exercice
Créer un sous-VI opération (somme) composé de 3 entrées (x, y, z) et une sortie
(R), puis utilisez ce SVI dans une application pour remplir un réservoir, les entrées
variables de la nouvelle application sont A, B, C, D (voir le schéma bloc) et une
constante 9. Faire revenir à la face avant uniquement le résultat de la somme de (A,
B, C) dans la première partie, puis le résultat final en ajoutant D et la constant qui
ne sera pas apparaître à la face avant.
59
Rappel -Exercice
Créer un VI qui calcule la pente à partir des commandes numériques x1, x2, y1 et y2,
selon l’équation m=(x2-x1)/(y2-y1). Utiliser d’une commande de type bouton rotatif
(Knob) pour l’entrée des valeurs de x1 et d’un curseur horizontal (Horizontal scroll)
pour l’entrée des valeurs de y1. Afficher leurs valeurs de ces deux commandes avec
deux indicateurs que l'on prend dans la palette de commandes «Modern/Numeric».
Pour x2 et y2, utiliser des commandes numériques simples (Numeric control).
60
Les variables, les tests, les boucles
i:=0;
do { Formula node
} while (cond; i++)
switch(cond) {
case:
break; Mathscript node
default }
61
Les variables, les tests, les boucles
structures
Le TEST
REMARQUES :
64
Le TEST
Exemple :
Saisir une note N au clavier.
Afficher sur une chaine de caractère le message ‘‘c’est bien’’ si N ≥ 12
Afficher ‘‘c’est assez bien’’ si 9 ≤ N < 12
Afficher ‘‘c’est insuffisant’’ si N < 9
65
Le TEST
DANS LabVIEW
Le résultat booléen du test est connecte sur le point d’interrogation vert.
Les instructions réalisées si le résultat du test est OUI sont écrites a l’intérieur de la
structure lorsque VRAI apparait en haut du rectangle délimite.
Les instructions réalisées si le résultat du test est NON sont écrites a l’intérieur de
la structure lorsque FAUX apparait en haut du rectangle délimite.
Un seul cas est visible simultanément, cliquer sur les triangles pour passer de l’un a
l’autre.
66
Le TEST
DANS LabVIEW
67
Le TEST
EXP 2 Création d’un VI de génération de nombres aléatoires.
Placer sur la face-avant une commande « seuil »
Placer à l’intérieur de la boucle while une structure condition
Dans l’étape True de la structure condition, placer une Constante chaîne de texte ,
la remplir avec le texte « Val supérieur au seuil », et False « Valeur inférieur au
seuil »
68
Les variables, les tests, les boucles
Boucle For
Incrémente
le compteur
d’itération
69
Les variables, les tests, les boucles
Nombre de tours de
boucle
Terminal d'itération :
compte les répétitions
71
Exemple 2 : Une boucle FOR qui s’exécutera N fois. A l’intérieur, placer un tirage
de nombres aléatoire qui sera relié à un graphe. Placer un « timer » cadencé à de
100 à 500 ms.
Nombre de tours de
boucle
Terminal d'itération :
compte les répétitions
72
Exemple : Génération aléatoire de 10 nombres
73
Boucle While
La boucle While permet de répéter une suite d’instructions en fonction du résultat
d’un test.
la boucle While, on ne connait pas a l’avance le nombre d’itérations qui seront
réalisées.
Un tour de boucle est appelé ‘‘itération’’.
ORGANIGRAMME
On peut permuter
dans LabVIEW74
Boucle While
Possède un Terminal (compteur) Iteration
Fonctionne toujours au moins une fois
Fonctionne en fonction de l’état du Terminal condition
Terminal
condition
Terminal d’itération
76
Boucle While
DANS LabVIEW
77
registre à décalage:
Les registres à décalages sont présents uniquement dans les boucles, et permettent à
une itération I, de connaître la valeur d’une variable évaluée à l’itération
Le registre de droite reçoit des données de l’intérieur de la boucle, elles sont
transférées au registre de gauche à l’itération suivante. Le registre de gauche est une
source de données pour les éléments de l’intérieur de la boucle.
Le diagramme s’inscrit
dans une boucle While
79
La structure Séquence :
Pour faire apparaître une étape supplémentaire, se placer sur le bord et BD « ajouter
une étape après ».
80
Les tableaux
Afficheur Afficheurs
d’indices d’éléments
la valeur (l’élément) « 0,658384 » est à l’indice 0. L’élément « 0,659422 » est à
l’indice 3,... 81
Les tableaux Construire un tableau 1D
Tableau de commandes ou
d’indicateurs
A partir de la palette Fonctions >> Toutes les fonctions >> Tableau, sélectionnez
Tableau
Tableau de constantes
Un tableau 2D est
caractérisé par la présence
de 2 indices (1 pour la ligne
et 1 pour la colonne)
Tableau 1D
Tableau 2D
83
Manipulation
représenter graphiquement
un tableau de données.
86
Rappel BOUCLE WHILE
L’alarme doit s’activer et devenir rouge si la pression dépasse le seuil acceptable.
Version initiale
88
Création d’un fichier de données
89
Rappel Les tableaux
90
Rappel Les tableaux
91
Manipulation La structure “boîte de calcul”
Elle permet d’implémenter une équation mathématique sans utiliser les fonctions
numériques.
On entre les équations avec l’outil A (éditeur de texte). Les entrées et les sorties
(les terminaux) sont ajoutées avec le menu local de la structure (clique-droit de la
souris placée sur le cadre de la structure).
Chaque ligne de l’équation doit se terminer par “ ;” .
92
Face avant Diagramme
Manipulation Scripte Matlab
Créer un VI simulant une prise de température à partir d’un capteur à sortie
analogique linéaire 0-10Volts pour -15°C et 150°C. Ce VI affichera la température
en °C, °F et K. (rappel : °F=°C*(9/5)+32).
L’algorithme sera le suivant :
Début
Lecture commande V
Tc=16.5 * V - 15
Tf=Tc * (9/5) + 32
Tk=Tc + 273.15
Fin
93
Manipulation Scripte
94
Manipulation Scripte
Exercice: vitesse au contact du sol d’un projectile :
Créer un VI qui calcule la vitesse d’un projectile, lancé d’une hauteur h (à donner
par l’utilisateur) avec vitesse initiale nulle, lorsqu’il entre en contact avec le sol.
Rappel de mécanique :
Lorsque le projectile touche le sol, x=0
donc
.
96
Manipulation
Utilisation du nœud sélectionner
97
Manipulation
Spécifications:
• Calculer la moyenne de 4 valeurs
• Si le résultat est plus petit que 0, le forcer à 0
98
EXERCICE 1
99
EXERCICE 2
La marche avant est simulée par l’allumage d’une led verte (led1) La marche arrière
est simulée par l’allumage d’une led rouge (led2).
Le wagon étant en position initiale, l’appui sur le bouton DCy (départ 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 l’appui sur DCy pour avancer et qui
doit faire marche arrière quand le bouton poussoir BP1 est enfoncé. Le retour en
position initiale est détecté par le contact simulé par un bouton poussoir BP2.
Réaliser le vi en utilisant la structure séquence.
100
EXERCICE 3
101
Projets
Station météorologique
Gestion du parking de l’école ESTG
Carrefour routier : Ecrire un programme simulant et gérant les feux de
signalisation d’un carrefour routier. Les 4 feux fonctionnant 2 par 2 sont réalisés
avec des leds colorées.
Codage des résistances
Mesures pour la caractérisation de modules photovoltaïques
Régulation de température
Régulation de niveau
102
Projets
Régulation de niveau
103
Les nombres
105
Variables locales
Un objet de face avant possède qu’un seul terminal au niveau du code mais vous
auriez besoin de lire ou de mettre à jour cet objet en différents endroits du code.
En utilisant les variables locales vous pouvez avoir accès à cet objet en
différents endroits du code et transmettre des données entre différentes
structures qui ne peuvent pas être connectées par un câble.
Pour simplifier le câblage (éliminer des fils de trop grande longueur), on peut avoir
recours à une variable locale. La variable locale créée prend le nom de la variable
d’origine, et peut être utilisée en lecture ou en écriture, forçant ainsi la donnée à
changer de valeur.
106
Variables locales
Exercice
Générer un VI qui permet de donner le temps (en ms) entre deux appuis de
boutons.
On utilisera une structure séquence empilée avec, soit des variables locales,
soit des variables locales de séquences ainsi que la fonction suivante :
107
Variables locales
Solution
108
Variables locales
109
Variables globales
Une variable globale agit de la même façon qu’une variable locale excepté
le fait que l’on peut transférer cette variable d’un VI à l’autre par
l’utilisation du sous VI crée.
Les données correspondant à une variable globale sont stockées dans un des
contrôleurs du panneau avant d’un VI spécial destiné à contenir des objets
accessibles à tous les sous-programmes.
110
Acquisition de données
Recueillir l’information
Stocker l’information
Traiter l’information
Afficher l’information
111
Acquisition de données
• Fonctions:
• acquisition de tensions à une fréquence d’échantillonnage fixée
• génération de signaux analogiques de forme arbritraire
• [génération/acquisition de signaux numériques]
112
Acquisition de données
Une carte DAQ offre les mêmes fonctionnalités qu’un oscilloscope mais permet
la réalisation de nombreuses fonctionnalités supplémentaires de manière
personnalisable par logiciel. De plus, elle est compacte, économique et utilise la
puissance du processeur des PC.
114