Vous êtes sur la page 1sur 12

INITIATION AU LOGICIEL D'INSTRUMENTATION

LABVIEW

1. INTRODUCTION Labview (Laboratery Virtual Instruments Engineering Workbench) est un environnement de dveloppement d'applications fond sur un langage de programmation graphique, le graphique G, pour crer un programme sous forme de diagramme. Labview est destin au dveloppement d'applications d'acquisition, d'analyse et de prsentation de donnes. Coupl des cartes d'entres/sorties, il permet de grer des flux d'informations numriques ou analogiques et de crer ou de simuler des appareils de laboratoire (e.g. oscilloscope, voltmtre).

ACQUISITION

ANALYSE

PRSENTATION

Contrle d'instrument - GPIB IEEE 488 - RS-232 - VXI Acquisition de donnes - E/S Analogiques - E/S Numriques

Traitement numrique - Gnration de signaux - Filtrage, fentrage - Analyse frquentielle Traitement statistique - Rgression, lissage - Moyenne, cart type?

Affichage des donnes - Interface interactives - Graphiques, courbes? Stockage des donnes - Archivage - Impression

LabView est un outil d'aide la conception et la ralisation trs puissant, le but tant de favoriser l'approche intuitive du programmeur ou de l'utilisateur. Pour cela, le langage utilise toute la convivialit des interfaces interactives des micros ordinateurs actuels en fournissant : des objets proches graphiquement des objets rels (e.g. voyants, curseurs, interrupteurs, boutons, graphes), des outils familiers et simple d'utilisation pour la programmation (e.g. structure de programme, fonctions arithmtiques, fonctions logiques, comparateurs) des fonctions plus complexes (e.g. transforme de Fourier rapide, filtre numrique). Grce Labview, on peut crer des programmes compils qui offrent des vitesses d'excution ncessaires pour des solutions d'acquisition de donnes, de test et mesures personnalises. On peut galement crer des excutables autonomes.

Ce document est ralis partir des documentations sur le logiciel LabVIEW de National Instruments et des rapports d'tudiants de matrise MIME, Le Mans.

Responsable : ROGOZAN Alexandrina

2. LE PROGRAMATION GRAPHIQUE EN LANGAGE G Le langage G est le langage de programmation graphique propre LabVIEW. Il fait galement partie intgrante de BridgeVIEW, l'environnement de dveloppement d'applications de National Instruments. Le langage G, tel que le langage C ou le langage Basic, est un systme de programmation usage gnral, disposant de bibliothques de fonctions pour n'importe quelle tche de programmation. Le langage G est accompagn de bibliothques pour l'acquisition de donnes, le contrle d'instruments sur bus GPIB et srie, ainsi que l'analyse, la prsentation et le stockage de donnes. Le langage G comprend galement des outils conventionnels de dveloppement permettant de dfinir des points d'arrt, d'animer l'excution pour observer la progression des donnes dans le programme et d'excuter le programme pas pas pour faciliter la mise au point et le dveloppement. Le langage G diffre des autres langages de programmation dans le sens suivant : - Alors que les autres langages de programmation sont des langages textuels, le langage G est un langage graphique. - Un langage textuel suit des rgles d'excution squentielle dtermine par la position des instructions dans le fichier source, tandis qu'un programme graphique s'excute selon le principe de flux de donne.

Responsable : ROGOZAN Alexandrina

3. FONCTIONNEMENT DE LABVIEW Une application dveloppe sous LabVIEW, est communment appele instrument virtuel (Virtual Instrument : VI). Elle se compose d'une face avant et d'un diagramme. 3.1. Face avant La face avant est l'interface utilisateur graphique de la VI, elle permet de rceptionner les donnes acquises et d'afficher celles fournies en sortie par le programme. Cette face avant peut contenir des boutons rotatifs, des boutons poussoirs, des graphes. Cette fentre a pour titre nom_application.vi 3.2. Diagramme Le diagramme contient le code source graphique de la VI, il permet d'effectuer des traitements sur les entres et sorties cres dans la face avant. Il utilise le langage de programmation graphique G. Ce langage utilise des icnes relies entre elles par des connexions, ces icnes peuvent tre de petites fonctions simples comme des tableaux, des chanes de caractres, des graphiques ou des VI part entire, ce qui permet une programmation hirarchis sur plusieurs niveaux. On peut placer des boucles, on peut dboguer le programme comme dans les langages conventionnels. Cette fentre a pour titre nom_application.vi Diagram. 4. EDITION DES INSTRUMENTS VIRTUELS (VI) Les VIs sont construits l'aide des palettes et des menus. L'dition d'un VI se fait en choisissant des objets dans les palettes et en les plaant sur la face-avant ou dans le diagramme. Ces objets peuvent tre dplacs ou modifis l'aide des outils ou des menus. 4.1. Palette outil Cette palette rassemble dix fonctionnalits utilisables soit au niveau de la face avant, soit pour mettre au point le diagramme. Certaines fonctions sont utilisables sur les deux parties du VI : - L'outil doigt : utilis sur la face avant du VI, permet de saisir les valeurs des commandes. - L'outil slection : utilis sur la face avant ou sur le diagramme, permet de slectionner un lment particulier (ou un ensemble d'lments) pour le dplacer, le copier, le redimensionner, etc. - L'outil texte : pour placer des commentaires sur la face avant du VI. - L'outil bobine : pour connecter des lments du diagramme. - L'outil 'PopUp' : pour manipuler les palettes de contrle et de fonctions. Responsable : ROGOZAN Alexandrina 3

- L'outil main : pour dplacer le contenu de la fentre avec comme rfrence le point cliqu. - L'outil point d'arrt : permet de placer des points d'arrt sur le diagramme. - L'outil sonde : assure la visualisation d'une variable lors de l'excution du programme. Cet outil est utilis pour 'deboguer' le code graphique (quivalent la fonction "watch" des debogueurs courants). - Les outils de saisie et de placement de couleurs : pour personnaliser les couleurs de la face avant et du diagramme. 4.2. La palette contrle : Commandes et indicateurs de la face-avant La palette contrle rassemble tous les objets de type contrle (ou commande) et indicateur. Les commandes et les indicateurs de la face-avant sont les terminaux interactifs d'entre et respectivement de sortie du VI : Les commandes s'utilisent pour fournir des donnes un VI. Les indicateurs affichent les donnes gnres par le VI. Lorsqu'ils sont positionnes dans la fentre utilisateur, ces objets peuvent tre adapts l'application en taille, en forme, en chelle, en aspect, etc. Commandes numriques : pour la saisie et l'affichage des quantits numriques. Les commandes et les indicateurs numriques sont soit des commandes numriques, des commandes glissire, des commandes rotatives, des commandes de type menu droulant, des commandes numres, des commandes bote de couleurs ou des commandes rampe de couleurs. Commandes boolennes : pour la saisie et l'affichage des valeurs True/False. Commandes de chane de caractres & table : pour la saisie et l'affichage de texte. Commandes de type listes et menus droulants : pour l'affichage et/ou la slection d'une liste d'options. Commandes de type tableaux et clusters : pour le regroupement d'ensemble de donnes. Commandes de type graphe : pour le trac de donnes numriques sous forme de graphe. Responsable : ROGOZAN Alexandrina 4

Commandes de type chemin et Refnum : pour la saisie et l'affichage des chemins de fichier et pour le transfert de refnums d'un VI un autre. Dcorations : pour l'ajout d'images afin de personnaliser la face-avant. Ces objets ne concernent que la dcoration et n'affichent pas de donnes. Commandes utilisateurs : pour l'enregistrement automatique des commandes personnalises dans le fichier user.lib. ActiveX : pour l'amlioration du support d'ActiveX. Ces objets comprennent le Container ActiveX et la Variable ActiveX. Slectionner une commande : pour choisir une commande personnalise conue par l'utilisateur. 4.3. Palette fonctions du diagramme Cette palette met la disposition du programmeur, un ensemble de fonctions classes par type et permettant de manipuler les structures de donnes dfinis pralablement. - Structures : Les structures en G comportent des structures Boucle While, Boucle For, Condition et Squence. Cette palette comprend galement les noeuds de variables locales et globales et la bote de calcul. - Fonctions numriques : Les fonctions numriques sont utilises pour raliser des oprations mathmatiques complexes, logarithmiques, trigonomtriques, des conversions et des oprations arithmtiques. - Fonctions boolennes : Les fonctions boolennes sont utilises pour raliser des oprations boolennes et logiques. - Fonctions de chane de caractres : Les fonctions de chane de caractres sont utilises pour manipuler des chanes de caractres et pour convertir des chanes de caractres en nombre ou inversement. Cette palette comprend galement des fonctions Chane vers Nombre supplmentaires et des fonctions de Conversion de chane. - Fonctions de tableau : Les fonctions de tableau sont utilises pour rassembler, sparer et traiter des tableaux.

