Vous êtes sur la page 1sur 43

DUT Mesures Physiques – 1ère année

Initiation au langage de
programmation graphique LabVIEW
> Cours n°1
Février 2017

1
D’après cours et documents LabVIEW : N. Pousset, G. Ged et National Instruments
Exemple – Chaîne de mesures
Conditionnement Numérisation
Phénomène Physique Capteur Mesure / Acquisition (DAQ)

Ex : flux lumineux

Capteur : Transforme un phénomène physique en un signal


électrique mesurable par un système d’acquisition de données…

Contrôle d’instruments*
Interfaçage Acquisition des données

Traitement du signal
Analyse Traitement statistique

Affichage de courbes
Présentation Stockage de données

2
* Multimètre, oscilloscope, générateur tension, moteur, caméra,…
Qu’est-ce que LabVIEW ?

photo BIPM
Laboratory Virtual Instrument Engineering Workbench

LabVIEW est un environnement de programmation graphique (langage G)


qui génère du code compilé.
LabVIEW permet de créer des applications modulaires et extensibles, pour la
conception d’applications de mesure, de contrôle et de test.

Ceci se réalisant en assemblant des icônes graphiques


3
et des fils à la manière d’un organigramme.
La programmation graphique
Qu’est-ce que la programmation ?
• Une méthode pour donner des instructions à un ordinateur photo BIPM
• La description d’une tâche à un ordinateur

Langage Machine
Code assembleur
Langage C …
Langage Graphique

La programmation graphique
Graphique, c’est :
• Moins de syntaxe
• Plus compréhensible
• Parallèle de manière implicite
• Des algorithmes rapides à implémenter

4
Programmez en suivant votre pensées :-/

photo BIPM

5
Principales fonctionnalités de LabVIEW

photo BIPM

. Programmation plus rapide

. Intégration matérielle : Interfaçage d’instruments

. Analyse et traitement de signaux ou de données

. Affichage de données et interfaces utilisateur

. Multi cibles et systèmes d’exploitation

. Programmation multi cœurs

. Stockage de données et création de rapport

En résumé, LabVIEW est un outils d’acquisition,


d’analyse et de présentation de données.
6
ni.com/labview/why/f/
Principales fonctionnalités de LabVIEW

Programmation plus rapide photo BIPM

Programmation graphique
Programmation avec des blocs de fonctions graphiques
au lieu de lignes de commande.

Représentation par flux de données


Développement d’un code avec une représentation intuitive
du type d’un organigramme

7
Principales fonctionnalités de LabVIEW

Intégration matérielle photo BIPM

E/S et communication
Communication à un instrument ou un capteur avec des bibliothèques
intégrées et des drivers d'instruments

Acquisition par l’intermédiaire de diverses interfaces :


• PCI (Peripheral Component Interconnect)
• CompactFlash
• LAN (Local Area Network) - Ethernet
• USB (Universal Serial Bus)
• GPIB (IEEE 488) (General Purpose Interface Bus)
• PXI (PCI eXtensions for Instrumentation)
• PCMCIA (Personal Computer Memory Card International Association)
• Wi-Fi (IEEE 802.11 b/g/n) (Wireless Fidelity)
• Bluetooth
• IrDA (Infrared Data Association)
• Firewire (IEEE 1394)
• Série (RS 232, RS 449, RS 422, RS 423, RS 485)
• VXI (VME eXtensions for Instrumentation)

8
Principales fonctionnalités de LabVIEW

Affichage de données et interfaces utilisateur photo BIPM

Outils d’aide à la présentation (communication) des données


Interaction avec des données en utilisant
- des graphiques 2D/3D, des images,…
- internet : outil de publication web, serveur datasocket, TCP/IP,
alertes par email, applications mobiles,…

Commandes personnalisées
Modification aisée de la position, la taille et la couleur des objets
de l’interface ou création personnalisée d’objets.

9
Principales fonctionnalités de LabVIEW

Multi cibles et systèmes d’exploitation photo BIPM

Support de multiples OS
Windows, Mac, Linux, « Temps Réel »

