Labview Cours
Labview Cours
Labview Cours
Présentation
Acquisition de données Traitement
Stockage …
Procédé industriel
Contrôle
Présentation
Acquisition de données Traitement
Stockage …
Procédé industriel
Contrôle
Composantes d’un VI :
Interface utilisateur
Contrôles = entrées
Indicateurs = sorties
Icône
Commandes
Indicateurs
Graphe
Icône
Séquence
Commande
Sous-VI
LabVIEW : préparation à la certification 1 17
Introduction • • Langage • Graphes • Tableaux • Fichiers
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.
Utilisée pour agir sur les objets de la face avant et du diagramme (disponible dans
la barre des menus : “Affichage” - View).
Bouton Exécution
continue
Bouton Bouton
Aligner les
Exécution d’Arrêt
objets
d’exécution
Configuration du
format du texte
Terminer l’exécution
Animer l’exécution Exécute le programme
pour animer le pas à pas.
diagramme et voir les
données transiter. Exécute le programme pas à
pas (détaillée).
Indicateurs
Commandes
Commandes Indicateurs
(trait gras) (trait fin)
Points de connexion
Conversion de °C en °F et en K
Conversion de °C en K : K = °C + 273,15
Conversion de °C en °F : °F = ((9 x °C) / 5) + 32
Réaliser un VI qui permet d’effectuer une conversion de °C en K et en °F à partir
de fonctions de base de LabVIEW.
Clic droit sur un fil pour afficher une sonde ("probe"). Les données qui
transitent sur ce fil seront affichées. Il est également possible de choisir l'outil
Sonde à partir de la palette d'outils.
Terminer l’exécution
Animer l’exécution Exécute le programme
pour animer le pas à pas.
diagramme et voir les
données transiter. Exécute le programme pas à
pas (détaillée).
Un sous-VI est un VI qui peut être utilisé dans un autre VI de plus haut niveau.
Sous-VI
VI
Un sous-VI est un VI qui peut être utilisé dans un autre VI de plus haut niveau.
gain de productivité
Facilite le débogage
Sous-VI
VI
• Créer l’icône
• Visualiser le connecteur
• Sauvegarder le VI
Palette graphique
Cliquez avec le bouton
droit sur l’icône de la face
avant ou du diagramme et
choisir Edit Icon (“Éditer
l’icône”).
On choisit conventionnellement
de mettre les entrées à gauche et
les sorties à droite.
Ou
La boucle For
Possède un compteur d’itération
S’exécute N fois (N paramétrable)
Pour N = 4, i = 0, 1, 2, 3.
Création : clic droit sur un des bords de la boucle : « Ajouter un registre à décalage »
Pour un signal assez bruité l’on pourrait avoir envie, par exemple, d’afficher une
moyenne des valeurs.
Pour ce faire il est possible d’utiliser un registre à décalage.
Un registre à décalage prend des données du côté droit et les reporte du côté
gauche à l’itération suivante :
Il est possible d’utiliser un registre à décalage avec une boucle While et une boucle For
Clusters
• Structures qui regroupent plusieurs données.
• Les données peuvent être de différents types.
• Les éléments doivent tous être, soit des contrôles, soit des indicateurs.
• Cela est similaire au câblage de fils dans une même gaine : facilite la
gestion du programme.
Créer un cluster:
1. Sélectionner un modèle de cluster : Commandes >> Toutes les commandes
>> Tableau et Cluster ou Fonctions >> Toutes les fonctions >> Cluster
2. Placer des objets dans le cluster :
Dans le sous-menu Clusters de la palette Fonctions >> Toutes les fonctions. Également
accessible par clic droit sur un terminal de cluster dans la fenêtre diagramme
La palette Clusters
Clusters d’erreurs
• Un cluster d’erreur permet la visualisation d’un problème lors de
l’exécution d’un VI.
• Un cluster d’erreur contient les informations suivantes :
– État rapporte si une erreur se produit (valeur booléenne).
– Code rapporte le code spécifique de l’erreur (Entier 32 bits).
– Source donne des informations sur l’erreur (Chaîne de caractères).
Types de connexions
Boîte de calcul
Dans la sous-palette Structures.
Implémenter des équations compliquées.
Les variables sont créées sur le bord.
Chaque énoncé doit se terminer par un point virgule (;)
La fenêtre d’aide contextuelle montre des fonctions disponibles.
VI Express « Formule »
Une variable locale n’est visible que dans un seul VI. Elle permet de
communiquer des données facilement au sein d’un même VI. Cela évite, entre
autre, de câbler plusieurs fils qui vont perturber la présentation visuelle du
diagramme.
Une variable globale agit de la même façon qu’une variable locale excepté le
fait que l’on peut transférer cette variable d’un VI à l’autre par l’utilisation du
sous VI crée.
Générer un VI qui permet de donner le temps (en ms) entre deux appuis de
boutons. On utilisera une structure séquence empilée avec, soit des variables
locales, soit des variables locales de séquences ainsi que la fonction suivante :
Les nœuds de propriété permettent d’avoir accès à certains éléments d’un objet
en lecture ou en écriture.
Dans un premier temps il faut relier le nœud de propriété à un objet précis.
Dans un second temps il faut choisir les propriétés de l’objet qui nous intéressent.
Par exemple (dans notre cas ici) les en-têtes de colonnes et les valeurs d’une table.
a. 16
b. 24
c. 32
d. 10
Générer un VI qui
simule le déplacement
d’un pointeur laser sur
une photodiode 4
quadrants. On simulera
dans un premier temps
un « déplacement
continu » du pointeur
puis un « déplacement
discret ».
Les tableaux combinent des données du même type dans une structure de
données.
Les tableaux sont utiles, par exemple, pour stocker des données générées, la
plupart du temps, dans des boucles lors de chaque itération.
Il est possible de construire des tableaux de données numériques, de
booléens, de chemins, de clusters, de chaînes de caractères,…
Il n’est cependant pas possible de créer des tableaux de tableaux.
Exemple de tableau.
Déposez le tableau
vide sur la face avant.
Tableau de constantes.
Placez un objet dans le tableau (un contrôle, une constante numérique, une
chaîne de caractères, un booléen,…).
1. Laquelle de ces affirmations concernant les constantes tableau n’est pas vraie :
a. Lorsque vous créez une constante tableau dans le diagramme, elle n’est pas visible sur la face avant.
b. On ne peut pas redimensionner une constante tableau pour y inclure plus d’éléments.
c. On peut copier ou glisser un tableau de la Face Avant vers le Diagramme pour créer une constante tableau
du même type de données.
d. Toutes les opérations sur les tableaux peuvent être exécutées sur les constantes tableau.
6. Quelles sont les options des chaînes de caractères, disponibles sur la Face Avant ?
a. Codes ‘\’
b. Mot de passe
c. Hex
d. Toutes les options ci-dessus
12. la fonction Attendre (ms) peut être incluse dans une boucle While pour :
a. libérer de la mémoire.
b. allouer de la mémoire.
c. permettre au processeur d’accomplir d’autres taches.
d. réserver le processeur sur lequel exécuter le code.
13. Laquelle de ces méthodes n’est pas une méthode pour créer un tableau 1-D :
a. Placer un tableau sur la Face Avant et glisser une commande dedans.
b. Utiliser une boucle While avec l’auto-indexation.
c. Utiliser une boucle For avec l’auto-indexation.
d. Utiliser la fonction Initialiser un tableau.
15. Lequel de ces graphes correspond au résultat de l’indicateur Comparison Values après l’exécution de ce code ?
Laquelle de ces affirmations s’applique aux Nœuds de propriétés ? (plusieurs réponses possibles)
a. Les Nœuds de propriétés permettent de manipuler dans les attributs des objets de la face avant.
b. Les Nœuds de propriétés permettent de mettre à jour les valeurs des objets de la face avant.
c. Plusieurs Nœuds de propriétés du même objet de la face avant peuvent être utilisés.
d. Les Nœuds de propriétés dans un sous-VI feront que sa face avant sera toujours charge en mémoire.
La liaison GPIB (General Purpose Interface Bus) appelée aussi IEEE 488 (IEEE :
Institute of Electrical and Electronics Engineers) est devenue depuis son apparition
en 1965 (créée par Hewlett-Packard) un standard de communication qui permet
aujourd’hui de contrôler la plupart des instruments de mesures (oscilloscopes,
multimètres, générateurs de fonctions, …). La première normalisation de ce bus
date de 1987. Une deuxième normalisation de ce bus est intervenue en 1992 avec
la référence IEEE 488.2 en précisant le protocole de communication, en définissant
les formats de données,... En 1990, le document “Standard Commands for
Programmable Instrumentation (SCPI)” a été incorporé à la norme. Celui-ci définit
un certain nombre de commandes auxquelles chaque instrument doit pouvoir
obéir. Cela permet ainsi une interopérabilité de matériels de différents fabricants.
Connecteur GPIB
- La liaison GPIB est une liaison
parallèle sur 8 bits.
- Interconnexion de 15 appareils max. :
chaque appareil possède une adresse
comprise entre 0 et 30.
- Vitesse de transfert max. : 1 Mo/s.
- Longueur de câble de 4 m au
maximum entre 2 appareils.
- Longueur totale de câble de 20 m max.
- Au minimum les 2/3 des instruments
doivent être sous tension.
NI-VISA est un pilote qui s’interface toujours de la même manière quel que
soit le moyen de connexion (GPIB, liaison série, VXI). VISA a été développé
par National Instruments et standardisé par la suite par le consortium
l’alliance VXI Plug&Play . Actuellement, VISA est en cours de normalisation
sous la norme IEEE P1226.5. Pour ce faire, un effort de la part des
constructeurs d’instruments a été nécessaire. Ainsi, chaque constructeur
faisant partie de l’alliance se doit de fournir un driver à la norme VISA et un
programme pour piloter son instrument.
Biologie
La plate-forme de conception graphique de systèmes de NI
convient parfaitement au développement rapide de
dispositifs et d'instruments médicaux complexes. Que ce soit
pour l'appareillage médical, l'équipement de diagnostic, les
machines biotechnologiques, l'instrumentation hautes
performances ou les machines d'imagerie, les outils NI vous
aident à être les premiers à mettre de nouvelles technologies
innovantes sur le marché.
LabVIEW : préparation à la certification 1 168
Exemples d’applications LabVIEW
L'objectif :
Measuring and controlling, in real time, the position of bulk
components to absorb energetic particles out of the nominal beam
core with high reliability and accuracy at the world’s most powerful
particle accelerator, the Large Hadron Collider (LHC).
La solution :
Using LabVIEW, the LabVIEW Real-Time Module, the LabVIEW FPGA
Module, and NI SoftMotion software with NI R Series reconfigurable
I/O hardware for PXI to develop an FPGA-based motion control
system capable of intercepting misguided or unstable particle
beams.
LabVIEW : préparation à la certification 1 170
Exemples d’applications LabVIEW
L'objectif :
Automating a high volume production test for a
medical device manufacturer that analyzes
properties of a medical stent (a device that is
placed in an artery to support the arterial walls)
and increases existing test throughput by a factor
of ten.
La solution :
Building an automated test system that tests 30
stents simultaneously by simulating the action of
the medical device as it is inserted into the body
and measuring its expansion properties.
LabVIEW : préparation à la certification 1 171
Exemples d’applications LabVIEW
L'objectif :
Developing a highly accurate system
capable of using patterns to automate
the delivery of laser pulses used to treat
retinal diseases.
La solution :
Using NI LabVIEW FPGA and intelligent
data acquisition (DAQ) hardware to
deploy a controller for the innovative
PASCAL (pattern scan laser)
photocoagulator.
L'objectif :
Designing a single, flexible system to control
many different inspection and maintenance
tools for nuclear power plans within the limited
space and harsh environment of nuclear
reactors.
La solution :
Using a National Instruments programmable
automation controller (PAC) hardware target,
LabVIEW Real-Time, and PXI to design a single,
flexible control system for five tools, with more
tool designs under development.
LabVIEW : préparation à la certification 1 174
Exemples d’applications LabVIEW
Researchers at the Carnegie Melon Robotics Institute are one step ahead
of us, delivering the HeartLander, a miniature robotic device that can
crawl around the surface of the heart, taking measurements and
performing simple surgical tasks, all while the heart continues to pump
blood throughout the body.
Examen CLAD
1b 2b 3abcd 4c
5c 6b 7b
8a 9d 10c 11c
Examen CLAD
Ethernet
LabVIEW : préparation à la certification 1 223
Liaisons avec le PC
selon un .
Les données échangés entre l’appareil et le PC transitent par
RS232:
Un 0 logique correspond à une tension de +3 à +25V.
Un 1 logique correspond à une tension de -3 à -25V.
Généralement on utilise +12V et -12V.
Condition START : SDA passe à '0' alors que SCL reste à '1'
Condition STOP : SDA passe à '1' alors que SCL reste à '1'
USB (Universal Serial Bus) 1.1 : jusqu’à 127 (adressage sur 7 bits)
appareils, débit max = 12 Mbits/s.
USB 2.0 : débit max = 480 Mbits/s.
USB 3.0 : débit max = 5000 Mbits/s, 6 fils (au lieu de 4)
USB 3.1 : débit max = 10000 Mbits/s (1.25 Go/s)
Facilité d’utilisation
Puissance distribuée par le port
Transmission temps réel
Protocole souple avec séparation des commandes et des
données
Adaptation aisée à de nouveaux types d’appareils
Nombre maximum d’appareils élevé
GPIB (General Purpose Interface Bus) par HP, norme ANSI/IEEE-488.2 qui a
été (et qui reste partiellement) un standard en instrumentation et en
contrôle d’appareils industrie.ls
Transmission sur 8 bits en parallèle à ~ 8 Mo/s.
Le bus IEEE-488 utilise 16 fils :
8 lignes bidirectionnelles pour le transfert des données
3 lignes de contrôle
5 lignes pour la gestion de l'interface
8 lignes de masse
Bibliothèques de
fonctions en:
Langage C
Basic
…
ou
LabVIEW!
standard VISA
DRIVERS D’INSTRUMENT
VI de configuration
d’écriture vers l’instrument
de lecture à partir de l’instrument
…
Généralement fournis avec le matériel Point de départ
Modularité sous-VI
Application principale :
Boucle While avec Bouton Stop OU condition d’arrêt (Erreur, …)
Séquences
Machine à états
…
2. Entrées/Sorties numériques,
3. IEEE-488 (GPIB)
7. RS-232
8. TSP-Link (Test Script
Processore technologie
Keithley pour relier directement
des appareils)
Documentation Keithley
Commandes GPIB Standard : Commandes GPIB Spécifiques :
••• •••
LabVIEW : préparation à la certification 1 269
Liaisons avec le PC
Le temps réel ne signifie pas forcément rapide. Le temps réel garantit une
fiabilité absolue car les systèmes temps réel ont des contraintes temporelles
qui doivent être atteintes sans aucun échec : on dit que le système est
déterministe.
imparti.
souhaité.
exemple).
LabVIEW : préparation à la certification 1 275
Notions avancées de LabVIEW
Temps réel
Programme du PC hôte
Pas nécessaire.
Programme de la cible
Les tâches de priorité plus élevée gardent la main sur les tâches de priorité
moins importante. Les tâches qui nécessitent d’être déterministes sont des
tâches dites “temps critique”. Toutes les autres auront une priorité moins
en particulier.
DataSocket est une bibliothèque de fonctions qui permet d’échanger des données
entre différentes applications sur un même ordinateur ou entre différents
ordinateurs connectés sur un même réseau. Les données sont publiées sur un
serveur DataSocket, puis le client contacte le serveur DataSocket et lui demande la
récupération des données.
File d'attente : afin de communiquer des données entre différentes parties d'un
diagramme ou entre différents VIs
Notificateurs : « suspendre l'exécution d'un diagramme jusqu'à ce que vous receviez des
données provenant d'une autre partie du diagramme ou d'un autre VI s'exécutant dans la
même instance d'application »
En LabVIEW, faire une machine d’état qui simule le feu d’un passage pour piéton.
Votre machine aura 3 états :
1. attendre bouton
2. temporisation rouge
3. Traverser
Au démarrage l’état par défaut est le 1 et le feu est rouge. La machine reste dans
cet état tant que l’utilisateur ne presse pas sur le bouton « traverser ». Dès que le
bouton « traverser » est appuyé, va dans l’état 2 et attend trois secondes, met le
feu à vert, puis va dans l’état 3. Dans l’état 3, attend trois secondes, met le feu à
rouge, puis va dans l’état 1.
8. Quel type de données peut contenir à la fois des commandes et des indicateurs ?
a. les tableaux
b. les clusters
c. à la fois a et b.
d. ni a ni b.
10. Vous manipulez des données représentant un cercle : la position x et y et le rayon r. Ces
données sont de type réel (double précision). Vous comptez par la suite inclure un entier
représentant la couleur du cercle. Comment représenteriez-vous sur la face-avant le cercle ?
a. avec trois commandes représentant x, y et r.
b. un cluster avec x, y et r.
c. un type défini contenant un cluster.
d. un tableau avec les trois éléments x, y et r.
a. {5,5,3}
b. {5,3,0}
c. {5,3}
d. {5,5}
14. Vous devez automatiser sous LabVIEW un équipement ayant une interface ethernet,
série et GPIB. Quel interface utiliseriez-vous ?
a. ethernet
b. série
c. VISA
d. GPIB
e. à la fois ethernet, série et GPIB
Exercice 1:
Construire un VI « Thermomètre.vi » simulant l’acquisition de mesure de
température
❙ Imaginez que vous disposez d’un capteur qui convertit la température en
tension.
❙ Utilisez un VI existant C:\Program Files\National Instruments\LabVIEW
2010\examples\apps\tempsys.llb pour mesurer la température exprimée en
degrés (Fahrenheit).
❙ Affichez le résultat de la mesure sur la face-avant au moyen d’un indicateur
thermomètre.
Exercice 2:
❙ Transformer le VI créé précédemment en sous-VI
❙ Appelez l’Éditeur d’icônes en ouvrant un menu local sur le cadre « icône »
de la face-avant
❙ Créez une icône pour le sous-VI
❙ Créez le connecteur et affectez celui-ci au thermomètre
❙ Visualiser sous forme graphique les liens de dépendance du sous-VI créé
Exercice 3:
❙ Utiliser une boucle « While » et un graphe déroulant pour acquérir et
présenter les mesures acquises à l’aide du sous-VI « thermomètre.vi ».
❙ Modifier le VI créé pour que l’acquisition se fasse à des intervalles de
temps réguliers.
❙ On en règle la durée au moyen d’un bouton rotatif qui doit donc contrôler
le temps de cycle de la boucle « While »
Exercice 4:
❙ Créer un VI qui mesure une température toutes les 0,25 secondes pendant
10 secondes.
❙ En cours d’acquisition, le VI visualise les mesures en temps réel sur un
graphe déroulant.
❙ Lorsque le processus d’acquisition est terminé, le VI trace un graphe
mettant en surbrillance les températures moyenne, maximale et minimale.
Exercice 5:
❙ Créer un VI pour ajouter des données de température à un fichier ASCII.
❙ Ce VI utilise une boucle « For » pour générer les valeurs de température
et les stocker dans un fichier.
❙ Au cours de chaque itération, convertir les données en chaîne de
caractères, ajouter une virgule comme séparateur, puis ajouter la chaîne
de caractères dans un fichier.
Exercice 6 : Simulateur
A partir d'une commande de position angulaire (P exprimée en degrés par pas
de 1.8°) le programme doit calculer la position atteinte (A valeur angulaire
modulo 360°) et une mesure de la variation relative du rayon (Δ R exprimée en
millimètre), donnée pour un excentrique de diamètre 100 mm et dont
l'excentration (E) est de 10 mm avec un angle de déphasage (D) de 30°.
ΔR=E⋅sin (P+D)
Analyser le problème en terme de flux de données.
Mettre en place les éléments de la face.
Programmer les opérations nécessaires en utilisant les fonctions Quotient &
Reste (calcule le quotient entier et le reste des entrées), Sinus (calcule le sinus
de x, avec x en radians).
LabVIEW : préparation à la certification 1 315
Introduction • VI • Langage • Graphes • Tableaux • Fichiers
Exercice 7 : sous-VI
Le module de simulation doit pouvoir être appelé par d'autres VI. Pour cela, il
faut définir des liaisons entre les commandes et indicateurs de sa face avant
(entrées et sorties de la fonction de simulation) et le VI appelant. C'est le rôle
des connecteurs situés derrière l'icône de la face avant.
Dessiner l'icône
Câbler les connecteurs
Documenter
Sauvegarder
Les valeurs de chaque sortie de simul_1.vi sont affichées soit directement soit
après conversion suivant la valeur de l'entrée Sélecteur. Suivant le type
d'affichage les échelles des indicateurs doivent être reconfigurées.
La boucle While itère depuis la position de début jusqu'à la position de fin. Les
positions exprimées en degrés devront être au préalable converties en nombre de
pas (.../1.8).
A chaque itération de la boucle, la variable Position à passer au sous -VI
Simul_1.vi est définie par : Position=Début + i∗Pas ou i est l'indice de boucle.
La variable de sortie Δ R du sous vi Simul_1.vi est directement affichée sur
le graphe déroulant . La condition d'arrêt est atteinte dès que la position à venir
(prochaineitération) dépasse la position de fin demandée. Le test d’arrêt étant fait
en fin de boucle, la boucle itère tant que la position courante est inférieure ou
égale à la valeur de fin diminuée de l'incrément angulaire (Pas).
Le graphe est initialisé (nœud de propriétés) effacer le graphe définir le début et la
fin de l'axe de x définir l'incrément et le décalage de la courbe.
LabVIEW : préparation à la certification 1 343
Introduction • VI • Langage • Graphes • Tableaux • Fichiers