Cours labVIEW
Cours labVIEW
Cours labVIEW
Nicolas POUSSET
et ltranger 2 000 enseignants chercheurs permanents + de 85 000 auditeurs/an 500 000 heures denseignement/an 1 million de diplms actifs
Objectifs du cours
Prsenter LabVIEW et ses fonctionnalits Comprendre les composants d'un Instrument Virtuel (appel VI) tablir une application simple d'acquisition de donnes Crer un sous-programme dans LabVIEW sousTravailler avec les tableaux, les graphiques, les clusters et les structures Connatre des dispositifs dimpression et de documentation dun VI Dvelopper diffrentes architectures de programmation Publier des VI ou des donnes sur un rseau ou sur le Web Matriser les bases de communications par liaison GPIB et Srie Connatre les outils dacquisition et de traitement dimages Comprendre les concepts de base du dveloppement temps rel Apprhender le Datasocket
Par Nicolas POUSSET 5
SOMMAIRE
Partie I Partie II Partie III Partie IV Partie V Partie VI Partie VII Partie VIII Partie IX Partie X Partie XI Partie XII Partie XIII Introduction LabVIEW Les Sous VI Acquisitions de donnes Boucles, registres dcalage et introduction aux graphiques Tableaux et fichiers Fonctions des tableaux et graphiques Chanes de caractres, clusters et traitement derreurs Structures Condition et Squence, Bote de calcul Variables Tables et nuds de proprits Impression et documentation de VI Programmation Evnementielle Architectures de programmation boucle unique 8 65 78 95 106 122 132 149 165 172 184 192 200
Partie XIV Partie XV Partie XVI Partie XVII Partie XVIII Partie XIX Partie XX
Outils de publication sur le Web Contrle dinstruments Module Vision Exercices dapplications Dveloppement dapplications temps rel DataSocket Sujets complmentaires
Remarque : La version de labVIEW utilise pour ce cours dinitiation est la version 7.1.
Gnralits Un peu dhistoire LEGO Mindstorms NXT Vocabulaire LabVIEW Environnement LabVIEW Composants dune application LabVIEW Outils de programmation LabVIEW Exercice 1 : Conversion de C en K et en F Aides au dbogage
National instruments : (NI) Date de cration : Sige social : Implantations : Clients : Nombre demploys : Rsultats :
Socit lorigine de la programmation graphique et, par consquent, de labVIEW 1976 Austin, Texas, Etats-Unis Etatsplus de 40 pays plus de 30 000 entreprises dans 90 pays
5 000 dans le monde
NI est class depuis 10 ans, par le FORTUNE Magazine (cre en 1930), 1930), parmi les 100 meilleurs entreprises amricaines. amricaines.
10
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) est Laboratory orkbench) un environnement de dveloppement graphique qui
permet de crer des applications modulaires (notion de sous VI) et extensibles, pour la conception dapplications de mesure, de contrle et de test. test.
Par Nicolas POUSSET 11
12
Traitement du signal : Convolution, analyse spectrale, transformes de Fourier, Traitement dimages : Masque, dtection de contours, profils, manipulations de pixels, Mathmatiques : Interpolation, statistiques (moyennes, cart-type,), quations cartdiffrentielles,
14
15
Gnralits Un peu dhistoire LEGO Mindstorms NXT Vocabulaire LabVIEW Environnement LabVIEW Composants dune application LabVIEW Outils de programmation LabVIEW Exercice 1 : Conversion de C en K et en F Aides au dbogage
16
Un peu dhistoire
1999 1998 LabVIEW Temps rel LabVIEW 5.0 ActiveX (composants logiciel qui permettent une communication entre diffrents programmes), multifentrage (capacit dune interface prsenter plusieurs
fentres lutilisateur)
les
LabVIEW 3.0 version multiplateforme de LabVIEW LabVIEW pour Windows, et pour Sun LabVIEW 2.0 pour Macintosh LabVIEW 1.0 pour Macintosh Dmarrage de LabVIEW
Par Nicolas POUSSET 17
Un peu dhistoire
2009 2007 labVIEW 2009 : diteur dicne amlior, graphes 3D, rorganisation automatique du code LabVIEW 8.5, outils de dveloppement multicurs
innovations dans larchitecture (lis aux des processeurs de PC), dtats (statecharts en anglais)
LabVIEW 8.2 dition des 20 ans, LEGO Mindstorms NXT LabVIEW 8 DSP (Digital Signal Processing), systme embarqu LabVIEW 7 VI Express, assistants E/S, FPGA logiques programmables), PDA (assistants personnels) LabVIEW 6.1 analyse, fonctionnement en rseau LabVIEW 6i Applications internet
Par Nicolas POUSSET 18
(composants
Gnralits Un peu dhistoire LEGO Mindstorms NXT Vocabulaire LabVIEW Environnement LabVIEW Composants dune application LabVIEW Outils de programmation LabVIEW Exercice 1 : Conversion de C en K et en F Aides au dbogage
19
Moteurs
Capteurs additionnels : acclromtre, gyroscope, colorimtre,
Exemples de conceptions :
Humanodes
Machines Animaux
Par Nicolas POUSSET 21
Le programme est charg dans le robot via une connectique Bluetooth ou USB.
Possibilit dutiliser directement LabVIEW pour la programmation et la gestion dlments plus complexes laide de complments logiciel tlchargeables gratuitement sur le site de NI.
Table traante
Vidos Youtube
Rukiks cube et Joconde
24
labVIEW
Mindstorms
PC
Le bluetooth est trs consommateur en nergie La transmission de donnes est plus lente
Par Nicolas POUSSET 25
26
labVIEW
NXT terminal
PC
Mindstorms
Liaison USB
27
NXT terminal
28
Gnralits Un peu dhistoire LEGO Mindstorms NXT Vocabulaire LabVIEW Environnement LabVIEW Composants dune application LabVIEW Outils de programmation LabVIEW Exercice 1 : Conversion de C en K et en F Aides au dbogage
29
30
Composantes dun VI
- Face avant
- Diagramme
Fentre de programmation et daffichage du code source Interaction entre face avant et diagramme : Ctrl+E
- Icne/Connecteur
31
Graphique
chelle du graphique
Dans la face-avant nous trouverons tous les lments faceinteractifs du VI (commandes et indicateurs). indicateurs).
Par Nicolas POUSSET 32
Diagramme dun VI
Barre doutils du diagramme Constante numrique
Fil de donnes
Terminal graphique
Dans le diagramme nous trouverons tous les lments propres au code dvelopp (structures, fonctions, constantes, constantes,).
Par Nicolas POUSSET 33
Icne/connecteur dun VI
Chaque VI affiche une icne, dans le coin icne, suprieur droit des fentres de la face-avant faceet du diagramme. Une icne est une diagramme. Icne par dfaut reprsentation graphique dun VI qui permet de lidentifier au sein dun autre VI. VI.
Un connecteur est un ensemble de terminaux correspondant aux commandes et aux indicateurs du VI qui sont accessibles. accessibles.
Par Nicolas POUSSET 34
Gnralits Un peu dhistoire LEGO Mindstorms NXT Vocabulaire LabVIEW Environnement LabVIEW Composants dune application LabVIEW Outils de programmation LabVIEW Exercice 1 : Conversion de C en K et en F Aides au dbogage
35
Ouvrir un VI
Modles de VI
36
Ouvrir un VI
Modles de VI pour assistants personnel (PDA) Modles de VI pour communications par GPIB
Modles de VI
Aperu du diagramme
37
Ouvrir un VI
Les exemples sont trs riches et souvent trs utiles pour dvelopper de petites applications rapidement.
Recherche dexemples
38
Ouvrir un VI
Parcourir dans les exemples
Recherche dexemples
Recherche par mots cls dans les exemples Soumettre un exemple National Instruments
39
Ouvrir un VI
VI vide
40
Palettes de commandes
Palette de commandes
(disponible partir de la fentre face avant par un clic droit avec la souris ou dans la barre des menus : Fentre). Fentre).
Permet de garder la palette visible sur lcran Boolen Numrique Tableau et clusters (groupe) Liste et table Conteneurs
Chane et chemin Graphe E/S Refnum Vision (module complmentaire) Commandes utilisateur
Menu droulant & num Commandes classiques Commandes (dialogue) Dcorations Dcorations Slection de commandes
Dans cette palette nous trouverons tous les lments ncessaires la cration de la face-avant (commandes et faceindicateurs). indicateurs).
Par Nicolas POUSSET 41
Palettes de fonctions
Palettes de fonctions
(disponible partir de la fentre diagramme par un clic droit avec la souris ou dans la barre des menus : Fentre). Fentre).
Numrique Structures Tableau Chane Temps et dialogue Comparaison Waveform Mesures NI Contrle dapplications E/S dinstruments Gnration de rapports Communication Dcorations Slection dun VI Boolen Cluster (groupe ou agrgat) E/S sur fichiers Analyse Graphisme et son Avanc Bibliothques utilisateur
Dans cette palette nous trouverons tous les lments ncessaires la cration du code graphique dans la fentre diagramme (fonctions de base, VI Express,). Express,
Par Nicolas POUSSET 42
VI Express
VI Standard
43
Palette doutils
Utilise pour agir sur les objets de la face avant et du diagramme (disponible dans la barre des menus : Fentre).
Possibilit de changer doutils laide de la touche tabulation du clavier de lordinateur lorsque la slection automatique de loutil est dsactive. Outil slection automatique Outil dplacement (actif lorsque la LED verte est allume) Outil darrt Outil daction sur la face avant Outil dplacement et taille Outil texte Outil connexion par fils Outil raccourci menu
Par Nicolas POUSSET 44
Barre doutils de la face-avant faceBouton Excution du programme (VI) Bouton Excution continue Bouton dArrt dexcution dArrt Bouton Pause/Reprendre Pause/Reprendre Configuration du format du texte (taille, style, couleur,) Aligner les objets galisation de lespacement entre les objets Plan de lobjet (premier ou arrire plan,) Redimensionner les objets de la face avant
Par Nicolas POUSSET 45
Aide contextuelle
46
Fonctionnalits classiques des programmes standards mais galement spcifiques LabVIEW. LabVIEW.
47
Gnralits Un peu dhistoire LEGO Mindstorms NXT Vocabulaire LabVIEW Environnement LabVIEW Composants dune application LabVIEW Outils de programmation LabVIEW Exercice 1 : Conversion de C en K et en F Aides au dbogage
48
Crer un VI
Fentre de la face avant
Bouton Incrmenter/ Dcrmenter
Fentre du diagramme
Nud Indicateur numrique Terminaux de contrle (entres) Terminaux dindicateur (sorties)
=
Commande numrique Clic droit sur la commande (ou la constante) numrique. Fils de liaison Commande Cadre gras Indicateur Cadre fin
49
chiffres de prcision
chiffres de prcision
50
51
52
Rels
Entiers
Fonction de base
54
Astuces de connexions
Points de Connexions Trois types de slection
Simple clic
Double clic
Triple clic
55
Lexcution du diagramme dpend du flux de donnes. donnes. Il ne sexcute pas ncessairement de gauche droite. droite. Lexcution du nud se fait quand les donnes sont disponibles tous les terminaux dentre. dentre. Puis les nuds fournissent des donnes tous les terminaux de sortie. sortie. La plupart des langages de programmation textuel (Visual Basic, C++, Java,) utilisent des modles de Java, flux de commandes. Cest lordre squentiel des commandes. lments du programme qui dtermine lordre dexcution du programme. programme.
Par Nicolas POUSSET 56
57
Aide dtaille
(barre des menus : Aide -> Aide LabVIEW )
58
Gnralits Un peu dhistoire LEGO Mindstorms NXT Vocabulaire LabVIEW Environnement LabVIEW Composants dune application LabVIEW Outils de programmation LabVIEW Exercice 1 : Conversion de C en K et en F Aides au dbogage
59
Exercice 1 - Conversion de C en F et en K
Raliser un VI qui permet deffectuer une conversion de celsius (C) en kelvin (K) et en farenheit (F), partir de fonctions de base de labVIEW
60
Exercice 1 - Conversion de C en F et en K
Exemple de solution possible
(exercice0.vi)
61
Gnralits Un peu dhistoire LEGO Mindstorms NXT Vocabulaire LabVIEW Environnement LabVIEW Composants dune application LabVIEW Outils de programmation LabVIEW Exercice 1 : Conversion de C en K et en F Aides au dbogage
62
En double cliquant sur les erreurs on peut visualiser o elles se trouvent sur le diagramme
Par Nicolas POUSSET 63
Sonde (Probe)
Clic droit sur un fil pour afficher une sonde. sonde. Les donnes qui transitent sur ce fil seront affiches. affiches. Il est galement possible de choisir l'outil Sonde partir de la palette d'outils. d'outils.
Exemples de sondes personnalises :
64
65
Sous VI
Un sous VI est un VI qui peut tre utilis dans un autre VI de plus haut niveau. niveau.
Avantages : Modularit (cration de blocs de base rutilisable pour diverses applications : gain de productivit) Facilite le dbogage Ncessite une seule cration de code.
Par Nicolas POUSSET 66
Icnes et Connecteurs
Une icne reprsente un VI dans un autre diagramme dun VI de plus haut niveau. niveau.
2 cases en entres pour les commandes
67
Sous VI
Sous VI Icne reprsentative du VI de plus haut niveau Icne reprsentative du sous VI
VI Principal
Sous VI
68
tapes de cration dun sous VI Crer licne Visualiser le connecteur Assigner les terminaux Sauvegarder le VI Insrer le VI dans un VI de plus haut niveau
69
70
Visualiser le connecteur
Cliquer avec le bouton droit sur licne (face avant seulement) et choisir Visualiser le connecteur.
71
En gnral, on choisira de mettre les entres gauche et les sorties droite. droite.
72
En gris : terminaux optionnels (Nom de limage, Couleur?,) Normal : terminaux recommands (Image masque) En gras : terminaux ncessaires (Chemin daccs)
73
Sauvegarde du VI
Choisir un emplacement adquat Organiser par fonctionnalits
Sauvegarder les VI similaires dans un mme rpertoire (ex : Outils mathmatiques, traitement dimages, gestion multimtres, gestion moteur,) moteur,
74
75
76
78
Phnomne physique
Capteur
PC
Un capteur convertit un phnomne physique en un signal (gnralement de nature lectrique) mesurable par un systme dacquisition de donnes. donnes.
79
Cble de connexion
Capteurs
Ports PCI, PCMCIA, USB, Bloc de terminaison pour connecter les signaux + Carte lectronique de mise en forme du signal analogique si ncessaire
Par Nicolas POUSSET
Ordinateur
80
Exemple de capteurs
Mesurande
Temprature
Capteur
Thermocouple Capteur de temprature rsistif (RTD) Thermistances Photodiode Photomultiplicateur Microphone Jauge de contrainte Transducteurs pizolectriques Potentiomtres Codeurs optiques Dbitmtre turbine / lectromagntique
Mesurande : Grandeur particulire soumise mesurage Mesurage : Ensemble doprations ayant pour but de dterminer une valeur dune grandeur
Par Nicolas POUSSET 81
Exemple de capteurs
Deux catgories de capteurs : Capteurs actifs
Ils se comportent comme des gnrateurs. Ils sont vu comme tant des gnrateurs. gnrateurs de charge, de tension, ou de courant dont la valeur est directement relie au mesurande (Photodiode, photomultiplicateur,). photomultiplicateur,
Capteurs passifs
Ils se comportent comme des impdances. Ils sont vu comme tant des impdances. rsistances, inductance ou capacit dont la valeur est directement relie au mesurande (thermistance, jauge de contrainte,). contrainte,
82
83
84
85
NI-DAQ traditionnel NIDes VI spcifiques pour accomplir : Entre analogique Sortie analogique E/S numrique Oprations de comptage
NI-DAQmx NIDernire gnration de drivers : VI configurables pour accomplir une tche Paramtrage dun VI pour toutes les mesures
86
Gnrer un signal
87
88
89
Rfrenc
Le signal nest pas rfrenc une masse Exemples : piles, thermocouples, transformateurs, transformateurs,
Non rfrenc
90
91
DIFFERENTIEL
RSE
NRSE
92
22 connecteurs BNC pour les signaux analogiques, numriques, de dclenchement et de compteurs/timers compteurs/timers
SCBSCB-68
Bloc de connexion d'E/S blind pour interfacer les signaux d'E/S avec des matriels enfichables DAQ quips de connecteurs 68 broches
SCXI
93
CompactDAQ
Acquisition par USB (Avantages du plug-andplug-andplay et de la connectique unique universelle) universelle)
Chssis modulaire
Permet de rpondre un grand nombre dapplications de tests et de mesures. mesures.
PXI/CompactPCI
Par Nicolas POUSSET 94
Boucle while while Registre dcalages Graphiques Affichages de plusieurs courbes sur un mme graphique Exercice 2 : utilisation dune boucle
95
Les boucles
La boucle while (tant que)
Possde un compteur ditration. Sexcute toujours au moins une fois. Continue de sexcuter tant quune action spcifique ne sest pas produite (ex : appui sur le bouton Stop). Stop). Itration
La boucle for
Possde un compteur ditration. Sexcute N fois (N paramtrable). (N Pour N = 4, i = 0, 1, 2, 3.
96
Les boucles
2. Encadrer le code qui doit tre rpt. 1. Choisissez votre boucle dans la sous palette structures .
3. Placez les nuds additionnels (contrle boolen : bouton stop par exemple) et reliez-les. reliez-
97
Un registre dcalage prend des donnes du ct droit et les reporte du ct gauche litration suivante :
Valeur initiale Valeur 1 Valeur 1 Valeur 2 Valeur 2 Valeur 3
Valeur initiale
Valeur 3
Premire itration
Seconde itration
Dernire itration
Il est possible dutiliser un registre dcalage avec une boucle while et une boucle for
Par Nicolas POUSSET 98
99
100
Graphiques
Le graphique est un indicateur numrique particulier qui propose un historique des valeurs. Commandes >> Toutes les commandes >> Graphes
101
Plusieurs courbes
La fonction Fusionner les signaux sert combiner des donnes dans un type de donnes dynamiques (informations gnres ou acquises par un VI Express). Express).
Par Nicolas POUSSET 102
Crer un VI qui gnre un nombre alatoire avec un temps dattente que lutilisateur peut modifier. modifier.
103
104
OU
105
106
107
Afficheur dindices
Afficheurs dlments
Exemple de tableau Chaque lments dun tableau est accessible par son indice Ainsi la valeur (llment) 0,658384 est lindice 0. Llment 0,659422 est lindice 3,...
108
109
Tableau de constantes
110
Tableau de contrles
111
Tableau de constantes
Tableau de contrles
Possibilit de crer un tableau 1D sous forme dune ligne ou dune colonne suivant les besoins de lapplication. lapplication.
112
Notion dindexation
Par Nicolas POUSSET 113
Tableau 1D Tableau 2D
Un tableau 2D est caractris par la prsence de 2 indices (1 pour la ligne et 1 pour la colonne) colonne)
Par Nicolas POUSSET 114
Manuellement
115
Terminal (i) ditrations Si lindexation automatique est active pour un tableau cbl en entre dune boucle For, le terminal (N) de dcompte sadapte automatiquement la taille du tableau. La boucle For sexcute alors un nombre de fois gal tableau. au nombre dlments du tableau. tableau.
116
Si deux tableaux sont connects en entre de la boucle ainsi que le terminal de dcompte (N), alors la boucle effectuera un nombre ditrations gal au plus petit nombre disponible. disponible. Dans lexemple ci-dessus, le premier tableau a 7 lments, le second en a 4 ciet la valeur 6 est cble N. Donc la boucle For ne sexcute que 4 fois. fois.
117
Fichiers
Fichiers passer des donnes vers et depuis des fichiers. - Les fichiers peuvent tre des lments binaires, du texte, ou des tableaux. - crire / lire le fichier LabVIEW Measurements (*.lvm) laide de abV VI Express. crire dans un fichier *.lvm Lire un fichier *.lvm
118
119
120
121
Partie VI - Fonctions des tableaux et graphiques Les fonctions de base dun tableau Utiliser les graphiques Crer plusieurs courbes dans les graphiques
Exercice 4 : utilisation de graphiques Exercice 5 : suite de lexercice 1 (boucle, registres dcalage, graphe)
122
123
124
Les graphiques
Slectionner depuis la palette Commandes, la sous palette Graphe : Commandes >> Toutes les commandes >> Graphe Graphe droulant Trace les donnes en continu, en plaant
les anciennes donnes sur la gauche et les nouvelles droite. Les droite. anciennes donnes disparaissent au fur et mesure que de nouvelles arrivent. arrivent.
Les graphiques
Faire un clic droit sur le graphique et slectionner proprits pour personnaliser laffichage (chelle, couleurs, curseurs,). curseurs,
126
Graphe numrique
127
Exemples : graphe XY
Graphe XY
128
Gnrer un VI qui simule un signal sinusodal et un signal carr dont on peut modifier la frquence et lamplitude ainsi que le rapport cyclique (pour le signal carr). carr).
129
130
Les valeurs de tempratures en celsius, celsius, kelvin et farenheit sont affiches sur un graphique. graphique. Une temporisation permet de rgler le temps entre laffichage de deux tempratures. tempratures.
131
132
133
134
135
136
s : string f : floating
137
Dans certains cas (par exemple, pour communiquer avec un instrument par lintermdiaire du port srie) il est ncessaire srie) davoir comme sparateur dcimal un point et non une virgule. virgule. Il faut donc ajouter le format %.;
138
139
Clusters
Structures qui regroupent plusieurs donnes. Les donnes peuvent tre de diffrents types. Les lments doivent tous tre, soit des contrles, soit des indicateurs. Cela est similaire au cblage de fils dans une mme gaine : facilite la gestion du programme. programme.
140
Crer un cluster
1. Slectionner un modle de cluster :
Commandes >> Toutes les commandes >> Tableau et Cluster ou Fonctions >> Toutes les fonctions >> Cluster
2. Placer des objets dans le cluster :
141
Type de donnes
Type de donnes
Assembler
Commandes tiquette tiquette
Type de donnes
Dsassembler
Indicateurs
tiquette
143
Clusters derreurs
Un cluster derreur permet la visualisation dun problme lors de lexcution dun VI. Un cluster derreur contient les informations suivantes : tat rapporte si une erreur se produit (valeur boolenne). Code rapporte le code spcifique de lerreur (Entier 32 bits). Source donne des informations sur lerreur (Chane de caractres). Exemple :
Pas derreur
Erreur
Par Nicolas POUSSET 144
Clusters derreurs
145
Types de connexions
Numriques Rels Entiers Scalaire Tableau 1D Tableau 2D
146
On simulera dans un premier temps un dplacement continu du pointeur puis un dplacement discret .
147
Dplacement discret
Dplacement continu
148
149
Structure Condition
Dans la sous palette Structures de la palette de Fonctions. Fonctions. Uniquement un seul cas est visible la fois.
Slecteur : Vrai, faux, peutpeut-tre, peut-tre pas, peutTerminal de slection
Terminal de slection
Terminal de slection
Slecteur : 0, 1, 2,
La structure Condition ne reconnat que la valeur boolenne tat du cluster derreur. derreur.
151
152
Bote de calcul
Dans la sous-palette Structures. sousStructures. Implmenter des quations compliques. Les variables sont cres sur le bord. Chaque nonc doit se terminer par un point virgule (;) La fentre daide contextuelle montre des fonctions disponibles. x2 PointPoint-virgule
Avantage de la bote de calcul ( droite) : rapidit dexcution du code par rapport lutilisation des fonctions de base ( gauche).
153
VI Express Formule
Utilisation dune interface de calculatrice o sont prsentes la plupart des fonctions dune calculatrice scientifique classique. classique.
Par Nicolas POUSSET 154
Gnrer un VI qui permet de visualiser une erreur lorsque lon essaye de calculer la racine carr dun nombre ngatif. ngatif.
155
156
157
Exercice 7 - Cluster, manipulation derreurs et structure condition Alternative possible pour signaler lerreur
(clusters2.vi)
Que ce passe t-il si lon ajoute une boucle While ce programme pour que celui-ci fonctionne en celuicontinu et que lon rentre une valeur ngative ?
Par Nicolas POUSSET 158
Le programme fonctionne en continu grce la boucle While. CelleWhile. Celleci sarrte ds que lon appui sur le bouton Stop o ds que lon rentre une valeur ngative dans la commande Numrique .
Par Nicolas POUSSET 159
Exercice 8 - Luminance spectrique du corps noir (bote de calcul, registres dcalage, et boucles)
Un corps noir est un radiateur thermique idal qui absorbe compltement toutes les radiations incidentes quelles que soient leur longueur donde, leur direction et leur tat de polarisation.
Loi de Planck
Gnrer un VI qui permet de tracer la luminance spectrique du corps noir pour une temprature donne. donne.
Le , ( ,T ) =
2hc 2
(e
5
hc kT
1)
Vitesse de la lumire dans le vide c = 299 792 458 m.s-1 Constante de Planck h = 6,626 069 3 x 10-34 J.s Constante de Boltzmann k = 1,380 650 5 x 10-23 J.K-1
Par Nicolas POUSSET 160
Exercice 8 - Luminance spectrique du corps noir (bote de calcul, registres dcalage, et boucles)
Exercice 8 - Luminance spectrique du corps noir (bote de calcul, registres dcalage, et boucles)
Allure du spectre dune lampe halogne filament de tungstne dans le visible (380 780 nm) nm) Temprature 3000 K
162
Exercice 8 - Luminance spectrique du corps noir (bote de calcul, registres dcalage, et boucles)
Exemple de solution possible
(Planck.vi)
Le rayonnement du corps noir ne commence se voir quau del de 600C (rouge 600 sombre) do le choix de lexpression corps noir puisqu temprature ambiante (300 K) les corps naturels mettent dans lInfrarouge (IR). (IR).
163
Partie IX - Variables
Variables locales Variables locales de squence Variables globales Exercice 9 : utilisation de variables locales
164
Variables locales
Une variable locale nest visible que dans un seul VI. Elle permet VI. de communiquer des donnes facilement au sein dun mme VI. VI. Cela vite, entre autre, de cbler plusieurs fils qui vont perturber la prsentation visuelle du diagramme. diagramme.
Par Nicolas POUSSET 165
166
Variables globales
Ouverture dun sous VI vide
Une variable globale agit de la mme faon quune variable locale except le fait que lon peut transfrer cette variable dun VI lautre par lutilisation du sous VI cre. cre.
167
Variables globales
2. Sous-VI cre lors de linsertion des Sousvariables dans le premier VI Icne reprsentative des sous VI de variable globale
1. 1er VI (vi.vi) o lon crit les informations dans les variables globales (mode criture) criture) 3. 2me VI (vi2.vi) o lon rcupre la variable globale (vi2 comme un sous-VI classique que lon paramtre en sousmode lecture
168
169
170
171
172
Tables
On ne peut crire dans les tables uniquement que des chanes. On ne chanes. peut pas directement crire des entiers ou des rels. rels.
173
Tables - exemple
Permet de mettre en forme des donnes pour les enregistrer dans un tableur
Par Nicolas POUSSET 174
Nud de proprit
Dans un premier temps il faut relier le nud de proprit un objet prcis
Les nuds de proprit permettent davoir accs certains lments dun objet en lecture ou en criture. criture.
175
Nud de proprit
Dans un second temps il faut choisir les proprits de lobjet qui nous intressent. intressent. Par exemple (dans notre cas ici) les en-ttes de colonnes et les valeurs endune table. table.
176
177
Nud de proprit
178
179
tape 2 : Une bote de dialogue apparat pour enregistrer les donnes au format .xls
180
Lorsque lon essaye de rcrire par dessus un fichier dj prsent, une bote de dialogue nous invitant changer de nom de fichier apparat. apparat.
181
182
183
184
Impression
Fichier Imprimer ... Diffrentes options dimpression sont disponibles Icne, description du VI, face avant, diagramme, hirarchie des VI, sous VI, historique des VI Impression du panneau VI (impressions programmables de la face avant)
Impression personnalise
185
186
En double cliquant sur le VI Express nous avons la possibilit de paramtrer le formatage du rapport. rapport.
187
Gnration du rapport
188
189
190
Sans commentaires
Commentaires gnraux
Avec commentaires
Commentaires pour expliciter les donnes qui transitent sur chacun des fils Ne pas oublier de mettre les tiquettes sur les fonctions que vous utilisez et de nommer explicitement vos commandes et vos indicateurs !
Par Nicolas POUSSET 191
192
Introduction
La programmation vnementielle permet la gestion dvnements asynchrones cres notamment par des actions de lutilisateur sur la face avant. avant. n.b. : Les fonctionnalits de la programmation vnementielles sont uniquement disponibles dans les versions professionnelles de labVIEW. labVIEW.
193
194
Structure vnement
Terminal de Timeout *
La structure Evnement termine son excution aprs avoir gr un seul vnement. On lutilisera donc dans une boucle While la plupart du temps.
* Par dfaut le terminal de Timeout est -1. Cela signifie quil faut attendre indfiniment quun vnement se produise. produise.
Par Nicolas POUSSET 195
Structure vnement
197
198
Larchitecture gnrale du VI Larchitecture de type machine dtats (simple et complexe) Exercice 12 : gestion de feux tricolores
Par Nicolas POUSSET 199
Larchitecture simple du VI
Le VI fonctionnel prsente des rsultats probants Pas doption marche/arrt. Convient pour des tests trs simples, de petits calculs, Exemple : Exercice1.vi
200
Larchitecture gnrale du VI
Trois tapes principales : Initialisation Application principale Fermeture Exemple pour lacquisition continue dune image :
Initialisation Application principale Fermeture
- Linitialisation na besoin dtre faite quune fois. - La fermeture de la session larrt du programme est indispensable pour librer les ports utiliss.
201
Inconvnients
Pertes possibles dvnements sil y en a deux qui arrivent en mme temps. Les tats : 0 : Initialisation (Init) 1 : Etat 1 2 : Etat 2 3 : Etat 3 4 : Etat 4 5 : Etat 2, 6 : Arrt
Init Etat 4
Etat 1 Etat 3
Arrt
Etat 2
202
Dans chaque trame de la structure Condition correspondant un tat donn, on dtermine ltat suivant avec des constantes numration : enum .
Par Nicolas POUSSET 203
lesquelles sont disponibles plusieurs commandes attaches des fonctionnalits prcises. prcises.
204
205
Possibilit dcrire les commandes de fonctions la main pour que celles-ci cellessexcutent. sexcutent.
206
207
Affiche ( gauche) diverses informations (date dacquisition, temprature, humidit, pression,) lorsque lon appui sur le bouton Lecture des paramtres mto .
208
Permet lacquisition de donnes, la suppression dune ligne, leffacement du tableau et lenregistrement des donnes dans un fichier excel.
209
210
211
212
213
214
215
216
Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Gnrer un VI qui permet de grer les feux tricolores dun carrefour. carrefour.
On utilisera, entre autre, une structure conditionnel avec des constantes numration, des clusters,... clusters,
217
Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Aide la conception 1. Nord est au vert : Sud est au vert, Est et Ouest au rouge. rouge. 2. Nord est au orange : Sud est au orange, Est et Ouest au rouge. rouge. 3. Nord est au rouge : Sud est au rouge, Est et Ouest au vert. vert.
4. Nord est au rouge (2) : Sud est au rouge, Est et Ouest au orange. orange. 5. ,.
Par Nicolas POUSSET 218
Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution
(Exercice 9 - Feux tricolores V1.vi)
219
Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution
220
Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution
221
Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution
222
Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution
223
Etape 2 Etape 1
Par Nicolas POUSSET
Etape 3
224
Etape 5 Etape 4
Etape 6
225
226
227
228
229
230
231
Nimporte qui peut partir dInternet visualiser en temps rel le VI et le contrler sil en a, au pralable, t autoris. autoris.
- Tlchargement de Tutoriaux et Instructions. - Support sur lincorporation de Webcams dans les panneaux de contrle distance.
Par Nicolas POUSSET 234
Drivers dinstruments
Par Nicolas POUSSET 235
Introduction
Dans le cas de communications par liaisons GPIB ou Srie, lacquisition de donnes se fait par lintermdiaire dun instrument autonome (multimtre, oscilloscope,) oscilloscope, au sein duquel sont effectues les oprations dentres/sorties des signaux mesurs. mesurs. Le programme dvelopp sert uniquement la configuration de linstrument, la rcupration, lanalyse et la prsentation des donnes. donnes.
236
GPIB - Introduction
La liaison GPIB (General Purpose Interface Bus) appele aussi IEEE 488 (IEEE : Institute of Electrical and Electronics Engineers) est devenue depuis son apparition en 1965 (cre par Hewlett-Packard) un standard de communication qui permet Hewlettaujourdhui de contrler la plupart des instruments de mesures (oscilloscopes, multimtres, gnrateurs de fonctions, ). La premire normalisation de ce bus date de 1987 sous la rfrence IEEE 488.1. Une 488. deuxime normalisation de ce bus est intervenue en 1992 avec la rfrence IEEE 488.2 pour prciser la prcdente qui tait incomplte, et ceci en prcisant le 488. protocole de communication, en dfinissant les formats de donnes,... En 1990, le donnes,... 1990, document Standard Commands for Programmable Instrumentation (SCPI) a t incorpor la norme. Celui-ci dfinit un certain nombre de commandes auxquelles norme. Celuichaque instrument doit pouvoir obir. Cela permet ainsi une interoprabilit de obir. matriels de diffrents fabricants. fabricants.
Connecteur GPIB
237
- Interconnexion de 15 appareils maximum : Carte GPIB chaque appareil possde une adresse Cble GPIB comprise entre 0 et 30. 30. - Vitesse de transfert maximum : 1 Mo/s. Mo/s. - Longueur de cble de 4 m au maximum entre 2 appareils. appareils. - Longueur totale de cble de 20 m au maximum. maximum. - Au minimum les 2/3 des instruments doivent tre sous tension. tension.
238
GPIB - Measurement and Automation Explorer (MAX) Clic sur un instrument : par exemple Instrument0
Adresse GPIB de linstrument
240
GPIB - VI type
Architecture utilisant des VI Express dj disponibles pour gagner en rapidit et en simplicit
241
242
Srie - Introduction
Bien que progressivement dlaisse pour lUSB (Universal Serial Bus), la liaison Srie (RS 232, RS 449, RS 422, RS 423, RS 485) est un moyen de communication, 232, 449, 422, 423, 485) encore aujourdhui, rpandu pour la transmission de donnes entre un ordinateur et un priphrique (imprimante, instrument de mesure programmable,) programmable, La liaison Srie est une liaison asynchrone cest--dire quelle ne transmet pas de cestsignal dhorloge. Il ny a donc aucune synchronisation entre lmetteur et le dhorloge. rcepteur. rcepteur. Pour que le rcepteur puisse interprter convenablement linformation du transmetteur, il faut que les deux lments soient configurs de la mme faon. faon. Il faut spcifier quatre paramtres pour ce type de communication : le dbit de transmission en bauds, le nombre de bits de donnes, la polarit du bit de parit (paire ou impaire), le nombre de bits de stop (1, 1,5 ou 2).
Port Srie
Par Nicolas POUSSET 243
- Un bit de start qui indique quune information va tre envoye. Il permet la envoye. synchronisation du rcepteur. rcepteur. - 7 ou 8 bit de donnes (B0 B6 (ou B7) avec B0 le bit de poids faible (LSB) et B6 le bit de poids fort (MSB)). (MSB)). - Un bit
- Un bit de stop. Aprs la transmission la ligne est positionne au repos pendant X priodes dhorloges du rcepteur. rcepteur.
244
Exemples de VI
Exemples de VI apportant une aide au dmarrage dun projet ou quelques solutions des problmes de conception
246
Drivers dinstruments
Les drivers dinstruments sont des bibliothques de VI qui permettent de contrler un instrument programmable. programmable. Accessible sur le site de NI ladresse suivante :
http://www.ni.com/devzone/idnet/f/
Ou par labVIEW partir de larborescence suivante : Outils > Instrumentation > Base de drivers dinstruments (ou rechercher des drivers dinstruments ) . Exemple : Multimtre KEITHLEY modle 2002 :
247
Acquisition dune SEULE image avec une webcam par USB Acquisition continue dimages avec une webcam par USB
248
NI Vision Assistant
Vision Assistant permet de paramtrer la camra utilise, de procder lacquisition dimages ou de squences dimages, permet de procder une multitude de traitement dimages et permet de gnrer automatiquement et facilement un code LabVIEW oprationnel. oprationnel.
249
250
Slection de la camra
Rglage des paramtres vido Rglage des paramtres lis aux images
251
Ces paramtres sont intrinsques la camra utilise. Ils seront utilise. diffrents pour dautres types de camras. camras.
252
1 mm
Exemple dune image dun micromtre objet (talon trait) observ au microscope optique + camra CCD
253
254
255
256
Fonctions Vision
257
Outils de visualisation
258
USB PC Webcam
Utilisation du SNAP
259
Utilisation du
GRAB
260
x1 y1 x2 y2
y1 y2
262
Pour ce faire nous utiliserons des graphiques dintensit ainsi que les VI suivants (voir diapo suivante).
263
264
265
266
267
268
pas x
269
270
271
pas y
272
273
1re tape : Cration de la variable image ( laide du VI standard IMAQ Create ) et dun motif unique. unique.
274
Raliser un VI qui permet de visualiser laffichage dun motif ovale sur un fond noir dans deux modes de visualisation diffrents.
275
276
Affichage de limage dans une bote de dialogue distincte de la face avant du VI cre.
277
Affichage de limage dans un indicateur visuel prsent sur la face avant du VI cre.
278
279
Raliser un VI qui permet de visualiser laffichage dune ligne de motifs ovales sur un fond noir.
280
281
3me tape : Cration dune mire de motifs identiques. identiques. Pour cela nous allons utiliser deux boucles For pour la cration des lignes et des colonnes. colonnes.
282
Raliser un VI qui permet de visualiser laffichage dune mire de motifs identiques sur un fond noir.
283
284
285
286
Image masque
287
288
289
290
291
Image initiale
Image calibre
Image rogne
292
293
organique
Raliser un programme qui assure la gestion lectronique dun composteur de matire organique tel que prsent dans le brevet fictif que jai rdig et qui est tlchargeable ladresse : http://nicolas_pousset.perso.neuf.fr/Exemples/5/Brevet.pdf
organique
Acquisition de deux tensions issues dune sonde de temprature et dhygromtrie On fixe les seuils de temprature aux valeurs suivantes : U1 = 60C et U2 = 40C On fixe le seuil dhygromtrie la valeur suivante : U3 = 45% Ces seuils correspondent lallumage de voyants LED de couleurs vertes associ une action corrective spcifique : (5.1) : Arrosage requis (5.2) : Ajout de matires azotes (dchets de table, plantes jeunes, gazon, (5.3) : Ajout de matires carbones (rsidus de jardin, feuilles mortes,) (5.4) : Retournement du compost (Attention !! Oter la barre mtallique) Si la temprature mesure est suprieure U1, les voyants (5.3) et (5.4) sallument. Si la temprature est comprise entre U1 et U2, aucun voyant nest allum. Si la temprature est infrieure U2, le voyant (5.2) sallume. Si le taux dhumidit est suprieur U3 aucun voyant ne sallume. Si le taux dhumidit est infrieur U3, le voyant (5.1) sallume.
295
organique
296
organique
297
Mise en garde
Raliser un programme qui permet deffectuer laffichage dune mise en garde en fonction de la temprature actuelle (Ta). (Ta).
298
Mise en garde
Cahier des charges : - Si Ta est infrieure ou gale Tmin on affiche le message : Attention !! Risque de gel et on allume la LED de mise en garde. garde. - Si Ta est suprieure ou gale Tmax on affiche le message : Attention !! Risque de canicule et on allume la LED de mise en garde. garde. - Si Ta est comprise entre Tmin et Tmax alors on affiche le message Aucun Risque et la LED de mise en garde reste teinte. teinte. - Si Ta est infrieure o gale Tmin - 10 on affiche une boite de dialogue avec Ca ne peut plus durer comme !! J'arrte le programme et on arrte le programme. On fait de mme lorsque Ta programme. est suprieure ou gale Tmax + 10. 10.
299
Mise en garde
Exemple de solution possible
300
Proprits dun VI
Raliser un programme qui permet deffectuer les tches suivantes : - Faire apparatre ou non la barre des menus et la barre de titre - Centrer le VI par rapport lcran dordinateur - Excuter le VI en transparence (dans ce cas on doit avoir la possibilit de la paramtrer)
Proprits dun VI
Exemple de solution possible
302
Gnration de fractales (ide de T. BADR (LNE-INM)) (LNELe terme de fractale a t introduit par Benoit Mandelbrot au cours des annes 70, dans Les Objets Fractals est dsigne de manire 70, simpliste un objet dont les motifs se rptent linfini toutes les chelles. chelles.
303
Gnration de fractales
L'ensemble de Mandelbrot consiste dcrire tous les points d'un plan complexe calculs partir dune transformation exprime par :
ou
Les Zn et C sont des nombres complexes. On fixe Z0 comme tant gal 0 + complexes. i.0 et on fait varier C (il reprsente le point de limage en cours de calcul). calcul). Pour chaque valeur de C (en abscisse (partie relle) et en ordonne (partie imaginaire)), on calcul Zn+1 et on compare le module du nombre complexe n+1 calcul la valeur 2. Si le module est suprieur 2 on est sr de la divergence de la suite. On affecte alors comme couleur de pixel ce point la valeur du suite. nombre ditrations obtenus. Si le module du nombre complexe ne diverge obtenus. pas jusqu un nombre limite ditrations que lon fixera 200 on met le pixel 0 (noir). (noir).
304
Gnration de fractales
Raliser un programme qui permet dafficher un fractale de type Mandelbrot. Mandelbrot. Pour cette exercice on utilisera un graph dintensit pour afficher le fractale, une boucle For pour le calcul des points en abscisse et une boucle For pour le calcul des points en ordonnes. Une boucle While intgrera lintgralit du code ordonnes. dvelopp. dvelopp.
On cherchera crer un programme qui permettre de paramtrer la rsolution de la figure. Une option figure. de zoom pourra galement tre implmente. implmente.
305
Gnration de fractales
306
Gnration de fractales
307
Gnration de fractales
Exemple de solution possible
308
Gnration de fractales
Exemple de solution possible pour un sous-VI sous-
309
Tirage alatoire
Raliser un programme qui permet de gnrer de manire alatoire une srie de dix nombre compris entre 1 et 10. 10. Chaque chiffre ne doit apparatre quune fois et chaque tirage doit respecter une loi de distribution rectangulaire. rectangulaire. La face avant du programme devra tre similaire celle reprsente droite. droite. Une tape intermdiaire doit vous permettre de vrifier que les tirages suivent bien une loi de distribution rectangulaire tel que reprsent sur la figure de gauche. gauche.
Par Nicolas POUSSET 310
Tirage alatoire
Pour raliser ce programme on pourra utiliser les lments suivants :
Pour faciliter la lecture du programme on ralisera un sous-VI qui permettra de sousgnrer un nombre compris entre 1 et 10 et qui suit une loi de distribution rectangulaire. rectangulaire. Dans un VI principal on fera appel au sous-VI plusieurs fois pour gnrer la srie de sousdix nombres alatoires. alatoires.
311
Tirage alatoire
Exemple de solution possible pour le sous-VI sous(Loi rectangulaire.vi)
312
Tirage alatoire
Exemple de solution possible pour VI principal
313
Tirage alatoire
314
Tirage alatoire
315
316
317
318
Ordinateur hte 2. Tlcharger le code sur une cible Cible temps rel
Processeur
Module dE/S
319
Dvelopper des programmes avec le lego Mindstorms NXT et vous ferez du temps rel
Par Nicolas POUSSET 320
Architecture typique
Cible RT (Real-Time) (RealBoucle de lapplication (dterministe) Priorit temps critique
Disque
PC hte
Application cliente
Disque
321
Programme du PC hte
Excut sur le PC hte Pas ncessaire Gre les tches non dterministes :
- Communication avec le programme cible : envoi des paramtres de linterface utilisateur et rcupration des donnes - Enregistrement et analyse des donnes - Emission systmes des donnes vers dautres
322
Programme de la cible
Les tches de priorit plus leve gardent la main sur les tches de priorit moins importante. importante. Les tches qui ncessitent dtre dterministes sont des tches dites temps critique. Toutes les autres auront une critique. priorit moins importante. importante. Le multithreading permet de donner la priorit une tche en particulier. particulier.
Programme de la cible
Boucle de priorit normale Communication interinter-threads Boucle temps critique
323
324
CompactRIO
E/S reconfigurables, reconfigurables,
Compact Vision
Automate de vision industrielle
Compact FieldPoint RT
Encombrement rduit, environnement durcis rduit,
environnement durcis
326
Partie XIX - DataSocket Quest ce que DataSocket ? Protocole de transfert DataSocket Fonctions DataSocket Exemple : labVIEW Messenger
327
dstp://163.173.45.98/ dstp://163.173.45.98/temperature
Protocole Adresse IP de la machine Nom de la donne qui publie les donnes
329
Mise en pratique
Slection du type de liaison : Datasocket Type daccs au donnes : lecture et/ou criture Chemin daccs au donnes
Par Nicolas POUSSET 330
Mise en pratique
Fonctions DataSocket
Datasocket Ecrire
332
333
334
335
336
337
338
Nicolas POUSSET Ingnieur - Enseignant Institut National de Mtrologie (LNE-INM) (LNEConservatoire national des arts et mtiers (Cnam) (Cnam) 61 Rue du Landy 93210 La Plaine - Saint Denis France tl. : 01.58.80.89.03 tl. email : [email protected] Site web : http://inm.cnam.fr
339