FPGA et microprocesseurs
Architectures embarquées, comme les microcontrôleurs ARM et FPGA
avec la même approche graphique

10
LabVIEW en quelques mots

photo BIPM

11
Le côté ludique de LabVIEW
> LEGO Mindstorms NXT 2.0 / EV3
> PS4 Controller

Moteurs

Palpeurs youtu.be/_TNH-nVCQf4
Emetteur/récepteur
Emetteur récepteur ultrasons
lumineux youtu.be/RHdiBvpq7Dg

youtu.be/5fAn5A0HbhU

> Arduino > Raspberry Pi 3

tsxperts.com/labviewforraspberrypi/
youtu.be/2tm2VKjkNKc labviewmakerhub.com

> Fun LabVIEW Projects


youtube.com/playlist?list=PL45529797115E5C12
Quelques liens utiles

NI France & LabVIEW : france.ni.com photo BIPM


Le support : ni.com/support/f/
• Tutoriaux
• Exemples
• Forums de discussion

La communauté francophone : ni.com/community/f/


Les drivers d’instruments : ni.com/downloads/instrument-drivers/f/
Réseau d’Outils LabVIEW : ni.com/labview-tools-network/f/

Les réseaux sociaux :

Vidéothèque NI : france.ni.com/videotheque
Le site developpez.com : labview.developpez.com
LabVIEW MakerHub : labviewmakerhub.com
LAVA: Favorite Tips & Shortcuts : lavag.org
Darren’s LabVIEW Nuggets : decibel.ni.com/content/docs/DOC-4002
13
30 ans d’évolution de LabVIEW

> Avril 1984 : Naissance de LabVIEW


> 1986 : Mise sur le marché de LabVIEW 1.0 (sur MAC !) photo BIPM

> Chaque année, une nouvelle version !


http://www.learnni.com/

14
La notion essentielle : Virtual Instruments (VI)
. VI = Programmes sous LabVIEW
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

Face avant Diagramme


Interface utilisateur + Code source du programme

= Virtual Instrument

Icône / Connecteur
15
Face-avant d’un VI (Exemple)
Commandes = Entrées
Indicateurs = Sorties Barre de menu Barre d’outils Connecteur Icône

Graphique
(indicateur)

Indicateurs numériques

Contrôles numériques

Contrôle booléen

> Face-avant = Éléments interactifs du VI ( Commandes et indicateurs) 16


Barre d’outil de la face avant

Zone de recherche
Aide contextuelle
Exécuter le VI (programme)
Exécuter en continu le VI
Arrêter le VI
Pause / Reprendre
Configurer le texte (taille, style, couleur,…)
Aligner les objets
Egaliser l’espacement entre les objets

Plan de l’objet (premier ou arrière plan,…)

Redimensionner les objets de la face avant

17
Diagramme d’un VI (Exemple)
Barre de menu Barre d’outils Icône (personnalisable)

Constante numérique

Commentaires

Fils de données

Boucle While

> Diagramme = Éléments du code (Structures, fonctions,…) 18


Barre d’outil diagramme
photo BIPM

Zone de recherche
Aide contextuelle
Animer l’exécution
anime le diagramme afin de voir l’évolution des données.

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
poursuit l’exécution du programme jusqu’à son terme.

Nettoyer le diagramme
réorganise automatiquement le code ou une portion du code.

19
Palettes de commandes et de fonctions
Palette Contrôle Palette Fonctions
(uniquement face avant (uniquement diagramme
par un clic droit) par un clic droit)

Palette Outils
Accessible en permanence

. Palette de commandes = Création de la face-avant (Commandes et indicateurs,…)


. Palette de fonctions = Création du code graphique (Fonctions de base, VI Express,…)
20
Palettes d’outils
> Interaction avec les objets
de la face avant et du diagramme
photo BIPM

Outil Sélection Automatique


Outil Sélection Manuelle
Changer d’outil

Action sur la face avant Déplacement


Déplacement et taille
Arrêt
Texte Sonde
Bobine, Connexion par fils Pipette

Raccourci menu Coloriage

21
Les types de fils de liaison : Couleur, style et épaisseur

