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 :

[Labview 8.5] Mesures longue durée avec un PXI


Sujet :

LabVIEW

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [Labview 8.5] Mesures longue durée avec un PXI
    Bonjour,

    Mon problème est simple.

    Je réalise l'acquisition d'un voie tension avec un PXI équipé d'un contrôleur. (carte NI PXI-4472 pour l'acquisition)

    L'objectif est de mesurer la tension environ toutes les secondes, de l'afficher dans un graphique pour en voir l'évolution en direct et d'enregistrer un fichier texte avec l'heure et la mesure.

    Mon programme fonctionne correctement si la mesure n'est pas trop longue (quelques heures)

    Cependant, il est nécessaire que mon programme fonctionne sur au moin 5 jours d'affilé soit environ 460 000 mesures à afficher dans le graphique et à enregistrer dans le fichier texte.

    Jusqu'à 50 000 mesures, généralement pas de problème tout fonctionne.
    Mais lorsque le nombre de mesure est plus grand, le programme ralenti, à des problèmes pour afficher les données dans le graphique et pour enregistrer les données dans le fichier texte, jusqu'à ce que la mesure plante par ce que les données ne sont plus disponible (dans le buffer j'imagine).

    J'ai essayé plusieurs solutions mais je ne trouve pas comment faire.

    En gros:
    -l'affichage d'un graphique avec 400 000 points dedant est trop long : comment améliorer la chose?
    -L'enregistrement d'un fichier texte avec 400 000 lignes est trop long : comment améliorer la chose?


    Merci

  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,

    Les graphs ne sont pas fait pour gérer autant de données ( je te laisse faire le calcul de l'espace mémoire afin de gérer cela ...)

    Pour moi, il faudrait que tu fasse ton acquisition normalement avec une sauvegarde immédiate des données. Pour l'affichage, je te conseille d'utiliser un moyennage sur une durée à determiner. Pour le "fun", tu pourra ajouter un mode off-line avec les fonctions qui vont bien pour lire et afficher une partie de ton fichier.
    C'est la méthode que j'avais utilisée pour un cas similaire ( acquisition à 1ms
    pendant plusieurs heures).

    a+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Déjà merci de ta réponse!

    Ce n'est pas seulement l'affichage du graphique qui fait souci (bien que je comprenne parfaitement que cela pose un problème de mémoire). En effet j'ai essayer de virer le graphique et donc de ne faire que l'enregistrement des données dans un fichiers texte. l'acquisition dure plus longtemps (forcement ont utilise moin de mémoire) mais la taille du tableau fini toujours par poser problèmes!

    Je suis très intéresser par ton idée de "sauvegarde immédiate des données" mais je ne sais pas du tout comment m'y prendre!!


    Ma méthode actuel pour sauvegarder le tableau de données est j'imagine très problématique : J'ai créé une boucle pour réalisé une mesure de tension toutes les secondes, mesure que je rajoute a la fin d'un tableau dans la boucle, et durant cette même boucle j'écrase un fichier texte avec le nouveau tableau créé (afin d'être sur de ne pas perdre de données)

    Donc a chaque tour de boucle, je réécris le fichier texte!! donc forcement arrivé a un tableau de 50 000 lignes...c'est long, et l'acquisition plante.

    Je suis donc vraiment intéresser par ton idée de sauvegarde immédiate de données!

    Merci!

  4. #4
    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,

    je ne vois pas l'interet de ton tableau ???
    Generalement, une acquisition se resume à une boucle remplissant un buffer qu'il faut vider de temps en temps. Ce buffer est un petit tableau que tu doit simplement ajouter à la fin de ton fichier ( et pas remplacer tout le fichier). Il ne faut absolument pas le mettre dans un gros tableau recapitulatif car c'est beaucoup trop lourd à gerer ( Labview n'est pas tres efficace sur la gestion memoire des tableaux).
    Le seul gros tableau que tu peux avoir ne peux etre que celui du graph, mais il doit etre de taille fixe et glissant.

    a+

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    C'est tres intéressant

    Comment fait-on pour ajouter les lignes présent dans le tableau "buffer" a la fin d'un fichier texte sans écraser tout le fichier?

    aucun VI de la palette ES de fichier ne permet de faire sa dans un fichier texte non?

    Merci

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/08/2010, 15h33
  2. Réponses: 0
    Dernier message: 10/06/2009, 15h10
  3. Réponses: 2
    Dernier message: 09/02/2007, 09h51
  4. Gettickcount longue durée
    Par BECHE dans le forum Langage
    Réponses: 3
    Dernier message: 07/12/2005, 00h01

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