Vous êtes sur la page 1sur 339

Cours dinitiation au logiciel labVIEW

Dernire mise jour : 28/10/09


Par Nicolas POUSSET 1

Nicolas POUSSET

Par Nicolas POUSSET

Le Conservatoire national des arts et mtiers (Cnam)


Enseigner tous et partout Fond en 1794 par lAbb Grgoire Missions du Cnam :
Formation des adultes tout au long de la vie

professionnelle Recherche Diffusion de la culture scientifique et technique

Par Nicolas POUSSET

Le Conservatoire national des arts et mtiers (Cnam)


Quelques chiffres :
150 centres rpartis en France, dans les DOM-TOM DOM-

et ltranger 2 000 enseignants chercheurs permanents + de 85 000 auditeurs/an 500 000 heures denseignement/an 1 million de diplms actifs

Par Nicolas POUSSET

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

Par Nicolas POUSSET

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

231 235 248 261 316 327 337

Remarque : La version de labVIEW utilise pour ce cours dinitiation est la version 7.1.

Par Nicolas POUSSET

Partie I - Introduction LabVIEW


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

Par Nicolas POUSSET

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

Par Nicolas POUSSET

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

en croissance constante depuis 1976


820 millions de dollars en 2008

NI est class depuis 10 ans, par le FORTUNE Magazine (cre en 1930), 1930), parmi les 100 meilleurs entreprises amricaines. amricaines.

Par Nicolas POUSSET

10

Instrumentation Virtuelle avec LabVIEW

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

LabVIEW est un outils dacquisition, dacquisition, danalyse et de prsentation de donnes. danalyse

Par Nicolas POUSSET

12

Acquisition avec LabVIEW


LabVIEW permet lacquisition de donnes par lintermdiaire de diverses connectiques :
PCI (Peripheral Component Interconnect) CompactFlash LAN (Local Area Network) PXI (PCI eXtensions for Instrumentation) PCMCIA (Personal Computer Memory Card International Association) Wi-Fi (IEEE 802.11 b/g/n) (Wireless WiFidelity) Bluetooth IrDA (Infrared Data Association) (Infrared USB (Universal Serial Bus) GPIB (IEEE 488) (General Purpose Interface Bus) Firewire (IEEE 1394) Ethernet Srie (RS 232, RS 449, RS 422, RS 423, RS 485) VXI (VME eXtensions for Instrumentation)

IEEE : Institute of Electrical and Electronics Engineers http://www.ieee.org


Par Nicolas POUSSET 13

Analyse avec LabVIEW


LabVIEW inclut des lanalyse des donnes : outils pour

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,

Par Nicolas POUSSET

14

Prsentation avec LabVIEW


LabVIEW inclut des outils daide la prsentation (communication) des donnes :
Graphiques, tableaux, images, gnration de rapport, Par lintermdiaire dinternet : outils de publication web, serveur datasocket, TCP/IP, envoie dalertes par email, email,

Par Nicolas POUSSET

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

Par Nicolas POUSSET

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)

1997 1993 1992 1990 1986 1983

LabVIEW 4.0 addition doutils pour professionnels, amliorations du debogage

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)

programmation par diagramme 2006 2005 2003 2002 2000

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

Par Nicolas POUSSET

19

LabVIEW Outil de programmation intuitif et la porte de tous. tous.


Exemple : LEGO Mindstorms NXT destin initialement aux enfants partir de 10 ans. ans.
NXT 2.0 Sortie : Septembre 2009

NXT Sortie : 2006


Par Nicolas POUSSET 20

LEGO Mindstorms NXT


4 entres 3 sorties Capteur de contact

Moteurs
Capteurs additionnels : acclromtre, gyroscope, colorimtre,

Capteur de son Capteur de lumire

Boitier de commande (microcontrleur) Capteur de distance


(metteur/Rcepteur ultrasons)

Exemples de conceptions :

Humanodes

Machines Animaux
Par Nicolas POUSSET 21

LEGO Mindstorms NXT


Environnement de dveloppement graphique

Le programme est charg dans le robot via une connectique Bluetooth ou USB.

Notions de temporisation, de boucles, de gestion dvnements, et de temps rel, rel,


Par Nicolas POUSSET 22

LEGO Mindstorms NXT


Autres exemples de conceptions :

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

Rsolution dun Rubiks cube Pilotage dun hlicoptre


Par Nicolas POUSSET 23

LEGO Mindstorms NXT

Vidos Youtube
Rukiks cube et Joconde

Joconde : dmo outils vision, dtection de


contours

Dmo Lego Mindstorms NXT 2.0


Logiciel LM NXT 2.0 LabVIEW (Etat batterie, ultrasons v1 et v2)

Par Nicolas POUSSET

24

LEGO Mindstorms NXT et labVIEW


Exemple : Etat de la batterie

labVIEW

Mindstorms

PC

Liaison USB (ou Bluetooth*)

Le bluetooth est trs consommateur en nergie La transmission de donnes est plus lente
Par Nicolas POUSSET 25

LEGO Mindstorms NXT et labVIEW


Exemple : Etat de la batterie

Lecture de linformation de ltat de batterie sans tlchargement de programme dans le NXT

Par Nicolas POUSSET

26

LEGO Mindstorms NXT et labVIEW


Exemple : Test de lmetteur/rcepteur ultrasons

labVIEW

NXT terminal
PC

Mindstorms

Liaison USB

Par Nicolas POUSSET

27

LEGO Mindstorms NXT et labVIEW


Exemple : Test de lmetteur/rcepteur ultrasons
Tlchargement du programme via linterface NXT terminal dans le NXT et affichage de linformation de distance sur lordinateur

NXT terminal

Par Nicolas POUSSET

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

Par Nicolas POUSSET

29

Les programmes LabVIEW appels Instruments Virtuels ou Virtual Instruments (VI)


On parle dinstruments virtuels car leur apparence et leur fonctionnement sont semblables ceux dinstruments rels, tels que les oscilloscopes et les multimtres. multimtres.

Par Nicolas POUSSET

30

Composantes dun VI
- Face avant

Les VI se composent de trois lments principaux :

Interface utilisateur Contrles = entres Indicateurs = sorties

- Diagramme
Fentre de programmation et daffichage du code source Interaction entre face avant et diagramme : Ctrl+E

- Icne/Connecteur

Par Nicolas POUSSET

31

Face avant dun VI


Barre doutils de la face avant Contrles numrique

Barre des menus

Icne Lgende du graphique

Contrle boolen Grandeurs en abscisse et en ordonne de la courbe

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

Barre des menus Icne

Bote de calcul Fonction division

Structure dune boucle While (tant que)

Structure dune boucle For

Fil de donnes

Terminal de contrle boolen

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

Par Nicolas POUSSET

35

Ouvrir un VI

Modles de VI

Des modles de VI dj pr-cods prsont disponibles.

Par Nicolas POUSSET

36

Ouvrir un VI
Modles de VI pour assistants personnel (PDA) Modles de VI pour communications par GPIB

Modles de VI

Aperu de la Description face avant du VI

Permet davoir une trame simple et fonctionnelle rapidement

Aperu du diagramme

Par Nicolas POUSSET

37

Ouvrir un VI
Les exemples sont trs riches et souvent trs utiles pour dvelopper de petites applications rapidement.

Recherche dexemples

Par Nicolas POUSSET

38

Ouvrir un VI
Parcourir dans les exemples

Recherche dexemples

Recherche par mots cls dans les exemples Soumettre un exemple National Instruments

Par Nicolas POUSSET

39

Ouvrir un VI

VI vide

Par Nicolas POUSSET

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

Remonter larborescence Rechercher un lment Personnalisation de la palette

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