Un « fil de liaison brisé » est le résultat d’un conflit entre des types de données…
C’est à vous d’y remédier ou votre code ne fonctionnera pas !

22
* Sous LabVIEW 7.1, les fils d’erreurs sont mauves
Les types de données

photo BIPM

Caractère
Booléen

Nombre double précision


Waveform cluster

Nombre entier

Nombre complexe
Cluster d’erreur

Tableau 1D

Tableau 2D

Donnée dynamique

Matrice

23
Les fonctions de base

Etiquette

Terminaux : ici, 2 entrées et 1 sortie


Couleur pour le type de données (ici, orange = réels)

Avec : Relier les fonctions, commandes et indicateurs

CTRL H Aide contextuelle

24
Complexité des fonctions en fonction des besoins

VIs • Rapides et faciles


• Configuration via interface
Express • Peu d’options

• Masquent les détails superflus


VIs
• Allient puissance et souplesse
Classiques • Les plus utilisés

• Plus puissants
VIs
• Flexibles
Bas niveau • Difficiles d’utilisation

25
Bibliothèques intégrées de fonctions pour l’ingénierie

Mathématiques Traitement du Signal


photo BIPM

Algèbre Linéaire
Génération
de signaux

Filtrage

Ajustements

Booléen
Comparaison Tableau

Fonctions Explicites plutôt que


Sémantique linguistique 26
Quelques raccourcis clavier* – Les plus utilisés

CTRL H Activer / Désactiver la fenêtre d’aide contextuelle

CTRL B Supprimer les connexions erronées du diagramme

CTRL E Basculer entre la face avant et le diagramme

CTRL T Mosaïque verticale de la face avant et du diagramme

CTRL Rechercher une commande ou une fonction (CTRL + ESPACE)

CTRL R Lancer le VI
Et les classiques…

CTRL Z Annuler CTRL V Coller

CTRL C Copier CTRL X Couper

27
* Certains raccourcis clavier ne fonctionnent pas sous LabVIEW 7.1 !
*Quelques raccourcis clavier – La suite

Création, Sauvegarde
Palette Outils LabVIEW
CTRL N Ouvre un VI vide
TAB Change d’outil en mode manuel
CTRL O Ouvre un VI existant
CTRL S Sauvegarde le VI Et encore…
CTRL W Ferme le VI CTRL D

CTRL Q Quitte LabVIEW Réalise le câblage d’une fonction


si sélectionnée

Navigation dans LabVIEW


CTRL F Recherche texte
CTRL I Propriétés du VI
CTRL L Affiche les erreurs

28
* Certains raccourcis clavier ne fonctionnent pas sous LabVIEW 7.1 !
Aide contextuelle

photo BIPM

CTRL H

Aide Contextuelle
• Aide détaillée
• Verrouillage de 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

29
Exercice 1 : Mon 1er VI - Opérations basiques
• Le programme (VI) doit calculer à partir de 2 nombres X1 et X2 fournis par l’utilisateur :
- la somme X1 + X2 ;
- la multiplication de X1 avec une constante ;
- le carré X2².

• A partir d’un VI vide, on utilisera des commandes numériques pour X1 et X2 et pour les
résultats de chaque calcul, des indicateurs numériques.

Face-avant

• Enregistrer votre programme (VI) sur l’ordinateur avec extension .vi

30
Exercice : Opérations basiques
La solution  DEMO

Face-avant
Commandes Diagramme

Commandes
Indicateurs

Indicateurs

Changer le « look » de l’indicateur


pour plus de lisibilité

31
Exercice : Programmation par flux de données
1. Reproduire le VI suivant

2. Cliquer sur pour allumer la lampe puis lancer le VI


3. Observer et commenter
4. Modifier ou ajouter le VI comme ci-dessous

5. Lancer le VI toujours en mode


6. Observer et comparer

32
Exercice : Programmation par flux de données  Solutions

 Les 2 processus s’exécutent en parallèle

 Le code s’exécute de manière séquentielle

33
Notion de programmation par flux de données [1/2]

• Le diagramme en face arrière s’exécute selon le flux de données et non


