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 =)
@ +

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

  • Architecture Machine à états

    Bonjour,
    Utilisant l'architecture d'une machine à états pour traiter mes données d'acquisition de Température, je rencontre un problème pour ne pas réexécuter tout mes états à chaque itération.
    Dans mon cas, je souhaite que lorsque l'état "Palier" est vraie, les états "Palier" et "T_Réelle = T_C Palier_bas"ou "T_Réelle = T_C Palier_haut" ne se répète pas jusqu'à ce que le minuteur dans l'état "Stabilisation_étuve_Palier_bas" renvoie condition vraie.
    Cdt
    Pièces jointes :
    Alarme_Alerte_bis.vi ‏28 KB

    D'accord, je crois avoir compris... (Mais je ne suis pas sur ^^)
    La première idée qui me vient à l'esprit est de passer par une variable globale booléenne "T_Réelle=T_Consigne" pour pointer vers différents états dans la machine à états en fonction de sa valeur.
    Lorsque T_Réelle=T_Consigne, la variable passera à True pour shunter les états qui réalisent ce test. Une fois le "minuteur" écoulé, il suffira de faire passer la variable globale à False pour repasser par l'état qui réalise ce test.
    Ca semble rudimentaire, mais fonctionnel.
    Pièces jointes :
    variable_glob.jpg ‏17 KB
    shunt.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

  • 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 ?  

  • Machine à état

    bonjour,
    s'il vous plait je souhaite avoir une idée plus claire sur le principe d'une machine à état donc ma question est la suivante:
    le passage d'un état à l'autre se fait automatquement ou bien avec un évènemet utilisateur? sachant que j'ai une structure condition avec 3 état (énum) et  j'ai insérer la structure condtion dans une boucle while.
    merci pour vos réponses 

    Duplicate post.

  • Machine à états et noeuds de propriété

    Bonjour,
    je suis en train de réaliser un programme qui permet de "piloter" un moteur.
    Il s'articule de la manière suivante:
    - une boucle qui gère une machine à état et qui traite, entre autre, l'envoi d'une commande de pwm qui imposera la vitesse de rotation du moteur.
    - une seconde boucle qui permet l'acquisition de données destinées à la gestion des erreurs
    - une troisième boucle qui gère les différentes phases de pilotage du moteur.
    Tout fonctionne très bien à une chose près. C'est le changement de valeur du bouton ON qui  détermine l'envoi ou l'arrêt de l'envoi du pwm (boucle 1). Cependant, dans la boucle 3, lorsqu'une erreur est détectée, le moteur doit s'éteindre, et c'est ce qui se produit. MAIS, malgré le fait que lors de la dectection d'une erreur, j'impose par noeud de propriété, au bouton ON de reprendre la valeur faux, ça n'a pas d'impact dans ma machine à état et la commande du pwm ne repasse pas à zéro comme je le souhaiterais.
    Comment faire pour imposer que le pwm repasse à 0 quand une erreur est détectée?
    Si quelqu'un a une solution, ça m'aiderait beaucoup.
    Je vous mets en pièce jointe mon programme, en espérant qu'il soit assez lisible et compréhensible.
    merci d'avance
    Anne
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Dossier WESTTsev 11 02 2011.zip ‏776 KB

    Bonjour,
    Plusieurs possibilités:
    1. utiliser votre sous VI de gestion du moteur dans la condition erreur pour l'arreter
    2. le noeud de proriété valeur ne sera pas géré comme un événement utilisateur dans votre structure évenement ne le gère pas, dans ce cas utilisez le noeud de propriété Valeur (signalisation) et cela revient à créer un événement utilisateur donc géré par la structure événment.
    Cordialement
    Greg S.
    CNRS
    LV 7.1 8.2 8.6 2009 2011 2012 2013
    LPMC - CNRS
    N'oubliez pas de complimenter cela fait toujours plaisir.

  • 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!"

  • 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)

  • Incoherenc​e parallelis​me boucle for - LabView 2009

    Bonjour,
    en faisant un test pour estimer le gain a attendre de la parallelisation des boucles for, je suis tombe sur un resultat curieux. La modification du diagramme sur un detail, a priori independant de la boucle for, induit des variations de temps de calcul allant de -56% a +47% de facon tout a fait reproductible. (voir ppt joint)
    A noter (en configuration +47%) qu'en bloquant le nombre de processeurs logiques (P) a 1 on obtient un leger gain de -13% (sans ecart dans les calculs) et si P est a 2, on a -32% (avec ecart dans le calcul pour tous les autres ce qui est logique)  , P=3 => -30%  , P=4 => -41.5%, P=5 => -41.7% qui ne bouge plus en augmentant.
    En configuration -56% le bloquage de P induit une perte de perforamances entre P=2 =>-16%, P=3 =>+20%, P=4 => -20% ...
    Quelqu'un pourrait il confirmer ces resultats sur une autre machine ou aurrait l'idee d'une erreur que j'aurais pu commettre ?
    Merci d'avance
    - Lionel -
    Attachments:
    Labview_2009_parallelisme.ppt ‏651 KB
    test_parallelism_02.vi ‏15 KB

    French to English
    Hello,
    making a test to estimate the gains from parallelization of loops, I came upon a curious result. Changing the chart on a detail, a priori independent of the loop, induces changes in computing time ranging from -56% to +47% for quite reproducible. (see attached ppt)
    Note (commonly 47%) than in blocking the number of logical processors (P) 1 we obtain a slight gain of -13% (without any spread in the calculation) and if P is a 2, a -32 % (with deviations in the calculation for all others that makes sense), P = 3 => -30%, P = 4 => -41.5%, P = 5 => -41.7% that does not move to increase.
    In the configuration -56% blockade of P induces a loss of perforamances between P = 2 => -16%, P = 3 => 20%, P = 4 => -20% ...
    Someone could confirm these results on another machine or aurra the idea of a mistake I have committed? 
    Thank you in advance

  • 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>

  • Stopper une boucle FOR en cours

    Bonjour à tous
    J'ai une petite question concernant une fonction simple de LABVIEW, en outre la boucle FOR.
    Je voulais savoir si il était possible de stopper l'exécution de cette boucle en cours de route. Par exemple si je dis que ma boucle doit tourner 11 fois et que je rencontre un problème à la 2 ème itération, est il possible de stopper la boucle FOR pour éviter qu'elle fasse les 9 autre itérations.
    Merci pour vos réponses futures

    bonjour,
    il est possible de stopper une boucle for avant sa fin. en faisant un clic droit sur la boucle, vous sélectionnez "Terminal de condition". un carré avec un point rouge apparait (identique que pour une boucle while).
    Cordialement
    L.MICOU

  • 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

  • Just got Prosoft drive genius 3 software, and it's telling me that the external hard drive that i am using for my time machine back up drive needs to be defragmented.  is it wise to do this or should i not??

    just got Prosoft drive genius 3 software, and it's telling me that the external hard drive that i am using for my time machine back up drive needs to be defragmented.  is it wise to do this or should i not??

    Let's hope a couple things: that you have bootable clones of your drives also; that the backup drive for TimeMachine has over 3x capacity of the data you plan and are storing. I would also switch TM backup drives so you have a 2nd.
    Fragmented free space affecting performance happens when the drive is too full which may mean there isn't enough free space for a full backup set.
    1.5TB for backing up 500GB, while WD Green 3TB is $140 and WD Black 1.5TB is, about the same price.
    I'd be worried about the integrity and directory, and whether you can afford to lose that drive. Defragging is also a very slow operation. the ideal: to just clone a drive, or start over with another drive and wait. cloning TM volumes has not been done or has it? SuperDuper hoped to but I don't think they or Bombich's CCC made it there.
    Trouble with highly fragged is when free space gets to 20% normally, 1/3 or so though for TM volumes, and finding where and a chunk of space for the file being written. Does TM use large spare image files of like 2GB?
    Best would be to ask in the TimeMachine section Snow Leopard
    https://discussions.apple.com/community/mac_os/mac_os_x_v10.6_snow_leopard?view= discussions#/?tagSet=1009
    where there are some good FAQ and tutorials, and people that know the ins-and-outs and shortcomings.

Maybe you are looking for

  • How do I connect my imac to tv

    I have connected the HDMI3 cable to my tv and imac and I have the screen saver on the tv.  How do I connect a utube video on my imac to the tv please?

  • Custom heading for field in ALV

    Hi Friends, How to give our own text for column(field) heading webdynpro alv reports as in general abap we use fieldcatlogue to achive the same. Pls reply..... Thanks in advance.

  • BT Vision missold - disgraceful!

    On 24/08/11 I called BT on the recommendation of a friend who lives elsewhere in the country to ask about their TV, phone and broadband packages. We previously used a similar package from Virgin Media.  Virgin Media could not match the price of BT's

  • Converting WMV to MP4 for use on iPod Classic

    I have 4 videos that are WMV files. Is there a way to convert them to be able to play them on my iPod? I'm using Mac OX 10, and I have an iPod classic. I've tried using iSquint but that doesn't work. Done a little searching on here too, but haven't s

  • The picture frame in the blog summary!

    Hey, by default a frame of the blog entry picture shows up in the blog summary right with its text... It was all good, but by adding my second blog entry i suddenly found both entries on the blog summary page are without no photos... even by playing