Les Fonctions, les VI et les VI Express


Les Fonctions de base : lments dexploitation fondamentaux de LabVIEW. Les VI Standards : VI qui peuvent tre personnaliss. Les VI Express : VI interactifs avec une page de dialogue configurable mais limite. Fonction de base

VI Express

VI Standard

Par Nicolas POUSSET

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

Outil sonde Outil copie couleur Outil coloriage

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

Barre doutils du diagramme

Animer lexcution : pour animer le diagramme et voir


les donnes voluer en fonction de lexcution du code. code.

Excuter de faon dtailler : excute le programme de la


faon la plus dtaille possible action par action. action.

Excuter sans dtailler : excute le programme nud


par nud sans rentrer dans le dtail de leur excution interne. interne.

Terminer lexcution : poursuivre lexcution du


programme jusqu son terme. terme.

Nettoyer le diagramme : rorganisation automatique du code


(nouveaut de labVIEW 8.6)

Par Nicolas POUSSET

46

Barre des menus

Fonctionnalits classiques des programmes standards mais galement spcifiques LabVIEW. LabVIEW.

Par Nicolas POUSSET

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

Par Nicolas POUSSET

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

Par Nicolas POUSSET

49

Paramtrage des constantes / commandes


Possibilit de paramtrer les proprits de la commande numrique (ou de la constante) constante)
Clic droit sur la commande (ou la constante) numrique

Format scientifique avec 2

chiffres de prcision

Format virgule flottante avec 2

chiffres de prcision

Par Nicolas POUSSET

50

Paramtrage des constantes / commandes


Possibilit de paramtrer les proprits de la commande numrique (ou de la constante) constante)
Clic droit sur la commande (ou la constante) numrique. numrique.

Possibilit de paramtrer la gamme (avec un minimum, un maximum et un incrment). incrment).

Par Nicolas POUSSET

51

Paramtrage des constantes / commandes


Possibilit de modifier le type de donne de la commande : entiers (mot long, mot, octet), rels (prcision tendue, double prcision, simple prcision), prcision),

Indication sur le type de donne

Permet de fixer une valeur par dfaut la commande

Par Nicolas POUSSET

52

Paramtrage des constantes / commandes

Rels

Entiers

Les entiers sont en bleu Les rels sont en orange


Par Nicolas POUSSET 53

Fonction de base

tiquette Aide contextuelle (Ctrl + H)

Terminaux : 2 entres et 1 sortie


La couleur correspond au type de donnes (orange = rels)

Par Nicolas POUSSET

54

Astuces de connexions
Points de Connexions Trois types de slection

Simple clic

Double clic

Triple clic

Utilisation du routage automatique

Mise en forme des connexions

Clic droit sur le fils

Par Nicolas POUSSET

55

Programmation par flux de donnes


Nud Terminaux dentres Terminaux de sortie

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

Les options daide


Aide Contextuelle (Ctrl + H)
Aide dtaille Verrouille laide Choix du mode de laide (simple ou dtaille)

Accs laide dtaille


Accs lintgralit du contenu informatif Ouverture automatique dune fentre pour accder directement laide

Par Nicolas POUSSET

57

Aide dtaille
(barre des menus : Aide -> Aide LabVIEW )

Par Nicolas POUSSET

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

Par Nicolas POUSSET

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

Conversion de C en K : K = C + 273,15 273, Conversion de C en F : F = ((9 x C) / 5) + 32 ((9

Par Nicolas POUSSET

60

Exercice 1 - Conversion de C en F et en K
Exemple de solution possible
(exercice0.vi)

Par Nicolas POUSSET

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

Par Nicolas POUSSET

62

Aides aux dbogages


Trouver des erreurs
Cliquer sur le symbole de la flche coupe : Une fentre Windows nomme Liste des erreurs apparat avec les erreurs contenues dans le VI. VI.

En double cliquant sur les erreurs on peut visualiser o elles se trouvent sur le diagramme
Par Nicolas POUSSET 63

Aides aux dbogages


Animer lexcution
Cliquer sur le bouton ci-contre. Les donnes dans des bulles cisont animes. Des valeurs sont alors indiques sur les fils. Excution du VI tape par tape

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 :

Par Nicolas POUSSET

64

Partie II - Les sous VI


Quest-ce quun sous VI ? Quest Assigner les terminaux dentre/sortie et raliser une icne pour un sous VI Sauvegarde du VI Utiliser un VI en tant que sous VI Quelques raccourcis clavier

Par Nicolas POUSSET

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

Un connecteur montre les terminaux disponibles pour le transfert de donnes. donnes.


1 case en sortie pour lindicateur

Par Nicolas POUSSET

67

Sous VI
Sous VI Icne reprsentative du VI de plus haut niveau Icne reprsentative du sous VI

VI Principal

Sous VI

Par Nicolas POUSSET

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

Par Nicolas POUSSET

69

Crer une icne


Cliquez avec le bouton droit sur licne de la face avant (en haut droite), ou sur licne du diagramme et choisir diter licne. licne. La personnalisation de licne est tout fait facultative et ne changera rien au fonctionnement du sous VI. VI.
Palette doutils ddition du dessin

Couleur de premier plan

Par Nicolas POUSSET

70

Visualiser le connecteur
Cliquer avec le bouton droit sur licne (face avant seulement) et choisir Visualiser le connecteur.

Par Nicolas POUSSET

71

Assigner les terminaux

En gnral, on choisira de mettre les entres gauche et les sorties droite. droite.

Par Nicolas POUSSET

72

Terminaux ncessaires , recommands , optionnels .


Lorsque lon assigne les connecteurs il est possible de dfinir leur importance en leur attachant un des trois termes suivants : Ncessaire, Recommande, Optionnelle. Optionnelle. Icne : 3 entres 3 sorties

En gris : terminaux optionnels (Nom de limage, Couleur?,) Normal : terminaux recommands (Image masque) En gras : terminaux ncessaires (Chemin daccs)

Par Nicolas POUSSET

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,

Organiser par applications


Sauvegarder tous les VI utiliss pour une application spcifique dans un rpertoire ou une librairie. (ex : talonnage micromtres objet, Pilotage TGV,)
Les librairies (.llb) combinent plusieurs VI dans un seul fichier. Ceci est idal pour transfrer des applications compltes vers dautres ordinateurs.

Par Nicolas POUSSET

74

Insrez le sous VI dans un VI de niveau suprieur


Accs aux sous-VI personnels : sousFonctions >> Toutes les Fonctions >> >> Slection dun VI OU Faire glisser licne du sous VI sur le diagramme cible de haut niveau.

Par Nicolas POUSSET

75

Autre mthode de cration dun sous VI


Slectionner une zone convertir en sous VI Slectionner dans la barre des menus dition : Crer un sous VI

Icne par dfaut

Par Nicolas POUSSET

76

Astuces pour travailler dans LabVIEW


Quelques raccourcis clavier
<Ctrl+H> Activer/dsactiver la fentre daide contextuelle <Ctrl+B> Supprimer les connexions errones du diagramme <Ctrl+E> Basculer entre la face avant et le diagramme <Ctrl+T> Mosaque verticale des fentres <Ctrl+Z> Annuler (aussi dans le menu dition) <Ctrl+C> Copier un objet <Ctrl+V> Coller un objet
Alternative au copier-coller dans labVIEW : copier< Ctrl + cliquer-glisser-relcher > cliquer-glisserPar Nicolas POUSSET 77

Partie III - Acquisition de donnes


Introduction lacquisition de donnes Outil Measurement and Automation Explorer (MAX) Acquisition de donnes DAQ (DAQ : Data AQuisition) AQuisition) DAQ Traditionnel DAQmx
Exemples de matriels ddis lacquisition

Par Nicolas POUSSET

78

Introduction lacquisition de donnes


Flux de lumire Conversion du flux de lumire (photons) en courant lectrique (lectrons) Conversion du signal analogique en signal numrique

Phnomne physique

Capteur

Chane de traitement du signal (amplification, filtrage, chantillonnage,)

PC

Un capteur convertit un phnomne physique en un signal (gnralement de nature lectrique) mesurable par un systme dacquisition de donnes. donnes.

Par Nicolas POUSSET

79

Exemple de chane dacquisition de Carte DAQ donnes


MUX CAN

Cble de connexion

Compteur E/S du bus

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

Flux de lumire Son Force et pression Position et dplacements Fluide

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,

Par Nicolas POUSSET

82

Measurement and Automation Explorer (MAX)

Par Nicolas POUSSET

83

Measurement and Automation Explorer (MAX)


Affiche la liste des priphriques et des instruments connects au systme Permet dexcuter des tests pour vrifier le bon fonctionnement des priphriques connects ( faire avant de ce lancer dans la programmation sous labVIEW) labVIEW) Permet la configuration du matriel Permet de crer et modifier des voies, des tches, des interfaces, des chelles, chelles,