pas de gauche à droite (ordre imposé par la nécessité d’affectation de
valeur aux variables d’entrées des sous-programmes et fonctions)
• Les nœuds s’exécutent lorsque tous les terminaux d’entrée sont affectés
d’une valeur
• Alors les nœuds calculent les valeurs des variables de sorties

Terminaux Nœud
d’entrée Terminal de sortie

34
Notion de programmation par flux de données [2/2]
• Chaque nœud du diagramme s’exécute uniquement
lorsqu’il reçoit toutes les données en entrée.
• Chaque nœud produit des données en sortie après l’exécution.

• Les données circulent le long d’un chemin défini par les fils de liaison.
• La direction dans laquelle les données se déplacent détermine l’ordre
d’exécution.

35
www.ni.com/getting-started/labview-basics/f/dataflow
Débogage d’un VI

1. Trouver les erreurs


 Cliquer sur , la liste des erreurs apparaît alors.
apparaît à la place de si le diagramme comporte des erreurs.

2. Animer l’exécution
 Cliquer sur , les données dans des bulles sont animées.
Des valeurs sont indiquées sur les fils.
 Cliquer au choix sur pour exécuter le VI étape par étape.

3. Outil « Sonde »
 Clic droit sur un fil pour afficher une sonde.
Les données qui transitent sur ce fil seront affichées.
 Il est également possible de choisir l’outil « Sonde »
que l’on trouve dans la palette d’outils.

36
Débogage d’un VI : DEMO / Exercice

37
Débogage d’un VI : DEMO / Exercice -> Solution

Ceci est un indicateur !


Changez en commande

Ceci est une commande !


Changez en indicateur

Une des entrées de la


fct « + » n’est pas câblée

38
Les Boucles
• La boucle « WHILE » (Tant Que / Jusqu’à) Boucle « WHILE »

• S’exécute toujours au moins une fois


• Le terminal compte les itérations
• S’exécute jusqu’à ce qu’une condition soit
remplie ou (ex. appui sur bouton Stop)

Boucle « FOR »
• La boucle « FOR » (Pour)
• S’exécute N fois grâce au terminal
• Possède un compteur d’itération

• commence toujours à 0
• Pour = 4, vaut successivement 0, 1, 2 et 3

39
Génère un nombre aléatoire entre 0 et 1.
Boucles en textuel et équivalence en LabVIEW

40
Exercice : Conversion °C  K et °F

Le programme doit renvoyer continuellement en kelvins (K) et en degrés Fahrenheit (°F) une
valeur d’entrée unique en degrés Celsius (°C).
Le programme s’arrêtera lorsque l’utilisateur enclenchera un bouton en face-avant.
1. A partir d’une valeur d’entrée unique en °C, la convertir en K et en °F. On donne :

Equivalences
T(K) = T(°C) + 273,15
T(°F) = T(°C) × 1,8 + 32

2. Ajouter un bouton « STOP » sur la face-avant.

3. Ajouter une boucle « WHILE » et relier le bouton « STOP » à la condition d’arrêt.


Tester votre programme.

4. Ajouter un afficheur LED qui s’allumera lorsque l’on appuie sur ce bouton « STOP ».

5. Modifier le VI pour qu’il s’arrête lorsqu’on appuie sur « STOP » OU si la valeur d’entrée est
supérieure ou égale à 50 °C.

6. Modifier le VI afin d’incrémenter automatiquement la valeur d’entrée par pas de 1 °C.41


Exercice : Conversion pieds-mètres  Solution et DEMO
Le programme doit renvoyer continuellement en kelvin (K) et en degré Fahrenheit (°F) une
valeur d’entrée unique en degré Celsius (°C).
Le programme s’arrêtera lorsque l’utilisateur enclenchera un bouton en face-avant.
Diagramme (Question 4)
Face-avant (différentes IHM*)

Diagramme (Question 5)

Question 6

Se servir de pour l’incrémentation. 42


*IHM : Interface Homme Machine
Et pour finir…le « spaghetti » code ;-)

des erreurs les plus souvent commises


TOP 5 par les programmeurs LabVIEW débutants
43

Vous aimerez peut-être aussi