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][Débutant] Problème file d'attente


Sujet :

LabVIEW

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 96
    Par défaut [LabView 8.5][Débutant] Problème file d'attente
    Bonjour,
    Je réalise une acquisition toutes les 1ms pendant 30s. Je veux donc utiliser un systéme de file d'attente de façon à traiter les données au bout de trente seconde et ainsi de suite. Or dans le deuxieme passage dasn la boucle d'acquisition j'ai une erreur, -200279, et je comprend pas. J'ai récuperer aucune données même de la première acquistion.
    Je pose mon diagramme si quelqu'un pouvait m'aider.
    Merci.

  2. #2
    Membre chevronné Avatar de VictorNet
    Profil pro
    Inscrit en
    Février 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 275
    Par défaut
    je pense que c'est à cause de ton attente de 30s dans la boucle du haut que tu te chope une erreur, tu ne vide pas le FIFO de ta carte à temps

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 96
    Par défaut
    Comment je dois faire alors parce que je voudrais garder cette tempo de 30s, c'est ce qui me permet de controler mon temps d'acquisition.
    Merci

  4. #4
    Membre Expert

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

    Tu ne peux physiquement attendre 30 secondes avant de vider le buffer. Tu dois modifier ta routine pour le vider toutes les secondes et mettre les datas dans un tableau temporaire pour les traiter globalement au bout de 30 secondes.

    a+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 96
    Par défaut
    OK mais la un autre probleme reviens. Si je fixe m'a boucle d'acquisition toutes les trentes secondes c pour respecter le temps d'acquisition. Je realise une acquisition toutes les 1 ms et si je realise une boucle de 1seconde il y a un decalage. Ce decalage, d'apres les ingenieurs de chez NI, vient de window et donc je suis oblige de faire des acquisition toutes les1 ms pendant 30seconde.
    Donc je voi suis un peu embete.

  6. #6
    Membre Expert

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

    Je reviens sur les fondamentaux de l'acquisition. Le principe d'origine est de lire une valeur à une periode d'echantillonnage precise. Or, quand cette periode diminue, on se heurte au multitache de Windows qui est incapable de te fournir une base de temps precise a moins de 10 ms. Donc, on a transferé le probleme au niveau des cartes d'acquisitions. Ce sont maintenant elles qui gerent l'acquisition avec des bases de temps inferieures a la microseconde et qui mettent les points a disposition dans un buffer circulaire qu'il faut vider de temps en temps sinon une erreur owerflow apparait ( ton erreur de depart). C'est la que reside l'utilité de DAQ.

    Ainsi, le principe d'acquisition devient: tu configure ta carte ( voies, periode d'echatillonnage = 1ms,...) et tu lances l'acquisition. Ensuite tu viens vider toutes les secondes le buffer qui contient environ 1000 points que tu traites. Dans ton cas, tu les mets dans un tableau a attendant le traitement post acquisition.

    J'espere avoir été clair sur le principe.

    De memoire, la fonction a utiliser est "Read N Ech" a laquelle il faut passer -1 en parametre pour tout le buffer.
    Regarde dans les exemples, il y a tous les cas possibles.
    a+

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/09/2008, 08h17
  2. Réponses: 5
    Dernier message: 26/06/2008, 13h26
  3. [LabView 6.1][Débutant] Problème héxadécimal/VISA
    Par grimor57 dans le forum LabVIEW
    Réponses: 3
    Dernier message: 30/01/2008, 17h09
  4. [LabView 7.0][Débutant] Problème du .vi DAQ Assistant
    Par mateo2486 dans le forum LabVIEW
    Réponses: 5
    Dernier message: 23/07/2007, 22h19
  5. [Labview 8.2][Débutant] Problème acquisition données
    Par JeanMetzz dans le forum LabVIEW
    Réponses: 1
    Dernier message: 14/06/2007, 09h16

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