Qu’est ce que LabVIEW ?
LabVIEW est un environnement de développement intégré spécifiquement conçu pour les ingénieurs et les scientifiques
Le langage de programmation graphique, le G, est
natif à LabVIEW.
Il utilise un modèle de flux de données au lieu de lignes
séquentielles de code textuel, ce qui vous permet d'écrire du code
fonctionnel en suivant des informations visuelles.
LabVIEW inclut des drivers pour tous les
matériels NI (National Instrument),
mais c'est aussi un standard du marché et la plupart des instruments
connectés
par port série, USB, parallèle, GPIB, carte E/S…,
disposent de drivers LabVIEW.
Dans le laboratoire d'électricité :
- le GBF Agilent (USB),
- le multimètre FI2960 MT (USB),
- les oscilloscopes Tektronix (USB et
RS232),
- les alimentations Agilent (port
série - RS232),
- la carte NI6008 (USB),
- les Arduinos (USB),
pourront être pilotés par LABVIEW.
Un programme LABVIEW est appelé « instrument
virtuel » (VI).
LABVIEW permet de réaliser des interfaces graphiques personnalisées
et conviviales,
et ainsi de créer un instrument virtuel spécifique à vos besoins.
Comment fonctionne LabVIEW ?
Un programme LabVIEW comporte 2 éléments principaux :
-
Une face-avant : l'Interface Homme Machine
-
Un diagramme : le programme en langage G.
Observer le fonctionnement en flux de données...
(disponible en mode pas à pas)
La face-avant
d’un programme est l’interface utilisateur du VI
contenants des entrées (les commandes) et de sorties (les
indicateurs) du programme.
Les commandes et indicateurs peuvent être des afficheurs
numériques, des commutateurs booléens, des jauges, des vu-mètres,
des boutons poussoirs, des graphes…
Menu
contextuel : ces commandes et indicateurs sont accessibles par la palette de
commandes (clic droit dans une fenêtre de face avant.)
insère une commande numérique. Orange = nombre réel ( float )
insère un bouton STOP (autres options possibles). Vert = booléen Vrai True ou Faux False
insère une chaîne de caractère. Rose = chaîne ( String )
insère un indicateur numérique, exemple une jauge. Bleu = nombre entier ( int )
Le diagramme
contient le code graphique du programme LabVIEW (VI).
La programmation est graphique selon une logique de flux de données.
Menu
contextuel :
Les commandes et indicateurs de la face avant figurent sous forme de
terminaux dans la fenêtre diagramme.
insère une structure condition if (?) { // Bloc Vrai ;} else { // Bloc faux ;}
insère un nœud d'expression : une formule à une seule variable ex. y (sortie) = 2*x (entrée) +3
Raccourcis utiles :
Mosaïque verticale des fenêtres. Place les fenêtres Face Avant et Diagramme côte à côte.Supprime toutes les connexions erronées du diagramme.
Affiche la fenêtre d'aide contextuelle
Redessine le diagramme de "manière optimisée"
Menu contextuel : très utile pour faire apparaitre uniquement les fonctions disponibles pour l'objet sélectionné.
Pour exécuter une seule fois le programme il suffit de cliquer sur
Pour exécuter de manière continue le programme il suffit de cliquer sur
Pour exécuter et visualiser le flux de donnée au ralenti utiliser le mode pas à pas
Pour arrêter le programme
La programmation graphique.
Bien que ce langage soit totalement graphique, on retrouve sous LabVIEW toutes les structures classiques des langages de programmation textuel (C, Basic….)
Boucles While, For
Séquençage (qui permet l’exécution séquentielle de sous-VI)
Aiguillage IF, CASE…
Les
types de données
Les réels ( float). DBL (double, codé sur 2*32 = 64 bits)
Les entiers ( int ). I32 : entier sur 32 bits
Les entiers non signés (unsigned int ). U8 : entier non signé sur 8 bits (de 0 à 255)
Menu contextuel : il est facile de changer de type de donnée
Les booléens. Vert = booléen TF : Vrai True ou Faux False
Les chaines de caractères (String )
LabVIEW et le langage Arduino
Les boites de calcul de LabVIEW peuvent être programmées en langage C.
Le langage Arduino dérive du langage C et C++.
Nous pouvons incorporer dans LabVIEW des scripts en langage C avec
la même syntaxe que l'Arduino.
Exemple
du dernier TP Arduino, en simulation pour l'instant, sur
la régulation de température TOR à 2 seuils Ch et Cb,
en langage LabVIEW avec une interface graphique :
Pour télécharger ce programme et le tester
cliquer sur l'image !
Par la suite on remplacera la simulation de température par la
lecture d'une carte d'acquisition
puis
on pilotera le micro-four grâce à la carte NI6009
Prise en main de LabVIEW :
1) Recopier le programme ci-dessous
Cahier des charges : l'utilisateur indique la
valeur d'une résistance en ohm et la puissance maximale qu'elle peut
dissiper (typiquement dans le labo : 0,25 W, 0,5 W 1W, 2 W)
Le programme calcule l'intensité maximale et la tension maximale
supportée par cette résistance.
La boîte de calcul permet d'exécuter des scripts en langage C (même syntaxe que l'Arduino)
Exercices
Exercice
1
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/5 x °C + 32
Face avant possible :
Exercice 2 :
Cahier des charges :
Un bouton rotatif joue le rôle de thermostat T.
-
Lorsque T < 20 une led bleue s'allume.
-
Lorsque 20 ≤ T < 25 une led verte s'allume.
-
Lorsque T ≥ 25 une led rouge s'allume.
Face avant possible :
Diagramme possible :
Exercice 3 :
Cahier des charges : Trouver les racines du polynôme du 2° degré ax²bx+c = 0.
1) Construire une face avant permettant la saisie de a,b et c
2) A l’aide d’une boîte de calcul calculer le déterminant
3) Calculer les racines réelles si elles existent.
4) Proposer des améliorations au programme (équation du premier degré, racines doubles, solution dans le domaine des complexes…)
Aide pour l'équation du second degrés :
- Tu vérifies si a est différent de 0 sinon c'est du premier degrés et tu as la solution directe : x=-c/b. (si b différent de 0)
- Ensuite tu calcules le discriminant : delta=b*b-4*a*c.
- S'il est positif strictement tu as deux solutions : x=(-b+racine (delta))/2*a et x=(-b-racine (delta))/2*a
- S'il est nul, tu as une solution double : x=-b/2a
- S'il est négatif, tu as deux solutions imaginaires
conjuguées :
x=(-b+i*racine (-delta))/2*a x=(-b-i*racine (-delta))/2*a
Aide :
Si vous êtes à l'aise avec la programmation de l'Arduino la boîte de calcul sera votre amie...
La boîte de calcul permet dans certains cas de faire des programmes plus compact...
Il est aussi possible de ne faire que des calculs dans une boîte de calcul. Solution 2 :