Cours d’initiation
au logiciel LabVIEW
Par JDD Nkapkop, PhD
1
Objectifs du cours
• Présenter LabVIEW et ses fonctionnalités.
• Comprendre les composants d'un Instrument Virtuel (appelé VI).
• Établir une application simple d'acquisition de données.
• Créer un sous-programme dans LabVIEW.
• Travailler avec les tableaux, les graphiques, les clusters et les structures.
• Connaître des dispositifs d’impression et de documentation d’un VI.
• Développer différentes architectures de programmation.
• Publier des VI ou des données sur un réseau ou sur le Web.
• Maîtriser les bases de communications par liaison GPIB et Série.
• Connaître les outils d’acquisition et de traitement d’images.
• Comprendre les concepts de base du développement temps réel.
2
SOMMAIRE
Partie I – Introduction à LabVIEW 5
Partie II – Les Sous VI 47
Partie III – Acquisitions de données 60
Partie IV – Boucles, registres à décalage et introduction aux
graphiques 77
Partie V – Tableaux et fichiers 88
Partie VI – Fonctions des tableaux et graphiques 104
Partie VII – Chaînes de caractères, clusters et traitement d’erreurs 113
Partie VIII – Structures Condition et Séquence, Boîte de calcul 129
Partie IX – Variables 144
Partie X – Tables et nœuds de propriétés 152
Partie XI – Impression et documentation de VI 162
Partie XII – Architectures de programmation 170
3
Partie XIII – Outils de publication sur le Web 187
Partie XIV – Contrôle d’instruments 191
Partie XV – Module Vision 204
Partie XVI – Exercices d’applications 217
Partie XVII – Développement d’applications temps réel 250
Partie XVIII – DataSocket 261
Partie XIX – Sujets complémentaires 269
Remarque :
La version de labVIEW utilisée pour ce cours d’initiation est la
version 7.1.
4
Partie I – Introduction à LabVIEW
• Généralités.
• Un peu d’histoire.
• Vocabulaire LabVIEW.
• Environnement LabVIEW.
• Composants d’une application LabVIEW.
• Outils de programmation LabVIEW.
• Créer une application LabVIEW.
5
Instrumentation Virtuelle avec LabVIEW
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) est un
environnement de développement graphique qui permet de créer des
applications modulaires (notion de sous VI) et extensibles pour la conception
d’applications, le contrôle et le test.
6
LabVIEW est un outils d’acquisition,
d’analyse et de présentation de données.
7
Acquisition avec LabVIEW
LabVIEW permet l’acquisition de
données par l’intermédiaire de
diverses connectiques :
• PCI (Peripheral Component Interconnect) • USB (Universal Serial Bus)
• CompactFlash • GPIB (IEEE 488) (General
• LAN (Local Area Network) Purpose Interface Bus)
• PXI (PCI eXtensions for Instrumentation) • Firewire (IEEE 1394)
• PCMCIA (Personal Computer Memory • Ethernet
Card International Association) • Série (RS 232, RS 449, RS
• Wi-Fi (IEEE 802.11 b/g/n) (Wireless 422, RS 423, RS 485)
Fidelity) • VXI (VME eXtensions for
• Bluetooth Instrumentation)
• IrDA (Infrared Data Association)
IEEE : Institute of Electrical and Electronics Engineers
8
Analyse avec LabVIEW
LabVIEW inclut des outils pour
l’analyse des données :
• Traitement du signal : Convolution, analyse
spectrale, transformées de Fourier,…
• Traitement d’images : Masque, détection de
contours, profils, manipulations de pixels,…
• Mathématiques : Interpolation, statistiques
(moyennes, écart-type,…), équations
différentielles,…
9
Présentation avec LabVIEW
LabVIEW inclut des outils d’aide à
la présentation (communication)
des données :
• Graphiques, tableaux, images, génération
de rapport,…
• Par l’intermédiaire d’Internet : outils de
publication web, serveur datasocket,
TCP/IP, envoie d’alertes par email,…
10
Un peu d’histoire
Mars 1998 • LabVIEW 5.0 ActiveX, Multifenêtrage
1997 • LabVIEW 4.0 addition d’outils pour les
professionnels, améliorations du debogage
Août 1993 • LabVIEW 3.0 version multiplateforme de LabVIEW
Septembre 1992 • LabVIEW pour Windows, et pour Sun
Janvier 1990 • LabVIEW 2.0 pour Macintosh
Octobre 1986 • LabVIEW 1.0 pour Macintosh
Avril 1983 • Démarrage de LabVIEW
11
Un peu d’histoire
2007 • LabVIEW 8.5, outils de développement multicœurs
(liés aux innovations dans l’architecture des processeurs
de PC), programmation par diagramme d’états
(statecharts)
2006 • LabVIEW 8.2 Édition des 20 ans, LEGO Mindstorms
NXT
2005 • LabVIEW 8 DSP (Digital Signal Processing), système
embarqué
Mai 2003 • LabVIEW 7 VI Express, Assistants E/S, FPGA/PDA
Janvier 2002 • LabVIEW 6.1 Analyse, fonctionnement en réseau
Août 2000 • LabVIEW 6i Applications Internet
1999 • LabVIEW Temps réel
12
LEGO Mindstorms NXT Moteurs
4 Entrées 3 Sorties
Capteurs additionnels :
accéléromètre,
Capteur de contact gyroscope, colorimètre,…
Capteur de son
Capteur de distance
(Émetteur/Récepteur à
ultrasons)
Capteur de lumière
Exemples de conceptions :
Machine
Humanoïde
Animaux
13
LEGO Mindstorms NXT
Environnement de développement graphique.
Le programme
est chargé dans
le robot via une
connectique
Bluetooth ou
USB.
Notions de temporisation, de boucles, de
gestion d’évènements,…
14
LEGO Mindstorms NXT Possibilité d’utiliser
directement LabVIEW
Autres exemples de conceptions : pour la programmation
et la gestion d’éléments
plus complexes.
Table traçante
Résolution d’un Rubik’s cube
Pilotage d’un hélicoptère
15
Les programmes LabVIEW appelés Instruments
Virtuels ou Virtual Instruments (VI)
On parle d’instruments virtuels car
leur apparence et leur fonctionnement
sont semblables à ceux d’instruments
réels, tels que les oscilloscopes et les
multimètres.
16
Composantes d’un VI Les VI se composent de
3 éléments principaux :
- Face avant
• Interface utilisateur
Contrôles = entrées
Indicateurs = sorties
- Diagramme
• Fenêtre de programmation et
d’affichage du code source
Interaction entre face avant et
diagramme (Ctrl+E)
- Icône/Connecteur
17
Face avant d’un VI Barre des menus
Barre d’outils
de la face Icône
avant
Légende
Contrôles du graphique
numérique
Contrôle Graphique
booléen
Grandeurs en Échelle du
abscisse et en graphique
ordonnée de la
courbe
Dans la face-avant nous trouverons tous les éléments
interactifs du VI (commandes et indicateurs).
18
Diagramme d’un VI Barre des menus
Icône
Barre
d’outils
du
diagramme Boîte de
calcul
Constante Fonction
numérique division
Structure d’une Structure d’une Fil de Terminal
boucle While (tant que) boucle For données graphique
Terminal de
contrôle booléen
Dans le diagramme nous trouverons tous les éléments
propres au code développé (structures, fonctions,
constantes,…).
19
Icône/connecteur d’un VI
• Chaque VI affiche une icône, dans le coin
supérieur droit des fenêtres de la face-avant
et du diagramme. Une icône est la
Icône par défaut
représentation graphique d’un VI.
• Un connecteur est un ensemble de
terminaux correspondant aux commandes
et aux indicateurs du VI qui sont
accessibles.
20
Ouvrir un VI
Modèles de VI
Des modèles de
VI déjà pré-codés
sont disponibles.
21
Ouvrir un VI Aperçu de la Description
Modèles de VI face avant du VI
Modèle de VI pour
Pocket PC
Modèle de VI pour
communications par
GPIB
Aperçu du
Permet d’avoir une diagramme
trame simple et
fonctionnelle
rapidement
22
Ouvrir un VI
Recherche d’exemples
Les exemples sont
très riches et souvent
très utiles pour
développer de petites
applications
rapidement.
23
Ouvrir un VI
Recherche d’exemples
Parcourir dans
les exemples
Recherche par mots
clés dans les exemples
Soumettre un exemple à
National Instruments
24
Ouvrir un VI
VI vide
25
Remonter l’arborescence
Palettes de commandes Rechercher un élément
Personnalisation de la palette
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”).
Boolé
Booléen
Numé
Numérique Chaî
Chaîne et chemin
Liste et table
Tableau et clusters (groupe) Graphe
Conteneurs
Menu dé
déroulant & énum E/S
Commandes classiques
Commandes (dialogue) Refnum
Décorations
Décorations Vision (module complé
complémentaire)
Sélection de commandes Commandes utilisateur
Dans cette palette nous trouverons tous les éléments
(commandes et indicateurs) nécessaires à la création de la
face-avant.
26
Palettes de fonctions
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”).
Numé
Numérique
Structures Boolé
Booléen
Tableau
Chaî
Chaîne Cluster (groupe ou agré
agrégat)
Temps & dialogue E/S sur fichiers
Comparaison
Waveform
Mesures NI Analyse
Contrô
Contrôle d’
d’applications Graphisme et son
E/S d’
d’instruments
Génération de rapports Avancé
Avancé
Communication
Décorations Bibliothè
Bibliothèques utilisateur
Sélection d’
d’un VI
Dans cette palette nous trouverons tous les éléments
(fonctions de base, VI Express,…) nécessaires à la création du
code graphique dans la fenêtre diagramme.
27
Les Fonctions, les VI et les VI Express
• Les Fonctions de base : Éléments d’exploitation fondamentaux de LabVIEW.
• Les VI Standards : VI qui peuvent être personnalisés.
• Les VI Express : VI interactifs avec une page de dialogue configurable.
Fonction de base
VI Express VI Standard
28
Palette d’outils
Utilisée pour agir sur les objets de la face avant et du
diagramme (disponible dans la barre des menus : “ Fenêtre”).
Possibilité de changer d’outils à l’aide de la touche tabulation
du clavier de l’ordinateur.
Outil sélection automatique
(actif lorsque la LED verte est allumée) Outil déplacement
Outil d’arrêt
Outil d’action sur la face avant
Outil sonde
Outil déplacement et taille
Outil copie couleur
Outil texte
Outil coloriage
Outil connexion par fils
Outil raccourci menu
29
Barre d’outils de la face-avant
Bouton Exécution du programme (VI)
Bouton Exécution continue
Bouton d’Arrêt d’exécution
Aide contextuelle
Bouton Pause/Reprendre
Configuration du format du texte
(taille, style, couleur,…)
Aligner les objets
Égalisation de l’espacement entre
les objets
Plan de l’objet (premier ou arrière
plan,…)
Redimensionner les objets de la face
avant
30
Barre d’outils du diagramme
Animer l’exécution pour animer le diagramme et voir les
données transiter.
Exécuter de façon détailler : Exécute le programme de
la façon la plus détaillée possible action par action.
Exécuter sans détailler : Exécute le programme nœud
par nœud sans rentrer dans le détail de leur exécution
interne.
Terminer l’exécution
31
Fonctionnalités classiques des programmes
Barre des menus standards mais également spécifiques à
LabVIEW.
32
Créer un VI Fenêtre du diagramme
Fenêtre de la face avant Nœud
Bouton Indicateur
Incrémenter/ numérique
Décrémenter
Terminaux
Terminaux d’indicateur
de contrôle (sorties)
(entrées)
=
Commande numérique
Clic droit sur la
Commande Indicateur commande (ou la
constante) numérique.
Cadre gras Cadre fin Fils de liaison
33
Paramétrage des constantes / commandes
Possibilité de paramétrer les
propriétés de la commande
numérique (ou de la constante).
Clic droit sur la commande
(ou la constante) numérique.
Format scientifique avec 2
chiffres de précision
Format virgule flottante avec 2
chiffres de précision
34
Paramétrage des constantes / commandes
Possibilité de paramétrer les
propriétés de la commande
numérique (ou de la constante).
Clic droit sur la commande
(ou la constante) numérique.
Possibilité de paramétrer
la gamme (avec un
minimum, un maximum
et un incrément).
35
Paramétrage des constantes / commandes
Possibilités de modifier le type de donnée
de la commande : entiers (mot long, mot,
octet), réels (précision étendue, double
précision, simple précision),…
Indication sur le
type de donnée
Permet de fixer une valeur
par défaut à la commande
36
Paramétrage des constantes / commandes
Réels
Entiers
Les entiers sont en bleu
Les réels sont en orange
37
Fonction de base
Étiquette Aide contextuelle (Ctrl + H)
Terminaux : 2 entrées et 1 sortie
38
Astuces de connexions
Points de Connexions Trois types de sélection
Simple clic Double clic Triple clic
Utilisation du routage
automatique Mise en forme des connexions
Clic droit
sur le fils
39
Programmation par flux de données
Nœud
Terminaux d’entrées Terminaux de sortie
• L’exécution du diagramme dépend du flux de
données. Il ne s’exécute pas nécessairement de
gauche à droite.
• L’exécution du nœud se fait quand les données sont
disponibles à tous les terminaux d’entrée.
• Puis les nœuds fournissent des données à tous les
terminaux de sortie.
• La plupart des langages de programmation textuel
(Visual Basic, C++, Java,…) utilisent des modèles de
flux de commandes. C’est l’ordre séquentiel des
éléments du programme qui détermine l’ordre
d’exécution du programme.
40
Les options d’aide
Aide Contextuelle (Ctrl + H)
• Aide détaillée
• Verrouillée l’aide
• Choix du mode de l’aide
(simple ou détaillée)
Accès à l’aide détaillée
• Accès à l’intégralité du contenu informatif.
• Ouverture automatique d’une fenêtre pour accéder directement à l’aide.
41
Aide détaillée
(barre des menus :
“Aide” -> “Aide LabVIEW…” )
42
Exercice 1 - Conversion de °C en °F et en K
Réaliser un VI qui permet d’effectuer une conversion de °C en K et en °F à
partir de fonctions de base de labVIEW.
Conversion de °C en K : K = °C + 273,15
Conversion de °C en °F : °F = ((9 x °C) / 5) + 32
43
Exercice 1 - Conversion de °C en °F et en K
Exemple de solution possible
44