Par Nicolas POUSSET

84

Measurement and Automation Explorer (MAX)

Vrification que la carte dacquisition est bien dtecte

Premire vrification du bon fonctionnement de la carte dacquisition

Par Nicolas POUSSET

85

Acquisition de donnes (DAQ) avec LabVIEW


2 moteurs de drivers permettent la communication entre la carte DAQ et le logiciel dapplications labVIEW

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

Par Nicolas POUSSET

86

DAQ traditionnel (Ancien driver)


Acquisition/gnration dun signal grce des VI standards correspondant aux anciens drivers
Acqurir un signal

Gnrer un signal

Par Nicolas POUSSET

87

DAQmx (Assistant DAQ : VI Express)


Acquisition/gnration dun signal grce lassistant DAQ

Par Nicolas POUSSET

88

Terminologie de lacquisition de donnes


Rsolution Dtermine la valeur minimale de la variation du signal pouvant tre mesure.
Plus la rsolution est importante, plus la reprsentation du signal est prcise. Exemple : un voltmtre indique 10 volts. Une variation de 0,1 volts fait bouger laiguille alors quune variation de 0,05 volts ne fait pas bouger laiguille. La rsolution du voltmtre est de 0,1 volts.

Gamme Valeurs minimales et maximales du signal.


Plus la gamme est petite, plus la reprsentation du signal est prcise ( condition davoir une bonne rsolution).

Gain Amplifie ou attnue le signal afin de ladapter au mieux la gamme.

Par Nicolas POUSSET

89

Connexions des entres analogiques


Catgorie de sources de signaux dentre
Le signal est rfrenc la masse du systme Exemples : alimentations, gnrateurs de signaux, tout ce qui se connecte dans une prise secteur rfrence la terre terre

Rfrenc
Le signal nest pas rfrenc une masse Exemples : piles, thermocouples, transformateurs, transformateurs,

Non rfrenc

Par Nicolas POUSSET

90

Connexions des entres analogiques


Trois modes de mise la masse sont disponibles. Le mode disponibles. choisit dpend de la nature du signal. signal. - Mode DIFFERENTIEL (DIFF) - Mode RSE (Referenced Single--Ended) Single (Mode rfrenc une masse commune) - Mode NRSE (Non-Referenced Single--Ended) (NonSingle (Mode masse commune non rfrenc) (le meilleur)

(pas recommand) (bon)

Par Nicolas POUSSET

91

Connexions des entres analogiques


Signal non rfrenc Signal rfrenc

DIFFERENTIEL

RSE

NRSE

Par Nicolas POUSSET

92

Exemples de matriels ddis lacquisition


BNCBNC-2090
Connectivit directe des capteurs pour une mise en uvre rapide

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

Par Nicolas POUSSET

93

Exemples de matriels ddis lacquisition


ELVIS
Ensemble d'instruments virtuels : oscilloscope, multimtre numrique, gnrateur de fonctions, fonctions, pour le prototypage en laboratoire et lenseignement

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

Partie IV - Boucles, registres dcalage et introduction aux graphiques


Boucle for

Boucle while while Registre dcalages Graphiques Affichages de plusieurs courbes sur un mme graphique Exercice 2 : utilisation dune boucle

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

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-

Par Nicolas POUSSET

97

Les registres dcalage


Pour un signal assez bruit lon pourrait avoir envie, par exemple, dafficher une moyenne des valeurs. valeurs. Pour ce faire il est possible dutiliser un registre dcalage. dcalage.

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

Les registres dcalage


Cration : clic droit sur un des bords de la boucle >> Ajouter un registre dcalage

Exemple dutilisation de registres dcalage

Par Nicolas POUSSET

99

Les registres dcalage


Attention !!
Linitialisation du registre dcalage est importante pour viter les erreurs !

1re excution du programme

2me excution du programme

3me excution du programme

Par Nicolas POUSSET

100

Graphiques

Le graphique est un indicateur numrique particulier qui propose un historique des valeurs. Commandes >> Toutes les commandes >> Graphes

Par Nicolas POUSSET

101

Techniques de connexion dans les graphiques


Une seule courbe

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

Exercice 2 - Utilisation dune boucle

Crer un VI qui gnre un nombre alatoire avec un temps dattente que lutilisateur peut modifier. modifier.

Larrt du programme se fait laide du bouton stop de la face avant. avant.

Par Nicolas POUSSET

103

Exercice 2 - Utilisation dune boucle


Exemples de solutions possible
(exercice2.vi)

Par Nicolas POUSSET

104

Action mcanique boolenne


Pour les contrles boolen nous avons la possibilit de paramtrer laction mcanique sur ceux-ci : commutation ceuxjusquau relchement, commutation lappui, armement lappui lappui

OU

Par Nicolas POUSSET

105

Partie V - Tableaux et fichiers


Un tableau : Quest-ce que cest ? Quest Construire un tableau manuellement Construction automatique de tableaux crire dans un tableau Lire partir dun tableau Exercice 3 : Stocker et analyser des donnes

Par Nicolas POUSSET

106

Un tableau,mais pour faire quoi ?


Les tableaux combinent des donnes du mme type dans une structure de donnes. donnes. Les tableaux sont utiles, par exemple, pour stocker des donnes gnres, la plupart du temps, dans des boucles lors de chaque itration. itration.
Il est possible de construire des tableaux de donnes numriques, de boolens, de chemins, de clusters, de chanes de caractres, caractres, Il nest cependant pas possible de crer des tableaux de tableaux. tableaux.

Par Nicolas POUSSET

107

Philosophie dun tableau

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,...

Par Nicolas POUSSET

108

Construire un tableau 1D manuellement


A partir de la palette Commandes >> Toutes les commandes >> Tableau et Cluster, slectionnez Tableau. Cluster,

Tableau de commandes ou dindicateurs dindicateurs


Dposez le tableau vide sur la face avant

Par Nicolas POUSSET

109

Construire un tableau 1D manuellement


A partir de la palette Fonctions >> Toutes les fonctions >> Tableau, Tableau, slectionnez Tableau

Tableau de constantes

Dposez le tableau sur le diagramme

Par Nicolas POUSSET

110

Construire un tableau 1D manuellement


Placez un objet dans le tableau (un contrle, une constante numrique, une chane de caractres, un boolen,). boolen,
Tableau de constantes

Tableau de contrles

Par Nicolas POUSSET

111

Construire un tableau 1D manuellement

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.

Par Nicolas POUSSET

112

Crer un tableau 1D avec une boucle


Indexation active

Dernire valeur gnre uniquement

Ensemble des valeurs gnres

Notion dindexation
Par Nicolas POUSSET 113

Crer un tableau 2D avec deux boucles


En fonction de la dimension du tableau, la taille du fil varie

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

Crer des tableaux 2D manuellement

Clic droit sur le tableau

Manuellement

Par Nicolas POUSSET

115

Tableau en entre dune boucle For


Terminal (N) de dcompte

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.

Par Nicolas POUSSET

116

Tableau en entre dune boucle For

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.

Par Nicolas POUSSET

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

Par Nicolas POUSSET

118

crire dans un fichier LabVIEW Measurement


Inclut les fonctions ouvrir, crire, fermer et grer les erreurs. Gre le formatage des chanes avec soit une tabulation soit une virgule comme dlimiteur. La fonction Fusionner les signaux sert combiner des donnes dans un type de donnes dynamiques.

Par Nicolas POUSSET

119

Exercice 3 - Analyser et stocker des donnes


Crer un VI qui gnre un nombre alatoire toute les secondes. secondes. Calculer la moyenne, la valeur min et max et sauvegarder les donnes dans un fichier. fichier.

Par Nicolas POUSSET

120

Exercice 3 - Analyser et stocker des donnes


Exemple de solutions possible
(donnes.vi)

Par Nicolas POUSSET

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)

