Discussions au sujet de NI LabVIEW

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

lecture TDMS error (4)

Bonjour,

 

je souhaiterais lire un nombre fini d'éléments d'un fichier TDMS toutes les X ms. Pour çà j'utilise le noeud de lecture de fichiers TDMS avec les entrées "offset" et "nombre" dans une boucle "while". Le problème c'est qu'il lit le 1er "paquet" d'éléments mais au 2eme tour de la boucle, il renvoie une erreur (4) et l'EOF. J'ai beau chercher , je ne trouve pas soluion, même sur le net. Est ce que quelqu'un aurait une idée ?

 

En pièce jointe le VI

 

Merci d'avance

 

Vincent

0 Compliments
Message 1 sur 4
3 702 Visites

Bonjour Vincent_meca.

 

C'est tout simplement parce que tu as atteint la fin du fichier (EOF end of file). Tu lui demande de lire 1280 points avec un offset de n*1280 ce qui fonctionne jusqu'à ce que tu atteigne un point du fichier ou il n'y a plus 1280 point restant. D’où l'erreur 4.

Un exemple: j'ai 20000 points dans mon fichier.

-Première itération j'ai un offset de 0*12800=0. Je lis les 12800 premiers points. Tout va bien.

-2nd itération j'ai un offset de 1*12800=12800 et je lis 12800 points or il n'y a que 7200 points à lire. La fonction renvoie l'erreur 4. 

Il fasse un apprentissage du nombre de points du channel que tu utilises avec  la fonction TDMS Get Properties pour obtenir la propriété  "NI_ChannelLength" et que ttu ajuste le nombre de points à lire quand tu atteins la fin du fichier.

 

Bon courage

Sabri JATLAOUI - Certified LabVIEW Architect - Certified LabVIEW Developer
0 Compliments
Message 2 sur 4
3 674 Visites

Bonjour Vincent,

 

Il suffit de reboucler également la sortie "nom du groupe en sortie" à "nom du groupe en entrée" via un registre à décalage pour résoudre cette peroblématique.

 

TDMS.PNG

Expliquation: http://digital.ni.com/public.nsf/allkb/D670CABD5548BBBC8625748A00529190?OpenDocument

 

Cordialement,

 

Jovan N. - Application Engineering
0 Compliments
Message 3 sur 4
3 669 Visites

Bonjour,

 

merci pour vos réponses. Finalement j'ai trouvé la solution en utilisant la fonction "TDMS - Définir la position de la prochaine lecture" dans le groupe "TDMS Avancé", et çà marche bien.

 

A toute fin utile, voici le VI

 

Cordialement,

 

Vincent

0 Compliments
Message 4 sur 4
3 664 Visites