Pb d'écriture d'un tableau dans un fichier binaire

Bonjour,
Je travaille sur un programme d’acquisition.
32 voies et jusqu’à 192 000 points par voies. Je dois enregistrer les données à chaque évènement dans un fichier binaire.
J’arrive à créer et écrire dans un fichier binaire, ce n’est pas là le problème.
Le soucis est que lorsque j’écris directement le tableau dans le fichier binaire, je me retrouve avec 2 mots de 16 bits supplémentaires
J’ai mis un exemple en fichier joint.
Il y a 2 tableau, un petit avec 4 données et un plus grand avec 24491 points.
Dans le fichier, j’ai une condition if avec un code qui fonctionne mais qui est lent, et un code qui est rapide mais qui m’introduit les points supplémentaires
En ce qui concerne le code qui est bon mais plus lent, j’indexe mon tableau et j’écris les valeurs une à une.
En ce qui concerne le code qui est mauvais mais rapide,  j’ai mon tableau que je rentre dans un bundle et j’écris le tout est une seule fois.
Alors dans le programme vous trouverez également deux valeurs x8888 qui sont des points de repères pour un programme d’analyse des données..
Si vous exécutez le code, vous avez deux fichier binaire. Ouvrez les avec un éditeur hexa et vous verrez qu’il y a des données en plus dans le code le plus rapide.
Contenu du fichier Bon mais lent à générer. (pour le petit tableau)
88 88 11 11 11 11 11 11 11 11 88 88
Contenu du fichier Pas Bon mais rapide à générer. (pour le petit tableau)
88 88 00 00 00 04 11 11 11 11 11 11 11 11 88 88
En faisant la différence entre les fichiers, on a les deux mots 0000 et 0004 en plus
Je ne sais pas expliquer pourquoi, mais je suis à la recherche d’un solution afin d’avoir un code rapide à exécuter car 32 voies à enregistrer et 192 000 points par voies, si je dois indexer chaque tableau, autant aller prendre le café.
Alors une des solutions serait de relire le fichier et de supprimer ces valeurs. Pour ce petit fichier, je suis ok, mais dans mon programme, j’écris d’autres valeurs que je mets soit avant soit après dans le bundle. J’aimerais trouver une autre solution.
Merci de votre aide
Résolu !
Accéder à la solution.
Pièces jointes :
write Binary format v8.5.vi ‏61 KB

