Discussions au sujet de NI LabVIEW

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

Acquisition sur 24 voies à 2.5MHz + Visualisation

Bonjour,

 

J'aimerais faire une acquisition sur 24 voies avec pour chaque voies une fréquence d'acquisition à 2.5MHz. 

Le but étant d'enregistrer cette acquisition dans plusieurs fichiers TDMS (découpage de mon acquisition en plusieurs fichier d'une taille pré-définie) et de pouvoir visualiser les signaux au cours de l'acquisition. L'enregistrement de l'acquisition doit resté prioritaire sur la visualisation, peut-on prioriser une boucle plutôt qu'une autre par exemple ?

 

Mon problème est lorsque je mets en place la visualisation, l'acquisition rentre en erreur (après 10 secondes) et l'enregistrement ne se fait plus.

 

======

Error -200279 occurred at main.vi

Possible reason(s):

The application is not able to keep up with the hardware acquisition.

Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem.

Property: RelativeTo
Corresponding Value: Current Read Position
Property: Offset
Corresponding Value: 0

Task Name: Task

======

 

Pour plus de compréhension sur ce que je fais actuellement, je vous mets des captures :

 

Etape 1 : Initialisation de ma "task" avec les voies active

 etape1.PNG

 

 

Etape 2 : Boucle d'acquisition , utilisation d'une file d'attente (en Lossy)

 etape2.PNG

 

 

J'espère que vous pourrez m'aider et m'orienter vers une solution adéquate.

 

Cordialement,

 

 

Tout télécharger
0 Compliments
Message 1 sur 4
2 760 Visites

Bonjour Sylvain,

Peux-tu nous dire quel matériel/carte réalise l'acquisition ?

Acquérir 24 voies à une fréquence d'échantillonage de 2.5MHz me semble très important. La carte d'acquisition doit être capable de supporter 24*2.5 = 60 000 kéch./s. L'erreur vient peut être de là. Essaie de diminuer (nettement) cette fréquence pour voir si l'erreur disparaît.

 

Pour "prioriser une boucle", je pense que tu peux cadencer ta boucle d'acquisition et ne pas afficher toutes tes valeurs. Par exemple, ne garder qu'une valeur sur 1000. Les afficheurs graphiques sont très gourmands en ressources, il faut les soulager.

 

Bon courage

David

0 Compliments
Message 2 sur 4
2 701 Visites

Merci Yddet pour ta réponse.

 

L'acquisition se fait sur 3 cartes "NI PXI-6133" chacune ayant 8 voies. A priori l'acquisition tient la route et s'enregistre bien dans les fichiers de sorties.

 

C'est quand j'active la visualisation que cela pose problème.

Pour cadencer une boucle, je dois seulement mettre un "Wait", c'est bien cela ?

Mais si je fais cela dans la boucle d'acquisition, ne vais-je pas perdre de l'acquisition ?

 

 

Autre point, j'avais espéré par la suite, garder dans mon graphique les 20 dernières secondes de l'acquisition, mais cela semble compromis au vu de la quantité d'informations à garder en mémoire... 😕

 

 

 

0 Compliments
Message 3 sur 4
2 686 Visites

Oups, effectivement je voulais dire


Pour "prioriser une boucle", je pense que tu peux cadencer ta boucle de visualisation et ne pas afficher toutes tes valeurs. Par exemple, ne garder qu'une valeur sur 1000.

SI ton graphique n'est là que pour superviser :

Tu peux utiliser un wait ou un "wait until next ms multiple". Mais ce n'est valable que si tu ne gardes que quelques données de ta file d'attente. Tu peux faire ça :

      - en cadencant ta boucle de visualisation avec un wait ou "wait until next ms multiple" et en n'affichant que le 1er ou dernier élement de ta file d'attente pour ensuite la vider. Solution la plus simple

      - en ne lisant que certains échantillons et les transmettre à ton graph comme tu le fais déjà avec la file d'attente. Cadencer ta visualisatoin. Solution plus optimisée

 

Il y a d'autres solutions mais le but est vraiment de réduire le volume de données à afficher sur ton graph.

Et si tu cadences ta visualisation, déplace ton calcul du temps écoulé dedans.

 

Si tu te sers de ton graphique pour analyser en détail tes mesures et que tu as vraiment besoin d'afficher toutes les données... Je passe la main à un expert. Je suis moi aussi curieux d'une solution

 

Pour ta question :


Sylvain1 a écrit :

Autre point, j'avais espéré par la suite, garder dans mon graphique les 20 dernières secondes de l'acquisition, mais cela semble compromis au vu de la quantité d'informations à garder en mémoire... 😕



à la fin de ton acquisition, tu pourrais lire tes 20 dernières secondes à partir de ton fichier de sauvegarde. Ca n'influerai pas sur ta vitesse d'acquisition. Mais ça fait tout de même énormément de données à traiter et afficher.

 

David

0 Compliments
Message 4 sur 4
2 683 Visites