IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

LabVIEW Discussion :

Meilleure solution pour écrire dans un fichier Excel


Sujet :

LabVIEW

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 38
    Points : 20
    Points
    20
    Par défaut Meilleure solution pour écrire dans un fichier Excel
    Bonjour,

    Je travaille actuellement sur un projet où je reçoit en permanence quatre informations via un port série relié à un capteur. Ce que je voudrais, c'est pouvoir écrire ces quatre données dans un tableur excel durant l'exécution de mon VI pour réaliser des graphiques par la suite. Avant de construire mon SousVI, j'aimerait connaître la meilleure voie pour écrire ces informations dans excel: construire un tableau durant l'exécution et l'écrire dans excel dès la fin de l'exécution/ Ecrire directement un fichier tableur et le convertir ensuite un format excel ou Utiliser des activeX pour écrire directement en excel? Il me semble qu'avec les activeX, on est obligé d'ouvrir excel durant l'exécution, est-ce correct?

    Merci à tous pour vos réponses,
    Kastillio

  2. #2
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Bonjour,

    Le gros problème de l'écriture XLS via ActiveX reste la gestion du temps plutôt imprécise. Ce n'est pas l'ouverture de la référence ( fichier, puis classeur puis feuille) qui pose problème mais l'enregistrement en lui-même qui peut (parfois !!!) prendre du temps.

    Il y a 2 solutions suivant les cas:
    Le cas simple: tu garde les infos en mémoire et tu enregistres à la fin. C'est basique mais efficace sur de petits volumes.
    Le cas compliqué: Écrire 2 threads avec un tampon commun pour gérer la réception de données et l'écriture en même temps. Ce système est préférable si tu as énormément de données pour éviter que ta taille de RAM disponible chute après quelques heures.

    Le dernier cas que tu as soulevé: est-il utile de passer par XLS pour enregistrer tes données quand un simple CSV marche. Je dois avouer que c'est préférable ici ( en tout cas, vu les éléments que tu donnes). Tu devrais même pouvoir enregistrer au fil de l'eau.

    a+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    Peux tu m'expliciter plus en détail ce que tu entends par "Écrire 2 threads avec un tampon commun"? Je pense opter pour cette solution car le volume de données est assez important.. Est-ce que le VI ExcelMacroExample (donnée dans les examples Labview) est une bonne base pour mon problème?

    Merci beaucoup!
    Kastillio
    Fichiers attachés Fichiers attachés

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    Est-il possible de réaliser ce que je souhaite avec le Report generation toolkit? je viens de télécharger la version d'essai

    Merci,
    Kastillio

  5. #5
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Concernant les 2 threads, il s'agit ici de 2 vis lancés en même temps avec une variable globale commune: le premier VI gère la com et met les données reçues dans cette variable globale tampon. Le second vi vient vider en boucle les données dans ce tampon pour écrire dans le fichier. ( attention, il faudra une sémaphore pour éviter la lecture/écriture simultanée).
    Je ne connais pas réellement les fonctionnalités du toolkit mais normalement, tu ne devrais pas en avoir besoin. Pars de l'exemple ActiveX XLS fourni. Il y a eu aussi pas mal de posts ici sur ce sujet.

    Une question avant de commencer: quels est ton débit d'informations issus de ton capteur et quelle est la durée de la réception?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    mon débit d'info est 115200 bauds, ma réception se fait dans une boucle while, j'acquiert les données via RS232. Comment savoir la durée de la réception?

    J'ai, pour l'instant un petit soucis de formatage des données dans excel, j'ai un tableau de nombres doubles que j'écris dans excel. Celui-ci me remplace les virgules par des points, cmt régler cela?
    Images attachées Images attachées  

  7. #7
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Je pense qu'il y a un problème au niveau de la conversion: peux-tu poster un peu de code?
    Merci,

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    le voici mais j'utilise pour l'instant le report generation toolkit (version d'évaluation)
    Fichiers attachés Fichiers attachés

  9. #9
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Hello,
    Ta version de LV est trop récente pour moi.
    Peux-tu mettre un JPG a la place?

    Merci

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 38
    Points : 20
    Points
    20
    Par défaut
    Voici..
    Images attachées Images attachées  

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Citation Envoyé par Scyrius Voir le message
    Concernant les 2 threads, il s'agit ici de 2 vis lancés en même temps avec une variable globale commune: le premier VI gère la com et met les données reçues dans cette variable globale tampon. Le second vi vient vider en boucle les données dans ce tampon pour écrire dans le fichier. ( attention, il faudra une sémaphore pour éviter la lecture/écriture simultanée).
    Salut,

    Je viens poser ma petite question dans le sujet qui m'intéresse beaucoup, deux vi's complètement différents avec variable globale, et pourquoi pas deux boucles productrices/consommatrices avec une sémaphore ?
    Pour éviter la chute de RAM ?

    Perso je dois faire un truc semblable à ce que fais kastillio

    @+

Discussions similaires

  1. code pour écrire dans un fichier excel
    Par guintolli dans le forum SharePoint
    Réponses: 3
    Dernier message: 22/07/2008, 11h30
  2. Réponses: 20
    Dernier message: 27/06/2006, 18h42
  3. [DOS] Commande pour écrire dans un fichier texte
    Par Jeff87-01 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 28/03/2006, 02h04
  4. Réponses: 3
    Dernier message: 21/03/2006, 14h12
  5. lire / écrire dans un fichier excel au format xml
    Par crisflo dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 28/01/2006, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo