Discussions au sujet de NI LabVIEW

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

Extraire une partie d'un buffer en acquistion

Résolu !
Accéder à la solution

Bonjour à tous,

Je fais l'acquisition d'un inclinomètre à l'aide des outils VISA.
J'envoi une commande et ensuite je récupère avec VISA Read, un buffer qui se remplit au fur et à mesure de l'acquisition.
La période entre chaque nouvelle ligne est de 20 ms. C'est très rapide et je ne peux pas le changer.
Par exemple, voici mon buffer en sortie:

$REM:Period!
$PER0:20!
$RTD:012;46;0000;c5b0;0000;010a!
$RTD:012;46;0000;c5b0;0000;010a!
$RTD:012;46;0000;c5b0;0000;010a!
$RTD:012;46;0000;c5b0;0000;010a!
...

Comment puis-je extraire de ce buffer qui évolue au fil du temps, par exemple 1 ligne sur 10?
Merci d'avance.

0 Compliments
Message 1 sur 7
3 382 Visites

Salut,

 

La réponse est dans la question : tu prends une ligne sur X.

A chaque nouvelle ligne tu incréments un compteur, puis tu fais le modulo X de ce compteur, si le résultat est 0 alors tu utilises la ligne lue.

 

Modulo.png

 

ps : je dis "égale à 0", mais ça pourrait être n'importe quelle autre valeur, à toi de choisir.

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

0 Compliments
Message 2 sur 7
3 364 Visites

Merci pour ton aide. Mais je ne vois pas trop comment l'intégrer à mon vi d'acquisition.

 

0 Compliments
Message 3 sur 7
3 358 Visites

Si j'ai bien compris ton souci : tu veux afficher une ligne sur X dans ton indicateur chaîne ?

Si c'est le cas, dans ta boucle while, tu lis ton buffer, tu comptes le nombre de lignes que tu as dedans. Tu ne prends que les 1/X lignes voulues, puis tu les ajoutes à ton indicateur chaîne.

La détection d'une ligne peut se faire par le caractère fin de ligne (s'il y en a) ou par le "!" qui semble être récurrent à chaque fois.

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

0 Compliments
Message 4 sur 7
3 348 Visites

Le vi ci-dessus est celui que j'utilise pour l'acquisition. L'indicateur chaine affiche l'acquisition en cours.

Je souhaiterais pouvoir extraire du buffer une ligne sur 10 durant l'acquisition.

 

C'est au niveau du comptage de lignes que je bloque. Le caractère "!" effectivement est récurrent.

Toutes les lignes commencent par $RTD: et se finisse par "!".

 

0 Compliments
Message 5 sur 7
3 345 Visites
Solution
Accepté par l'auteur du sujet Marcelito

Voilà un snippet en 2015.

C'est une idée (non testée, je te laisse cette phase) à mettre dans ton VI.

Le principe est de trouver chaque chaîne d'une ligne complète, si c'est le cas, l'ajouter à la chaîne (selon la valeur du modulo), sinon attendre la suite de la chaîne jusqu'à avoir une ligne RTD complète, etc etc.

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

Message 6 sur 7
3 340 Visites

Merci beaucoup. Je vais regarder cela en détails

0 Compliments
Message 7 sur 7
3 327 Visites