Introduction à
LabVIEW
Ces slides sont en grande partie tirées du cours de
1
Aldo Vaccari, Unité Power & Control / HES-SO Valais, Sion
Contenu du cours – 1ère partie
Chapitre 1
Introduction à LabVIEW
Chapitre 2
Création d’un programme
Chapitre 3
Les Boucles
Chapitre 4
Les tableaux
Chapitre 5
Les graphiques
2
National Instruments
[Link]
National Instruments Switzerland
Sonnenbergstrasse 53
CH-5408 Ennetbaden
Tél :056 200 51 51 National Instruments Suisse
Fondation : 1990
Fax:056 200 51 55 Directeur : Michael Dams
Fondé de pouvoir : Christian Moser
National Instruments Corporation Employés : 20
Fondation : 1976 à Austin, Texas/USA Siège : Ennetbaden/Zürich
Président/CEO : Dr James Truchard
Employés : environ 4600
Siège social : Siège principal / recherche à Austin.
Production : Debrecen (Hongrie)
Filiales : National Instruments a plus de 40 filiales dans le monde entier.
3
Historique de LabVIEW
1986 - LabVIEW 1 pour Macintosh
1990 - LabVIEW 2 devient un compilateur / version PC
1994 - LabVIEW 3 avec des toolkits
1996 - LabVIEW 4 avec menus configurables
1998 - LabVIEW 5 connectivité, multithreading, undo
2000 - LabVIEW 6i fonctionnalités internet
2002 - LabVIEW 6.1 remote panels et prog événementielle
2003 - LabVIEW 7.0 Express
2004 – LabVIEW 7.1
2005 - LabVIEW 8 orienté projet, shared variables
2006 – LabVIEW 8.20 (20 ans de LabVIEW)
2007 – LabVIEW 8.5
2008 – LabVIEW 8.6
2010 – LabVIEW 9.0 (32 & 64 bits) 4
Programmation graphique
Facile à programmer
Temps de développement réduit
Interface utilisateur graphique
Code source sous forme graphique
Programme facilement modulable
Application Builder pour créer des exécutables
5
Compatibilité Multi-Plateformes
Programmation indépendante
de la plateforme utilisée !
Migration possible des
applications entre plateformes
6
Cibles matérielles LabVIEW
7
Chapitre 1
Introduction à LabVIEW
Thèmes :
A. Ce qu’est un ‘Instrument Virtuel’ (VI)
B. L’environnement LabVIEW
C. Les options d’aide LabVIEW
8
Instruments Virtuels (VIs)
Front Panel (interface utilisateur)
Controls = Entrées
Indicators = Sorties
BlockDiagram (écran de
programmation)
Programme correspondant au front
panel
Composants “câblés” ensembles
9
Les types de données
Scalaire Tableau 1D Tableau 2D
Numérique(Numeric) Orange (real)
Bleu ( integer)
Booléen (Boolean) Vert
Chaîne de caractères Rose
(String)
Enregistrement (cluster) Brun
Nom de fichier (File Path) Vert foncé
10
Icône/Connecteur
• L’ icône represente un VI dans un
autre ‘block diagrams’
icon
terminals
• Le connecteur permet de passer et de
recevoir des données d’un “sous-VI” au
connector moyen de terminaux.
11
Raccourcis utiles
• Ctrl + e : switch FP / BD
• Ctrl + n : new
• Ctrl + o : open
• Ctrl + s : save
• Ctrl + p : print
• Ctrl + b : clean broken wire
• Ctrl + t : separate FP / BD
• Ctrl + c : copy
• Ctrl + v : paste
• Ctrl + h : context help
• Ctrl + z : undo
• Ctrl + shift + z : redo
12
Démarrage LabVIEW
13
Projet LabVIEW (*.LVproj)
Right Click on my computer and
NEW VI
14
Interface utilisateur (Front Panel)
Barre Icône du VI
d’état Label du
bouton
Contrôle
Digital
Contrôle
Bouton
Légende du
Graphique graphique
15
Ecran de programmation (Diagram)
Terminal
du FilFildedeliaison
liaison
contrôle
digital
Terminal
du bouton
Terminal du
graphique
Constante Fonction Fonction Boucle Sous-VI
Numérique Multiplication Timing FOR
16
Barre d’état
1. Bouton Run Menu déroulant polices de caractères
2. Bouton Run en continu Menu déroulant pour l’alignement
3. Bouton STOP Menu déroulant pour la distribution
4. Bouton Pause/Continue Menu pour ordre d’apparence
Boutons aditionnels dans le Diagram
1. Execution Highlighting button
Bouton Enter
2. Step Into button
3. Step Over button
4. Step Out button
17
Palette d’outils
Séléction automatique des outils
Outils de manipulation
Outils de positionnement,
redimensionnement
Outils d’écriture
Outils de câblage
Outils ‘pop-up’ menu
Outils de défilement
• Outils d’édition et de Outils ‘Breakpoint’
débogage Outils sonde de débuggage
• Palette flottante Outils de copie de la couleur
Outils de coloriage
18
Palette de Contrôle et de Fonctions
Palette de contrôle Palette de Fonctions
(Panel Window) (Diagram Window)
Rechercher
Remonter
D’un niveau
Palettes graphiques, flottantes
Les sous-palettes peuvent devenir
aussi
flottantes
19
Palette de Contrôle en détail
20
Palette de fonctions en détail
21
Help !
Afficher le menu d’aide contextuel (Help menu) <crl+h>
Affiche d’aide Simple/Detaillé
Blocage de l’aide sur un élément
Aide online (manuels de référence)
22
Résumé du chapitre 1
Les instruments virtuels (VIs) sont composés de 3 parties principales :
- le front panel
- le block diagram
- l’icône/connecteur
Le front panel est l’interface utilisateur d’un programme LabVIEW.
Le block diagram est le code exécutable.
Click de droite et menu contextuel pour modifier les propriétés de
chaque objet.
Palettes flottantes :
Palette des outils
Palette des Contrôles (seulement dans le front panel)
Palette de fonctions (seulement dans le Diagram)
Possibilité d’avoir de l’aide contextuelle en ligne…(ctrl+h)
23
Exemple 1
Création du premier petit programme qui va
additionner deux nombres et afficher le résultat
24
25
Chapitre 2
Création/édition et debugging d’un VI
Thèmes:
A. Comment créer des VIs
B. Comment éditer des VIs
C. Comment débugger des VIs
26
Creation de l’interface utilisateur
(Front Panel) d’un VI
• Contrôles et indicateurs numériques
• Contrôles et indicateurs booléens
• Configuration des contrôles et indicateurs
– Utilisation des menus raccourcis
– Les differents menus des Objets
Digital
Indicator
Labels
Increment Digital
Buttons Boolean Boolean
Control Control Indicator
27
Action mécanique des Booléens
• Switch action: Le
contrôle reste dans son
état jusqu’au prochain
changement à la main.
• Latch action: Le contrôle
revient à son état par
défaut dès lecture dans
le diagram
28
Acces aux menus contexctuels
Click de droite sur l’affichage
Click de droite sur le label
digital pour afficher son menu
pour afficher son menu
contextuel
contextuel
Windows & UNIX: touche-souris de droite
MacOS: Control-Click
29
Modifications des Contrôles & Indicateurs numériques
• Définition de la plage
• Définition des digits de précision
30
Creation du Block Diagram d’un VI
Interface utilisateur (Control Panel)
Code (Diagram Window)
Contrôles :
Terminaux
Indicateurs:
Terminaux
Aspect du Terminal pour la Fils Fonctions
Fonction Add et la fonction
Subtract (3 noeuds).
31
Programmation selon le flux de données(data flow)
• Les Block diagram ne s’executent PAS nécessairement de
gauche à droite !
• Une fonction s’exécute uniquement lorsque elle a reçu
TOUTES ses entrées !
• Une fonction fournit TOUTES ses sorties lors de son
exécution !
32
Recherche de Contrôles, VI, Fonctions
Appuyez sur le bouton search
pour faire une recherche de
texte dans la palette.
Utilisation des boutons se
trouvant au sommet de la
palette des Contrôles et des
fonctions pour naviguer et
chercher des contrôles et des
fonctions spécifiques.
33
Techniques de déboguage
• Trouver les erreurs
Click sur la flèche cassée Run et une fenêtre
Apparaît montrant les erreurs du programme
• Mode debugging
Click sur l’ampoule, le programme tourne au
ralenti et le déroulement du programme est
animé. Les valeurs des données sont écrites
sur les fils
• Sondes
Click de droite sur les fils pour poser une sonde
qui permet de visualiser online les données
passant dans le fil
Il est aussi possible de poser une sonde depuis
la palette des outils (symbole jaune)
34
Techniques de déboguage
• Points d’arrêts
Sélection de l’outil point d’arrêt depuis la palette des
outils et placez-le où le programme doit s’arrêter.
• Opérations pas-à-pas
Chaque click permet d’avancer d’un pas dans le
Programme, y compris dans les sous-programmes
Chaque click permet d’avancer d’un pas dans le
Programme, sans passer dans les sous-programmes
Permet de ressortir d’un sous-programme
35
Résumé du chapitre 2
Placement des contrôles (inputs) et des indicateurs (outputs) dans le
control panel
Utilisation des outils pour manipuler les objets du control panel.
Utilisation de la flèche pour sélectionner, bouger, et redimensionner.
Utilisation de la bobine pour connecter les objets dans le diagram.
Les contrôles ont un terminal à bord plus épais que les indicateurs.
Tous les objets LabVIEW ont un menu contextuel
Le programme est réalisé par câblage des objets et fonctions selon le
flux de données
Bouton Run avec la flèche brisée = VI non-exécutable
Quelques outils et options de débogage
36
Exercices : à vous de jouer !
1. Réalisez un programme qui permet de convertir une
température de degrés Celsius [°C] en degrés Farenheit
[°F] et inversément.
Deg [°F] = Deg [°C] * 1.8 + 32
37
Chapitre 3
Les boucles
Thèmes :
A. A propos de la boucle While
B. Utilisation des registres à décalage
C. La boucle For
D. Timing pour l’execution d’une boucle
39
La boucle While
1. Sélection boucle While 2. Sélection du code à répéter
3. Placement du code dans la boucle While
Do
(Execute diagram
inside Loop)
While Condition is TRUE
40
Choix de la condition de boucle
Click de droite sur le terminal de condition de la
boucle pour définir quand elle doit s’interrompre
Terminal d’itération Terminal de condition
41
Registres à décalage (shift register)
• Disponibles sur les bord droit et gauche des boucles
• Click de droite sur le bord de la boucle et sélectionner Add Shift
Register
• Le terminal de droit stocke la valeur après un passage dans la boucle
• Le terminal de gauche met à disposition la valeur stockée avant au
début de l’itération suivante
Valeur initiale Valeur 1 Valeur 2
Valeur
Valeur 3
initiale
Valeur 1 Valeur 2 Valeur 3
Avant Première Deuxième Dernière
début itération itération itération
boucle
42
La boucle For
• Exécute le diagramme qui se trouve à l’intérieur un nombre
prédéterminé de fois.
• Possibilité de créer des registres à décalage
Terminal du compteur
(Entrée numérique)
FOR N=0 TO 100
DO
(Execute diagram
inside Loop)
END
Terminal d’itération
43
Timing d’exécution d’une boucle
• On peut fixer le temps d’éxecution de boucle par une fonction Wait
(attendre).
• Attention, si le temps est plus petit que le temps nécessaire à
l’exécution du programme dans la boucle, c’est le multiple suivant du
temps qui sera pris.
1000
stop
• Cette boucle va se répéter chaque seconde
44
Timing d’exécution d’une boucle
• Il faut toujours insérer un timing pour cadencer une boucle afin
de préserver l’utilisation du processeur du PC
Sans Cadencement de boucle Avec cadencement de boucle (10 ms)
45
Résumé du chapitre 3
• Deux types de boucles dans LabVIEW : Boucle While et boucle FOR
• La boucle While : Boucle ‘Tant que’ : s’exécute tant que la condition de fin
n’est pas activée
• La boucle FOR : s’exécute un certain nombre de fois défini au départ
• Le diagramme devant être répété se place à l’intérieur de la boucle
• Utilisation d’un timer pour cadencer l’exécution de la boucle
46
Chapitre 4
Les tableaux
Thèmes :
A. A propos de tableaux
B. Comment générer un tableau avec une boucle
C. Fonctions de base sur des tableaux
47
Les tableaux
• Collection de données du même type
• Une ou plusieures dimensions
• Les éléments sont accessibles par leur index
• Le premier élément se trouve à l’index 0
index 0 1 2 3 4 5 6 7 8 9
Tableau 1D à 10 éléments 1.2 3.2 8.2 8.0 4.8 5.1 6.0 1.0 2.5 1.7
0 1 2 3 4 5 6
Tableau 2D 0
1
2
3
4
5 lignes par 7 colonnes
Tableau de 35 éléments
48
Les contrôles et indicateurs de tableaux
1. Selection du contrôle
2. Placer un contrôle dans le
Tableau (Array)
tableau pour définir le
type de données du tableau
(ici numérique)
Redimensionner le contrôle pour
ajouter une
dimension
49
Creation de constantes tableaux
1. Choisir une
constante de
type tableau dans la
palette de foinctions
Array
2. Placer une constante dans la
constante tableau pour définir le
type.(Ici, constante Booléene)
50
Création et utilisation de tableaux
• Sur une boucle, l’option
‘Auto-Indexing ‘ permet de
construire
automatiquement un
tableau.
• Boucle For: auto indexing
par default; Boucle While
pas par défaut
51
Création de tableaux 2D
• La boucle interne crée les colonnes
• La boucle externe stocke les colonnes dans les lignes
52
Accès aux éléments du tableau
Extraction d’un élément
Ajouter un élément
53
Exercices : A vous de jouer !
3. Réaliser un programme sous forme de boucle qui permet de décompter de
100 à 0 chaque 100 ms et qui allume une lampe quand le compte à rebours
est atteint (valeur = 0).
4. Créer un programme de Loterie qui permet à chaque pression sur un bouton
de générer 6 chiffres aléatoires entre 0 et 100 et d’afficher ces 6 chiffres à
l’écran.
Travail personnel
• Réaliser un programme en boucle qui permet de comparer deux chiffres et qui
affiche à l’utilisateur avec trois lampes si:
• nombre 1 < nombre 2
• nombre 1 = nombre 2
• nombre 1 > nombre 2
54
Chapitre 6
Graphs et Charts
Thèmes :
A. Les graphiques (Graphs)
B. Utilisation des graphs
C. Les graphiques (Charts)
D. Utilisation des Charts
55
Chart
• Se trouve dans la sous-palette Controls Æ Graph
56
Utilisation des Charts
• Chart mono-trace
• Chart multi-traces
A chaque passage dans la boucle, le chart rajoute le dernier point
à la suite de la courbe. C’est lui qui contient l’historique des points
comme un enregistreur à papier déroulant
57
Graph
• Se trouve dans la sous-palette Graph
• Waveform Graph – Trace un tableau de points en
fonction de leur index en une fois (pas d’historique)
• XY Graph – Plot un tableau de point (y) en fonction d’un
second tableau (x)
Plot Legend
(point and
line styles)
Scale Legend Graph Palette
58
Graph mono-trace
Axe X : X initial = 0.0, delta X = 1.0 (par défaut)
Axe X : X initial= 3, delta X = 0.5 (défini par l’utilisateur)
59
Graph multi-traces
Chaque ligne est une trace séparée ( X0 = 0, delta X = 1 par défaut)
Chaque ligne est une trace séparée (Xo et ΔX spécifiés par l’utilisateur)
60
Utilisation de l’aide contextuelle pour les Charts & Graphs
61
Exercices : A vous de jouer !
• Réaliser un programme qui permet d’afficher une séquence de nombres
aléatoires entre 0 et 10 dans un graphique.
62