Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Boucles While en parallele

Résolu !
Accéder à la solution

Bonjour,

 

J'ai créé un programme où je fais, dans une boucle While le contrôle d'un pressurisateur et dans une autre boucle l'acquisition et l'enregistrement des données.

 

Le pressurisateur doit fonctionner en continu alors que l'enregistrement se fait lors de l'appuis sur un bouton.

 

Est-ce que deux voire trois boucles While peuvent fonctionner en parallèle, si oui, faut-il faire qqch de spécial dans le diagramme ou ça fonctionne sans paramètres spéciaux.

 

Merci, cdt

J. Perrin
0 Compliments
Message 1 sur 6
5 440 Visites
Solution
Accepté par l'auteur du sujet jex89

J'ai trouvé,

 

Désolé du dérangement, c'est moi qui avait fait une erreur dans mon programme.

J. Perrin
Message 2 sur 6
5 436 Visites

Bonjour Jex,

 

C'est toujours bon de montrer l'erreur faite ... et la correction appotée.

 

Pour ceux, débutants peut-être, qui jouent avec des while en parallèle ... 

 

lire ton erreur sera peut-être une erreur en moins pour eux.

 

"on" a jamais rien appris devant un code qui fonctionne ... mais devant un code qui bug ... là oui ! Smiley heureux

 

Merci Jex.

 

0 Compliments
Message 3 sur 6
5 418 Visites

Bonjour Ouadji,

 

Oui tu as raison, bien que mon programme soit confidentiel, j'ai mis un petit exemple en pièce joint. En fait tu pourrais peut être m'éclairer sur ce "problème".

 

J'ai mis deux simulateurs de signaux dans deux boucles While différentes. Dans la première solution, celle où un seul bouton permet d'arreter les simulations, il n'y a qu'un signal qui fonctionne. Dans la deuxième solution, j'ai mis un arrêt dans chaque boucle, et là les deux signaux fonctionnent en même temps.

 

Peux-tu m'expliquer pourquoi, et peut-être comment y remédier afin d'avoir deux boucle qui s'arrêtent à l'aide d'un seul bouton!

 

Merci, cdt

J. Perrin
Tout télécharger
0 Compliments
Message 4 sur 6
5 415 Visites

dans ton 1er exemple ... c'est l'erreur typique d'une méconnaissance du principe du "flux de données".

 

Ta boucle "du bas" ne commencera son exécution qu'àprès la fin de l'exécution de la boucle "du haut".

 

Car elle a besoin pour "commencer" d'avoir toutes les données présente à ses entrées.

 

Elle s'exécutera ... mais n'exécutera qu'une seule itération.

 

voici une solution ... il y a plusieurs façons de stopper des while en // ... celle-ci est,disons, la plus "simple".

 

SR1.png

 

clic droit sur ton bouton "stop" ... create / local variable ... et placer cette variable locale en "lecture".

 

0 Compliments
Message 5 sur 6
5 408 Visites

J'avais essayé avec une variable locale, c'est ce qui me semblait le plus approprié mais il me mettait une erreur.

 

Je ne comprenais pas pourquoi, mais en fait c'était l'action mécanique de type armement qui ne pouvait pas être utilisé avec une variable locale d'une commande booléenne. Maintenant j'ai compris.

 

Merci à toi pour les infos.

 

Cdt.

J. Perrin
0 Compliments
Message 6 sur 6
5 389 Visites