Ok, je n'avais pas ouvert ton fichier.
Je pense que le problème vient plutot de la construction du cluster. Je suis même étonné que tu n'ais pas d'autres données propres au format Cluster.
As-tu essayé soit d'appeler 3 fois ta fonction d'écriture (1 fois avant pour la donnée 8888 d'initialisation, 1 fois pr le tableau, et 1 fois pr la donnée de fin) mais je pense que cette solution n'est pas très optimisée côté performance.
Ou sinon de modifier ton tableau en incluant tes données de début et fin directement dans le tableau avant de l'écrire dans le fichier?
Je regarde de mon côté également.
Cordialement,
Olivier L. | Certified LabVIEW Developer

Similar Messages

  • Problème pour écrire un mot de passe dans un fichier binaire.

    Bonjour,
    Je voudrais savoir s'il y a possibilité d'enregistrer un mot de passe (string) dans un fichier binaire.
    Je voudrais que mon utilisateur, click sur un bouton mais ne puisse accéder à un nouveau VI qu'en rentrant un mot de passe. De plus, l'utilisateur pourra une fois le VI accédé, modifier ce mot de passe. La sauvegarde de ce dernier doit se faire dans un fichier externe au programme et en binaire (ou protéger en lecture...).
    Merci pour toute l'aide possible.
    Merci, Seb.

    National Instruments Corporate n'a malheureusement pas les ressources nécessaires pour répondre aux questions posées en français. Cependant, ces questions seront redirigées vers le bureau français, National Instruments France.
    S'il vous plait contacter National Instruments France á
    Support Technique

  • Ecrire des nombres binaires dans un fichier texte

    Bonjour, je suis actuellement en stage, et je dois faire l'acquisition du signal d'un radar météo.
    Je récupère les données mais j'ai un problèmes au niveau de l'enregistrement dans un fichier texte.
    Je récupère un WordStatus (mot non signé de 16 bits) puis un tableau de 100 mots non signé 16 bits et enfin un Timetag sur 32 bits.
    Mon but est d'enregistrer le premier mot, suivis d'une tabulation, ensuite les 100 mots séparés par des tabulations et enfin le dernier mot (toujours avec une tabulation)
    J'arrive à écrire dans un fichier texte le tableau de 100 mots en utilisant le VI "Tableau en chaîne au format tableur" mais je n'arrive pas à convertir mes autres mot binaire en chaines pour pouvoir concaténer le tout (pour finir avec un "Ecrire dans un fichier texte".
    Pouvez-vous me donner des pistes ?
    je peux joindre un VI sur demande.
    J'espère avoir été clair.
    Merci d'avance.
    P.S. : Je travaille sous Labview 11.0.1.
    Résolu !
    Accéder à la solution.

    Bonjour et merci pour votre réponse.
    C'est vrai que j'ai oublié de préciser que je travaille avec des VI déja programmé livrés avec la carte d'acquisition (Excalibur) ; et que l'avion étant en maintenance actuellement, je ne peux pas faire de test en condition réelle. Je pourrais Jeudi prochain me rendre chez UniAir pour faire tourner le radar en mode test. Le protocole utilisé est l'ARINC 708.
    Il est vrai aussi que si je pouvais avoir accés directement à la trame originale, je pense que j'aurais moins de problème (j'y pensais hier soir ; impossible de dormir). Mais je ne pense pas avoir le niveau pour aller modifier les drivers. (cf VI : "Acquisition708-Vtest.vi")
    Ensuite, j'avais déja pensé à convertir ces mots en valeurs décimales (je n'aurais qu'a préciser mes formats d'enregistrements aux scientifiques qui voudront traiter les données post-acquisition.) J'ai d'ailleur appliqué vos conseils dans le VI "Exemple-Random.vi". Je me sert de ce vi pour faire des essais à partir d'un tableau remplis de valeurs aléatoire. J'y inclus aussi le traitement des pixels pour l'affichage des données (pour les curieux...)
    Lancer le programme et actionner Acquisition.
    Enfin, pour optimiser la vitesse (le signal est échantilloné a 1Mb), je commence à peine à regarder de plus près le vi "Ecrire dans un fichier binaire". C'est peut-être par la que je trouverais mon bonheur.
    Cordialement.
    Rémy, en stage au CNRS SAFIRE.
    Pièces jointes :
    Acquisition708-Vtest.vi ‏23 KB
    Exemple-Random.vi ‏433 KB

  • Enregistrer les données d'un graphe dans un fichier

    Bonjour,
    Je suis débutant dans LabView et j'aurais voulu savoir comment je pourrai faire pour enregistrer des données que je visualise sur un graphe dans un fichier binaire par exemple avec sa date et son heure ?
    Merci d'avance pour les future reponse.

    Alors j'ai fais comme tu m'avais dis mais le probleme c'est que dans le fichier binaire je ne voi ni la date ni l'heure et des truc bizaree et pas binaire....
    Voila mon cablage et ce que j'obtient :
    Fichier Binaire :
                       d   ºp  ºð  ¹   ºÈ  ¹   ºp  º   »   ºp  @Ÿ&€ºp  ºÈ  ºÈ  º   º   @Ÿ ¹   º       ºÈ  9   @žô€º   ºp  º   ºÈ  º   º   ºp  º   ºp  º   º   ºp  ¹   »   º   ºp  @Ÿ €º   »   º   ºð  º   º   ºp  ºp  º   º   º     ºÈ  ºp      ºÈ  ºð  ºÈ  »   9   ºð  º   ºð  ºp  º   @Ÿ ¹   ºp  º   º   º   @Ÿ €º   ºp  º   ºÈ  º   ºp  @Ÿ ºp  º   ºÈ  ¹   º   @žò ºð  º   º   ºð      º   º   ºð  ºÈ  ºp  º   ºp  º   ºp  º   ºp 
    Merci de ta patience eet de tes reponse

  • LabView - Enregistrer dans un fichier les données résultants d'un tableau

     Bonjour,
    dans le cadre d'un projet, j'ai réalisé l'affichage des différentes données obtenues à partir d'une station météo. Ces données sont affichées à partir d'un fichier texte, dont la ligne correspondante à toutes les données est mise à jour toutes les secondes. Avec LabView, j'ai réussi à séparer les différentes données et les afficher sur des indicateurs et sur un graphique.
    Maintenant, je souhaiterais que les différentes donneés afficheés sur le graphe xy soient enregistrées dans un fichier texte, afin d'en garder une trace une fois LabView fermé.
    J'ai trouvé et essayé d'utiliser la fonction "Ecrire dans un fichier texte", mais la source est de type tableau 1D de cluster de 2 éléments et le récepteur est de type chaîne. J'ai essayé de convertir le tableau en chaîne mais en vain.
    Je suscite donc votre problème afin de trouver une solution à mon problème, ce qui me permettrais de cloturer définitivement mon projet.
    Je joins mon VI ainsi qu'un imprime écran.
    Cordialement, Frédérick.
    Pièces jointes :
    affichage données modifié.vi ‏2219 KB
    Cablage projet.PNG ‏90 KB

    Bonsoir,
    Ci-joint un exemple qui pourra d'aider.
    Bon courage.
    Philippe B.
    Certified Associate Developer / Dépt Moyens d'essais
    www.ingenia-system.com
    Pièces jointes :
    Essai_Save_Txt.vi ‏14 KB

  • Comment écrire du texte dans un tableau de type fichier tableurs?

    comment écrire du texte dans un tableau de type fichier tableurs?

    Denzel,
    Voici un exemple répondant à votre besoin.
    Raphael TILLET
    Ingénieur Application
    NI FRANCE
    Cordialement,
    Raphael T
    Attachments:
    Write_to_Excel_File.vi ‏40 KB

  • NI teststand: affichage tableau dans le rapport

    Bonjour,
    Suite à des tests et des calculs, j'ai regroupé dans un tableau des temps de transmission par commande (image 1) j'aimerais afficher ce tableau dans un rapport TestStand après une séquence de test, cependant, l'affichage de ce tableau n'est vraiment pas esthétique ni pratique à lire (image 2), et encore moins lorsque j'ouvre le rapport xml sur internet explorer (image 3)
    J'ai cherché plusieurs solutions dans le forum mais rien ne fonctionne. Je voudrais que mon tableau s'affiche comme la première image.
    Quelqu'un pourrait m'aider svp ?
    Merci
    Mehdi
    Pièces jointes :
    tableau_tr.PNG ‏6 KB
    tableau_teststand.PNG ‏9 KB
    tableau_explorer.PNG ‏10 KB

    Bonjour,
    Ce temps permet à Teststand de se lancer. Il est donc normal de ne pas récupérer la référence par le GetEngine s'il n'existe pas encore
    A propos des fermetures de références : il faut les fermer une fois que vous n'en avez plus besoin. Ainsi, si vous avez créé une référence et que vous l'utilisez avec plusieurs noeuds de méthodes/propriétés, ne la fermez qu'à la fin.
    Cordialement,
    Mathieu P. | Certified LabVIEW Associate Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées techniques : des fondamentaux aux dernières technologies pour la mesure et le contrôle/comm...

  • Problème de chiffres significatifs lors de l'écriture dans un fichier CSV

    Bonjour,
    Je souhaite écrire des données précises (au centième ou au millième près) dans un fichier csv. Pour cela j'utilise la fonction 'écrire dans un fichier texte'. Lorsque que j'écris dans un fichier *.txt, les données sont précises au millième, mais lorsque j'écris dans mon fichier *.csv, les données sont tronquées à une décimale. 
    La fonction 'écrire dans un fichier texte' n'ayant pas d'options pour les chiffres significatifs, est-ce dû au fichier csv? Y-a-t-il un moyen de lui faire passer automatiquement le nombre de chiffres à afficher après la virgule?
    Merci,

    En principe l'extension du fichier n'a rien à voir. Essaie d'ouvrir ton fichier avec le bloc-note, est-ce toujours à 1 décimale?
    Pour écrire un CSV, il vaut peut-être mieux utiliser la fonction "Ecrire dans un fichier tableur". Avec cette fonction tu as une entrée "Format", qui vaut par défaut %.3f . Le nombre de décimales, c'est le "3" du format.

  • Lire et écrire en même temps dans un fichier excel

    Bonjour.
    J'ai un VI dans lequel j'arrive ouvrir Excel et à écrire dans dans un fichier.
    Mon fichier excel exécute les calculs, et je voudrais relire les colonnes de ce fichier ou sont effectués les calculs dans un tableau sur ma face avant.
    Pour info la fonction écriture (dans mon cas, écriture sur 2 fichiers) fonctionne très bien dans d'autres VI que j'utilise au travail.
    J'ai essayé de faire la fonction lecture, mais elle ne fonctionne pas : j'ai l'impression que mon VI n'arrive pas à Ecrire ET Lire le fichier dans la même boucle...
    Quelqu'un aurait-il une suggestion pour mon souçi?
    Cordialement,
    Kévin.
    PS: Si le diagramme parait fouilli c'est parce que j'ai essayé de le compacter pour avoir toute la visu sur mon écran de PC...
    Cordialement,
    Kévin Paul-Joseph
    Pièces jointes :
    test enregistrement 2 fichiers en meme temps.vi ‏138 KB

    Voilà le VI en labview 10.
    Cordialement,
    Kévin Paul-Joseph
    Pièces jointes :
    test enregistrement 2 fichiers en meme temps.vi ‏79 KB

  • Nombre echantillon dans un fichier

    Bonjour,
    Je dois actuellement faire l acquisition d un signal continu et l enregistrer dans un fichier TDMS. Je ne me limite qu a 40 000 points par fichier TDMS pour qu il puisse etre lu par Excel. J aimerais savoir comment je pourrais connaitre en temps reel le nombre de point dans mon fichier TDMS.
    Merci de votre aide
    Romaric GIBERT

    Bonjour,
    Merci d'avoir posté votre question sur les forums de National Instruments.
    Il n'y a, à ma connaissance, aucune fonction TDMS vous renvoyant le nombre de points contenus dans un fichier TDMS.
    Je pense que la solution la plus simple serait de tenir un compte du nombre de point que vous enregistrez dans le fichier, au moment de l'écriture, à l'aide par exemple d'un compteur - via un registre à décalage ou un sous VI FGV.
    Si vous écrivez vos données point à point, incrémentez le compteur à chaque fois que vous inscrivez un point de donnée. Si vous les écrivez par paquets, récupérez la taille du tableau et ajoutez cette valeur au compteur à chaque écriture.
    J'espère que ces informations vous aideront.
    Bien cordialement,
    Guillaume H.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense

  • Lire des donées provenant d'un pic via une liaison RS232 et écrire dans un fichier xls

    Bonjour à tous,
    Le but de mon projet est de lire et d'enregistrer des données provenant d'un microcontroleur pic. En fait le pic enregistre des données et les stocke dans une mémoire flash. Ce que j'aimerais faire c'est récupérer les données stockées dans la mémoire, les afficher sur un graphe sous Labview et les enregistrer dans un fichier excel. La communication entre le pic et le pc se faisant par RS232.
    Merci par avance pour vos suggestions.
    Bien cordialement.
    Philippe

    Bonjour Philippe,
    Ici tu es sur le  forum en anglais. Essaie de poster en anglais
    Sinon voici le forum francais où tu auras plus de chance que l'on te réponde.
    Pour ce qui est de ton projet, je te conseille de regarder vers les fonctions VISA pour ce qui  est de la communication RS232.
    Il faut récuperer les données pour les mettres sous forme de tableau par exemple.
    Pour l'affichage des valeurs et l'enregistrement en tableau se fait assez simplement. Il y a une fonction Write to a spreadsheet file (dans files I/O) qui permet d'écrire directement une tableau 1D ou 2D.
    Cordialement,
    Simon D.
    CLA | Certified LabVIEW Architect
    CTA | Certified TestStand Architect

  • Ecriture dans un fichier texte, comment renommer chaque colonnes du fichier

    Bonjour à tous,
    Je développe actuellement un vi qui réalise de l'acquisition et de l'ecriture de données au sein d'un fichier texte.J'utilise le vi express ecrire dans un fichier.Tous ceci fonctionne à merveille, mais j'aimerai personnaliser l'écriture de ces données, notemment en nommant chaque colonnes de ce dernier individuellement en fonction du signal auxquel elles correspondent.
    Actuellemnt, le fichier généré nomme chaque colonne par "untitled", "untitled 1".....
    Pouriez-vous me renseigner à ce propos?
    Merci.

    biensur,
    LabVIEW Measurement   
    Writer_Version    2
    Reader_Version    2
    Separator    Tab
    Decimal_Separator    .
    Multi_Headings    No
    X_Columns    No
    Time_Pref    Absolute
    Operator    Mathieu
    Date    2010/06/05
    Time    09:30:18.125
    ***End_of_Header***   
    Channels    6                       
    Samples    1    1    1    1    1    1   
    Date    2010/06/05    2010/06/05    2010/06/05    2010/06/05    2010/06/05    2010/06/05   
    Time    09:30:31.15625    09:30:31.15625    09:30:31.15625    09:30:31.15625    09:30:31.15625    09:30:31.15625   
    X_Dimension    Time    Time    Time    Time    Time    Time   
    X0    0.0000000000000000E+0    0.0000000000000000E+0    0.0000000000000000E+0    0.0000000000000000E+0    0.0000000000000000E+0    0.0000000000000000E+0   
    Delta_X    1.000000    1.000000    1.000000    1.000000    1.000000    1.000000   
    ***End_of_Header***                           
    X_Value    Untitled    Untitled 1    Untitled 2    Untitled 3    Untitled 4    Untitled 5    Comment
        -2.607500    3.292500    240.000000    50100.000000    230.500000    228.630000
        2.410000    3.282500    50100.000000    243.030000    240.620000
        2.475000    2.960000    50100.000000    242.560000    240.120000
        2.638750    2.860000    50100.000000    243.170000    240.670000
    voila a quoi il ressemble.Comme précisé dans ma question, je voudrai modifier les "untitled" par le nom des signaux exemple température 1, champs magnétique....etc.
    Merci.

  • Affichage de temps erroné dans un fichier txt

    Bonjour,
    Voici mon souci, j'écris un tableau de données de mes différentes voies dans un fichier txt. Lors de la lecture de ce fichier avec un vi, l'affichage de l'echelle de temps est erronée, hors je ne vois pas d'info de temps dans mon fichier txt, cela doit venir de là. Mais comment mettre l'info de temps dans le fichier de txt pouvant permettre l'affichage identique à l'acquisition? A savoir que j'arrive à mettre une colonne de date et heure  mais cela ne fonctionne qu'a basse fréquence et comment traiter ces données lors de la relecture pour avoir le bon temps sur mon graphe déroulant?
    Merci pour les solutions et exemples

    L'exemple "Read from text file.vi" est fourni avec votre version de LabVIEW, par contre le lien que je vous ai mis propose un certain nombre d'exemple certain en LV 8, d'autre en LV 7 et certain en LV 6.
    N'hésitez pas à mettre à jour  votre version de LabVIEW, ou à indiquer sur le forum qu'elle exemple (avec le lien) souhaitez vous et pour qu'elle version.
    Cordialement,
    Christophe S.
    FSE East of France І Certified LabVIEW Associate Developer І National Instruments France

  • Lecture dans un fichier de configuration

    Bonjour,
    Je viens vous demander des conseils. J'ai un fichier de configuration (en ci-joint), j'ai dèja une version qui fonctionne bien mais je voudrai améliorer un peu (car trop de variable locale), pourriez-vous me dire si je peux créer une VGF pour lire le fichier et ensuite les afficher par la suite peut-être de modifier les paramètres et ensuite écrire dans le fichier de configuration ? Je ne sais pas si une VGF est bien adaptée pour lire/écrir/afficher les paramètres de configurations? Merci d'avance.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    fichier config.txt ‏1 KB

    Bonjour,
    J'ai ouvert votre vi par curiosité, le fichier de config est un peu plus précis (ci-joint la copie) de ce fait je pense plutôt lire d'abord le fichier (avec la corection des coefficients et l'offsets) et stocker des datas (un tableau de cluster de caractère, plus facile par la suite de les afficher directement sur FA) dans le registre à décalage du VGF et par la suite je peux faire ce que je veux. Mais hélas comme d'habitude je rencontre toujours des soucis.         
    Pièces jointes :
    Config-HT.txt ‏1 KB
    lecture-fichier-config.JPG ‏153 KB

  • Sélection d'une portion de texte dans un fichier .txt

    Bonjour à tous,
    Je travaille actuellement avec LabVIEW 2012, et j'aimerais si possible récupérer une portion de données dans un fichier .txt. Cette portion correspond aux fréquences que je souhaite traiter se situant entre les mots "begin" et "end". Donc ce que je veux faire, c'est récupérer uniquement ces nombres, j'ai commencer à effectuer une ébauche du code, et je pense être sur la bonne voie, c'est à dire que je stock les données dans un tableau, et ensuite je pense qu'il faut que j'utilise un registre à décalage dans une boucle for, et dès que je détecte le mot begin je commence à stocker les données après ce mot jusqu'à atteindre le mot end. Si vous avez une idée je suis preneur,
    Je vous remercie d'avance,
    Cordialement,
    Florian
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Fréquences de Test.txt ‏1 KB
    selection_des_donnees.PNG ‏14 KB

    Bonjour Florian,
    Voilà qui devrait résoudre ton problème... à insérer juste après lecture du fichier texte!
    EDIT - En version 2012 (oups):
    Francis M | Voir mon profil
    Certified LabVIEW Developer

Maybe you are looking for

  • What's Wrong with My Computer?

    I have a G5 desktop computer, I believe it's referred to as a "Power Mac." My mom purchased it some years ago, I think in late 2005 shortly after this particular model was on the market. Info is: Version 10.5.8 Processor 4 x 2.5 GHz PowerPC G5 Memory

  • I can't open my Nikon D7100 RAW image in Photoshop CS5

    Q I am having difficulty downloading Camera Raw 6.7 onto Photoshop CS5 Please advise

  • XMonad move windows with title X to workspace

    I want to automatically assign windows of Intellij Idea projects to specific workspaces in xmonad. I tried the following in my xmonad.hs: myManageHook = composeAll . concat $                   [  [ fmap (c `isInfixOf`) title  --> doShift "5:lp" | c <

  • Problem with jConnect-6_05 driver

    Hello, I have problem calling stored procedures with Sybase jConnect-6_05 driver. Everything is working fine when I use jdbc odbc bridge driver. Has someone with more experience succeed to call a SP with this driver ? Thanks

  • Will Mac Min Work with 26" Samsung HDTV?

    Hey all, Thinking of getting a Mac Mini, just wondering if i simply plugged it in via HDMI or VGA to my 26" Samsung HDTV, will it work? And what would the res. be? Thx