le 02-28-2014 04:01 AM
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
Résolu ! Accéder à la solution.
le 02-28-2014 04:10 AM
J'ai trouvé,
Désolé du dérangement, c'est moi qui avait fait une erreur dans mon programme.
le 02-28-2014 08:13 AM
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 !
Merci Jex.
le 02-28-2014 08:57 AM
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
02-28-2014 12:20 PM - modifié 02-28-2014 12:21 PM
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".
clic droit sur ton bouton "stop" ... create / local variable ... et placer cette variable locale en "lecture".
le 03-03-2014 01:53 AM
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.