Par Nicolas POUSSET

122

Les fonctions dun tableau - les bases


Commandes >> Toutes les commandes >> Tableau et cluster >> Tableau

Par Nicolas POUSSET

123

Les fonctions du tableau - les bases


Fonction : Construire un tableau

Par Nicolas POUSSET

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.

Graphe Trace un tableau de nombres en fonction de leurs


indices. indices.

Graphe XY (Express) Trace un seul tableau en fonction de


deux autres tableaux. tableaux.

Graphe numrique Trace des bits depuis des donnes


binaires.
Par Nicolas POUSSET 125

Les graphiques

Faire un clic droit sur le graphique et slectionner proprits pour personnaliser laffichage (chelle, couleurs, curseurs,). curseurs,

Par Nicolas POUSSET

126

Exemples : graphe numrique

Lutilisation des clusters sera aborde dans la partie VII

Graphe numrique

Par Nicolas POUSSET

127

Exemples : graphe XY

Graphe XY

Par Nicolas POUSSET

128

Exercice 4 - utilisation de graphiques

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).

Afficher les deux courbes sur le mme graphe. graphe.

Par Nicolas POUSSET

129

Exercice 4 - utilisation de graphiques


Exemple de solution possible
(Graphe2.vi)

Par Nicolas POUSSET

130

Exercice 5 - utilisation dune boucle, de registres dcalage et dun graphe


A partir de lexercice 1, crer un programme quivalent celui prsent gauche en respectant la mise en forme (organisation, couleur, style, style,)

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.

Par Nicolas POUSSET

131

Exercice 5 - utilisation dune boucle, de registres dcalage et dun graphe


Exemple de solution possible
(exercice5.vi)

Par Nicolas POUSSET

132

Partie VII - Chanes de caractres, clusters et traitement derreurs


Chanes de caractres Fonctions de chanes Cration de clusters (groupe / agrgat) Fonctions des clusters Cluster derreur Rcapitulatif sur les types de connexions Exercice 6 : utilisation de clusters et graphiques

Par Nicolas POUSSET

133

Chane de caractres (string)


Les chanes de caractres sont reprsents en rose Une chane de caractres est une squence de caractres (ASCII). Utilisations possibles : affichage de messages (bote de dialogue), communications avec des instruments, fichiers dentre/sortie, Les contrles ou indicateurs de chanes sont dans le menu : Commandes >> Commandes Texte ou Indicateur Texte

Par Nicolas POUSSET

134

Chane de caractres (string)


Diffrents modes daffichage des chanes de caractres sont disponibles

Par Nicolas POUSSET

135

Chane de caractres (string)

Exemples de fonctions disponibles permettant la manipulation des chanes :


Longueur dune chane, Concatner en chane, Remplacer une portion de chane, Formater en chane, chane,

Par Nicolas POUSSET

136

Chane de caractres (string)


- Formater une chane

s : string f : floating

Double clic sur le VI

Par Nicolas POUSSET

137

Chane de caractres (string)

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 %.;

Par Nicolas POUSSET

138

Chane de caractres (string)

- Balayer une chane - Sous-ensemble Sousdune chane

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

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 :

Par Nicolas POUSSET

141

La sous palette Clusters


Dans le sous-menu Clusters de la palette Fonctions >> sousToutes les fonctions. galement accessible par clic droit sur un terminal de cluster dans la fentre diagramme.

Type de donnes

Type de donnes

Assembler
Commandes tiquette tiquette

Cration dun cluster

Modification dun cluster Assembler par nom


Par Nicolas POUSSET 142

La sous palette Clusters

Type de donnes

Dsassembler

Indicateurs

tiquette

Dsassembler par nom

Par Nicolas POUSSET

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

Techniques de manipulations derreurs


Linformation derreur est passe dun sous VI au suivant. Si une erreur se produit dans un sous VI, tous les sous VI suivants ne sont pas excuts de la faon habituelle. Gestion derreur automatique. Exemple :

Clusters derreurs

Par Nicolas POUSSET

145

Types de connexions
Numriques Rels Entiers Scalaire Tableau 1D Tableau 2D

Boolen Chane de caractres Donnes Dynamiques

Par Nicolas POUSSET

146

Exercice 6 - utilisation de clusters et de graphiques


Gnrer un VI qui simule le dplacement dun pointeur laser sur une photodiode quatre quadrants.

On simulera dans un premier temps un dplacement continu du pointeur puis un dplacement discret .

Par Nicolas POUSSET

147

Exercice 6 - utilisation de clusters et de graphiques


Exemple de solution possible
(Point.vi)

Dplacement discret

Dplacement continu

Par Nicolas POUSSET

148

Partie VIII - Structures Condition et Squence, Bote de calcul


Fonctionnement de la structure Condition et de la structure Squence Mise en uvre dune bote de calcul et du VI Express Formule Exercice 7 : Cluster, manipulation derreurs et structure condition Exercice 8 : Luminance spectrique du corps noir

Par Nicolas POUSSET

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,

Slecteur : Vrai ou Faux


Par Nicolas POUSSET 150

Structure Condition pour la gestion derreurs


Lorsque que lon cble un cluster derreur sur le terminal de slection dune structure condition, celle-ci celleaffiche 2 conditions : Pas derreur (en vert) et Erreur (en rouge). rouge).

La structure Condition ne reconnat que la valeur boolenne tat du cluster derreur. derreur.

Par Nicolas POUSSET

151

Structure Squence droule ou empile


Palette Fonctions et sous palette Structure. Structure. Excute le diagramme de faon squentielle. Clic droit sur la structure pour ajouter une nouvelle tape. Structure squence droule

Structure squence empile


(gain de place)

Par Nicolas POUSSET

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).

Par Nicolas POUSSET

153

VI Express Formule

Indique que la syntaxe de la formule crite est bonne. bonne.

Utilisation dune interface de calculatrice o sont prsentes la plupart des fonctions dune calculatrice scientifique classique. classique.
Par Nicolas POUSSET 154

Exercice 7 - Cluster, manipulation derreurs et structure condition

Gnrer un VI qui permet de visualiser une erreur lorsque lon essaye de calculer la racine carr dun nombre ngatif. ngatif.

Par Nicolas POUSSET

155

Exercice 7 - Cluster, manipulation derreurs et structure condition Exemple de solution possible