Responsable : ROGOZAN Alexandrina

- Fonctions de groupes (cluster) : Les fonctions de groupe sont utilises pour rassembler, accder ou modifier des lments d'un groupe. - Fonctions de comparaison : Les fonctions de comparaison sont utilises pour comparer des donnes (suprieures , infrieures , etc.) et raliser des oprations bases sur une comparaison (par exemple, trouver les gammes minimales et maximales pour un groupe ou un tableau de valeurs). - Fonctions Temps et Dialogue : Les fonctions Temps et Dialogue sont utilises pour manipuler les fonctions temporelles et l'affichage des botes de dialogue. Cette palette comprend galement les VIs du traitement des erreurs. - Fonctions d'E/S sur fichiers : Les fonctions d'E/S sur fichiers sont utilises pour manipuler les fichiers et rpertoires. Cette palette comprend galement les sous-palettes Fonctions de fichiers avances, VIs de fichiers binaires et Constantes de fichiers. - Fonctions avances : Les fonctions avances sont des fonctions hautement spcialises. Le Code Interface Node est un exemple de cette fonction avance. La palette comprend galement les fonctions de contrle de la fentre d'aide, les fonctions VI Serveur, les fonctions de manipulation de donnes et les fonctions d'occurrences. - Acquisition de donnes (DAQ) : Les VIs DAQ permettent de raliser des oprations d'acquisition et de gnration de donnes analogiques et numriques en temps rel, ainsi que des oprations de comptage. - E/S d'instruments : Les VIs d'E/S d'instrument communiquent avec les instruments par le biais de communications GPIB, VISA ou srie. - Communications : Les VIs de communication permettent la mise en rseau de plusieurs applications par le biais de TCP/IP, DDE, ActiveX, Apple Events, PPC ou UDP. 5. VI ET SOUS-VI : CONCEPTION HIRARCHIQUE 5.1. Application hirarchise Une fois un VI cr, il peut tre utilis comme sous-VI dans le diagramme d'un VI de niveau suprieur. Un sous-VI est donc analogue un sous-programme en C. Il n'existe aucune limite au nombre de VIs pouvant tre utiliss dans un programme crit en G. Un sous-VI peut galement tre appel au sein d'un autre sous-VI. 5.2. Cration de sous VI partir de VI L'icne d'un VI en est sa reprsentation graphique. Le connecteur d'un VI affecte les commandes et indicateurs aux terminaux d'entre et de sortie. Pour appeler

Responsable : ROGOZAN Alexandrina

votre VI partir du diagramme d'un autre VI, il faut d'abord crer une icne et un connecteur.

Responsable : ROGOZAN Alexandrina

