Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Boucles While en parallele

Solved!
Go to 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 Kudos
Message 1 of 6
(5,802 Views)
Solution
Accepted by jex89

J'ai trouvé,

 

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

J. Perrin
Message 2 of 6
(5,798 Views)

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 Happy

 

Merci Jex.

 

0 Kudos
Message 3 of 6
(5,780 Views)

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
Download All
0 Kudos
Message 4 of 6
(5,777 Views)

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 Kudos
Message 5 of 6
(5,770 Views)

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 Kudos
Message 6 of 6
(5,751 Views)