(clusters.vi)

Par Nicolas POUSSET

156

Exercice 7 - Cluster, manipulation derreurs et structure condition Exemple de solution possible


(clusters.vi)

Par Nicolas POUSSET

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

Exercice 7 - Cluster, manipulation derreurs et structure condition


Complment
(clusters3.vi)

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)

Le Soleil est assimil un corps noir Temprature du soleil sa surface 5800 K


Par Nicolas POUSSET 161

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

Par Nicolas POUSSET

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).

Par Nicolas POUSSET

163

Partie IX - Variables
Variables locales Variables locales de squence Variables globales Exercice 9 : utilisation de variables locales

Par Nicolas POUSSET

164

Variables locales

Possibilit de la mettre en criture ou en lecture Clic droit : assignation de la variable

Aucune variable nest assigne

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

Variables locales de squence


Ce type de variable sutilise avec les structures squences empiles. Elle permet de faire passer des empiles. donnes dune tape lautre. lautre.

Par Nicolas POUSSET

166

Variables globales
Ouverture dun sous VI vide

Double clic sur la variable globale

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.

Par Nicolas POUSSET

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

Par Nicolas POUSSET

168

Exercice 9 - utilisation de variables locales


Gnrer un VI qui permet de donner le temps (en ms) entre deux appuis de boutons. boutons.
On utilisera une structure squence empile avec, soit des variables locales, soit des variables locales de squences ainsi que la fonction suivante :

Par Nicolas POUSSET

169

Exercice 9 - utilisation de variables locales


Exemple de solution possible
(variable.vi)

Par Nicolas POUSSET

170

Exercice 9 - utilisation de variables locales


Exemple de solution possible
(variable.vi)

Par Nicolas POUSSET

171

Partie X - Tables et nuds de proprit


Tables Nuds de proprit Enregistrement dans un fichier Excel Exercice 10 : utilisation de nud de proprit

Par Nicolas POUSSET

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.

En-ttes de lignes et Enen-tte de colonnes en-

Clic droit sur la table

Par Nicolas POUSSET

173

Tables - exemple

En-tte de colonnes EnEn-tte de lignes En-

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.

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

176

Nud de proprit - exemple


Objectif : on souhaite remplir une table et lenregistrer dans un fichier Excel.

tape 0 : initialisation de la table

tape 1 : On remplit la table Variable locale

Par Nicolas POUSSET

177

Nud de proprit - exemple


tape 2 : Sauvegarde des donnes dans un fichier Excel

Nud de proprit

Par Nicolas POUSSET

178

Nud de proprit - exemple


tape 2 : Sauvegarde des donnes dans un fichier Excel

Par Nicolas POUSSET

179

Nud de proprit - exemple - rsultats

tape 1 : La table se remplit

tape 2 : Une bote de dialogue apparat pour enregistrer les donnes au format .xls

Par Nicolas POUSSET

180

Nud de proprit - exemple - rsultats

Lorsque lon essaye de rcrire par dessus un fichier dj prsent, une bote de dialogue nous invitant changer de nom de fichier apparat. apparat.

Par Nicolas POUSSET

181

Exercice 10 - utilisation de nuds de proprit


Crer un programme qui permet de rendre visible ou invisible un bouton sur la face avant et de rgler la taille dun afficheur de type LED. LED.

Par Nicolas POUSSET

182

Exercice 10 - utilisation de nuds de proprit


Exemple de solution possible
(Nud de proprit.vi)

Par Nicolas POUSSET

183

Partie XI - Impression et documentation


Imprimer depuis longlet imprimer de la barre des menus Gnrer un rapport pr-format pr Documentation sur les VI Ajouter des commentaires dans la face avant et le diagramme

Par Nicolas POUSSET

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

Par Nicolas POUSSET

185

Rapport pr-format pr-

Gnrer un rapport (Palette de Fonctions Sortie Rapport)

Par Nicolas POUSSET

186

Rapport pr-format pr-

En double cliquant sur le VI Express nous avons la possibilit de paramtrer le formatage du rapport. rapport.

Par Nicolas POUSSET

187

Rapport pr-format pr-

Gnration des signaux

Gnration du rapport

Par Nicolas POUSSET

188

Rapport pr-format pr-

Par Nicolas POUSSET

189

Documentation sur les VI


Fichier Proprits du VI Documentation
Fournit une description et une aide propos du VI. A complter par le dveloppeur pour de nouveaux VI.

Fichier Proprits du VI Historique


Enregistre les changements des diffrentes versions dun VI.

Par Nicolas POUSSET

190

Documentation sur les VI


Exemple du VI prcdent document par deux types de commentaires :

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

Partie XII - Programmation Evnementielle


Quest-ce que la programmation vnementielle? Quest Un vnement : quest-ce que cest? quest Quels en sont les avantages ? Fonctionnement de la structure Evnements

Exercice 11 : utilisation dune structure


Evnements

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

193

Les vnements? les avantages?


Les vnements peuvent provenir :
- de la face avant (changement de valeur dune commande, une saisie sur les touches du clavier, un clic de souris,) souris, - dentres/sorties externes (compteurs, trigger,) trigger, - dautres parties du programme, programme, Les vnements permettent dexcuter un code spcifique synchronis , par exemple, avec une action de lutilisateur sur la face avant. Sans cela le avant. programme serait oblig dinterroger ltat des objets de la face avant dans une boucle, ce qui ncessite beaucoup de ressources du processeur. De plus, dans processeur. ce cas il est possible de manquer un changement dtat rapide sur la face avant. avant. Avec la programmation vnementielle il ny a pas de perte dvnements. dvnements.

Par Nicolas POUSSET

194

Structure vnement

Etiquette du slecteur dvnements

Terminal de Timeout *

Nud de donnes dvnements

Nud de filtre dvnements

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

Un nouvelle condition dvnement a t ajoute


Par Nicolas POUSSET 196

Exercice 11 - utilisation dune structure vnements


Crer un programme qui permet - deffectuer la copie dune valeur numrique et dune chane de caractres dune commande dans un indicateur. indicateur. - dactiver un indicateur de type LED lorsque lon appui sur un bouton de type boolen. boolen. - dactiver la transparence de la face avant lors de la commutation dun bouton. bouton.

Par Nicolas POUSSET

197

Exercice 11 - utilisation dune structure vnements


Exemple de solution (Boucle venementielle.vi)

Par Nicolas POUSSET

198

Partie XIII - Architectures de programmation boucles uniques


Larchitecture simple du VI

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

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

201

Larchitecture de machine dtats (simple)


Avantages
Possibilit de changer dtat. Modification et dbogage facile.

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

Par Nicolas POUSSET

202

Larchitecture de machine dtats (simple)


Constante numration : Enum

Dans chaque trame de la structure Condition correspondant un tat donn, on dtermine ltat suivant avec des constantes numration : enum .
Par Nicolas POUSSET 203

Larchitecture de machine dtats (complexe)


Gestion dvnements sur linterface utilisateur : Utilisation de la boucle vnementielle dans une boucle while et de listes dattente. dattente.
Exemple de programme : Face avant comprenant 4 onglets ( Commande onglet
de la sous palette Conteneurs de la palette Commandes ) sur

lesquelles sont disponibles plusieurs commandes attaches des fonctionnalits prcises. prcises.

Par Nicolas POUSSET

204

Larchitecture de machine dtats (complexe)


Dans un premier temps nous allons tudier la face avant de ce programme qui repose sur une architecture de type machine dtats pour en comprendre le fonctionnement gnral ainsi que les diffrentes fonctionnalits. fonctionnalits. Nous tudierons ensuite en dtail le diagramme de ce programme. programme.

Par Nicolas POUSSET