6. COMPILATION ET EXCUTION DES VIS 6.1. Modes d'excutions Il existe comme dans la plupart des langages deux modes d'excution d'un programme : le mode continu et le mode pas pas. 6.1.1. Mode d'excution continu du VI Il faut activez la face avant en cliquant n'importe o sur celle-ci. Lancez le VI en cliquant sur le bouton Excution de la barre d'outils de la face avant. On remarque que l'on doit relancer le VI chaque fois. Si l'on souhaite une excution permanente, on doit cliquer sur le bouton Excution permanente . Remarque : il suffit de cliquer une deuxime fois sur le bouton Excution pour le dsactiver. Le VI termine alors l'excution et se ferme. permanente 6.1.2. Mode d'excution pas pas du VI Pour la mise au point, il est parfois prfrable d'excuter un diagramme noeud aprs noeud. Pour passer en mode Pas pas, cliquez sur le bouton Excution semi-dtaille qui se trouve dans la barre d'outils. Pour excuter sans dtailler une boucle ou un sous-VI, il faut cliquer sur le bouton Excution semi-dtaille de la barre d'outils. Pour excuter de faon dtaille une boucle ou un sous-VI cliquez sur le bouton Excution dtaille de la barre d'outils. Pour sortir d'une boucle ou d'un sous-VI, il faut cliquer sur le bouton Sortie de la barre d'outils. Il est possible de dfinir le niveau d'excution d'un VI et demander ce que l'excution s'interrompe un instant donn en cliquant sur le tout en maintenant le bouton de la souris enfonc. Cette bouton Sortie manipulation vous permet d'accder un menu local. Il est possible d'animer votre diagramme pendant l'excution d'un VI en cliquant sur le bouton Ampoule de la barre d'outils. L'ampoule de ce bouton se transforme alors en une ampoule allume . Vous pouvez utiliser le mode Animation en mode Pas pas pour suivre le flux des donnes dans le diagramme. On peut complter l'observation l'volution des flux de donnes avec l'aide des fonctions de mise au point. 6.1.3. Fonctions de mise au point Des fonctions classiques de mise au point du programme sont offertes par LabView : les points d'arrt et les sondes (ou fentres de watch dans d'autres langages). Il est possible de poser un point d'arrt sur un lment (structure ou cble). Le programme sera arrt quand l'lment recevra un flux de donnes en entre. Il faut pour cela choisir l'outil Point d'arrt de la palette Tools, placer le curseur

Responsable : ROGOZAN Alexandrina

Point d'arrt sur l'lment et cliquer dessus. Un cadre rouge encercle alors le noeud de l'lment vis. Il suffit de cliquer sur le curseur Point d'arrt de l'lment pour supprimer le point d'arrt. LabView contient galement un outil Sonde qui permet de visualiser les donnes pendant qu'elles circulent dans les fils de connexion. Pour cela, il faut choisir dans la palette Tools, placer une sonde sur un cble. Une fentre l'outil Sonde libelle Probe 1 apparat l'cran. La fentre de la sonde apparat la fois dans la face-avant et dans le diagramme. On peut alors parcourir de nouveau le VI en mode Pas pas. La fentre de la sonde affiche la valeur des donnes lorsqu'elles passent par la portion du fil slectionne. 7. PROGRAMMATION DU DIAGRAMME 7.1. Terminaux et n?uds Les diagrammes sont constitus de terminaux, de n?uds et de fils de liaison : Les terminaux sont des ports par lesquels les donnes passent entre le diagramme et la face-avant, ainsi qu'entre les n?uds et le diagramme. Ils sont galement la base des icnes de fonctions et de VIs. L'illustration suivante (cf. figure sur les structures de boucles) montre un exemple de terminal associ une icne. Pour afficher les terminaux d'une fonction ou d'un VI, ouvrez un menu local sur l'icne et slectionnez visualiser Terminaux. Les n?uds sont des lments d'excution de programme. Ils sont analogues aux instructions, oprateurs, fonctions et sous-programmes des langages de programmation conventionnels. Les fils de liaison sont des chemins de donnes entre les terminaux d'entre et de sortie. Dans un programme, pour faciliter la lecture du flux de donnes construit dans la fentre Diagram, le cblage, c'est dire le fil reliant les icnes dans l'intrieur d'une fentre, se prsente sous forme diffrente suivant le type et la dimension de la donne transmise. Le type de donne est cod par le motif du fil (nombre entier : trait noir, boolen : trait pointill, etc) et la dimension par l'paisseur du fil. 7.2. Structures

Responsable : ROGOZAN Alexandrina

On accde ici aux diffrentes structures de contrle proposes par le langage G. Ces structures se divisent en trois types et permettent d'exprimer tous les algorithmes : la squence (Sequence Structure) Contrle du de la l'alternative Numro (Case Structure ) choix
squence

la rptition (les structures de boucle : While Loop et For Loop)

