04-11-2024 01:56 AM
Bonjour , je suis stagiaire, mon travaille consiste à exploité des carte national instrument pour faire des acquisition, dans mon application je fais l'acquisition de 4 paramètre dont un micro ce qui fais que j'ai besoin d'une fréquence échantillonnage plus élevé à 80 kHz , et je veux faire de l’acquisition pendant 1h cela entraine des problème de mémoire pleine . donc je veux faire l'acquisition des 3 paramètre à une fréquence de 1kHz et faire l'acquisition de micro à 80khz séparément.
La solution que j'ai trouver est de ajouter une horloge échantillonnage externe mais j'ai toujours l'erreur code 50103 je travaille sur la carte NI USB 6212 ? est ce que je procède correctement ? ET est ce que les carte NI permet ce que je veux faire? ou je dois changé?
merci d'avance pour votre réponse
Solved! Go to Solution.
04-11-2024 02:36 AM - edited 04-11-2024 02:37 AM
Hi amel,
@ameletudiante99 wrote:
Hello, I am a trainee, my work consists of using national instrument cards to make acquisitions, in my application I acquire 4 parameters including a microphone which means that I need a higher sampling frequency at 80 kHz, and I want to acquire for 1 hour, this causes full memory problems. so I want to acquire the 3 parameters at a frequency of 1kHz and acquire the microphone at 80khz separately.
The solution I found is to add an external sampling clock but I still get error code 50103 I am working on the NI USB 6212 card? am I doing this correctly? AND do the NI cards allow what I want to do? or should I change?
04-11-2024 03:06 AM
Rebonjour
je vous remercie pour votre réponse, je comprends mieux maintenant.
04-12-2024 06:11 AM
Bonjour , je fais de l'acquisition de 4 paramètre avec la carte ni 6212 , je veux faire un sous échantillonnage sur le 3 premiers paramètre que je veux acquérir , je veux faire cela en calculant la moyenne de 8 échantillon à chaque fois , je fais l'acquisition en continue donc je peux pas savoir combien d'itération pour la boucle for et quand je fais avec la boucle while j'ai seulement la derniers valeurs sur mon fichiers.
comment je peux faire cela ?
une autre question est ce que il y a une méthode pour libérer de la mémoire en cours d’exécution je fais les acquisition à 80kHz ce qui fait que je suis limité en terme de durée d'acquisition ?
Merci d'avance pour votre réponse
04-12-2024 06:24 AM - edited 04-12-2024 06:30 AM
Hi amel,
@ameletudiante99 wrote:
Hello, I am acquiring 4 parameters with the NI 6212 card, I want to do subsampling on the first 3 parameters that I want to acquire, I want to do this by calculating the average of 8 samples each time, I do the acquisition continues so I cannot know how many iterations for the for loop and when I do with the while loop I only have the last values on my files.
how can I do this?
You could use a loop to iterate of the waveforms, then manipulate the Y array of the waveforms (and their dt value).
LabVIEW comes with several "Decimate" functions: have you tried any of them?
@ameletudiante99 wrote:
another question is is there a method to free up memory while I am doing the acquisitions at 80kHz which means that I am limited in terms of acquisition duration?
I repeat my previous suggestion: don't collect data in memory, but save them to disk as soon as possible…
Could you please translate your messages to English? This is a worldwide forum, with English being the most-used language. Otherwise there is a French regional board…
04-12-2024 06:39 AM
Bonjour,
merci pour votre réponse oui j'ai essayer ça as bien fonctionner .
pour la mémoire normalement j'enregistre directement sur un fichier , je parle de la mémoire du tampon par ce que après quelque minute d'acquisition j'ai une erreur que j'ai pas assez de place sur le buffer
04-12-2024 06:40 AM
Good morning,
thank you for your answer yes I tried it worked well.
for the memory normally I record directly on a file, I am talking about the buffer memory because after a few minutes of acquisition I have an error that I do not have enough space on the buffer
Capture.PNG 49 KB
Add tags
04-12-2024 07:16 AM - edited 04-12-2024 07:23 AM
Hi amel,
@ameletudiante99 wrote:
for the memory normally I record directly on a file, I am talking about the buffer memory because after a few minutes of acquisition I have an error that I do not have enough space on the buffer.
Because you don't follow the recommendations for "higher speed" DAQmx acquisitions!
Explanation for this error: your loop iterates to slow to handle the DAQ data - because you read only a few samples per iteration. This way the samples slowly are collected in the (DAQmx internal) buffer until this buffer is full.
When reading larger amounts of samples at once you reduce the (DAQmx driver, file handling) overhead quite a lot, and so the DAQmx buffer doesn't fill up.
Generic suggestion: when you write about such errors you should ALWAYS provide the full error message along with the error number you get (most probably -200279 in your case)…
04-12-2024 09:13 AM
hi
I didn't know all this, thank you very much
how high speed acquisition can make me optimize the use of my memory I don't understand this point.
and you are right for the tdms files I used "daqmx Configure Logging TDMSvi" is there a way to have the data for each channel in a single file so that I can do a subsampling on the first 3 parameters?
amel
04-12-2024 10:06 AM
Hi amel,
@ameletudiante99 wrote:
you are right for the tdms files I used "daqmx Configure Logging TDMSvi" is there a way to have the data for each channel in a single file so that I can do a subsampling on the first 3 parameters?
Put all 4 channels into one DAQmx task!