205

Larchitecture de machine dtats (complexe)


Onglet : Fonctions Listing de toutes les fonctions disponibles dans le programme

Possibilit dcrire les commandes de fonctions la main pour que celles-ci cellessexcutent. sexcutent.

Par Nicolas POUSSET

206

Larchitecture de machine dtats (complexe)


Onglet : Image Affiche ( gauche) une image partir dun chemin spcifi. spcifi. Affiche ( droite) un masque de limage de gauche. Celui-ci gauche. Celuipeut tre en couleur ou en noir et blanc. blanc.

Par Nicolas POUSSET

207

Larchitecture de machine dtats (complexe)


Onglet : Mto

Affiche ( gauche) diverses informations (date dacquisition, temprature, humidit, pression,) lorsque lon appui sur le bouton Lecture des paramtres mto .

Par Nicolas POUSSET

208

Larchitecture de machine dtats (complexe)


Onglet : Enregistement de donnes

Permet lacquisition de donnes, la suppression dune ligne, leffacement du tableau et lenregistrement des donnes dans un fichier excel.

Par Nicolas POUSSET

209

Larchitecture de machine dtats (complexe)


Cette prsentation des diffrents onglets de la face avant de ce VI a permis davoir un aperu gnral des fonctionnalits de ce programme. programme. Il faut galement voir, que celui-ci fonctionne en continu (grce une celuiboucle While) et quil est possible de commencer, par exemple, par une lecture des paramtres mto, ensuite dacqurir des donnes et de les enregistrer, puis, pourquoi pas de raliser un masque dune image. image. Dans ce type darchitecture il ny a aucune notion de squenage ce qui laisse une libert totale de paramtrage de la face avant. avant.

Par Nicolas POUSSET

210

Larchitecture de machine dtats (complexe)

Par Nicolas POUSSET

211

Larchitecture de machine dtats (complexe)

Par Nicolas POUSSET

212

Larchitecture de machine dtats (complexe)

Par Nicolas POUSSET

213

Larchitecture de machine dtats (complexe)

Par Nicolas POUSSET

214

Larchitecture de machine dtats (complexe)

Par Nicolas POUSSET

215

Larchitecture de machine dtats (complexe)

Par Nicolas POUSSET

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,

Par Nicolas POUSSET

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)

Par Nicolas POUSSET

219

Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution

Par Nicolas POUSSET

220

Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution

Par Nicolas POUSSET

221

Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution

Par Nicolas POUSSET

222

Exercice 12 - Mise en pratique de la structure machine dtats simple : gestion de feux tricolores
Exemple de solution

Par Nicolas POUSSET

223

Exercice 12 - Gestion de feux tricolores : Complments


A partir de votre prcdent VI simuler le dplacement de voitures sur votre face avant comme explicit dans les tapes 1 6. A chaque fois quune voiture rapparat sur la face avant (transition entre ltape 2 et 3 par exemple) on changera sa couleur de faon alatoire. alatoire. On utilisera des commandes boolennes pour reprsenter les voitures et des nuds dplacer. de proprits pour les dplacer.

Etape 2 Etape 1
Par Nicolas POUSSET

Etape 3

224

Exercice 12 - Gestion de feux tricolores : Complments

Etape 5 Etape 4

Etape 6

Par Nicolas POUSSET

225

Exercice 12 - Gestion de feux tricolores : Complments


Exemple de solution (Exercice 9 - Feux tricolores V3).vi

Par Nicolas POUSSET

226

Exercice 12 - Gestion de feux tricolores : Complments


Exemple de solution

Par Nicolas POUSSET

227

Exercice 12 - Gestion de feux tricolores : Complments


Exemple de solution

Par Nicolas POUSSET

228

Exercice 12 - Gestion de feux tricolores : Complments


Exemple de solution

Par Nicolas POUSSET

229

Exercice 12 - Gestion de feux tricolores : Complments


Exemple de solution

Par Nicolas POUSSET

230

Partie XIV - Panneaux de contrle distance


Visualisation et contrle de la face avant dun programme LabVIEW, partir dun navigateur Web (Internet Explorer, Firefox, Firefox,).
- Les clients loigns observent directement les changements et mises jours des programmes LabVIEW grce au serveur Web disponible dans labVIEW. labVIEW. - Plusieurs clients peuvent regarder la mme face avant simultanment. simultanment. - Un seul client la fois peut contrler la face avant distance. distance.

Par Nicolas POUSSET

231

Outil de publication de face avant sur le Web


Outils Outil de publication pour le Web Cliquez sur Enregistrer sur disque et le VI est encapsul dans un fichier HTML. Une fois sauvegard, le fichier peut tre ouvert nouveau et personnalis dans tout diteur HTML.
Ne pas oublier dactiver le serveur web pour permettre au(x) client(s) daccder aux donnes.
Par Nicolas POUSSET 232

Outil de publication de face avant sur le Web

Nimporte qui peut partir dInternet visualiser en temps rel le VI et le contrler sil en a, au pralable, t autoris. autoris.

Linstallation de LabVIEW sur la machine distante nest pas ncessaire.

Application fonctionnant sur le PC o est install LabVIEW


Par Nicolas POUSSET 233

Panneau de contrle distance - Ressources


NI Developer Zone (zone.ni.com) - Recherche de panneaux de contrle distance.
Ex:http://www.ni.com/webappdemos/tempcontrol demo.htm)

- Tlchargement de Tutoriaux et Instructions. - Support sur lincorporation de Webcams dans les panneaux de contrle distance.
Par Nicolas POUSSET 234

Partie XV - Contrle dinstruments


Communication par liaison GPIB
Prsentation et caractristiques techniques Measurement and Automation Explorer (MAX) : Outils de test Fonctions de base pour la mise en uvre du bus Utilisation de VI type

Communication par liaison Srie


Prsentation et caractristiques techniques Fonctions de base pour la mise en uvre du bus Utilisation des exemples disponibles

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.

Par Nicolas POUSSET

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

Par Nicolas POUSSET

237

GPIB - Caractristiques techniques


- La liaison GPIB est une liaison parallle sur 8 bits. bits.

IEEE 488 : 1 Mo/s HS 488 : 8 Mo/s

Interface GPIB/USB HS de National Instruments

- 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.

Par Nicolas POUSSET

238

GPIB - Measurement and Automation Explorer (MAX)


Priphriques connects Test pour dterminer quels sont les instruments connects Instruments connects Adresses GPIB

Rponses des instruments la commande IDN?


Par Nicolas POUSSET 239

GPIB - Measurement and Automation Explorer (MAX) Clic sur un instrument : par exemple Instrument0
Adresse GPIB de linstrument

Possibilit de tester la communication avec linstrument

Par Nicolas POUSSET

240

GPIB - VI type
Architecture utilisant des VI Express dj disponibles pour gagner en rapidit et en simplicit

Par Nicolas POUSSET

241

GPIB - Fonctions de base dans labVIEW

Par Nicolas POUSSET

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

Srie - Caractristiques techniques


Voici le format type dune trame envoye par le port srie :
Bit de Start Niveau haut Niveau bas B0 B1 B2 B3 B4 B5 B6 Bit de Parit Bit de Stop

- 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

de parit qui permet de dtecter les ventuelles erreurs de transmission. transmission.

- Un bit de stop. Aprs la transmission la ligne est positionne au repos pendant X priodes dhorloges du rcepteur. rcepteur.

Par Nicolas POUSSET

244

Srie - Fonctions de base dans labVIEW

VISA : Virtual Instrument Software Architecture


Par Nicolas POUSSET 245

Exemples de VI
Exemples de VI apportant une aide au dmarrage dun projet ou quelques solutions des problmes de conception

