BTS Mesure BTS Mesure
DébutTP 01TP 02Trouve NombreCourbesCTNPT100VISABT VISAArduinoNI6009ChenillardMétrologieRégulationMPUCodeurC2IEtalon

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 :