le 04-22-2016 09:25 AM
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
le 04-25-2016 04:07 AM
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
le 04-25-2016 04:28 AM
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.
Expliquation: http://digital.ni.com/public.nsf/allkb/D670CABD5548BBBC8625748A00529190?OpenDocument
Cordialement,
le 04-25-2016 05:04 AM
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