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 :

[LV8.2] Sortir d'une boucle for principale


Sujet :

LabVIEW

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut [LV8.2] Sortir d'une boucle for principale
    Bonjour,

    Je cherche à sortir d'une boucle for dans le sens où le "N" correspond au nombre de cycles commandés par l'utilisateur mais pour le bouton d'arret d'urgence je dois passer du cycle en cour au dernier afin de sauvegarder les données excel.
    En effet si on ocupe le programme les données ne se sauvegardent pas donc j'ai pensé à aller au dernier cycle en faisant une structure condition :
    dans un premier temps je calculais le nombre de cycles restants et je l'ajoutai au N pour qu'il passe au dernier, ce qui ne fonctionne pas, puis dans un second lui mettre une constante comme 1 mais ca ne marche qu'au premier cycle après ca ne marche plus. En gros mon bouton coupe les alimentations, ce qui est déja bien niveau sécurité, mas j'aimerai optimiser afin de finir le programme directement tout en relevant les données sur excel.
    Merci à vous

    Bonne journée

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir bien compris ta question. En tout cas, je te joins un vi qui sort de la boucle for quand tu appuies sur le bouton arrêt des mesures. Et les données sont bien récupérées même si toutes les mesures n'ont pas eu lieu. Il te suffira d'ajouter la fonction construire un tableau excel au niveau de mon graphe dans le diagramme et le tour sera joué.
    J'espère que ça t'aidera.

    Alex
    Fichiers attachés Fichiers attachés

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Re,

    Mon but était de commander le nombre de cycles en commandant le "N" mais à priorice n'est pas possible. En effet si par exemple je met 100 cycles ( donc N= 100 et donc ma boucle s'execute 100 fois) mais si j'appuie sur mon bouton stop je fais en sorte que mon "100" se vire et je lui met un autre nombre comme par exemple 1 juste pr faire un cycle et récupérer les données. Plus optimisé je me disais que je calcul le nombre de cycles en cours et restants et j'ajoute les "restants" aux "en cours" pour etre directement au dernier cycle. malheuresement ca ne fonctionne pas la boucle étant initialisé à 100 cycles elle fera 100 cycles donc bon.
    Du coup j'ai cherché autre chose pour mes données et avec 3 registres à décalages entre les différentes données je les sauvegarde dans ma face avant en temps réel puis dans mon ficher excel et ce même en stoppant le programme. Cela me suffit car j'ai l'essentiel mais c'est vrai que j'aurai souhaité trouvé une solution pour la boucle mais je pense que ca ne l'est pas.
    Bref merci pour ta technique qui fonctionne également.

    @+

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 66
    Points : 77
    Points
    77
    Par défaut
    Salut,
    Change ta boucle for en boucle while et tu cable ton bouton stop et tu rajoute un "oué pour tester si le i est égale à ton nombre de valeurs désiré
    Stéphane

    Développeur Labview v8.2

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 18
    Points : 24
    Points
    24
    Par défaut
    bonjour,

    sur la version actuelle de LabVIEW, si tu cliques sur le bord de la boucle For, tu peux demander de montrer le "terminal de condition". Celà te permet d'arrêter une boucle For en cours d'execution, en cas d'urgence ou d'erreur run-time, de la même manière qu'une boucle While.

    Vérifie si cette fonctionnalité existe dans ta version.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Slt, comme le stipule mon titre je suis en 8.2 donc je ne bénéficie pas de cette solution (mais merci quand même Ficare). Quand à ta solution steph, je l'ai déja essayé et ca marche à moitié car j'ai tro de boucles imbriquées à l'intérieur et donc ca ne s'arrete pas (>oui si je fais juste un exemple) donc au final avec les registres à décalage j'ai récupéré les données de mes mesures en temps réel, ce qui fait que je peux utiliser le "stop" de labview et le tour est joué.
    Merci à vous pour vos réponses, je m'en tiens la pour l'instant mais si je trouve une solution plus tard je la posterai.
    Bonne journée

Discussions similaires

  1. Sortir d'une boucle for avant la fin
    Par sandball22 dans le forum C
    Réponses: 4
    Dernier message: 17/05/2011, 14h00
  2. [PHP 5.3] Comment sortir d'une boucle for en PHP ?
    Par beegees dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2009, 20h36
  3. Réponses: 6
    Dernier message: 02/07/2008, 09h06
  4. sortir d'une boucle FOR
    Par Cheorches dans le forum VB.NET
    Réponses: 6
    Dernier message: 08/08/2007, 14h37
  5. Sortir d'une boucle for
    Par gids01 dans le forum Langage
    Réponses: 9
    Dernier message: 14/11/2006, 15h06

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