Acquisition de données DAQ

Download Report

Transcript Acquisition de données DAQ

Acquisition de données
DAQ
Contenus :
I- Utilisation de cartes DAQ sous LabVIEW
II- Measurement & Automation Explorer (MAX)
III- Le VI Express Assistant DAQ
IV- Les VI d’acquisition DAQmx
Michel RAMI
Page 1
I- UTILISATION DE CARTES DAQ SOUS LABVIEW
Composants d’un système d’acquisition de données
L’illustration ci-dessous offre une vue d'ensemble d’un système de mesure, montrant comment le phénomène
physique réel est transmis à l’application de mesure.
Cette figure propose deux options de système DAQ. Dans l’option A, une carte DAQ (4) est installée dans
l’ordinateur. L’ordinateur et la carte DAQ communiquent à travers les bus internes PCI ou PCI Express. Dans
l’option B, la carte DAQ est externe. L’ordinateur et le module DAQ communiquent au travers de différents bus
(6) tels que les bus série, USB ou Ethernet.
Le signal physique est converti en un signal électrique (le plus souvent une tension) par un ensemble constitué
d’un capteur (1) et d’un module conditionneur (2). La carte d’acquisition de données (4) ou carte DAQ (Data
AcQuisition) transforme alors ce signal électrique en données numériques.
Un logiciel (5) commande la carte DAQ et se charge de gérer :
- l’acquisition des données brutes (raw data),
- l’analyse des données,
- la présentation des résultats,
- le stockage des données,
- la transmission des données.
LE SYSTEME D’ACQUISITION DU TP
Le Matériel (hardware) : Il est constitué :
1- du bloc d’acquisition NI DAQ USB 6251 qui communique avec l’ordinateur via un bus USB. Son équivalent
PCI est la carte NI DAQ PCI 6251.
Ses caractéristiques sont les suivantes :
 Entrées analogiques : 16 voies masse commune ou 8 voies différentielles - 1.25Méch./s - 16bits
 Sorties analogiques : 2 voies - 2.86Méch./s - 16bits
 E/S numériques : 24 E/S - 10MHz
 Compteurs/timers : 2 compteurs - 32bits - 80MHz
Michel RAMI
Page 2
2- du bloc de connexions BNC-2120 : C’est un bloc de connexion blindé qui comprend :
- 8 entrées analogiques connectables par prises BNC
(Analog Input ai0 à ai7). Ces entrées peuvent être
référencées à la masse (GS) ou flottantes (FS).
L’entrée ai0 peut être connectée à une sonde de
température. Un thermocouple peut être connecté
sur l’entrée ai1,
- 2 sorties analogiques (Analog Output ao0 et ao1),
- 1 GBF délivrant un signal TTL de fréquence
réglable et un signal sinus/triangle d’amplitude et de
fréquence réglables,
- 8 entrées/sorties tout ou rien P0.0 à P0.7,
- Un bornier à vis pour les entrées/sorties des
compteurs/timers,
- 1 entrée BNC de synchronisation (ai start trig) et un encodeur en quadrature
3- du câble NI SHC68-68 : Il permet de connecter les 68 broches de la carte DAQ aux 68 broches du bloc
de connexion. Il est équipé d'un connecteur 68 broches 0.050 de type D à une
extrémité et d'un connecteur 68 broches VHDCI à l'autre. Sa longueur est de 1m.
Il est constitué de paires de câbles croisés.
Le logiciel (software) : Il est constitué
 du driver NI-DAQmX,
 de l’utilitaire de configuration MAX,
 du VI Express Assistant DAQ,
 des VIs DAQmX.
