Lab Windows 1
Lab Windows 1
Lab Windows 1
INTRODUCTION LABWINDOWS/CVI
LES CONVENTIONS
EXCUTION DU PROJET
LA FENTRE DU CODE SOURCE
4
7
7
CONCEPTION DU PROJET
10
17
20
21
21
22
27
31
36
38
40
INTRODUCTION LabWindows/CVI
Comme vous pourrez le voir dans lannexe, lutilitaire Measurement & Automation
eXplorer (MAX) simplifie la configuration des systmes en mettant votre disposition
un accs rapide et simple aux instruments ainsi quaux assistants en ligne Getting
Started et Troubleshooting Wizards .
Lvolution des technologies lectroniques permet dinsrer les instruments
directement dans le PC et il est dsormais possible de piloter linstrument de mesure
aussi simplement quun autre priphrique.
National Instruments propose depuis plusieurs annes, sous forme de solutions
logicielles et matrielles, des instruments comme des oscilloscopes ou des
multimtres. Jusqualors, la partie matrielle tait assure par des cartes
multifonctions qui pouvaient tre dans certains cas mal adaptes aux besoins rels :
surdimensionnes pour remplacer un multimtre ou sous-dimensionnes pour
remplacer un oscilloscope. Le recours aux instruments traditionnels relis par GPIB
un PC restait parfois invitable. Les cartes instruments (sur PC) proposent une
alternative aux instruments traditionnels et sont une extension naturelle de
linstrumentation virtuelle. Elles offrent des performances similaires celles des
instruments classiques mais permettent de profiter de la souplesse des PC et de
leurs volutions futures.
Notez bien que nous sommes convaincus que de la mme faon que le traitement de
texte a remplac la machine crire, la carte instrument va dans certains cas se
substituer linstrument traditionnel.
Un instrument de mesure, quil soit traditionnel ou virtuel, a toujours pour rle
dacqurir des donnes, de les analyser puis dafficher linformation. La diffrence
fondamentale entre les instruments traditionnels et les instruments virtuels rside
dans la souplesse, infiniment plus grande, de linstrument virtuel. En effet, ce dernier
est dfini par lutilisateur, et non par le fournisseur.
National Instruments propose un grand choix de cartes dacquisition et de
conditionnement du signal parmi lesquelles on retrouve les cartes multifonctions.
Elles correspondent tout fait ltat desprit instrumentation virtuelle
puisquelles peuvent tre utilises dans des applications trs diffrentes.
Afin dautomatiser un systme de mesure, il faut utiliser un outil de dveloppement
pour laborer lapplication proprement dite.
Figure 1-1
2/ Vous remonterez larborescence pour aller chercher le projet sample1.prj qui se
trouve dans
c:\MeasurementStudio\cvi\tutorial. La fentre ci-dessous apparat.
Figure1-2
Maintenant, nous allons examiner quelques-unes des diffrentes fentres de
LabWindows/CVI : les fentres Project , Standard I /O et Source .
La fentre Project comporte une barre de menu avec les options suivantes :
Le menu File contient des slections pour le chargement, la sauvegarde et la
cration de nouveaux fichiers en LabWindows/CVI. Vous pouvez ouvrir nimporte
quel type de fichier (Project, Source, Header, ou User Interface).
Le menu Edit contient des slections pour ajouter ou supprimer des fichiers du
projet.
Le menu Build contient des slections de compilation.
Le menu Run contient des slections pour lexcution.
Le menu Window vous laisse le choix de naviguer rapidement vers les autres
fentres comme Source, User Interface (interface utilisateur) et Standard I/O.
Le menu Options vous permet de configurer diffrents aspects dans
lenvironnement de programmation.
Le projet que vous avez ouvert, sample1.prj, est un exemple de base, comportant un
seul fichier de code source. La fentre Project affiche des informations concernant le
statut des fichiers qui comportent le projet.
Figure 1-3
1
2
3
4
5
6
7
8
Nom du fichier.
Ce symbole vous indique si le fichier est ouvert.
Un S cette colonne vous indique quil a y eu des modifications depuis le
dernier enregistrement.
Un C cette colonne vous indique que le fichier doit tre compil avant
excution.
Un O cette colonne vous indique que vous avez valid loption compiler
lintrieur de lobjet .
Un I cette colonne vous indique que le fichier est un programme de driver
dinstrument.
Date de la dernire modification.
Heure de la dernire modification.
Les projets que vous mettrez en uvre avec LabWindows/CVI peuvent consister en
de multiples fichiers de diffrents types. LabWindows/CVI est compatible avec les
fichiers sources C, les bibliothques partages (DLL), les bibliothques C, les fichiers
dinterface utilisateur et les drivers dinstruments. Quand vous dvelopperez des
projets plus avancs, vous aurez juste slectionner Add File To Project du
menu Edit et slectionner le type de fichier que vous souhaitez ajouter votre
projet.
Figure1-4
Excution du projet
Pour excuter le projet, slectionnez Run Project du menu Run. LabWindows/CVI
va automatiquement compiler tous les fichiers sources, lier le projet aux
bibliothques utilises et excuter le code compil. Notez que lindicateur C disparat
de la liste de projets aprs la compilation. Quand le projet commence sexcuter le
mot Running apparat dans le coin suprieur gauche de votre fentre Project.
Le projet sample1.prj est un programme facile qui va gnrer 100 nombres alatoires
et les afficher dans une fentre Standard I/O.
Messages derreur
Si des erreurs sont dtectes durant la compilation ou le processus de liaison, alors
un message d'erreur apparat. La fentre de message derreur contiendra le nombre
derreurs dtectes dans chaque fichier source et leur description.
Le menu File de la fentre Source est similaire au menu File de la fentre Project.
Avec le menu File, vous pouvez donc ouvrir, sauvegarder ou crer nimporte quel
type de fichier reconnu par LabWindows/CVI.
Avec le menu Edit, vous avez les outils relatifs ldition du code source.
Pour slectionner le mode dexcution, vous vous servez du menu Run.
Avec le menu Instruments, vous pouvez charger nimporte quel driver dinstrument
prsent dans votre systme.
Pour accder aux bibliothques LabWindows/CVI pour tout ce qui concerne
lacquisition, lanalyse et laffichage des donnes, vous vous servez du menu
Library.
Les menus de la fentre Source sont tudis plus en dtails dans le manuel de
lutilisateur de LabWindows/CVI.
La fentre Source est compatible avec les spcifications du ANSI C. Vous pouvez
utiliser les structures du langage ANSI C ou bien les fonctions de bibliothque
standard pour dvelopper votre application. LabWindows/CVI possde des outils de
gnration de code, ce qui rduit votre temps de dveloppement. Nous parlerons
plus en dtails de ces outils de gnration de code par la suite. La fentre de code
source, la fentre des fonctions ainsi que la fentre daffichage des variables ont des
barres doutils pour un accs rapide aux fonctions ddition et de dbogage. Les infobulles sont dune aide prcieuse pour la signification de telle ou telle icne de la
barre doutils. Et enfin vous avez la possibilit de personnaliser votre barre doutils
partir du menu Options.
CONCEPTION DU PROJET
Maintenant que nous avons analys un projet existant nous allons passer ltape
suivante qui consiste raliser son propre projet. Ouvrez un nouveau projet comme
indiqu la figure 2-1.
Figure 2-1
Rpondez Yes la question Are you sure you want to unload the current project
car vous allez dcharger le projet sample1.prj afin de crer un nouveau projet.
LabWindows/CVI 6.0 permet de crer plusieurs projets dans un mme espace de
travail, mais dans cet exercice nous allons crer un nouveau projet dans un nouvel
espace de travail.
Lorsque la bote de dialogue suivante apparat (figure 2-2), choisissez loption
Create Project In New Workspace et cochez toutes les cases pour les options de
transfert comme indiqu. (si par la suite vous avez une configuration particulire
comme les options de compilation, dexcution, etc., vous pouvez les transfrer dun
projet un autre).
Figure 2-2
Figure 2-3
Vous avez donc une nouvelle interface utilisateur vide comme indiqu la figure 2-4.
10
Figure 2-4
Dfinir la taille et le titre du Panel
La taille et le titre de votre Panel (la fentre grise qui deviendra la fentre de votre
application) dinterface utilisateur ne vous conviennent certainement pas. Vous allez
donc personnaliser votre interface utilisateur. Pour modifier la taille de ce Panel,
utilisez comme dhabitude le pointeur de la souris. Placez-le sur le coin infrieur droit
du Panel (ce qui a pour effet de le transformer en une double flche oblique),
appuyez sur le bouton gauche de la souris, dplacez le pointeur jusqu ce que le
Panel atteigne la taille souhaite, puis relchez le bouton de la souris.
Double-cliquez nimporte o lintrieur de votre Panel pour lui attribuer un titre via la
bote de dialogue Edit Panel (figure 2-5). Dans le champ Panel Title, rentrez le nom
Acquisition, puis cliquez sur OK. Vous pouvez consulter dautres attributs en
appuyant sur le bouton Other Attributes .
11
Figure 2-5
laide du menu Create, placez un graphe dans votre interface utilisateur comme
indiqu la figure 2-6. Votre graphe apparat dans votre Panel. Pour changer sa
taille, procdez exactement comme ltape prcdente. Double-cliquez lintrieur
du graphe pour accder la bote de dialogue ddition des attributs. Dans le champ
Label de la catgorie Label Appearance, donnez le titre de Graphe
dacquisition . Le champ Constant Name spcifie le nom par lequel votre graphe
sera appel dans le code source, par dfaut son nom est GRAPH, vous pouvez le
laisser tel quil est, puisque cest le seul graphe. Cliquez sur OK.
Votre Panel apparatra comme indiqu la figure 2-7. Utilisez le pointeur de la souris
pour placer le titre de votre graphe o vous dsirez.
12
Figure 2-6
Figure 2-7
13
Figure 2-8
Double-cliquez sur le premier bouton pour accder la bote ddition des attributs et
remplissez les champs comme indiqu la figure 2-9. Rptez lopration pour le
deuxime bouton et remplissez les champs comme indiqu la figure 2-10.
Figure 2-9
14
Figure 2-10
Une fois acheve, linterface utilisateur sera celle de la figure 2-11.
La prochaine tape va consister gnrer le code de lapplication. Pour cela, il faut
au pralable enregistrer linterface utilisateur dans le rpertoire de votre choix (par
exemple c:\Temp\). Nommez-le PremierProjet.uir .
15
Figure 2-11
16
Gnration de Code
Pour linstant, nous avons cr une interface utilisateur.
prsent, il sagit de gnrer le code source avec Code Builder qui va grer
notre interface utilisateur.
Nous pouvons dfinir le type dvnements auxquels notre programme va ragir.
Pour cela, slectionnez Code>>Preferences>>Default Control Events partir de
linterface utilisateur. Dans la bote de dialogue Control Callback Events ,
slectionnez le type dvnements auxquels le programme va rpondre. Dans ce
projet, les commandes doivent ragir un type particulier dvnements qui est
Event-Commit (cest--dire lorsque vous cliquez sur le bouton gauche ou sur
<Enter>). Vrifiez que seul EVENT_COMMIT est slectionn, puis cliquez sur OK.
Figure 2-12
Figure 2-13
17
Figure 2-14
18
Figure 2-15
Il existe un troisime fichier PremierProjet.h qui a t gnr au moment de
lenregistrement de linterface utilisateur que nous pouvons rajouter notre projet.
Pour le rajouter notre projet, bien que cela ne soit pas ncessaire, cest trs simple,
il suffit simplement de procder comme indiqu la figure 2-16. Vous remonterez
larborescence pour aller le chercher son emplacement, il est dans le mme
rpertoire que notre projet.
Figure 2-16
19
Excution du projet
Le projet est prsent termin. Pour le lancer, slectionnez Run Project dans le
menu Run. Pour le moment la seule commande active dans linterface utilisateur est
le bouton QUIT. Dans le chapitre suivant, nous allons rajouter des fonctions ce
programme pour faire en sorte quune action sur le bouton Acquire permette
dafficher les donnes dans le graphe. Ensuite, nous obtiendrons une interface
utilisateur complte capable dacqurir et dafficher des courbes.
Figure 2-17
20
Figure 3-1
Le fichier scope.fp que nous devons slectionner se trouve dans le rpertoire
MeasurementStudio\cvi\tutorial. Pour le rajouter au projet, il suffira de le
slectionner, puis de cliquer sur Add et ensuite sur OK.
National Instruments Corporation
21
Figure 3-2
Placez le curseur sur la ligne vierge qui se trouve juste au-dessous de linstruction
Event_Commit, de la fonction AquirePROG comme indiqu la figure 3-2.
Initialiser linstrument
Nous allons prsent utiliser le driver dinstrument de loscilloscope pour gnrer du
code en vue dacqurir une courbe. Le code sera gnr au niveau de la fonction
AquirePROG. Rappelons que cette fonction sexcute quand on clique sur le bouton
Acquire.
Premire tape : ouvrez le panneau de fonction
1/ Slectionnez loption Sample Oscilloscope dans le menu Instrument.
Cest le driver dinstrument que nous venons de charger, il comporte quatre fonctions
simples qui vont permettre au programme de communiquer avec notre instrument
(oscilloscope).
Figure 3-3
22
Figure 3-4
Figure 3-5
Les panneaux de fonctions sont avant tout des reprsentations graphiques des
fonctions. Ce sont des outils interactifs qui servent construire et tester les appels de
fonction de votre bibliothque. Ces panneaux de fonctions proposent une aide en
ligne complte. Cliquez avec le bouton droit de la souris sur le panneau de fonction
pour afficher laide en ligne de la fonction Initialize. Les panneaux de fonctions
gnrent aussi du code. Lorsque vous entrez des valeurs dans les champs du
panneau de fonction, lappel de fonction se cre automatiquement en bas de lcran
(dans la partie blanche de la fentre).
23
Figure 3-6
4/ Slectionnez Run Function Panel dans le menu Code. Cliquez sur Yes
lorsquune bote de dialogue vous propose denregistrer toute modification avant
lexcution. Cette bote de dialogue apparat chaque fois que vous procdez une
modification.
Si aucune erreur nest dtecte en cours dexcution, le paramtre Error vaut 0.
Sinon, vous pouvez cliquer avec le bouton droit de la souris sur le champ Error pour
visualiser laide en ligne correspondante.
Une fois que vous avez rempli les paramtres et valid la ligne de code, les tapes
suivantes vont vous permettre dinsrer lappel de fonction dans le code et effacer le
panneau de fonction lcran.
Troisime tape : insrer la fonction dans le fichier source
1/ Slectionnez Insert Function Call dans le menu Code pour recopier le code gnr
dans la fentre ddition de source.
2/ Slectionnez Close dans le menu File pour fermer le panneau de fonction.
Lappel de fonction pour initialiser le driver dinstrument devrait maintenant safficher
dans votre code source lendroit o vous avez laiss le curseur.
Lire les donnes de linstrument
Lune des fonctions les plus importantes de tout driver dinstrument consiste lire les
donnes mises par un instrument et convertir les donnes brutes obtenues en un
format directement utilisable par votre programme. Par exemple, un oscilloscope
numrique renvoie une courbe sous forme de chane de nombres ASCII spars par
une virgule. Ensuite, le driver dinstrument analyse la chane de caractres, met
24
lchelle les donnes en tension, puis les place dans un tableau en mmoire votre
place.
1/ Slectionnez Read Waveform dans le driver dinstrument Sample Oscilloscope
du menu Instrument. Le panneau de fonction Read Waveform saffiche alors de la
faon suivante (figure 3-7).
Figure 3-7
2/ Rglez le champ Channel sur 2. Channel 1 est une onde sinusodale et Channel 2
un ensemble de donnes alatoires.
Dclarer les variables dans les panneaux de fonction
La fonction Read Waveform sert prsenter les donnes sous forme de tableau.
Avant de pouvoir excuter cette fonction, il faut dclarer un tableau. Vous pouvez
dclarer des variables, comme par exemple un tableau, partir dun panneau de
fonction. Pour ce faire, les tapes suivantes vont vous aider pour la dclaration.
1/ Cliquez sur le champ Waveform et tapez tableau .
2/ Slectionnez Declare Variable dans le menu Code pour dclarer la variable
tableau en mmoire. Vous voyez alors apparatre une bote de dialogue avec la
variable tableau automatiquement insre dans le champ Variable Name.
3/ Tapez 100 dans le champ Number of Elements .
25
Figure 3-8
Complter le panneau de fonction Read Waveform
Terminez la configuration du panneau de fonction avant de lexcuter de la faon
suivante.
1/ Cliquez sur le champ Sample Periode pour mettre en surbrillance.
2/ Slectionnez Declare Variable dans le menu Code.
3/ Tapez Delta_t dans le champ Variable Name. Vrifiez que les cases Execute
declaration et Add Declaration sont bien coches et cliquez sur OK.
4/ Cliquez sur le champ Xzero pour le mettre en surbrillance.
5/ Slectionnez Declare Variable dans le menu Code.
6/ Tapez x_zero dans le champ Variable Name. Vrifiez que les cases Execute
declaration et Add Declaration sont bien coches et cliquez sur OK.
7/ Tapez err dans le champ Error. Cette variable a dj t dclare prcdemment.
8/ Slectionnez Run Function Panel dans le menu Code pour excuter le panneau
de fonction. Enregistrez les changements avant de lancer lexcution. Si vous avez
correctement excut la fonction Initialize, le champ Read Waveform Error devrait
afficher 0. Une fois la fonction excute, vous voyez apparatre une range de cases
dans le champ Waveform, ce qui signifie que les donnes figurent bien dans le
tableau.
9/ [Optionnel] Vous pouvez double-cliquer sur les tirets qui se trouvent dans le
champ Waveform. Cela activera lditeur de tableau et vous permettra dinspecter les
valeurs rcupres.
10/ Slectionnez Insert Function Call dans le menu Code pour recopier le code
gnr dans la fentre ddition de source.
11/ Fermez le panneau de fonction. La ligne de code suivante existe dsormais dans
votre fonction AquirePROG.
err = scope_read_waveform (2, tableau, &valeur, &X_zero);
26
Figure 3-9
Nota : Pour remplir les champs panelHandle et Y Array , vous pouvez utiliser
la fonction Select Variable du menu Code et slectionner les variables
correspondantes soient : panelHandle et tableau . Ces variables sont dj
dclares.
27
Ensuite vous activez le champ Control ID en cliquant dessus, puis vous placez la
constante PANEL_GRAPHE avec loption Select UIR Constant du menu Code
3/ Dans le panneau de fonction Plot Y, slectionnez Insert Function Call du menu
Code pour insrer la fonction Plot Y dans votre code source.
4/ Fermez le panneau de fonction. Les modifications que vous avez apportes dans
la fonction AquirePROG devraient correspondre au code source prsent dans la
section suivante. Enregistrez les modifications apportes.
Afficher le programme
Une fois termin, le fichier source doit comprendre le code suivant :
28
Excuter le projet
Nous disposons maintenant dun projet complet, nomm PremierProjet.prj.
Vous pouvez visualiser le statut de chaque fichier associ au projet de la fentre
Project et modifier chacun dentre eux.
Slectionnez Run Poject dans le menu Run pour excuter le code. Au cours du
processus de compilation, LabWindows/CVI va reconnatre que votre programme
ncessite le fichier den-tte scope.h. Il va donc proposer de linsrer dans votre code
source. Cliquez sur Yes pour ajouter ce fichier inclus dans votre programme. Voici
les tapes qui se droulent lorsque vous excutez le programme.
29
30
Modification du programme.
Sachant que le driver dinstrument peut gnrer une sinusode ou bien une courbe
alatoire, nous allons modifier le programme pour permettre lutilisateur de choisir
la courbe quil souhaite tracer.
Pour cela, ouvrez votre interface utilisateur et placez un Menu Ring comme cidessous et agrandissez-le en vous servant du pointeur de souris. Puis double-cliquez
dessus pour accder la bote de dialogue ddition dattributs.
Figure 3-10
31
Figure 3-11
Une fois que vous accdez au panneau diteur du Label (Edit Label/Values Pairs),
tapez Sinusode dans le champ Label et 1 dans le champ Value comme
dcrit la figure 3-12, ensuite cliquez sur le bouton Below, puis tapez Alatoire
dans le champ Label, et 2 dans le champ Value. Cliquez sur OK pour fermer le
panneau dditeur du Label et nouveau sur OK pour fermer la bote de dialogue
Edit Ring . Enregistrez les modifications et fermez linterface utilisateur.
32
Figure 3-12
Ouvrez votre fentre code source afin de le modifier pour prendre en compte les
changements apports votre interface utilisateur.
Placez votre curseur lintrieur de la fonction AcquirePROG sur une ligne vierge et
apportez les modifications suivantes. Le but de lexercice est de rcuprer la valeur
retourne par la slection de loprateur (PANEL_RING) et ensuite de lutiliser dans
la fonction de lecture scope_read_waveform. Si le choix de loprateur est
Sinusode , la valeur retourne est 1 et si le choix est Alatoire , la valeur
retourne est 2.
33
Pour rcuprer le choix de loprateur, vous utiliserez la fonction Get Control Value.
Elle se trouve dans Library>>User Interfaces>>Controls/Graphs/Strip
Charts/General Functions. Vous accdez au panneau de la figure 3-14.
Figure 3-13
34
Figure 3-14
Remplissez votre panneau comme ci-dessus (figure 3-14), puis dclarez votre
variable function qui doit rcuprer la valeur du choix de loprateur. Vrifiez que
pour la dclaration vous avez coch les deux cases comme la figure 3-15.
Figure 3-15
35
Figure 3-16
Une fois ces modifications faites, votre Callback AcquirePROG devrait
ressembler la portion de code ci-dessous.
Conclusion
Si aucune erreur de programmation na t faite, le programme doit tre compil
correctement puis excut.
En rsum, chaque clic sur le bouton Acquire, le programme excute la fonction
associe. Lancienne courbe est efface et une nouvelle courbe est trace.
Loprateur peut tout moment choisir le type de courbe afficher.
36
Figure 3-17
37
38
PID Control Toolkit : il sagit dun ensemble dalgorithmes pour le contrle PID
que vous pouvez intgrer dans vos applications de gestion et de contrle de
processus.
Digita Filter Design Toolkit : il sagit dun outil de conception polyvalent destin
au conditionnement de signaux, aux systmes de commande ainsi quau
traitement de signaux numriques.
39
40