Par Nicolas POUSSET

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 :

Par Nicolas POUSSET

247

Partie XVI - Module Vision


NI Vision Assistant

Acquisition dune SEULE image avec une webcam par USB Acquisition continue dimages avec une webcam par USB

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

249

NI Vision Assistant - Acquisition

Choix du type de camra (USB, Firewire,)

Par Nicolas POUSSET

250

NI Vision Assistant - Acquisition


Acquisition dune squence dimages

Slection de la camra

Rglage des paramtres vido Rglage des paramtres lis aux images

Par Nicolas POUSSET

251

NI Vision Assistant - Paramtrage


Contraste, saturation,

Degr de rouge, vert, bleu.

Rglage des paramtres vido

Vision infrarouge Rglage des paramtres lis aux images

Ces paramtres sont intrinsques la camra utilise. Ils seront utilise. diffrents pour dautres types de camras. camras.

Par Nicolas POUSSET

252

NI Vision Assistant - Traitement dimages

1 mm

Exemple dune image dun micromtre objet (talon trait) observ au microscope optique + camra CCD

Par Nicolas POUSSET

253

NI Vision Assistant - Traitement dimages


Diverses fonctions sont disponibles : profils, mesures de distances, dangles, calibration dimages, Sauvegarde des points du profil dans un fichier texte Affichage des points du profil dans un fichier Excel Exemple de mesure de profil sur une ligne de limage

Profil de la ligne choisie (en vert)

Par Nicolas POUSSET

254

NI Vision Assistant Gnration automatique de code


Tools Create LabVIEW VI Exemple de dtection de bord et de calcul de centre de trait
Dtection de bord de traits Calcul de centre de traits

Par Nicolas POUSSET

255

NI Vision Assistant Gnration automatique de code

Programme LabVIEW de dtection de bord de trait et de calcul de centre gnr automatiquement.

Par Nicolas POUSSET

256

Fonctions Vision

Fonctions Toutes les fonctions Mesures NI Vision


Vision Utilities Image Processing Image Acquisition NI-IMAQ pour NIcamras IEEE 1394 (Firewire) Firewire) Machine Vision IMAQ USB

Par Nicolas POUSSET

257

Outils de visualisation

Commandes Toutes les commandes Vision

Outil de visualisation dimages sur la face avant

Par Nicolas POUSSET

258

Acquisition dune SEULE image

USB PC Webcam

Utilisation du SNAP

Par Nicolas POUSSET

259

Acquisition CONTINUE dimages

Utilisation du

GRAB

Par Nicolas POUSSET

260

Partie XVII - Exercices dapplications


Cration dune mire sans les outils vision
- Cration dun motif - Cration dune ligne de motifs - Cration dune mire de motifs identiques Cration dune mire avec les outils vision Ouverture dune image Cration dun masque sur une image Calibrage dune image Composteur de matire organique assistance lectronique Mise en garde Proprits dun VI Gnration de fractales Tirage alatoire
Par Nicolas POUSSET 261

Cration dune mire sans les outils vision


1re tape : Cration dun motif unique dont les coordonnes des deux coins indiqus sont entres dans un tableau (x1, y1, x2, y2).
x1 0 x2

x1 y1 x2 y2

y1 y2

Par Nicolas POUSSET

262

Cration dune mire sans les outils vision


Raliser un VI qui permet de visualiser laffichage dun motif sur un fond noir.

Pour ce faire nous utiliserons des graphiques dintensit ainsi que les VI suivants (voir diapo suivante).

Par Nicolas POUSSET

263

Cration dune mire sans les outils vision


Nous utiliserons les VI standards suivants : Aide contextuelle

Par Nicolas POUSSET

264

Cration dune mire sans les outils vision


Exemple de solution possible

Par Nicolas POUSSET

265

Cration dune mire sans les outils vision


2me tape : Cration dune ligne de motifs identiques. identiques. Pour cela nous allons dcomposer le problme en crant un sous VI qui gnre un seul motif puis lutiliser dans une boucle For au sein dun VI principal pour la cration dune ligne. ligne.

Par Nicolas POUSSET

266

Cration dune mire sans les outils vision


Cration du sous VI Cration dune icne facilement reconnaissable

Par Nicolas POUSSET

267

Cration dune mire sans les outils vision


Exemple de solution possible

Par Nicolas POUSSET

268

Cration dune mire sans les outils vision


Raliser un VI qui permet de visualiser laffichage dune ligne de motifs identiques sur un fond bleu.

pas x

Par Nicolas POUSSET

269

Cration dune mire sans les outils vision


Exemple de solution possible

Par Nicolas POUSSET

270

Cration dune mire sans les outils vision


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.

Par Nicolas POUSSET

271

Cration dune mire sans les outils vision


Raliser un VI qui permet de visualiser laffichage dune mire de motifs identiques sur un fond noir.

pas y

Par Nicolas POUSSET

272

Cration dune mire sans les outils vision


Exemple de solution possible

Par Nicolas POUSSET

273

Cration dune mire avec les outils vision

1re tape : Cration de la variable image ( laide du VI standard IMAQ Create ) et dun motif unique. unique.

Par Nicolas POUSSET

274

Cration dune mire avec les outils vision

Raliser un VI qui permet de visualiser laffichage dun motif ovale sur un fond noir dans deux modes de visualisation diffrents.

Par Nicolas POUSSET

275

Cration dune mire avec les outils vision


Pour ce faire nous utiliserons les VI standards suivants :
Aide contextuelle

Par Nicolas POUSSET

276

Cration dune mire avec les outils vision


Exemple de solution possible

Affichage de limage dans une bote de dialogue distincte de la face avant du VI cre.

Par Nicolas POUSSET

277

Cration dune mire avec les outils vision


Exemple de solution possible

Affichage de limage dans un indicateur visuel prsent sur la face avant du VI cre.

Par Nicolas POUSSET

278

Cration dune mire avec les outils vision


2me tape : Cration dune ligne de motifs identiques. identiques. tapes du programmes :
Crer un fond noir de 100 x 100 pixels par exemple. Calculer le nombre de motifs par ligne. Rpter linscription dun motif chaque tour. La position du motif est incrmente chaque tour en incrmentant les lments (x1, x2) du tableau de position du motif et en remplaant lancien tableau de position par le nouveau.

Par Nicolas POUSSET

279

Cration dune mire avec les outils vision

Raliser un VI qui permet de visualiser laffichage dune ligne de motifs ovales sur un fond noir.

Par Nicolas POUSSET

280

Cration dune mire avec les outils vision


Exemple de solution possible

Par Nicolas POUSSET

281

Cration dune mire avec les outils vision

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.

Par Nicolas POUSSET

282

Cration dune mire avec les outils vision

Raliser un VI qui permet de visualiser laffichage dune mire de motifs identiques sur un fond noir.

Par Nicolas POUSSET

283

Cration dune mire avec les outils vision

Exemple de solution possible

Par Nicolas POUSSET

284

Ouverture dune image


Raliser un programme qui ouvre et affiche un fichier image dans une fentre externe.

On utilisera entre autre les VI Standards suivants :

Par Nicolas POUSSET

285

Ouverture dune image


Exemple de solution possible

Par Nicolas POUSSET

286

Cration dun masque sur une image


(Version noir et blanc) Raliser un programme qui permet de crer un masque sur une image donne en noir et blanc.

Masque cre Image initiale Slection de la zone de limage garder

Image masque

Par Nicolas POUSSET

287

Cration dun masque sur une image


On utilisera entre autre les VI Standards suivants :

Par Nicolas POUSSET

288

Cration dun masque sur une image


Exemple de solution possible

Par Nicolas POUSSET

289

