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 :

Comment stocker dynamiquement des données


Sujet :

LabVIEW

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Comment stocker dynamiquement des données
    En fait j'ai un petit problème, je fais l'acquisition de données à part du port parallèle et vu que ces valeurs changent (echantillonnage) j'aimerais bien pouvoir les stocker dynamiquement ds un tableau afin de pouvoir faire un traitement sur ces valeurs (envoie d'une commande).
    dc mn prob c resume en comment remplir un tableau de donnés telque à chaque nouvelle valeur apparue sur le port, elle prend la place de l'ancienne valeur et l'ancienne celle de la plus ancienne
    donc tab[0]=nouvelle valeur et tab[1]=ancienne valeur et ainsi de suite
    C'est comme une mise à jour du tableau à chaque acquisition.
    MERCI je sais que jpeu compter sur vous.

  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
    Hello,
    si tu as l'information indiquant qu'une datas est apparue sur le port, il suffit de faire TAB[i] = Tab[i-1] pour i allant de n ( taille du tableau ) à 1 puis de mettre la valeur acquise en Tab[0]

    Petite remarque en passant: il est plus judicieux dans ce cas d'utiliser un buffer tournant: tu mets ta valeur lue dans Tab[i] et tu incremente i pour la fois suivante ( si i = n, alors i=0), ca fait moins d'operations don, c'est plus rapide et plus beau.

  3. #3
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Salut,
    il y a une solution qui consiste à utiliser un registre a décalage (clique droit sur les bords d'une boucle while (ou For), créer un registre à décalage.
    ce poste traite le meme problème que le tien:
    http://www.developpez.net/forums/sho...=322549&page=2
    tiens nous au courant

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    MERci pour votre aide mais encore une chose je veux pouvoir loger des elements dans un tableau et les afficher et les exploiter pour faire notamment des calculs Est-ce que vous pouvez m'envoyer un VI qui pourrait faire celà. Ensuite j'essayerai de faire l'idée du registre à decalage et merci encore

  5. #5
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Citation Envoyé par tiire
    MERci pour votre aide mais encore une chose je veux pouvoir loger des elements dans un tableau et les afficher et les exploiter pour faire notamment des calculs Est-ce que vous pouvez m'envoyer un VI qui pourrait faire celà. Ensuite j'essayerai de faire l'idée du registre à decalage et merci encore
    salut,
    peut tu cibler ton problème???
    dis nous ce que tu veux faire exactement, donne un exemple...

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Je veux que vs me montrer comment loger des valeurs dans un tableau et pouvoir les lire. Un VI qui pourrait faire cela grace notamment à une comande numerique et à chaque fois que je change la commande la nouvelle valeur apparait comme premier element du tableau les autres valeurs suivent. Je suis pas très connaisseur en Labview donc comprenez mon incapacité à vous cibler la question. Et encore desolé pour le derangement

  7. #7
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Citation Envoyé par tiire
    Je veux que vs me montrer comment loger des valeurs dans un tableau et pouvoir les lire. Un VI qui pourrait faire cela grace notamment à une comande numerique et à chaque fois que je change la commande la nouvelle valeur apparait comme premier element du tableau les autres valeurs suivent. Je suis pas très connaisseur en Labview donc comprenez mon incapacité à vous cibler la question. Et encore desolé pour le derangement
    ci joint un exemple réaliser sous LV 8.2 et qui utlise la stucture événement...
    si t'as pa la bonne version di le et je t enverai une copie écran ...je sais pas si c'est ca que tu veux, serai était bien que tu poste ton VI, c est plus simple pour nous de comprendre ou tu bloque.
    fais signe si c est Ok ou pas
    bonne chance

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Desolé J'utilise la version 7.0 et merci d'avance c'est vraiment très gentil de votre part.

  9. #9
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Citation Envoyé par tiire
    Desolé J'utilise la version 7.0 et merci d'avance c'est vraiment très gentil de votre part.
    je ne sais pas si la structure événement existe dans la version 7.0, verifie et s il existe fais signe je t enverrai une copie ecran de l interface arriere.

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    voila j'ai essayé de mettre des commentaires sur mn VI pourque vs situez le problème g essayé la structure evenement mais elle n'es t as incluse ds la version voila
    Fichiers attachés Fichiers attachés

  11. #11
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    salut,
    j'ai regardé ton VI et il contient pas mal d'erreur (Normal tu débute ), pour commencer il faut que tu sache que Labview est un langage de programmation qui fonctionne par l'intermediaire de flux de données, on code de HAUT au BAS et de GAUCHE à DROITE!!!!!!!
    Exemple: dans ton VI tu utilise deux boucle while, la 1ere situé au début du programme(en haut à droite) qui attend un Entier de la 2ème qui est situé à droite de la 1ère boucle!!!!!(ERREUR à ne pas reproduire).
    je t es fai un petit exemple qui explique le fonctionnement des registres à décalage, pour faire ce que tu veux inspire toi de cet exemple.
    si ta d autres question n'hesite pas...

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Salut mon 'maitre' , je ne sais vraiment pas ceque j'aurai fait sans vous j'ai remarqué que vs commencez à saisir mon problème et comme vous avez dit je m'y connais très peu en labview. si c'est pas trop demandé je vous envoie là mn VI avec une description générale du problème,j'aimerais que vs y mettez un peu de votre savoir faire pour corriger les erreurs et apporter les solutions au problème posé car c'est une importante partie de mon projet de fin d'étude. Alors je compte sur vous j'ai plus que très peu jours
    Mes respects les plus distingués
    Sans titre.zip

  13. #13
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Citation Envoyé par tiire
    Salut mon 'maitre' , je ne sais vraiment pas ceque j'aurai fait sans vous j'ai remarqué que vs commencez à saisir mon problème et comme vous avez dit je m'y connais très peu en labview. si c'est pas trop demandé je vous envoie là mn VI avec une description générale du problème,j'aimerais que vs y mettez un peu de votre savoir faire pour corriger les erreurs et apporter les solutions au problème posé car c'est une importante partie de mon projet de fin d'étude. Alors je compte sur vous j'ai plus que très peu jours
    Mes respects les plus distingués
    Sans titre.zip
    salut,
    je suis en weekend et j ai pas LV chez moi, donc je ne peu pas ouvrir ton VI.
    ca va être tres difficile de faire le VI a ta place, le mieux c est que tu nous dise ce que tu veux faire et on va essayé de t aider (des question ciblé),on attendant Lundi(pour jeter un coup d oeuil sur ton VI) essaie de soigner ton programme et evite de passer des fils partous et mon dernier conseil c est d'utiliset des sous-VI( =les fonction comme dans la programmation textuel)
    alors ta des questions?
    bonne programmation

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

    je viens de regarder le VI et je n'y comprends pas grand chose.

    Indique nous exactement ce que tu cherche a faire, a la rigueur, donne l'intitulé sans reference a LV.

    Plusieurs infos sur LV:
    - le code va de gauche a droite et de bas en haut comme Reg64 l'a dit.
    - Une boucle ne peut s'executer que si toutes ses entrées sont connues: dans ton cas, les 2 boucles ne peuvent pas etre en parallele car elle dependent l'une de l'autre.

    A mon avis, il faudra utiliser un tableau en variable globale, comme ca les 2 boucle y accederons sans probleme ( a condition aussi d'utiliser des semaphores d'ailleurs)

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Scyrius
    Hello,

    je viens de regarder le VI et je n'y comprends pas grand chose.

    Indique nous exactement ce que tu cherche a faire, a la rigueur, donne l'intitulé sans reference a LV.

    Plusieurs infos sur LV:
    - le code va de gauche a droite et de bas en haut comme Reg64 l'a dit.
    - Une boucle ne peut s'executer que si toutes ses entrées sont connues: dans ton cas, les 2 boucles ne peuvent pas etre en parallele car elle dependent l'une de l'autre.

    A mon avis, il faudra utiliser un tableau en variable globale, comme ca les 2 boucle y accederons sans probleme ( a condition aussi d'utiliser des semaphores d'ailleurs)
    Salut je pense que j'ai repondu plusieurs fois à mon prob posé sur les discussions. REG64 m'a proposé l'idée des registres à decalages mais sa ne repon pa vrt à la question ou du moins j'arrive pas encore à les mettre en oeuvre correctement
    je vais mieux vous expliquer mon problème par cette image jetez y un coup d'oeil et merci pour tt
    Nom : Sans titre.GIF
Affichages : 288
Taille : 5,9 Ko

  16. #16
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    salut,
    le registre a décalage et la meilleur solution pour faire ce que tu veux,
    pour réaliser la meme chose que ton exemple tu dois faire ces modifs:
    pour ajouter un element au début du tableau il faut inverser les entrées au niveau de la fonction "construire un tableau" (Entrée nº1=Nouvelle valeur, Entrée nº2=ancien tableau(venant du registre a décalage)) et finalement pour fixer la taille du tableau tu peux utliser la fonction "Sous ensemble d'un tableau"(dans sous-palette "Tableau"):
    *** relier la sorite de la "fonction construire un tableau" avec l'entrée "Tableau" de la fonction "Sous ensemble d'un tableau" et l'entrée "Indice" à "0" (Par défaut=0) et l'entrée "longeur" au nombre d'élement que tu souhaire mettre dans tableau!!!

    alors????

  17. #17
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par reg64
    salut,
    le registre a décalage et la meilleur solution pour faire ce que tu veux,
    pour réaliser la meme chose que ton exemple tu dois faire ces modifs:
    pour ajouter un element au début du tableau il faut inverser les entrées au niveau de la fonction "construire un tableau" (Entrée nº1=Nouvelle valeur, Entrée nº2=ancien tableau(venant du registre a décalage)) et finalement pour fixer la taille du tableau tu peux utliser la fonction "Sous ensemble d'un tableau"(dans sous-palette "Tableau"):
    *** relier la sorite de la "fonction construire un tableau" avec l'entrée "Tableau" de la fonction "Sous ensemble d'un tableau" et l'entrée "Indice" à "0" (Par défaut=0) et l'entrée "longeur" au nombre d'élement que tu souhaire mettre dans tableau!!!

    alors????
    c'est presque sa et merci beaucoup juste que je veux qu'à chaque fois que je change une valeur il fait le décalge tt en conservant l'ancienne
    exemple sur le vi que vs m'avez envoyé quand j'initialise le registre de decalage tab[0]=0 il fé exactement ceque je veux faire mais si je change cette valeur alors il n'en est rien il y aurait un tout petit peu à retoucher mais j'y arrive pas donc en conclusion je veux avoir une commande (registre à decalage ds votre vi) et à chaque à fois que je la change elle s'insere au debut du tableau et decale les autres continuellement et celle-ci restera ds le tableau et encore merci pour tout
    je me suis procuré le labview 8.2 pour une meilleure communication entre nous

  18. #18
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    ci-joint un exemple avec registre a decalage

Discussions similaires

  1. Comment faire apparaitre des données dans une listbox
    Par nuans dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 14/05/2007, 15h04
  2. Réponses: 2
    Dernier message: 30/12/2006, 10h50
  3. Réponses: 1
    Dernier message: 01/09/2006, 20h13
  4. Réponses: 2
    Dernier message: 28/01/2006, 14h54
  5. [Debutant] comment faire passer des donnée ???
    Par cyrill.gremaud dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/01/2006, 22h28

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