Discussions au sujet de NI LabVIEW

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

Synchroniser les acquistions

Bonjour,

J'aimerai synchroniser l'acquisition de 2 périphériques : avec DAQmx et un PORT série. En ce qui concerne l'acquisition pour le DAQmx (c'est du classique, Fe=1000 éch/s et je prend 1000éch/voie dont tous les secondes j'ai un échantillons. L'autre périphérique est un port USB paramétrer en 38400 bauds pour récupérer le déplacement. J'arrive bien à récupérer les informations de la carte DAQmx en revanche comment enregistrer tous les secondes la mesure du périphérique DAQmx et le déplacement en même temps dans un  fichier ? Merci d'avance de vos conseils.

 

Configuration DAQmx en continue. 

DAQmx CONF.jpg

Probablement qu'il faut passer en acquisition avec un nombre d'échantillon fini pour pouvoir acquérir les deux mesures en même temps.

 

     

0 Compliments
Message 1 sur 6
2 403 Visites

Quel est le périphérique DAQmx? je demande pour savoir si il peut être triggé

Et même question pour l'autre périphérique?

peut il être configuré pour envoyer ses mesures à fréquence fixe? peut il est triggé?

 

Si les deux peuvent être triggés, c'est l'idéal, tu paramètres le périphérique DAQmx pour donner 1000 ech à chaque trig et tu envoie un trigger par seconde.

Et tu envoies le même trigger sur l'autre périphérique.

 

Si ton autre périphérique n'a pas d'entrée trigger (ce qui est le cas le plus probable), ta synchronisation sera forcément moins précise.

Mais ça aurait du être ma première question, quelle précision temporelle souhaites tu atteindre sur ta synchronisation des 2 signaux?


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Compliments
Message 2 sur 6
2 397 Visites

Salut,

Pour le PORT série pour prendre le déplacement il n'y a pas de souci, c'est à la demande : On envoie une commande via le PORT série et on fait une lecture pour savoir quel est le déplacement, donc on peut facilement concaténer avec l'autre réponse venant du DAQmx. Le DAQmx c'est du NI-USB 6211, effectivement je ne sais pas encore comment le Trigger. Je ne sais pas si on peut effectuer 1000 éch avec Fe=1000 ech/s et ensuite ne prend uniquement la première échantillon pour concaténer avec la réponse du PORT série afin de les enregistrer.....     

0 Compliments
Message 3 sur 6
2 378 Visites

Désolé, dans mon premier post c'était déjà en acquisition finie et non en continue. Je configure le DAQmx en acquisition finie d'échantillon et je mets une tempo 1000 ms à chaque tour de boucle et je fais une moyenne de 1000 échantillons et je rajoute l'horodatage du PC et non la carte DAQ et finalement ce n'est pas précis à 1/100 de seconde mais cela reste correcte. 

 

      LOG.jpg

J'ai une autre question, que se passe-t-il si on met beaucoup de temps pour enregistrer les datas est ce que les données venant du périphérique DAQmx ne risquent-t-ils pas de les écraser les anciennes valeurs avant d'avoir eu le temps d'enregistrer ? Dans ce cas il faut mieux lire plus vite que ne génère les datas, et aussi ignorer les erreurs venant du DAQmx si jamais ce cas se produit.    

0 Compliments
Message 4 sur 6
2 368 Visites

Bonjour, 

Oui en effet, si l'écriture dans le fichier est trop lent, alors l'éxécution de la boucle while est plus lente et la lecture du buffer est plus lente: il y a un risque d'overflow dans le buffer du DAQ. Vous avez plusieurs possibilités pour éviter ce problème. Puisque vous êtes en mode continue, le nombre d'échantillons définie en fait la taille du buffer (entrée 'samples per channel' dans le VI 'DAQmxTiming.vi'). Vous pouvez augmenter la taille du buffer pour éviter un overflow. 

Je vous invite à lire cet article: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019KTeSAM&l=fr-FR

Cordialement, 
Alexandra Falkiner Andrews
Ingénieur Support Technique, National Instrument. 

0 Compliments
Message 5 sur 6
2 246 Visites

Bonjour,

Merci pour la réponse, mais dans l'article "knowledge....."

Wait Time.jpg 

 

Je ne vois pas trop comment résoudre overflow en mettant un Wait (ms) dans la boucle à moins que vous avez diminuer nb sample per channel pour pouvoir effectuer une lecture plus vite ? Par ailleurs dans mon cas

 

DAQmx CONF.jpg

 

J'ai qu'une seule voie à enregistrer avec tous les secondes j'ai 1000 échantillons et le PC a 4 cœurs avec une vitesse disons 10 ms pour la boucle While soit 100 fois plus vite que le nombre d'échantillons disponible et faire un enregistrement (car j'ai supprimé le Graphe déroulant). Ce n'est juste un VI de test rapide pour pouvoir regarder les valeurs acquisitions et comparer aux résultats attendus mais en réalité bien sur qu'il faut séparer les 3 boucles (Acquisition, Enregistrement et Affichage). 

 

Cordialement

 

 

 

0 Compliments
Message 6 sur 6
2 235 Visites