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 2009][Debutant] Tableau dans une boucle


Sujet :

LabVIEW

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 19
    Points
    19
    Par défaut [Labview 2009][Debutant] Tableau dans une boucle
    Bonjour, je suis stagiaire et je vais devoir réaliser de l'acquisition et du traitement de données CEM (analyseur de spectre) sous labview.

    Pour l'instant je lis et je m'entraine (Tutorials/FAQ/Topics de forums) mais une question me turlupine depuis ce matin : quel est l'interet de sortir (ou d'inclure) un tableau (ou autre chose) dans une boucle ?

    Sur l'exemple ci-dessous, le graph ne fonctionne que SI il est dans la boucle. Pourquoi ?

    Autre question, que représente (physiquement) le carré sur la boucle si je met le tableau à l'extèrieur ? (quand il n'est pas un registre à décalage).

    Et enfin, pourquoi mon schéma fonctionne avec un "waveform chart" et ne fonctionne pas avec un "waveform graph"? EDIT : trouvé dans la FAQ, bien que je n'ai rien compris au waveform graph :p

    Merci d'avance
    Images attachées Images attachées  

  2. #2
    Membre éprouvé Avatar de BrunoIRM
    Homme Profil pro
    Ingénieur Instrumentation
    Inscrit en
    Juillet 2009
    Messages
    785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Instrumentation

    Informations forums :
    Inscription : Juillet 2009
    Messages : 785
    Points : 1 160
    Points
    1 160
    Par défaut Re: [Labview 2009][Debutant] Tableau dans une boucle
    Bonjour,

    Citation Envoyé par JeremyD Voir le message
    Bonjour, je suis stagiaire et je vais devoir réaliser de l'acquisition et du traitement de données CEM (analyseur de spectre) sous labview.

    Pour l'instant je lis et je m'entraine (Tutorials/FAQ/Topics de forums)
    Bonne(s) initiative(s) ...

    mais une question me turlupine depuis ce matin : quel est l'interet de sortir (ou d'inclure) un tableau (ou autre chose) dans une boucle ?
    Une boucle fonctionne comme un processus à part entière. Tu y entres et tu en sors des données au moyen de tunnels (matérialisés par un petit carré sur le bord de ta boucle : il n'y en a pas sur ton schéma). Le tunnel est vu par la boucle comme une variable locale au processus. Donc, il y a recopie dans ce tunnel de la valeur de la données que tu lui envoies (par le fil ...). Donc, si la données est envoyée à partir d'une commande de la face-avant, si tu modifie cette valeur pendant que la boucle tourne, il n'y aura pas d'incidence car la boucle continuera de travailler avec la valeur contenue dans le tunnel ... Même mécanisme en sortie pour les tunnels de sortie : tu ne pourras accéder à la valeur d'un tel tunnel qu'après l'exécution de la boucle.

    Si tu souhaites que les modification des valeurs des objets (sur le face-avant) soient prises en compte dans la boucle, tu dois placer les terminaux de ces objets DANS la boucle (et alors, il n'y a plus de tunnel ...)

    Sur l'exemple ci-dessous, le graph ne fonctionne que SI il est dans la boucle. Pourquoi ?

    Et enfin, pourquoi mon schéma fonctionne avec un "waveform chart" et ne fonctionne pas avec un "waveform graph"? EDIT : trouvé dans la FAQ, bien que je n'ai rien compris au waveform graph :p
    Deux questions pour une réponse : un graphe simple (graph) affiche les données que tu lui envoies "sur le moment". Donc, si tu lui envoie un point, il affichera un point. C'est tout. Gênant pour un graphe .....

    Un graphe déroulant "chart" fonctionne avec un historique. Le point que tu lui envoie s'ajoute à la courbe des points précédemment envoyés (dans la limite de la longueur de l'historique : 1024 par défaut). Mieux adapté à ton cas ...


    Autre question, que représente (physiquement) le carré sur la boucle si je met le tableau à l'extèrieur ? (quand il n'est pas un registre à décalage).

    Merci d'avance
    Pas bien compris ta question : qu'appelles-tu "le carré sur la boucle" ??

    A+
    B.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Tout d'abord merci pour votre réponse rapide et complète. Pour le carré sur la boucle, c'est le petit carré dont vous m'avez parlé

    j'ai bien compris votre réponse sur les boucles, mais du coup je ne comprends pas dans quel cas un élément de type chart ou tableau peut être placé en dehors de la boucle, car dans ce cas là aucune valeur n'arrive jusqu'à lui logiquement... par exemple le tableau et le graph ci-joints. Pourquoi dans ces cas-la ils sont externes à la boucle ?

    Merci
    Images attachées Images attachées   

  4. #4
    Membre éprouvé Avatar de BrunoIRM
    Homme Profil pro
    Ingénieur Instrumentation
    Inscrit en
    Juillet 2009
    Messages
    785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Instrumentation

    Informations forums :
    Inscription : Juillet 2009
    Messages : 785
    Points : 1 160
    Points
    1 160
    Par défaut
    Re-bonjour,

    Citation Envoyé par JeremyD Voir le message
    Tout d'abord merci pour votre réponse rapide et complète. Pour le carré sur la boucle, c'est le petit carré dont vous m'avez parlé

    j'ai bien compris votre réponse sur les boucles, mais du coup je ne comprends pas dans quel cas un élément de type chart ou tableau peut être placé en dehors de la boucle, car dans ce cas là aucune valeur n'arrive jusqu'à lui logiquement... par exemple le tableau et le graph ci-joints. Pourquoi dans ces cas-la ils sont externes à la boucle ?

    Merci
    De mon point de vue :

    - Placer un chart (graphe déroulant) après une boucle n'a pas d'intérêt : tous les points seront stockés dans un tableau 1D ou 2D (tunnel de sortie) et envoyés d'un coup au chart (qui ne "déroulera" pas ...)

    - Placer un graphe (graph) après une boucle consiste à représenter graphiquement, sur une courbe (entièrement représenté dans le graphe), le contenu du tableau (1D ou 2D) précédemment généré par la boucle et récupéré à partir du tunnel de sortie ....

    Voilà.

    A+

    B.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Décidemment j'ai vraiment du mal avec les tableaux.

    Dans l'exemple ci-dessous (toujours tiré du tutorial), les 6 chiffres de la première boucle For centrale vont dans le "Array 3". Jusque là OK.

    Mais ensuite, les 2 séries de 6 chiffres suivantes vont dans le Array 4, déja je ne comprends pas pourquoi la 1ère série n'y été pas allée (celle qui est dans Array3)... et ce que je comprends encore moins, c'est que les 2 séries ont été inversé : en executant pas-a-pas, je vois que la 1ère série de 6chiffres est sur la 2ème ligne du tableau, et la 2ème série est sur la 1ère ligne :o ?? Quelqu'un saurait m'expliquer svp ?

    Merci,
    Cordialement

    EDIT: Je viens de rééssayer en rajoutant une ligne au Array4 (sans lui ajouter de dimension). Eh bien les 3 séries sont bien écrites dans l'ordre, et cette fois-ci c'est la dernière ligne qui est dans Array3. Je suis sceptique
    Images attachées Images attachées  

  6. #6
    Membre éprouvé Avatar de BrunoIRM
    Homme Profil pro
    Ingénieur Instrumentation
    Inscrit en
    Juillet 2009
    Messages
    785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Instrumentation

    Informations forums :
    Inscription : Juillet 2009
    Messages : 785
    Points : 1 160
    Points
    1 160
    Par défaut Re: [Labview 2009][Debutant] Tableau dans une boucle
    Salut,

    Quelques précisions s'imposent quand à la notion de lignes et de colonnes dans les tableaux ....


    1. Tout d'abord, pour les tableaux 1D : LabVIEW les représente par défaut sous la forme d'une ligne. Tu peux les visualiser sous la forme d'une colonne (il suffit de "tirer" le tableau vers le bas) mais comme c'est c'est un tableau 1D, cela n'a guère d'importance .....
    2. Les tableaux 2D (on garde la nD pour une autre fois ....) sont des "empilements" de tableaux 1D. Comme par défaut, LabVIEW représente les tableaux 1D par des lignes, il va donc empiler des lignes. Tu aura donc autant de lignes que de tableaux 1D et autant de colonnes que la taille de tes lignes (tableaux 1D )...
    3. L'auto-indexation des boucles : elles te permettent de générer automatiquement les tableaux (et en allouant la mémoire de façon optimale !!!). Si tu "sors" des données scalaires (0D : un nombre seul) en auto-indéxé à partir d'un boucle, tu vas générer un tableau 1D de taille égale à la dimension de ta boucle (c'est ta boucle "interne" : celle-qui génère "Array 3". Si tu "sors" de ta boucle FOR un tableau 1D vers le tunnel auto-indexé, LabVIEW va générer un tableau de tableaux 1D, et va va en générer un nombre égal à la dimension de ta boucle.


    Donc, dans ton exemple, tu génères avec ta grande boucle FOR (externe) un tableau 2D composé de 3 tableaux 1D, eux-mêmes de taille 6 car générés par ta boucle FOR interne. Donc, ton tableau final (Array 4") est un tableau de dimension 2 à 3 lignes et 6 colonnes .....

    Les commandes d'indexation de ton tableau sur la face-avant contrôlent les index de ligne (premier contrôle) et l'index des colonnes (deuxième contrôle) ...

    Est-ce que cela te semble plus clair ???

    A+
    B.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    J'ai tout compris, merci beaucoup ! On voit tout de suite l'expèrience de l'enseignement dans vos réponses

    Après plusieurs tests, ca fonctionne très bien. Mon soucis était que j'avais l'impression que l'ordre des lignes n'était pas respecté dans mon tableau 2D, mais en fait si... bizarre

    Merci encore! Et oui pour les nD on verra plus tard, héhé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Debutant - Labview 8.6] Temps dans une boucle While
    Par jizzlobber dans le forum LabVIEW
    Réponses: 3
    Dernier message: 07/12/2009, 11h09
  2. comment mettre un tableau dans une boucle et sur la meme page
    Par pikkolina dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 24/05/2009, 19h21
  3. Remplir un tableau dans une boucle
    Par floctc dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2009, 10h23
  4. [PHP 5.2] créer un tableau dans une boucle
    Par Giantrick dans le forum Langage
    Réponses: 4
    Dernier message: 13/02/2009, 15h52
  5. [MySQL] incrementer un tableau dans une boucle
    Par GYK dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/12/2008, 14h23

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