Toutes les icnes et flots de donnes, places l'intrieur du cadre de l'icne de la structure de contrle, sont considres comme propre la structure de contrle et donc soumis l'volution squentielle (Sequence Structure), au choix (Case Structure) ou la boucle (While / For Loop). 7.3. Autre objets de programmation Dans une fentre Diagram, on peut positionner part les n?uds et les structures vus prcdemment, d'autres objets de programmation disponibles sous forme d'icne (e.g. pilotes d'entres / sorties) ou crs par l'utilisateur. Exemple : botes de calculs l'intrieur desquelles on dfinit des relations mathmatiques liant les entres de la bote avec ses sorties.

Responsable : ROGOZAN Alexandrina

10

Une bote de calcul permet d'entrer des formules directement dans un diagramme. Placez la bote de calcul sur le diagramme en la slectionnant dans FonctionsStructures. Cette fonction est utile lorsqu'une quation possde de nombreuses variables ou s'avre complexe. Grce aux botes de calcul, il est possible d'entrer directement une ou plusieurs formules compliques, au lieu de crer des sous-sections du diagramme. Il faut entrer les formules en utilisant l'outil Texte. Pour crer des terminaux d'entre et de sortie de la bote de calcul, ouvrez le menu local sur la bordure du n?ud et choisissez Ajouter une entre (Ajouter une sortie). Entrez le nom de la variable dans la bote. Les variables font la diffrence entre majuscules et minuscules. Entrez la ou les formules dans la bote. Chaque dclaration de formule doit se terminer par un point virgule. 7.4. Variables locales et globales L'utilisation des variables globales permet d'accder facilement un jeu de valeurs partir de plusieurs VIs. Les variables locales ont la mme fonction, mais sont utilises l'intrieur d'un seul VI. Les variables locales et globales sont des concepts avancs du G. Une variable globale est un objet intgr au G. Lorsque vous crez une variable globale, un type spcial de VI est automatiquement cr. Vous ajoutez ce VI des commandes de face-avant qui dfinissent les types de donnes des variables globales qu'il contient. Une variable locale vous permet d'crire ou de lire une des commandes ou un des indicateurs de la face-avant de votre VI. L'criture dans une variable locale revient au mme que de transmettre des donnes un terminal, except le fait que vous pouvez y crire mme si c'est une commande ou la lire mme si c'est un indicateur. De mme, le nombre de rfrences des variables locales n'est pas limit pour une commande de face-avant donne et certaines peuvent tre en mode criture et d'autres en mode lecture. En fait, vous pouvez utiliser une commande de face-avant comme une entre et une sortie grce une rfrence de variable locale. 8. INTERFAAGE AVEC DU CODE PROVENANT D'AUTRES LANGAGES Pour les applications qui ncessitent les meilleures performances possibles, ou si vous voulez transmettre des structures de donnes arbitraires en code C, vous pouvez crer un CIN (Code Interface Node). Par le biais des CIN, vous pouvez appeler un code crit spcifiquement pour des VIs en langage G. Le CIN est une mthode commune d'appel du code C partir du G. Vous pouvez arbitrairement entrer ou sortir des structures de donnes complexes d'un CIN. Dans certains cas, vous obtiendrez de meilleures performances en utilisant des CIN, les structures de donnes tant transmises au CIN au mme format que leur stockage dans le G.

Responsable : ROGOZAN Alexandrina

11

Toutefois, pour obtenir ce niveau de performance, vous devez apprendre crer un CIN. Pour cela, vous devez tre un bon dveloppeur C et disposer de suffisamment de temps pour crer le CIN souhait. De mme, tant donn que les CIN sont troitement lis au G, vous ne pourrez pas utiliser n'importe quel compilateur. 9. AUTRES PERFORMANCES DU LOGICIEL Le logiciel LabView offre d'autres possibilits, comme par exemple : d'utiliser des contrles Active X et de faire appel des fonctions DLL, de faire de l'acquisition/restitution l'aide de cartes propritaires, d'exploiter des outils de contrle du protocole GPIB, de communiquer avec les services rseaux proposs (UDP, TCP, ?), d'utiliser un outil de visualisation des performances des Vis, afin d'optimiser les temps d'excution, d'utiliser des outils d'analyse en traitement du signal (FFT, filtrages, convolutions, etc.).

Responsable : ROGOZAN Alexandrina

12