Cration dun masque sur une image


(Version couleur) Raliser un programme qui permet de crer un masque sur une image donne en couleur.

Par Nicolas POUSSET

290

Cration dun masque sur une image


Exemple de solution possible

Par Nicolas POUSSET

291

Calibrage dune image


Raliser un programme qui permet de crer le calibrage dune image dforme.

Image initiale

Image calibre

Image rogne

Par Nicolas POUSSET

292

Calibrage dune image


Exemple de solution possible

Par Nicolas POUSSET

293

Composteur de matire assistance lectronique

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

Nous utiliserons des variables locales et des structures condition .


Par Nicolas POUSSET 294

Composteur de matire assistance lectronique


Principales caractristiques du cahier des charges :

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.

Par Nicolas POUSSET

295

Composteur de matire assistance lectronique

organique

Exemple de solution possible

Par Nicolas POUSSET

296

Composteur de matire assistance lectronique

organique

Exemple de solution possible

Par Nicolas POUSSET

297

Mise en garde
Raliser un programme qui permet deffectuer laffichage dune mise en garde en fonction de la temprature actuelle (Ta). (Ta).

Pour ce faire nous utiliserons, entre autre, la fonction Slectionner

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

299

Mise en garde
Exemple de solution possible

Par Nicolas POUSSET

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)

Nous utiliserons des nuds de proprit et des nuds de mthode


Par Nicolas POUSSET 301

Proprits dun VI
Exemple de solution possible

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

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).

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

305

Gnration de fractales

Par Nicolas POUSSET

306

Gnration de fractales

Par Nicolas POUSSET

307

Gnration de fractales
Exemple de solution possible

Par Nicolas POUSSET

308

Gnration de fractales
Exemple de solution possible pour un sous-VI sous-

Par Nicolas POUSSET

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.

Par Nicolas POUSSET

311

Tirage alatoire
Exemple de solution possible pour le sous-VI sous(Loi rectangulaire.vi)

Par Nicolas POUSSET

312

Tirage alatoire
Exemple de solution possible pour VI principal

Par Nicolas POUSSET

313

Tirage alatoire

Par Nicolas POUSSET

314

Tirage alatoire

Par Nicolas POUSSET

315

Partie XVIII - Dveloppements dapplication temps rel


Quest-ce que le temps rel ? Quest-

Terminologie, principe de dveloppement Architecture Exemples dapplications, cibles

Par Nicolas POUSSET

316

QuestQuest-ce que le temps rel ?


En informatique industrielle, on parle d'un systme temps rel lorsque ce systme informatique contrle (ou pilote) un procd physique une vitesse adapte l'volution du procd contrl. contrl.
Le temps rel ne signifie pas forcment rapide. Le temps rel garantit une fiabilit absolue car les systmes temps rel ont des contraintes temporelles qui doivent tre atteintes sans aucun chec : on dit que le systme est dterministe.

Par Nicolas POUSSET

317

Terminologie temps rel


Dterminisme : caractristique dun systme qui indique son niveau de fiabilit rpondre un vnement ou effectuer une tche dans un dlai imparti. imparti. Temps de boucle : temps pris pour excuter un cycle de boucle. boucle. Jitter : variation du temps de boucle rel par rapport au temps de boucle souhait. souhait. Embarqu : caractrise un systme autonome (pas de clavier, ni de souris, ni dcran,). dcran,

Par Nicolas POUSSET

318

Principe de dveloppement temps rel


1. Dvelopper sur un ordinateur hte

Ordinateur hte 2. Tlcharger le code sur une cible Cible temps rel
Processeur

Code tlcharg via une liaison Ethernet

Module dE/S

Par Nicolas POUSSET

319

Principe de dveloppement temps rel


3. Excuter le code

Affichage possible des faces avant sur le PC hte par lintermdiaire

Cible temps rel qui devient compltement autonome

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

Boucle de communication (non dterministe)


Priorit normale

Disque

Par Nicolas POUSSET

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

Par Nicolas POUSSET

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

Par Nicolas POUSSET

323

Quest que le multithread ?


Extension du principe de multitche
- Multitche : capacit du systme dexploitation basculer entre diffrentes tches. tches. - Une tche est gnralement une application part entire telle que LabVIEW. LabVIEW.

Le multithread tend le principe au sein mme dune application


- Des oprations spcifiques au sein dune mme application peuvent tre rparties chacune dans un thread spcifique. spcifique. - Le temps processeur peut tre rparti sur les threads. threads. - Capacit avoir des niveaux de priorit. priorit.

Par Nicolas POUSSET

324

Exemples dapplications temps rel


Performances dterministes Autonomie

Gestion dun airbag

Tests sous-marins sous-

Fiabilit des performances


Tests de rsistance et dendurance
Par Nicolas POUSSET 325

Exemples de cibles temps rel avec LabVIEW


PC de bureau ou industriel
Dterminisme pour les systmes PCI

LabVIEW Real-Time Real-

Contrleurs PXI embarqus RT


Haute vitesse, haute densit dE/S multiples vitesse, dE/S

CompactRIO
E/S reconfigurables, reconfigurables,

Compact Vision
Automate de vision industrielle

Compact FieldPoint RT
Encombrement rduit, environnement durcis rduit,

environnement durcis

Par Nicolas POUSSET

326

Partie XIX - DataSocket Quest ce que DataSocket ? Protocole de transfert DataSocket Fonctions DataSocket Exemple : labVIEW Messenger

Par Nicolas POUSSET

327

Quest que DataSocket ?


DataSocket est une bibliothque de fonctions qui permet dchanger des donnes entre diffrentes applications sur un mme ordinateur ou entre diffrents ordinateurs connects sur un mme rseau. rseau. Les donnes sont publies sur un serveur DataSocket, puis le DataSocket, client contacte le serveur DataSocket et lui demande la rcupration des donnes. donnes.

Machine 1 : Publication des donnes

Machine 2 : Lecture des donnes Serveur DataSocket


Par Nicolas POUSSET 328

Protocole de transfert DataSocket


DataSocket Transfer Protocol (DSTP) peut tre utilis dans une URL (Uniform Resource Locator), autrement dit une adresse, de la mme faon que lon utilise HTTP pour les pages web. web.

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

Par Nicolas POUSSET

329

Mise en pratique

Machine 1 : Publication des donnes

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

Machine 2 : Lecture des donnes


Par Nicolas POUSSET 331

Fonctions DataSocket

Fonctions DataSocket Lire


et

Datasocket Ecrire

Par Nicolas POUSSET

332

Exemple : labVIEW Messenger

Par Nicolas POUSSET

333

Exemple : labVIEW Messenger

Par Nicolas POUSSET

334

Exemple : labVIEW Messenger

Par Nicolas POUSSET

335

Exemple : labVIEW Messenger

Par Nicolas POUSSET

336

Partie XX - Sujets complmentaires

Communications TCP/IP Module de dveloppement pour PDA Programmation de FPGA,

Par Nicolas POUSSET

337

Pour aller plus loin


Exemples de programmes (Aide Recherche dexemples) Quelques ressources supplmentaires sur internet : Site web de National Instruments (www.ni.com) www.ni. Forum dentraide entre dveloppeurs (http://forums.ni.com/ni/) : http://forums.ni.com/ni/) une rponse est toujours donne, soit par un autre utilisateur, soit par un salari de NI. NI. Bibliothque des drivers dinstruments : VI qui contrlent un instrument programmable (http://www.ni.com/devzone/idnet/f/) http://www.ni.com/devzone/idnet/f/)

Par Nicolas POUSSET

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 : nicolas.pousset@cnam.fr Site web : http://inm.cnam.fr

Par Nicolas POUSSET

339