LE DRIVER NI DAQMX
Les VIs d’acquisition de données de LabVIEW communiquent avec la carte DAQ à l’aide de l’API (Application
Programming Interface) NI-DAQmx. Cette API joue le rôle de pilote du périphérique DAQ pour Windows. Elle
ne supporte que les cartes d’acquisition NI. L’API NI-DAQmx permet de programmer tous les périphérique
DAQ de NI avec le même jeu de fonctions, une même fonction pouvant fonctionner selon de nombreux modes
différents comme le montrent les exemples ci-dessus pour les fonctions DAQmx lire et DAQmx écrire.
L’API NI-DAQmx est également utilisable dans de nombreux environnements de programmation : LabVIEW ou
LabWindows, C ANSI, Microsoft C/C++, Borland C++, Borland Delphi, Visual Basic. Il suffit donc de connaître
seulement un seul jeu de fonctions pour être capable de programmer tous les matériels NI dans de multiples
environnements de programmation. Il en résulte une simplification et un gain de temps très important en
développement. Lors de l’installation de la carte DAQ, le Gestionnaire de configuration de Windows détecte la
présence de la carte et charge automatiquement le pilote. Vous pouvez vérifier la configuration de Windows en
sélectionnant : Démarrer >> Paramètres >> Panneau de configuration >> Système >> Matériel >>
Michel RAMI
Page 3
Gestionnaire de périphériques. Les Périphériques d’acquisition de données répertorient toutes les cartes DAQ
installées sur votre ordinateur. Double-cliquez sur un périphérique DAQ pour ouvrir une boîte de dialogue à
onglets. L’onglet Général affiche des informations générales concernant la carte. L’onglet Ressources permet
de spécifier les ressources du système attribuées à la carte telles que les niveaux d’interruption, les DMA et
les adresses de base de la carte. L’onglet Informations NI-DAQ spécifie le type de bus de votre carte DAQ.
L’onglet Pilote spécifie la version et l’emplacement du pilote de la carte DAQ.
II- L’utilitaire de configuration MAX :
L’utilitaire de configuration, Measurement & Automation Explorer (MAX), permet de définir
tous les paramètres de configuration de la carte. MAX lit les informations enregistrées par le
gestionnaire de périphériques dans la base de registre de Windows et affecte un numéro logique
à chaque périphérique DAQ.
Pour ouvrir l’utilitaire MAX, double-cliquez sur l’icône ci-contre se
trouvant sur le bureau ou sélectionnez Outils » Measurement &
Automation Explorer dans LabVIEW.
Measurement & Automation Explorer affiche la configuration des
composants National Instruments matériels et logiciels de votre
système.
Cliquez sur la section Périphériques et interfaces pour visualiser les
périphériques National Instruments installés. Vous devez détecter la
présence de la carte NI USB 6251. Le nom du périphérique (Dev1 ou
Dev2) figure entre apostrophes après son nom. Les VIs DAQ utilisent ce
nom pour repérer la carte chargée des opérations d’acquisition de
données.
Remarque : simulation de périphérique NI-DAQmx
Si vous n’avez pas de périphérique dans votre machine, vous pouvez simuler sa présence. Ceci est possible depuis
la version 7.4 de NI-DAQmx. Le périphérique NI-DAQmx simulé se comporte comme le périphérique réel. Pour
créer, un périphérique simulé, opérez comme suit. Dans MAX, cliquez avec le bouton droit de votre souris sur
Périphériques et interfaces et choisir Créer un nouvel objet...
Une fenêtre de dialogue s’ouvre. Choisir Périphérique simulé NI-DAQmx. Cliquer sur Terminer. Choisir ensuite
le périphérique que vous souhaitez créer dans la liste proposée. Cliquez sur OK. Le périphérique simulé apparaît
dans MAX. La couleur jaune de l’icône du périphérique simulé (jaune) est différente de celle du périphérique
réel qui est verte.
Michel RAMI
Page 4
TEST DU PERIPHERIQUE DAQ
Pour tester le fonctionnement du périphérique réel, connectez le boîtier BNC-2120 à bloc DAQ USB.
Cliquez sur le bouton Panneaux de test. La boîte de dialogue Panneaux de test apparaît. Elle va nous permettre
de tester l’ensemble des possibilités de la carte.
1- Test des voies d’entrées analogiques ai (analog input):
Cliquez sur l’onglet Entrée analogique. Configurez la carte DAQ comme indiqué ci-dessus.
Les voies d’entrée sélectionnées sont la voie ai0 et la voie ai1. Le mode de mesure par rapport à une masse
commune GS est choisi (RSE). La durée de mesure est de 10ms.
Appliquez sur les entrées ai0 et ai1 un signal TTL et un signal triangle issus du GBF situé sur le boîtier. Appuyez
sur Start. Réglez la fréquence des signaux pour que MAX affiche 2 à 3 périodes des signaux présents sur les
voies d’entrées ai0 et ai1.
2- Test des voies de sorties analogiques ao (analog output) :
Cliquez sur l’onglet Sortie analogique.
Testez une voie de sortie ao0 ou ao1 en générant
une sinusoïde en continu sur cette voie et en la
réinjectant dans l’entrée ai0.
3- Test des voies E/S numériques
Cliquez sur l’onglet E/S numériques pour tester
les lignes numériques de la carte DAQ.
Sélectionnez le port 0.
Configurez la direction des lignes 0 à 3 en sortie
et la direction des lignes 4 à 7 en entrée.
Cochez ou décochez la case correspondant aux
niveaux logiques des lignes 0 à 3. Vérifiez que
les LEDs correspondantes s’allument ou
s’éteignent.
Câblez des niveaux haut (5V) ou bas (DGND) sur
les entrées 4 à 7 et vérifiez que ces niveaux
sont reconnus par MAX. Vous pouvez utiliser
pour cela les sorties DGND et 5V présentes sur
le boitier de connexion.
Michel RAMI
Page 5
4- Test des E/S de compteurs
Cliquez sur l’onglet E/S de compteurs. Choisissez le compteur 1 (Dev1/ctr1).
Test en mode comptage
Câblez un signal TTL de fréquence 1Hz à l’entrée
ctr1source (PFI3). Choisissez le mode Comptage
de fronts puis /Dev1/PFI3 comme Source de
fronts. Lancez le comptage.
Test en mode génération
Câblez la sortie ctr1out (PFI13) à l’entrée
analogique ai0. Choisissez le mode Génération de
train d’impulsions de fréquence 1Hz et de
rapport cyclique 20%. Lancez la génération.
Configurez l’entrée ai0 de manière à observer 5
périodes d’un signal carré de période 1s et de
rapport cyclique 20%
BROCHAGE DE LA CARTE EN TEST
Pour accéder au brochage de la carte DAQ, faites un clic
droit, dans la rubrique Périphériques et interfaces, sur
votre carte et choisissez Broches du périphérique. Vous
obtenez le brochage de la carte choisie.
Michel RAMI
Page 6
III- Le VI Express Assistant DAQ
L’assistant DAQ est un VI Express qui fournit une interface graphique permettant de
créer, d’éditer et d’exécuter une application d’acquisition de données.
Le VI Express Assistant DAQ est accessible à partir de la palette Express>>Entrée ou à
partir de E/S de mesures>>DAQmx - Acquisition de données.
1- Création d’une application de mesure de température :
Nous allons créer un VI qui affiche la température de la salle. Pour cela, nous allons mesurer la tension issue du
capteur de température LM35 présent sur le boîtier BNC-2120. La tension X en volts générée par ce capteur et
la température Y en degrés Celsius sont reliées par la relation Y = 100X.
Ainsi à 25C correspond une tension de 0,25V. Cette tension est appliquée sur la voie d’entrée ai0 lorsque l’on
positionne correctement le commutateur associé.
Lancez LabVIEW. Ouvrez un nouveau VI vide. Placez le VI Express Assistant DAQ sur le diagramme. Une
fenêtre s’ouvre, permettant de créer et de configurer une tâche d’acquisition.
Choisissez Acquérir des signaux >> Entrée analogique >> Tension.
Une nouvelle fenêtre s’ouvre permettant de choisir la voie physique sur laquelle on va mesurer la tension.
Choisissez la voie ai0 (analog input 0).
Michel RAMI
Page 7
Nous allons maintenant ajouter la gamme de mesure, l’unité après échelle et la configuration du terminal.
Mise à l’échelle personnalisée : On souhaite que les valeurs mesurées soient affichées en degrés Celsius plutôt
qu’en Volts. Dans Mise à l’échelle personnalisée, sélectionnez Créer un nouvel objet … puis sélectionnez
Linéaire. Nommez l’échelle MonEchelle. Cliquez sur Terminer. Une fenêtre de définition de l’échelle apparaît.
Remplissez-la comme indiqué sur la figure suivante :
Gamme du signal d’entrée : Max = 35, Min = 15. La gamme de température sera réglée égale à [15C .. 35C].
Configuration du terminal : RSE. La mesure sera effectuée par rapport à la référence du système de mesure
AIGND (terre).
Michel RAMI
Page 8
Il faut maintenant ajouter les paramètres de cadencement et éventuellement de déclenchement de l’acquisition.
Paramètres de cadencement
De manière à réduire l’influence du bruit, nous décidons de mesurer 10 valeurs de température successives et
nous afficherons leur moyenne M. Pour cela, nous allons régler les paramètres de cadencement pour que l’on
réalise l’acquisition de 10 échantillons à une fréquence d’échantillonnage de 100Hz.
Test de la tâche configurée :
Testez le fonctionnement choisi en cliquant sur le bouton Exécuter situé en haut de la fenêtre puis cliquez OK
pour fermer l’assistant DAQ.
Réalisation du diagramme :
Réalisez le diagramme comme représenté dans la figure suivante. Les 10 valeurs lues en sortie du VI DAQ
Assistant sont affichées par un indicateur graphe. Leur moyenne est affichée par un indicateur thermomètre.
Réglez son échelle entre 15C et 35C. Exécutez le VI. Le thermomètre affiche la température de la salle.
Posez votre pouce sur le capteur. La température doit s’élever !
Paramètres de déclenchement
Nous allons ajouter la possibilité de déclencher la mesure de la température lorsqu’un front montant apparaît
sur la broche PFI0 du boîtier. On réalise pour cela le montage ci-dessous. Une ouverture de l’interrupteur crée
un front montant sur la broche PFI0. Une fermeture crée un front descendant.
5V
10k
PFI0
DGND
.
Retournez au diagramme. Faites apparaître le menu contextuel du VI DAQ Assistant et sélectionnez Propriétés.
La fenêtre de l’assistant DAQ apparaît.
Cliquez sur l’onglet Déclenchement. Réglez comme indiqué ci-dessus. Cliquez sur OK. Ainsi configurée,
l’acquisition ne démarre que lorsqu’un front montant est envoyé sur la broche PFI0.
Sur la face avant du VI, réglez l’affichage de la température à 15C puis lancez le VI.
Vous devez vérifier que l’affichage reste à 15C.
Placez-vous en mode animation, ampoule allumée.
Créez un front montant en agissant sur l’interrupteur et observez le flux de données. L’affichage indique
maintenant la température de la salle. Arrêtez le VI en cliquant sur le bouton Stop de la Face-avant.
Michel RAMI
Page 9
IV- Les VIs DAQmx
Dans l’exemple précédent, ouvrez le menu contextuel du VI Express puis
cliquez sur Ouvrir la face-avant. Le VI devient un VI standard. Ouvrez le
diagramme du VI. Vous obtenez le diagramme LabVIEW qui correspond à la
configuration que vous avez demandée. L’assistant DAQ traduit vos
demandes en diagramme. Remarquez que le diagramme est commenté et que
les erreurs sont gérées !
En observant ce diagramme, vous remarquez que le diagramme est réalisé à
l’aide des VIs DAQmx Créer une voie virtuelle, DAQmx-Lire, DAQmxEcrire, … de la palette Fonctions >> E/S de mesures >> DAQmx Base –
Data Acquisition. Cette palette contient des constantes, des VIs, des nœuds de propriétés et des sous
palettes. La plupart des applications d’acquisition de données peuvent être résolues en utilisant seulement une
dizaine de fonctions de cette palette.
IV.1- Tâches d’acquisition
IV.1.1- Acquisition d’un point
Nous allons réaliser un VI qui fera l’acquisition d’un point à la demande et qui affichera la valeur mesurée sur un
Vumètre. La tension à mesurer sera présente sur la voie analogique d’entrée ai0. On répétera l’acquisition toutes
les 100ms tant que l’on n’appuiera pas sur le bouton stop. La face avant aura l’allure suivante :
Ouvrez un VI vide.
Placez une constante Nom de tâche DAQmx sur votre diagramme.
Dans le menu contextuel de la constante Choisissez Nouvelle tâche NI-DAQmx puis MAX…
Une fenêtre s’ouvre permettant de créer une nouvelle
tâche NI-DAQmx. Choisissez Acquérir des signaux
>> Entrée analogique >> Tension. Choisissez ensuite
la voie physique ai0 (analog input 0). Sauvez la tâche
avec le nom Voltmètre.
La fenêtre de l’Assistant DAQ s’ouvre permettant de configurer la tâche créée.
Choisir [-10..10], Volts, RSE, Pas d’échelle puis réglez les paramètres de cadencement de manière à réaliser une
acquisition d’un échantillon à la demande. Vous pouvez ensuite tester le fonctionnement de la tâche grâce au
bouton Exécutez situé dans la barre des menus en haut de la fenêtre.
Cliquez ensuite sur OK. La constante tâche devient la constante tâche Voltmètre.
Faites un clic droit sur la constante Voltmètre et choisir Générer le code.
Trois options sont à votre disposition :
- Exemple : génère un exemple de
code d’utilisation de la tâche DAQmx
voltmètre.
- Configuration : génère le code de
configuration de la tâche. La constante
de nom de tâche DAQmx voltmètre est remplacée dans le diagramme par un sous VI configuration.
- Configuration et exemple : génère le code de configuration de la tâche et un exemple de code d’utilisation de
la tâche DAQmx voltmètre.
Choisir la troisième option. Le code est généré. Il est constitué d’un sous-VI qui contient la configuration de la
tâche et d’un exemple de code d’utilisation.
Michel RAMI
Page 10
Sous-VI de configuration : Ouvrez le diagramme du sous-VI. Pour cela, choisissez Exécution >> Passer
en mode Edition puis Fenêtre >> Afficher le diagramme dans la barre de menu de sa face avant. On
obtient le diagramme ci-dessous. Le premier VI est le VI DAQmx – Créer une tâche. Il est suivi du VI DAQmx
– Créer une voie. On reconnait les valeurs renseignées précédemment : [-10..10], Volts, RSE, Pas d’échelle, …
Exemple de code d’utilisation : Il est constitué du VI DAQmx – Lire suivi du
VI DAQmx – Supprimer une tâche. On remarque que le VI DAQmx – Lire est
configuré pour lire 1 échantillon sur N voies. La sortie est alors un tableau de
DBL, chaque valeur DBL représentant un échantillon d’une voie.
Transformez le VI DAQmx – Lire pour ne lire qu’une seule voie.
Remplacez le tableau par un indicateur numérique d’apparence vumètre. Appliquez un signal continu ou lentement
variable et vérifiez le bon fonctionnement du VI.
Pour répéter la mesure toutes les 100ms, on place le VI DAQmx – Lire dans une boucle While cadencée à 100ms.
On obtient donc une acquisition point par point avec une horloge logicielle de fréquence égale à 10Hz.
Michel RAMI
Page 11
La tâche d’acquisition sera lancée avant le démarrage de la boucle de elcture grâce au VI DAQmx-Démarrer
une tâche et sera arrêtée après l’arrêt de la boucle grâce au VI DAQmx-Arrêter une tâche.
L’utilisation de ces deux VIs est facultative, puisque l’appel du VI DAQmx-Lire démarre automatiquement la
tâche et que celle-ci s’arrête automatiquement à la fin de son l’exécution. Cependant, ce mode de
fonctionnement nuit aux performances de l'application. Il vaut mieux démarrer explicitement la tâche avant de
lancer la boucle et l’arrêter lorsque la boucle est terminée.
Lancez MAX. Ouvrez l’item Voisinage de données puis Tâches NI-DAQmx.
La tâche Voltmètre créée précédemment a été sauvée dans MAX. Elle
devient ainsi une tâche globale qui pourra être utilisée dans tous les
prochains VI développés sous LabVIEW. Elle aurait d’ailleurs pu être
directement créée par MAX en cliquant avec le bouton droit sur Tâche NIDAQmx puis sur Créer un nouvelle tâche NI-DAQmx …
IV.1.2- Acquisition de N points
Nous allons réaliser un VI qui fera l’acquisition de N points à la demande et qui affichera les valeurs mesurées
sur un graphe. Le signal à mesurer sera présent sur la voie analogique d’entrée ai0. La fréquence
d’échantillonnage, le nombre de points, le niveau et la pente de déclenchement de la mesure seront réglables en
face avant. La mesure sera rafraichie toutes les 100ms tant que l’on n’appuiera sur le bouton stop. L’ensemble se
comportera comme un oscilloscope.
Créez dans MAX une tâche permettant d’acquérir sur la voie ai0 en mode RSE (asymétrique référencé), 100
échantillons d’une tension avec une fréquence d’échantillonnage de 1000Hz. Sauvez la sous le nom Oscilloscope.
Lancez LabVIEW. Ouvrez un nouveau VI et placez la constante nom de tâche Oscilloscope que vous venez de
créer. Générez automatiquement le code (configuration et exemple).
Michel RAMI
Page 12
Ouvrez le sous-VI Configuration. Vous trouvez les 2 VIs précédents DAQmx – Créer une tâche et DAQmx
Créer une voie et le VI DAQmx–Cadencement qui permet de configurer le cadencement matériel avec les
paramètres que vous avez entrés.
Observez le code d’exemple d’utilisation. Nous retrouvons le VI DAQmx–Lire. Il délivre cette fois-ci un tableau
1D de waveforms affichées par dans un graphe. L’entrée Nombre d’échantillons à lire étant égale à -1 indique
que le VI attend que la tâche acquière tous les échantillons demandés dans la partie configuration puis les lit.
Modifiez ce VI pour qu’il ne délivre qu’une seule waveform. Placez ce VI à l’intérieur d’une boucle While.
Appliquez un signal sinusoïdal compatible avec les paramètres d’échantillonnage. Vérifiez le fonctionnement.
Synchronisation : La courbe obtenue défile lorsque l’acquisition est répétée parce que chaque nouvelle courbe
acquise est différente de la précédente. Pour obtenir un tracé stable sur le graphe, il est nécessaire de
déclencher le début de la mesure sur un point du signal à mesurer. Pour cela, supprimez le sous-VI de
configuration et placez sur le diagramme, la constante nom de tâche Oscilloscope. Dans son menu contextuel,
choisissez Editer la tâche NI-DAQmx. L’Assistant DAQ s’ouvre et on retrouve les paramètres précédents de
la tâche Oscilloscope. Cliquez sur l’onglet Déclenchement et renseignez l’onglet Déclenchement comme indiqué
ci-dessous.
La mesure ne sera déclenchée que lorsque le signal Tension passera par 0 Volt en montant. Cliquez sur OK puis
générez le code de configuration. Au code précédent s’est ajouté le VI DAQmx – Déclenchement de
démarrage avec les paramètres d’entrée que vous venez de définir.
Modifiez ensuite le VI Configuration pour que l’on puisse changer les réglages de la
fréquence d’échantillonnage, du nombre de points, du niveau de déclenchement et de la
pente à partir de la face avant du VI appelant comme indiqué ci-contre.
Appliquez un signal sinusoïdal compatible avec les paramètres d’échantillonnage. Vérifiez
le fonctionnement du VI.
Michel RAMI
Page 13
IV.1.3- Acquisition continue
Le fonctionnement précédent permet d’acquérir N points d’un signal. Le signal est donc observer par transhes
de N points. Si l’on veut observer le signal en permanence, il faut réaliser une acquisition en mode continu.
Créez une tâche permettant de réaliser une acquisition continue d’une tension sur la voie ai0 à la fréquence
d’échantillonnage de 1000Hz. Générez seulement le code de configuration. Modifiez-le de manière à ce que l’on
puisse modifier par des commandes la taille du buffer du PC et la fréquence d’échantillonnage.
La taille du buffer de données alloué par NI-DAQmx est déterminée par l’entrée nombre d’échantillons par
voie du VI DAQmx-Cadencement de la partie Configuration. L’acquisition étant continue, un buffer classique ne
peut contenir toutes les données. On utilise alors la technique du buffer circulaire. Son fonctionnement est
décrit par les figures suivantes.
La carte DAQ stocke les données dans le buffer circulaire. Un pointeur
(2) repère l'adresse d'écriture dans ce buffer.
En parallèle de l'acquisition, LabVIEW grâce au VI DAQmx-Lire
transfère les données du buffer bloc par bloc (4). La taille du bloc lu
est définie par l’entrée number of samples per channel to read
(nombre d’échantillons à lire par voie) du VI DAQmx-Lire. Un pointeur
(3) repère le début du bloc à lire.
Lorsque le buffer est plein, la carte recommence à écrire les données
au début, écrasant ainsi les données stockées précédemment qui ont
déjà été lues. Ce processus se poursuit jusqu’à ce que LabVIEW stoppe
l’opération ou qu’une erreur se produise.
Remarque : NI-DAQmx alloue un buffer de taille égale à la valeur de
la commande nombre d’échantillons par voie du VI DAQmxCadencement, sauf si cette valeur est inférieure à la valeur indiquée
dans le tableau suivant.
Fréquence
d'échantillonnage
(éch/s)
Taille du buffer
(kéch)
aucune
spécifiée
0–
100
100–
10000
10000–
1000000
>1000000
10
1
10
100
1000
Réglez la fréquence d’échantillonnage à 1000Hz. La taille du buffer est
donc dans notre cas, au minimum de 10000 échantillons.
Ajoutez le diagramme ci-dessous à la sortie du sous-VI configuration.
Michel RAMI
Page 14
Avant le lancement de la boucle, le VI DAQmx-Démarrer une tâche démarre l’acquisition et réserve les
ressources. A chaque tour de boucle, le VI DAQmx-Lire retourne le bloc des données lues. La boucle s’arrête
sur une erreur ou lorsque l’on clique sur le bouton stop de la face avant du VI Lorsque la boucle s’arrête, le VI
DAQmx-Arrêter la tâche arrête l’acquisition et libère les ressources. Les erreurs éventuelles sont gérées par
le VI Simple Error Handler.
Ajoutez un timer dans la boucle simulant la durée de traitement. Réglez-le à 1000ms. Réglez le nombre
d’échantillons à lire à 200.
Affichez également l’accroissement du nombre d’échantillons disponibles à la lecture à chaque tour de boucle, le
nombre final d’échantillons disponibles, le nombre d’itérations.
Le nombre d’échantillons disponibles à la lecture est obtenu grâce au nœud de propriété nombre d’échantillons
disponible par voie de la fonction DAQmx-Lire.
Appliquer un signal sinusoïdal. Exécuter le VI. Justifier les valeurs obtenues.
Prévoir les valeurs pour Timer = 500 et Nombre d’échantillons à lire = 100.
IV.2- Tâches de génération
IV.2.1- Génération d’un point
Nous allons réaliser un VI qui générera un point à la demande. La valeur générée sera une tension analogique
continue sur la voie ao0. Cette valeur sera lue à partir d’une commande bouton rotatif.
Créez une tâche Alim permettant de réaliser une génération d’une tension analogique continue sur la voie ao0.
Générez le code de configuration et d’exemple.
Modifiez-le comme indiqué ci-contre. La fonction DAQmx Ecrire écrit la
valeur spécifiée par le bouton rotatif sur la sortie ao0. Cette fonction
possède une entrée autostart qui autorise (True) ou non (False) le démarrage
de la tâche de manière implicite.
Enregistrez le VI sous le nom Alim. Sur le bloc BNC 2020, relier la sortie ao0
à l’entrée ai1. Ouvrir le VI voltmètre créé précédemment. Exécuter les deux
VIs pour valider leurs fonctionnements.
Remarque : Le VI DAQmx – Ecrire possède différentes instances qui autorisent différents types de
génération. La figure suivante montre 4 exemples possibles d’instances de cette fonction.
On veut maintenant faire varier la tension de sortie.
Modifiez le diagramme de la façon suivante. Vérifiez son fonctionnement.
IV.2.2- Génération de N points
Nous allons réaliser un VI qui générera N points d’un signal à la demande sur la voie analogique de sortie ao0. On
obtiendra ainsi des salves (burst) de signal en sortie.
Réalisez le diagramme suivant.
Michel RAMI
Page 15
La voie physique est choisie grâce à la commande physical channel. Choisir la voie analog ouput 0 (ao0). Cette
entrée est appliquée au VI DAQmx – Créer une voie pour lequel on a choisi l’instance AO Voltage. Les autres
valeurs d’entrée de ce VI sont les valeurs par défaut.
Le signal à produire est fourni sous forme d’une waveform délivrée le VI waveform sinusoïdale. On utilise alors
l’instance Use Waveform du VI DAQmx-Cadencement pour laquelle on configure le type de génération en
génération finie (Finite Samples). La fréquence de génération (rate) et le nombre d’échantillons sont déduits
des valeurs de la commande sampling info.
Le VI DAQmx Ecrire écrit les données dans le buffer du PC. La tâche de génération n’est pas autorisée de
manière implicite (entrée démarrage auto à faux). C’est le VI DAQmx Démarrer une tâche qui démarre la
génération. Le programme attend grâce au VI DAQmx Attendre jusqu’à la fin que la génération soit terminée
ou qu’une erreur apparaisse. Dans les deux cas, le VI DAQmx Arrêter une tâche arrête la tâche. Les erreurs
éventuelles sont traitées par le VI Gestionnaire d’erreur simple.
Observez le signal de sortie généré par votre application sur un oscilloscope.
Vérifiez que l’amplitude et la fréquence du signal observé sont conformes aux réglages demandés.
Remarques :
1- La fonction NI-DAQmx Attendre jusqu’à la fin attend tant que l’opération d’acquisition ou de génération
n’est pas complètement terminée. Il est possible de définir un timeout qui autorise un délai d’attente maximum
pour que l’opération se réalise. Si ce timeout est dépassé, la fonction s’arrête et une erreur est générée.
2- Dans le cas de la génération, la sortie analogique maintient le niveau de la dernière donnée écrite jusqu’à ce
que la carte soit remise à zéro par le VI DAQmx Réinitialiser un périphérique ou que le PC soit éteint. Plutôt
que de faire un reset de la carte à chaque fois, il est plus simple d’écrire une valeur nulle sur la voie une fois la
génération terminée.
IV.2.3-Génération continue
Créez une tâche GBF permettant de réaliser une génération d’une tension analogique en continu sur la voie ao0.
Générez le code de configuration et d’exemple. Modifiez-le comme indiqué ci-dessous.
Michel RAMI
Page 16
le VI DAQmx Ecrire placé dans la boucle permet d’écrire de nouvelles données à chaque itération de la boucle,
sous réserve d’avoir autorisé lé régénération grâce à la propriété Régénération Mode du nœud de propriété
DAQmx – Ecrire. Testez le fonctionnement du VI en configurant la propriété Régénération mode à Do not allow
Regeneration puis à Allow regeneration.
IV.2.4- Génération d’un signal PWM
Créez une tâche PWM permettant de réaliser une génération d’un signal PWM destiné à être appliqué en entrée
d’un servomoteur.

PWM
5V
masse
La période du signal PWM doit être comprise entre 10ms et 20ms. La durée de l’état haut des impulsions
correspond à l’angle de rotation du servomoteur. Cette valeur doit varier entre 1ms et 2ms.
Dans l’assistant DAQ, choisir Générer des signaux >> Sortie de compteur >> Sortie d’impulsion puis choisir
la voie physique ctr0 qui correspond à la sortie PFI12 (compteur 0 out) de la carte USB 6251. Sauvez la tâche
sous le nom PWM.
Réglez le temps haut à 1,5ms et le temps bas à 18,5ms de manière à avoir une période de 20ms.
Choisir Impulsions en continu pour le mode de génération et 1000 pour le nombre d’échantillons ce qui
permettra d’avoir une précision de 2µs.
Générez ensuite le code de configuration et d’exemple. Vérifiez que l’on génère bien une impulsion conforme aux
paramètres configurés.
Modifiez votre programme pour que l’on puisse grâce à une commande en face avant changer la durée de l’état
haut dans les limites autorisées sans modifier la période du signal PWM. On pourra utiliser l’instance Compteur
Temps 1voie 1 Echant du VI DAQmx – Ecrire.
Michel RAMI
Page 17