Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

ni.6363 CVI, probleme d'échantillionnage

Bonjour,

 

Je programme actuellement sous l'environnement CVI. Et je possède une 6363 qui est sensé pouvoir mesuré sur 16 canaux en différentiel, avec une fréquence d'échantillonnage de 1M/S par canal.

 

Or avec ma carte, on est obligé de diviser la fréquence d'échantillonnage max par le nombre de canaux que l'on souhaite mesurer.

 

De quel façon je peux procéder pour ne pas etre obligé de divisé la fréquence d'échantillonnage? sachant que dans les spec de cette carte, on peut faire des mesures 1M/s par canaux

 

 

 

voila le code ;

//string_channel ="Dev1/ai0,Dev1/ai1,Dev1/ai2,Dev1/ai3,Dev1/ai4,Dev1/ai5,Dev1/ai6,Dev1/ai7"

//rate                 =fréquence d'échantillionnage


  DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
 
  DAQmxErrChk (DAQmxCreateAIVoltageChan(taskHandle,string_channel,"",DAQmx_Val_Diff,min,max,DAQmx_Val_Volts,NULL));

  DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",rate,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,sampsPerChan));
  DAQmxErrChk (DAQmxGetTaskAttribute(taskHandle,DAQmx_Task_NumChans,&numChannels));

  if( (data=malloc(sampsPerChan*numChannels*sizeof(float64)))==NULL )
   {
   MessagePopup("Error","Not enough memory");
   goto Error;
   }

  /*********************************************/
  // DAQmx Start Code
  /*********************************************/
  DAQmxErrChk (DAQmxStartTask(taskHandle));

  SetCtrlAttribute(panel,PANEL_ACQUIRE,ATTR_DIMMED,1);
  ProcessDrawEvents();

  /*********************************************/
  // DAQmx Read Code
  /*********************************************/
  DAQmxErrChk (DAQmxReadAnalogF64(taskHandle,sampsPerChan,10.0,DAQmx_Val_GroupByChannel,data,sampsPerChan*numChannels,&numRead,NULL));

Je vous remercie d'avance


  

0 Compliments
Message 1 sur 8
4 332 Visites

Bonjour Bob,

 

Cette limite est liée à la structure de la carte elle même. La carte est munie d'un convertisseur pour l'ensemble des voies, qui sont multiplexées. Si vous avez besoin d'un échantillonnage à 1Méch/s pour plusieurs voies, il faut opter pour une carte à échantillonnage simultanée. Ce type de carte dispose d'un convertisseur par voie. Il n'y a alors plus besoin de multiplexer les échantillons, et vous pouvez alors soutenir une fréquence d'échantillonnage de 1Méch/s pour chacune des 16 voies que vous souhaitez acquérir.

 

Les cartes PXIe-6366 et PXIe-6368 présentent cette topologie. Les cartes de la série S sont également capables de gérer un échantillonnage simultané, mais ne comportent généralement que quatre voies (PCI-6120).

 

Cordialement,

0 Compliments
Message 2 sur 8
4 287 Visites

Merci pour votre réponse,

J'avais oublié de précisé que cette carte '6363' était capable de mesurer en simultanée à 1M/s , et je n'arrive pas à la configurer pour.

 

0 Compliments
Message 3 sur 8
4 283 Visites

"Or avec ma carte, on est obligé de diviser la fréquence d'échantillonnage max par le nombre de canaux que l'on souhaite mesurer.


De quel façon je peux procéder pour ne pas etre obligé de divisé la fréquence d'échantillonnage? sachant que dans les spec de cette carte, on peut faire des mesures 1M/s par canaux"

 

Mon post précédent donne les raison de cet échantillonnage à 1Méch/s agrégé, c'est à dire, 1Méch/s partagé entre les différentes voies acquises simultanément. Ceci est du au multiplexage des voies analogique de la carte. Je vous invite à vous référer aux spécifications de la carte 6363, qui reprends ces éléments (1MS/s multichannel aggregate), et à les comparer avec les spécifications des cartes 6366/6368 par exemple.

 

Voici la topologie typique d'une carte multiplexée:


 

Si vous demandez 16 voies en acquisition analogique à une telle fréquence d'échantillonnage, vous devriez avoir un message d'erreur ou à minima une mise en garde lors de l'exécution. Qu'en est-il? Est-ce qu'une erreur apparaît? A quelle ligne? Quel code d'erreur?

 

Cordialement,

0 Compliments
Message 4 sur 8
4 278 Visites

en forçant l'acquisition sur 16 voies à 1M/S:

 

à cette ligne là:

DAQmxReadAnalogF64(taskHandle,sampsPerChan,10.0,DAQmx_Val_GroupByChannel,data,sampsPerChan*numChannels,&numRead,NULL)

 

 

j'obtiens comme message d'erreur:

 

NON-FATAL RUN-TIME ERROR:  

"Acq-IntClk.c", line 209, col 9, thread id 0x000009F8:  

 Function DAQmxReadAnalogF64: (return value == -200019 [0xfffcf2ad]).

ADC conversion attempted before the prior conversion was complete. 

Increase the period between ADC conversions.

If you are using an external clock, check your signal for the presence of noise or glitches.

Property: DAQmx_Read_RelativeTo Requested Value: DAQmx_Val_CurrReadPos 

Property: DAQmx_Read_Offset Requested Value: 0  Task Name: _unnamedTask<0> 

Status Code: -200019

 

Merci en tout cas.

 

0 Compliments
Message 5 sur 8
4 262 Visites

Bob,

 

Ceci n'est matériellement pas possible, la carte 6363 n'est pas capable d'échantillonner 16 voies à 1Méch./s.

 

En français dans le texte, l'erreur donne:

 

Une tentative de conversion analogique vers numérique a eu lieu avant que la conversion précédente ne soit achevée.
Augmentez la période entre les conversions. Si vous utilisez une horloge externe, vérifiez qu'il n'y a pas de bruit ni de parasites dans votre signal.

 

La période de conversion analogique numérique est directement liée à la période d'échantillonnage, il faut donc réduire la fréquence d'échantillonnage. National Instruments vous garantie un bon fonctionnement à une fréquence d'échantillonnage de 1Méch./s divisée par le nombre de voie, soit dans votre cas 62,5kéch./s sur 16 voies.

 

Au delà, le driver va vous renvoyer la  mise en garde 200011:

 

La fréquence d'horloge spécifiée est tellement élevée qu'elle ne respecte pas les exigences liées au temps nécessaire à la stabilisation pour l'acquisition.

Réduisez la fréquence d'horloge ou la précision de la mesure pourrait être compromise.

...puis des erreurs telle celle que vous rencontrez, expliquant que la carte n'a pas le temps d'échantillonner vu les contraintes de temps imposées (fréquence d'échantillonnage trop élevée).

 

Cordialement,

0 Compliments
Message 6 sur 8
4 258 Visites

En fait je suis bien embeté... On nous avait conseillé cette carte 6363, vu qu'elle était normalement capable de faire du 1M/s par canal, et la doc ne semble pas démentir cette caracteristique.

Mais probablement que vous avez raison.

 

merci pour votre réponse,

 

 

0 Compliments
Message 7 sur 8
4 252 Visites

Je confirme que vous aviez raison,

je vous remercie de votre réponse

0 Compliments
Message 8 sur 8
4 239 Visites