Discussions au sujet de NI LabVIEW

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

Changer de fichier excel au bout d'un nombre d'enregistrement défini

Résolu !
Accéder à la solution

Bonjour à tous,

 

Voici mon problème, j'arrive très bien à enregistrer des données sur un fichier excel à l'aide du VI Express "Écrire dans un fichier de mesure".

Je voudrais maintenant pouvoir définir le nombre de données/lignes à écrire puis une fois ce nombre de lignes saisie, je voudrais continuer d'écrire mes données dans un fichier avec le même nom mais suivi d'un nombre incrémenté. 

 

J'ai vu qu'il y avait cette option dans le VI Express mais on ne peut pas venir définir le nombre d'échantillon par une commande et on n'a plus accès à l'ouverture d'une boite de dialogue si le chemin n'est pas spécifié.

 

J'ai donc essayé quelques petites choses. J'arrive à enregistrer mes données dans un fichier puis une fois le nom d'échantillon saisi, un autre fichier avec le même nom mais incrémenté et ainsi de suite jusqu'à l'arrêt du programme.

 

Cependant, je n'ai pas accès au nombre d'échantillon à écrire à l'aide d'une commande, je dois le saisir dans le VI Express. De plus, j'ai à chaque fois un document blanc qui n'est pas au format excel qui se créé en même temps que le premier Excel avec le nom donné dans la boite de dialogue.

 

Je pense que je vais devoir m'abstenir d'utiliser le VI Express mais je suis toujours un peu perdu entre le CSV, TDMS, HTML, ActiveX et toutes ces façons de créer un fichier excel.

 

Pourriez-vous me guider dans ma tâche?

 

PS : je joints mon bout de code que j'ai bidouillé, rien de grandiose et surement déjà rempli d'erreur.

 

Merci et bonne soirée.

 

 

Cordialement,

0 Compliments
Message 1 sur 10
3 353 Visites

Bonjour,


Il te faut travailler au niveau de la dimension de ton tableau de données en entrées.

Tu vérifies sa taille, et si la somme de sa taille + Taille donnée écrite précédemment est supérieure à ta valeur, tu tronques le tableau en 2, et tu mets le reste dans un nouveau fichier.

 

Pourrais tu enregistrer ton code dans une version antérieure LV 2011 idéalement, mini 2014.

(Fichier -> Enregistrer dans une version précédente).

 

Cdt,
Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
Message 2 sur 10
3 309 Visites

Bonjour,

 

Merci pour votre réponse. Je vais travailler les points dont vous m'avez parlé et reviendrais avec le résultat de mes essais.

 

Je joins mon petit programme en LV2013, le VI Express a l'air d'être incompatible avec les versions plus anciennes. Ce programme me permet d'enregistrer en temps réel 10 données dans un fichier Excel que je créé à l'aide d'une boite de dialogue, puis il continue d'enregistrer les données dans un fichier avec le même nom mais incrémenté (Nom002), pour 10 données, puis ainsi de suite jusqu'à l'arrêt du programme.

 

Ce qui me gêne dans mon programme est la nécessité de régler le nombre de données enregistrées par fichier dans le VI Express lui-même (et non à l'aide d'une commande) et la création d'un fichier blanc au moment de la création de mon premier ficher Excel.

Je voudrais aussi commencer à éviter les VI Express pour plus de flexibilité et comprendre tout ce qui se réalise dans mon diagramme, le VI Express étant pour moi une boite noire complexe/puissante.

 

Cordialement,

0 Compliments
Message 3 sur 10
3 299 Visites

Salut cyprien11,

 

Ton programme était pas mal, et très élégant car très court !

D'autre part, j'encourage complètement ton initiative d'éviter les VI Express... Je n'ai jamais vraiment aimé ces boites simplistes, qui ne conviennent à la limite que pour un usage de LabVIEW très ponctuel.

 

Pour ton problème, je n'ai pas résisté : j'ai créé un petit VI, avec quelques commentaires, qui répond à ton cahier des charges. Le VI à lancer est le Main_appli_excel_new.vi.

Il y a plein d'autres façons de faire évidemment, mais ça te donnera une base pour démarrer sans VI Express !

Bilsix.
Message 4 sur 10
3 281 Visites

Bonjour Bilsix,

 

Merci d'avoir pris de votre temps pour me fournir quelque chose d'aussi complet.

Malheureusement je ne peux pas lancer le Run, je n'ai accès au NI_ReportGenerationToolkit semble-t-il.

Je vais cependant m'en inspirer en essayant de franchir la barre du CSV ou ActiveX.

 

Merci encore et bonne soirée.

 

Cordialement,

 

 

0 Compliments
Message 5 sur 10
3 275 Visites

Salut Cyprien11,

