le 03-28-2018 04:42 AM
Bonjour,
j'ai une petite question dans la face avant j'ai un bouton arment à l'appui et dans le diagramme une boucle while dans lequel il y a une condition case contrôlé par le booléen donc quand je lance le programme dès que j'appui sur le bouton cela active la condition case une fois ce qui est ce que je souhaite
je voudrais pouvoir contrôlé ce booléen dans mon diagramme dans une structure séquence je voudrais "appuyer dessus" une fois, en mettant juste un booléen TRUE sur une variable locale de ce booléen j'ai une erreur avec la flèche brisé à cause de "armement à l'appui" ce qui est logique car on ne peut pas garder la valeur constante true avec armement à l'appui, y a t il quelque chose pour simuler un "appui" sur le bouton dans le diagramme ?
si ce n'est pas clair je créerais un vi en vitesse simplifiant le problème
Résolu ! Accéder à la solution.
le 03-28-2018 05:05 AM
Salut Louis,
Quel est l'objectif final de ce passage à TRUE du booléen ?
Cela pourrait nous aider à t'aiguiller vers la meilleure solution 🙂
le 03-28-2018 06:58 AM
Bonjour,
Effectivement il n'est pas possible de faire une variable locale si tu as un armement.
Mais après un armement c'est quoi? C'est juste un reset d'un Etat après une action, ce que je veux dire par la il est possible de faire toi même ton propre armement, et donc avoir juste un booleen en "Switch" et des que tu as fait ton action, tu peux très bien à l'aide d'une variable local remettre ton booleen à faux, et ça fait comme si tu avais gérer un armement.
Nacer
Nacer M. | Certified LabVIEW Architecte
le 03-28-2018 07:01 AM
Contrôler du code avec une While, une Case et un Booléen ....
donc c'est du polling ... bof ...
c'est de l'événementiel, la structure Event est faite pour ce genre de chose.
le 03-28-2018 08:04 AM
L'objectif est de déclencher la structure while+condition pour avoir le même effet que si l'on appui dessus sur la face avant mais le faire via le diagrame (en fait j'automatise une serie successive d'appui sur le bouton avec une strucutre sequence)
mais j'ai un équivalent avec le conseil de Nacer_M, j'aurais pas dû poster sur le forum pour un truc aussi insignifiant que l'on peut facilement détourner mais je vous remercie
le 03-28-2018 08:18 AM
Mais non rien n'est insignifiant!
Si tu as besoin d'aide hésites pas à poster, les gens qui répondent c'est qu'ils sont interressés ;).
Nacer M. | Certified LabVIEW Architecte
le 03-28-2018 08:36 AM
En effet, n'hésite pas à poster. Nous sommes contents d'aider 🙂
le 03-28-2018 10:09 AM
@Louis : " j'aurais pas dû poster sur le forum pour un truc aussi insignifiant "
Il n'y a pas de problème insignifiant. Le plus petit soucis fait bugger un code aussi facilement qu'un gros !
Et de toute façon, le forum est là pour ça Louis.
03-29-2018 05:36 PM - modifié 03-29-2018 05:41 PM
Si j'ai bien compris (pas certain !!) ... à chaque appui sur ton bouton tu aimerais exécuter successivement une séquence de différents code. Soit ... tu appuies une première fois, tu exécutes la portion de code A ... ensuite "wait" ... au deuxième appui tu "avances" et tu exécutes la portion de code B ... etc. Et si j'ai bien compris, tu cherches à réaliser ce séquencement via une structure séquence, des variables locales, des while et des structures case dans chaque sous-diagramme de ta structure séquence ? ... c'est ça ?
Si c'est ça ... il y aurait moyen d'utiliser une tout autre architecture ... sans structure séquence, sans locales ...
Je verrais bien un système producteur/consommateur. Dans la boucle producteur, une structure Event qui capture chaque appui sur ton bouton ... et qui à chaque fois, envoie une info à la boucle consommatrice pour lui indiquer, via une structure case, le code à exécuter (via un Notifier, on pourrait aussi envisager une Queue). Cette architecture te permettrait de réaliser ton besoin premier (toujours si j'ai bien compris ton besoin) ... mais te permettrait, si nécessaire, d'aller bien plus loin et de faire ce que tu veux .... revenir en arrière, reprendre la séquence au départ, et j'en passe .
Si je suis "dans le bon" sur ce que tu cherches à faire, j'aimerais "voir" ton code ... je pourrais alors te proposer une version qui à mon avis pourrait te plaire. Si je n'ai pas "parfaitement" compris ... explique ... et j'adapterai mon idée. Ce serait quand même pas mal de se passer de la structure séquence (anti-dataflow), des locales (beurk ) et du polling dans les While-Case, il y a moyen de faire beaucoup plus joli.
le 03-30-2018 02:21 AM
bonjour ou ouadji,
merci de la réponse mais ce n'est pas exactement ça, en fait lorsque lance le programme il y a plusieurs bouton, chacune correspond à un action contrôlé par un case, par exemple dès que l'on appui sur le bouton "A" on execute quelque chose et dès que l'on appui sur "B" on éxécute quelque chose d'autre,ces deux boutons sont en armement à l'appui et dans une boucle while il y a un case pour chaque bouton.
Ces boutons servent à effectuer des actions de test de matériel, je souhaiterais automatiser la succession de test, donc j'ai un bouton start et dès que l'on appui dessus cela execute l'action A puis l'action de B en gros avec le bouton start cela automatise l'appui sur "A" puis l'appui sur "B" (en réalité il y a plus que juste deux boutons/appuis mais c'est un exemple)
je ne peu pas te passer le code exacte car cela appartient à l'entreprise mais si tu le souhaite je peu envoyer une version très très simplifié
mais j'ai reussi à avoir un équivalent sans utiliser armement à l'appui (dans chacune des structures case il y a une instruction remettre le booléen à FALSE) donc je n'ai plus de problème mais je te remercie