Boucle FOR et tableau de cluster

Bonjour,
J'ai créé un tableau de cluster contenant deux éléments et je souhaite que l'indice de mon tableau corresponde au "i" d'une boucle FOR;
ce qui me permettrait de remplir les valeurs de mes clés à chaque itération.
Ci-joint mon VI.
Cdt
Résolu !
Accéder à la solution.
Pièces jointes :
Test_Scenario.vi ‏12 KB

Bonjour,
Je t'invite à te renseigner sur l'auto-indexation des boucles FOR:
Auto-Indexing Tunnels with For Loops and While Loops in LabVIEW
L'auto-indexation va permettre que ta boucle FOR s'exécute autant de fois que tu as d'élément dans ton tableau.
L'itération 0 prendra donc l'élément à l'indice 0 de ton tableau. 
L'itération 1 prendra donc l'élément à l'indice 1 de ton tableau.
Bonne journée,
Valentin
Certified TestStand Architect
Certified LabVIEW Developer
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
Travaux Pratiques d'initiation à LabVIEW et à la mesure
Du 2 au 23 octobre, partout en France
Pièces jointes :
auto indexation.vi ‏11 KB

Similar Messages

  • Boucle for manipuler les elements dans un tableau

    j ai un tableau 1D et je vais prendre le premier elt et l'element suivant pour comparer leur difference avec un nombre ensuite je vais prendre le deuxième avec le troisième et ainsi de suite , quand j'utilise une boucle For avec N le nb d'element dans le tableau j'arrive pas à sortir les deux elements successi pour faire mon operation de calcul si quelqu'un peut m'aider
    merci

    Pas de panique ! Le voici en 7.1.
    Je me permets d'attirer votre attention sur le fait qu'il existe un groupe de discussion français et qu'il serait préférable d'y poster les questions dans cette langue.
    Message Edité par JB le 03-19-2008 04:47 PM
    Attachments:
    Comparer valeurs successives tableau 1D.vi ‏16 KB

  • Affichage d'un tableau de cluster

    Bonjour,
    j'ai un petit probleme mais je ne sais plus quoi faire donc je viens demander l'aide aux experts.
    Donc je créé mon tableau de cluster (contenant un ring et 3 indicateurs numeriques)  en indexant en sortie d'une boucle for, j'ai vérifié et les valeurs du tableau sont correctes (img1). Je prend ce tableau et je le rentre dans mon sous vi qui est juste une fenetre pop up qui est doit afficher le tableau de cluster (img2).
    Le probleme est que les valeurs dans le cluster sont decalées, cad que le ring affiche toujours 0 et ce qu'il est sensé afficher est contenu dans l'indicateur numérique qui suit...et ainsi de suite . En img3 voila mon sousVi qui afffiche le tableau. Donc pourquoi mes valeurs dans le cluster se décalent? En espérant avoir été assez clair.
    Merci
    Cdt
    Mélanie
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    creation tableau cluster.png ‏13 KB
    put the array in subvi.png ‏4 KB
    sub vu pop up.png ‏19 KB

    Bonjour,
    C'est dû au point rouge de ton cluster dans ta fenêtre pop-up. Cela signifie que tu n'as pas exactement les mêmes types de données. Ici tu dois avoir un ordre différent des éléments dans tes clusters. Pour les réorganiser, il faut faire un clic droit sur le cluster puis Reorder Controls in cluster...
    Si l'ordre est le même sur tes différents cluster cela devrait fonctionner.
    Il existe une méthode pour éviter d'avoir ce genre de problème: il faut définir tes clusters comme des typedef (advenced=>customize) puis les enregister en .ctl
    Cela permet de créer un "nouveau type de données" et donc tous tes clusters qui utilisent ce fichier de définition auront exactement les mêmes types de données.
    Cordialement,
    Simon D.
    CLA | Certified LabVIEW Architect
    CTA | Certified TestStand Architect

  • Probleme de decalage dans une boucle FOR

    Bonjour j'ai un petit probleme dans ma boucle j'ai un code source et je dois extraire des informations de temperature de vent ... voici les lignes où je dois extraire les infos : 
    <tr class="temp">
    <th scope="row">Temp. (&deg;C)</th>
    <td class="first-col">6&#176;</td>
    <td class="">6&#176;</td>
    <td class="">6&#176;</td>
    <td class="">6&#176;</td>
    <td class="">5&#176;</td>
    <td class="">5&#176;</td>
    <td class="">4&#176;</td>
    <td class="last-col">4&#176;</td>
    </tr>
    <tr class="realfeel">
    <th scope="row">RealFeel&#174;</th>
    <td class="first-col">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">4&#176;</td>
    <td class="">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">4&#176;</td>
    <td class="">4&#176;</td>
    <td class="last-col">3&#176;</td>
    </tr>
    <tr class="realfeel">
    <th scope="row">Pr&#233;cipitations</th>
    <td style="border-right:solid 1px #EFECE4;" class="first-col" colspan="3">50%</td>
    <td style="border-right:solid 1px #EFECE4;" class="bggray" colspan="3">50%</td>
    <td class="last-col" colspan="3">40%</td>
    </tr>
    <tr>
    <th scope="row">Vent (km/h)</th>
    <td class="first-col">13 OSO</td>
    <td class="">11 OSO</td>
    <td class="">10 OSO</td>
    <td class="">8 OSO</td>
    <td class="">6 OSO</td>
    <td class="">6 OSO</td>
    <td class="">5 OSO</td>
    <td class="last-col">5 SO</td>
    </tr>
    <tr>
    <th scope="row">Humidit&#233;</th>
    <td class="first-col">80%</td>
    <td class="">81%</td>
    <td class="">82%</td>
    <td class="">85%</td>
    <td class="">87%</td>
    <td class="">90%</td>
    <td class="">92%</td>
    <td class="last-col">93%</td>
    </tr>
    <tr>
    <th scope="row">Indice UV</th>
    <td class="first-col">1</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="last-col">0</td>
    </tr>
    <tr>
    <th scope="row">Couverture nuageuse</th>
    <td class="first-col">83%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="last-col">100%</td>
    </tr>
    <tr class="last-row">
    <th scope="row">Point de ros&#233;e</th>
    <td class="first-col">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">4&#176;</td>
    <td class="">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="last-col">3&#176;</td>
    </tr>
     Le probleme que c'est j'ai fais 2 boucle For imbriqué la premiere elle lit les données " les valeurs de la temperature..." et la deuxieme pour quelle passe à la prochaine donnée par exemple:  vent pour que je puisse lire ces valeurs ainsi de suite , mais ca marche pas !!! vu quelle reste toujours dans la premiere donnée "temperature " ensuite elle sort, et  au final j'ai juste les primiere valeurs  AIDER MOI PLZZZZZZ !!! MERCI
    PS : voici mon VI dans les pieces jointes  
    Pièces jointes :
    La total.vi ‏95 KB

    Bonjour,
    Pour ce qui est de récupérer tes valeurs, il suffit de récupérer  et de modifier le Vi que je t'avais envoyé dans le post suivant :
    http://forums.ni.com/t5/Discussions-de-produit-de-NI/remplir-un-tableau/m-p/1870401#M45083
    Il d'y ajouter une boucle For de modifier les fins de lignes et de faire un tableau 1D avec les en-têtes des blocs de mesures que tu veux récupérer, par exemple :
    <th scope="row">Temp. (&deg;C)</th>
    <th scope="row">RealFeel&#174;</th>
    <th scope="row">Vent (km/h)</th>

  • Indexation (boucle For)

    j'ai une boucle For et j'utilise l'indexation en entrée ET en sortie. (en entrée et en sortie, 2x 1D booléens)
    Entre la taille du Tableau d'entrée et "N" ... la boucle For s'arrête au plus petit des deux.
    Si en entrée j'ai un Tableau comportant 0 éléments, la boucle For ne s'exécute pas.
    Le problème n'est pas que mon Tableau d'entrée est vide ...
    car si je fais 'index array" sur un tableau vide (quelque soit l'index) ... la fonction me retourne la valeur par défaut, soit "False".
    L'indexation en entrée s'accommode parfaitement d'un tableau vide,
    Si je pouvais donner la priorité à "N" ... avec un tableau d'entrée vide,
    la boucle For s'exécuterait N fois, et l'indexation d'entrée me donnerait N fois la valeur par défaut.
    Cela m'éviterait l'initialisation, toutes les valeurs par défaut formerait ... un tableau virtuel rempli de "False".
    Je "demande" ... mais je crains que "non" ...
    Serait-il possible de "forcer" une boucle For à donner la priorité à "N" ??
    merci à tous.

    un intérêt ?
    cela <fonctionne> ... en effet.
    Je programme pour le plaisir, et de plus je suis un perfectionniste
    Pour moi, le "résultat" n'est pas une finalité, mais juste un alibi.
    La compréhension du Langage et l'optimisation du code est une drogue.
    ... devant laquelle je ne suis que faiblesses
    (je suis en thérapie comportementale à ce sujet, mais sans grands résultats)

  • Modifier la condition de fin d'une boucle for

    Bonjour à tous,
    Je bute sur un problème qui est de modifier la condtion de fin d'une boucle for. Voici mons soucis, je dipose de deux boucles for imbriquées : l'une est nommée maître et l'autre esclave. Je souhaite qu'après avoir lancé le vi l'utlisateur puisse modifier la valeur de fin de la boucle esclave alors que la boucle maître se trouve toujours à l'indice n.
    En résumé :
    condition avant lancement du vi, "cpt boucle maître" = 10 et "cpt boucle esclave" = 100
    lacement du vi
    lorsque la boucle maître est à l'indice 7 par exemple, que l'indice de la boucle esclave se trouve à l'indice 70.  Si l'utilsateur modifie la valeur "cpt boucle esclave" et la met 200 en validant par le bouton "Valider nouvelle valeur boucle esclave", il faut que la boucle esclave aille jusqu'à l'indice 200 pour l'indice 7 de la boucle maître. Si ce n'est pas possible, il faut que la valeur 200 soit prise en compte pour l'indice 8 de la boucle maître.
    Une de mes contraintes étant de conserve le cluster.
    En vous remerciant
    Djamel
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    boucle maitre esclave.vi ‏10 KB

    Au risque de paraître un peu pédant, je te renvoie vers les règles de développement : http://www.ni.com/pdf/manuals/321393d.pdf
    page 6-10 : Avoid the use of local variables when you can use a wire to transfer
    data. Every local variable that reads the data makes a copy of the data.
    page 6-11 : Use global and local variables as sparingly as possible. You can use
    both global and local variables to write VIs very efficiently. However,
    if you misuse or abuse global and local variables, particularly with data
    types, the memory usage of the VI increases and the performance is
    affected.
    Additionally, you can encounter race conditions when reading from
    and writing to global variables in the same application. These race
    conditions are difficult to debug since there is no data dependency
    between different instances of the same global variable on the block
    diagram.
    Consider using functional global variables instead of global variables.
    Functional global variables do not create extra copies of data and allow
    certain actions such as initialize, read, write, and empty. Refer to the
    Using LabVIEW to Create Multithreaded VIs for Maximum
    Performance and Reliability Application Note for more information
    on using functional global variables.
    Si l'anglais n'est pas ton fort : il existe peut être une bonne âme pour t'aider
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

  • Problème itération boucle for

    Bonjour à tous !
    Je suis en train de faire un petit programme de détection de pics. J'aimerais éliminer certaines détections qui n'en sont pas.
    Je vous joins une image de ma boucle for. Mon problème c'est que j'obtiens bien ma première détection (t0), et ensuite j'ai la dernière (t(n-1)) qui est bien vérifier avec la condition >1, mais par contre je n'arrive pas a avoir toutes celles du milieu.
    Ex : 1 / 1.5 / 3 / 5.5 / 6
    J'obtiens 1 et 5.5, mais pas le 3 !!
    Aidez moi s'il vous plait, je ne comprends pas pourquoi !!!
    J'espère être claire...
    Merci d'avance pour vos réponses
    Pièces jointes :
    bouclefor.jpg ‏45 KB

    Youpiiii !!!!
    Merci merci merci !!!!
    En fait je viens de trouver la solution à mon problème, c'était tellement simple que ça me déprime d'avoir passé la journée à cherché...
    Je me suis inspiré de votre aide, et en fait j'ai créé un tableau décalé de un en rajoutant un 0, puis j'ai soustrait les deux !!! Du coup je me retrouvais avec un tableau de valeur à comparer à 1...
    Pourquoi faire simple quand on peut faire compliqué !!!
    Encore merci de votre aide, vous venez de sauvez une partie de mon stage !!!
    Pièces jointes :
    decalage.jpg ‏42 KB

  • Ecrire dans un fichier de paramètre de configuration avec boucle for

    Bonjour,
    Je cherche à écrire mes paramètres dans un fichier de configuration avec une boucle FOR.
    Selon une condition, des paramètres sont écrits.
    Ci-joint, mon code, pourriez-vous me dire si la strucutre mise en place est correcte ?
    Car c'est la première fois que j'utilise cette fontion.
    Cordialement.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Scenario_key.vi ‏37 KB

    Bonjour,
    Pour ton VI, tu manipules un fichier, donc attention, c'est une référence de fichier (un seul fichier ouvert de travail), il faut donc éviter les accès concurents en parallèle pour limiter les risques.
    De plus, comme toute référence, il faut penser à la fermer à la fin de son utilisation pour la libérer.
    Sinon pour ton problème, tu écris bien toutes les valeurs, sauf que comme c'est un fichier INI, chaque section doit avoir un nom unique, sinon, comment retrouver la section qui nous intéresse. Du coup, a chaque fois que tu écris, tu écris toujours dans la même section Palier ou Rampe.
    Ci-joint une version modifié de ton VI.
    Pour résoudre ce genre de problème, il faut utiliser les superbes outils intégrés à LabVIEW pour le débugage. En particulier les points d'arrêt, les sondes et l'animation du code. Avec ces outils, tu peux voir comment les données évolus facilement dans ton VI et ainsi détecter ce type de problème plus facilement.
    Cordialement
    .mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
    Maxime R.  
      CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié  
      CLAD - Certified LabVIEW Associate Developer   
    Pièces jointes :
    Scenario_key Modifie.vi ‏50 KB

  • Rendre visible ou invisible un élément d'un cluster le tout dans un tableau de cluster

    Bonjour
    J'ai un tableau de cluster. Chaque cluster contient quatres controls (numérique1, booleen1, menu déroulant1, numérique2).
    En fonction de la valeur du booléen1, je veux rendre visible ou invisible le numérique2.
    Ceci sur chaque cluster du tableau et de façon indépendante pour chaque cluster
    Est-il possible de réaliser celà?
    Merci
    Attachments:
    Labview.jpg ‏27 KB

    Here is my answer to your other posting translated to French. If the wording is wrong blame the Babel Fish Translator not me
    La réponse est oui et non. Il est possible de rendre différentes commandes dans un faisceau évidentes et invisibles. Cependant, ce n'est pas le même pour des rangées. Une rangée est une collection d'articles avec le SEUL differnce étant valeur. Tellement toutes les propriétés de chaque élément doivent être identiques. Vous pouvez programaticaly changer les propriétés de l'élément de rangée, mais notez que c'est élément. Une rangée n'a pas une collection d'éléments qu'elle a 1 élément et un groupe de valeurs. Imaginez la mémoire qui serait nécessaire si chaque propriété simple de chaque index devait être stockée. Ainsi vous pourriez rendre tous des commandes numeric1 invisibles, mais elle sera pour chaque faisceau. Vous ne pouvez pas la rendre évidente à l'index 1 et invisible à l'index 2.

  • Boucle for

    Slt ,
    Je ne comprend pas comment on utilise la boucle for dans Labview.  J'ai un code d'une boucle for de ce style :
                    for (i=2; i>=10,i++)
                       printf(" ouvrir les fenetre");
                       i++;
    J'aimerais savoircomment le traduire dans l'une des boucles (si For loop n'et pas la bonne) dans labview svp..
    ("Desolée de déranger avec des quedtions comme sa, mais je suis bloquée )

    Bonjour, j'ai une version Anglaise:
    For Loop
    Owning Palette: Structures
    Requires: Base Package
    Executes its subdiagram n times, where n is the value wired to the count (N) terminal. The iteration (i) terminal provides the current loop iteration count, which ranges from 0 to n-1.
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Boucle For et boucle While - Lequel choisir ?

    Bonjour à tous,
    Petite question : dans la mesure du possible, est-il préférable d'utiliser une boucle while ou une boucle for ?
    Cordialement,
    Geoffrey, LabVIEW Associate Developer

    C'est légèrement différent, on peut décider de ce qu'il faut faire si la boucle prend du retard (sortir et donner une erreur, attendre un multiple de, ignorer le retard).
    Mais si il n'y a pas de problème de cadence dans une boucle while ou for, il est fort peu probable que ça jouera aussi avec une timed loop. L'avantage sera que si d'autre tâches viennent prendre de la ressource pendant que cette boucle tourne, "normalement" (oui... on est sous Windows...) la timed loop bénéficie d'une priorité plus élevée.
    Note : le "attendre un multiple de" est très bien mais attention au piège car si le code met plus que la valeur demandée pour s'exécuter, on attend le prochain multiple et ça peut (pas forcément mais c'est possible) décaler encore plus. 
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

  • Boucle FOR dans une boucle while avec un registre à décalage

    Bonjour à tous,
    je rencontre un problème au niveau de l'indexation de l'execution de mes commandes.
    Lorsque j'exécute mon programme, seulement la dernière commande est prise en compte.
    Faut-il enlever mon registre à décalage? Changer le mode du tunnel ?
    Cordialement
    Pièces jointes :
    Boucle FOR, while.JPG ‏134 KB

    ça peut avoir son utilité lorsque le diagramme est conséquent et illisible
    alors c'est que tu "reprends en main" le diagram d'un autre .... 
    sinon... si c'est le tien ... il ne sera jamais illisible.
    Et si tu veux "gagner du temps" ... je t'assure ... cable "propre" du premier coup.
    Lisibilité, compréhensibilité, évolutivité ... tu seras gagnant à tous les coups. (à 1000%)
    Sans compter "le coup d'oeil" quand "un autre" ouvrira ton code.
    Avant d'aller plus loin et de comprendre quoi que ce soit dans ce que tu as fait ...
    la propreté de ton diagram sera "ta signature".
    Ah oui ... un diagramme aussi propre que ça ... ça ne peut être que Geoffrey !
    ça l'fait non ?  

  • Boucle FOR dans une boucle while

    Bonjour à tous,
    je rencontre un problème, car lorsque j'exécute une série de commande dans boucle FOR, celle ci ne s'arrête jamais.
    Ma boucle FOR est censée exécuter toutes les sections lues à partir d'un fichier de configuration  et s'arrêter.
    Mais elle répète en boucle mes sections..
    Je ne vois pas bien d'où vient mon problème.
    Cordialement
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Mode _Auto_Cluster.vi ‏151 KB

    @aznnath : 
    Mode_Auto_Cluster.vi.
    jolie surprise, bravo pour l'effort évident de propreté du BD. (on va dans la bonne direction)
    une certaine réponse était peut-être un rien "rigide".
    à ma décharge, une certaine forme de récurrence n'aide pas.
    et respect à TiTou pour sa déterminantion dans l'aide qu'il t'apporte.

  • Utilisation boucle for avec la machine état

    Bonjour,
    Je viens vous demander quelques conseils d'utilisation du boucle for avec la machine état. Voici le vi ci-joint. Je souhaiterai faire 5 fois la machine état mais à chaque étape de la machine état j'incrémente un tour de boucle et cela ne fait pas 5 fois la machine état. Avez vous une idée pour réaliser cela? Merci d'avance.    
    Pièces jointes :
    essais-boucle-for.vi ‏12 KB

    Salut,
    J'ai testé ton VI pour essayer de comprendre ce que tu cherche à obtenir. En partant de ta constante start en entrée de boucle, tu obtiens la valeur 4 pour "i" et 0 pour "j" ce qui, au vu de ton diagramme, est normal.
    En fait, le premier tour d'une boucle FOR est 0, puis s'incrémente. Ainsi, si tu lui demande de faire 5 tour de boucle, le premier tour sera le n°0, puis 1, etc... jusqu'à 4.
    Je ne sais pas si j'ai été très clair et si cela répond à ta question mais au vu de ce que tu décris je pense que c'est cela.
    Autrement n'hesite pas à me donner plus de détail =)
    @ +

  • Passage d'un tableau de cluster a une DLL

    RR

    Merci pour les reponses.
    Je fais appel a la dll nifb.dll.l'une de ces fonctions me demande de passer un tableau de cluster, et pour cela j'utilise "Adapt to type".
    non de la fonction : nifError_t nifGetDeviceList
    Attachments:
    nifbus.h ‏11 KB
    nifbtest.c ‏14 KB
    FieldBus.vi ‏44 KB

Maybe you are looking for

  • Technical systems and Business systems in SAP XI

    can any one tell me ,breifly explain the  diff b/w <b>Technical Systems</b> & Business Systems? steps to create Techincal system and Business systems? and also Steps for creating Software Components? For Technical System we can create more than one B

  • Web Service Data Control ADF

    Hi, I am trying to create an application using Web service Data control in Jdeveloper 11g TP4. This web servcie returns complex data type: that is an object. while creating data control using wizard : Web service Data control, I am able to get the da

  • Creative Cloud problems since Mavericks update

    Hi Has anyone else had problems using Adobe Creative Cloud since upgrading to Mavericks? I have a Mac Pro at work and everything runs smoothly on that but my 2nd license on my home iMac doesn't work properly. Photoshop won't open and constantly freez

  • Moving an images in a pages document to iphoto...how?

    How do you get an image in pages into iphoto? The image name is Signature Blue Color.gif? I am not sure where the original is, but I have it in a pages document. How do you use an image in pages as an Inspector, fill, image fill without moving it to

  • How do I create a hyperlink in my reminders app?

    I set a reminder to check something on the internet. I pasted the link into the reminder, but it remains as plain text. I want to be able to tap the link and it opens the page in Safari (hyperlink). Is this possible? Thanks community.