je te file un petit Vi qui crée un fichier Excel, y place un tableau (de Int), puis referme le fichier Excel, le tout utilisant des fonctions ActiveX.
Les fonctions ActiveX ne sont pas documentées dans LV, mais bien dans Excel, ou plutôt dans VBA qui accompagne Excel pour les macros.LV utilise les même fonctions avec les même arguments, donc ce n'est pas trop difficile de trouver de quoi se documenter de cette manière.
Tu pourrais simplement utiliser mon Vi comme sous-vi du tiens, tu n'aurais qu'à gérer les tableaux successifs à sauver et les noms de fichiers Excel, ça ne devrait pas être insurmontable 🙂
P.I.: Je suis toujours sous LV 2014.

Message 6 sur 10
3 249 Visites

J'ai omis de te mettre un sous-vi qui accompagne, le voici, il est destiné à calculer la lettre de la colonne dans la feuille Excel en fonction de la taille du tableau à y insérer (ne pas dépasser la lettre Z, sinon bug 😉 )

0 Compliments
Message 7 sur 10
3 244 Visites

Bonjour, 

 

Merci pour votre aide, j'avais déjà vu ce que vous faisiez lors de mes recherches. Je vais m'y plonger un peu plus, à premier abord j'avais l'impression de m'être le nez dans quelque chose de complexe.

 

Je n'ai finalement pas encore eu le temps de repasser assez de temps sur mon sujet, on m'a demandé mercredi de discuter avec une machine qui sort de mon domaine, j'ai quelques difficultés à comprendre toute sa puissance (spectro UV).

Mais je pourrais revenir sur mon sujet la semaine prochaine pour y passer plus que quelques minutes par jour.

 

J'ai toute de même une question après mes maigres recherches. J'envisageais d'enregistrer mes données dans le fichier Excel au fur et à mesure, comme le fait le VI Express. Or j'ai l'impression que vous me conseillez tous de remplir un tableau puis une fois rempli, de l'enregistrer dans un Excel. Pourquoi? Est-ce plus simple? Cela surchargerait moins l'ordinateur? Un mode d'enregistrement en continu est-il incompatible avec mon projet?

 

Merci encore pour le temps que vous me consacrez.

 

Bonne journée.

0 Compliments
Message 8 sur 10
3 229 Visites
Solution
Accepté par l'auteur du sujet cyprien11

cyprien11 a écrit : 

Cependant, je n'ai pas accès au nombre d'échantillon à écrire à l'aide d'une commande, je dois le saisir dans le VI Express. De plus, j'ai à chaque fois un document blanc qui n'est pas au format excel qui se créé en même temps que le premier Excel avec le nom donné dans la boite de dialogue.


 

 

Le document blanc est créé à cause de l'utilisation de la fonction Open/Create/Replace File.vi (j'ai une version anglaise de LV alors je ne connais pas la nomenclature française exacte). Tu créé un fichier en ne précisant aucun type puisque tu ajoutes l'extension par la suite, ceci devrait être remplacé par un chemin tout simplement.

 

Il est possible de créer une copie 'standard' d'un vi express en faisant un clic droit sur le vi express et en sélectionnant l'équivalent français de 'Open Front Panel'. Il y aura un message qui nous demande si on veut vraiment convertir ce vi en vi standard. Il est a noter que cela va créer une copie standard du vi express qui devra par la suite être sauvegardé en utilisant enregistrer sous... Le vi express restera inchangé. Les paramètres précisés à l'aide de la boite de dialogue du vi express sont des constantes dans le diagramme de la copie standard. On peut convertir la constante new_file_#samples en contrôle et assigner ce contrôle à un terminal du sous-vi. Ainsi il sera possible de modifier le nombre d'échantillon par fichier de façon programmatique. J'utilise le vi Default Data Directory (Dflt Data Dir.vi) pour la création du chemin, généralement ça pointe sur le dossier C:\Usagers\NomdeLusager\Documents\LabVIEW Data.

 

À savoir s'il est préférable de sauvegarder en continue ou en bloc à la fin ça dépend principalement de la quantité totale de data, de la vitesse d'acquisition et de l'équipement utilisé (avec DAQmx je recommande le format TDMS). Je ne recommanderais pas le format Excel pour une acquisition rapide. Si ta version de LabVIEW inclut le toolkit pour la génération de rapport ce serait préférable de l'utiliser au lieu des méthodes et propriétés ActiveX.

Ben64

Tout télécharger
Message 9 sur 10
3 212 Visites

Bonjour,

 

Merci pour votre réponse, cela me permet d'effectivement faire ce que je recherchais, associé à un VI Express (encore ^^) "Boîte de dialogue de fichier" qui me permet de spécifier mon chemin et créé un dossier dans lequel tous les fichiers excel se rangent.

 

C'est une solution simple et efficace mais je n'abandonne pas le fait de me casser la tête pour en apprendre un peu plus sur les autres façons d'enregistrer. Je reviendrais très certainement plus tard pour avancer mes recherches pour une solution sans VI Express.

 

Merci encore et bonne journée.

 

Cordialement,

0 Compliments
Message 10 sur 10
3 188 Visites