From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

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

state machine + event (soucis)

Résolu !
Accéder à la solution

Bonsoir à tous,

 

Tout 1er contact pour moi avec la "state machine". Smiley surpris

 

Je me dis, je fais faire clignoter une Led avec une machine à états

et pourquoi pas (autant se faire plaisir) ... je vais déclencher le clignotement par un "event"

 

go.

L'event fonctionne bien et déclenche le clignotement de la Led (led1).

La led clignote sans interruption (normal)

 

ensuite ... terminé ... mon front_panel est bloqué

plus aucun accès au boutons stop_A ou stop_B

impossible d'arrêter la boucle While "A" (le clignement de la Led) via le bouton stop_A

et donc impossible d'arrêter la boucle While "B" ... de toute façon le bouton stop_B ne réagit plus sur le front panel.

 

Je ne comprends pas !

 

déja ... pourquoi le bouton stop_A est-il devenu inaccessible, m'empéchant de mettre fin à la boucle While "A" ???

et donc d'arrêter le clignotement de  la Led. Il n'y a apparemment aucune raison.

Si la led clignote, c'est donc la preuve que la boucle While_A "tourne",

et si While "A" tourne, le bouton stop_A est donc bien dans le flux de données, et est donc "lu".

(???)

 

Merci à tous,

 

 

snippet_03.png

0 Compliments
Message 1 sur 11
4 740 Visites

2hrs plus tard,

J'ai amélioré le modèle

(bcp de recherches, la structure Event est une chose nouvelle pour moi)

 

Manifestement,

1) un While autour d'un Event est indispensable.

2) le Time-Out ... important également !

 

Je peux stopper l'event. (lock front panel "off" dans edit events)

 

snippet_03.png

 

 

0 Compliments
Message 2 sur 11
4 737 Visites

Bonjour,

 

C'était bien le lock front panel qui bloquait.

Pour la boucle while c'est que la structure évènement ne permet d'éxecuter que le code pour un seul évènement, il faut donc une boucle pour qu'elle les gère tous.

 

Un petit conseil: il faut éviter de mettre du code qui prend du temps dans une structure évènement, pour justement qu'elle puisse être réactive.

 

L'idéal ici est de mettre une machine à état dans le timeout, les actions de l'utilisateur vont juste changer l'état suivant.

Cordialement,

Simon D.
CLA | Certified LabVIEW Architect
CTA | Certified TestStand Architect
0 Compliments
Message 3 sur 11
4 729 Visites

Bonjour

 

pouvez-vous donner un exemple de la structure événement dans un time-out?

 

Merci

Robert Papanicola
http://sciences-indus-cpge.papanicola.info/
http://www.medicalistes.org/~maxime-plus/
0 Compliments
Message 4 sur 11
4 716 Visites
Solution
Accepté par l'auteur du sujet ouadji

A mon avis la boucle B est inutile, voici un exemple dans lequel le clignotement est géré par le timeout de la structure evenement

 

Yohann L.
0 Compliments
Message 5 sur 11
4 699 Visites

Le Select avec un false sur le cas false est une façon originale de faire un ET Smiley très heureux

Cordialement,

Simon D.
CLA | Certified LabVIEW Architect
CTA | Certified TestStand Architect
0 Compliments
Message 6 sur 11
4 692 Visites

En effet, j'envisage de le breveter .... Smiley MDR

Yohann L.
0 Compliments
Message 7 sur 11
4 690 Visites

Les snippets perdent les définitions des événements liés à des controles de face-avant. C'est pareil pour les variables locales, on dirait que les références des controles de face avant sont perdues. c'est un bug connu ça ?

 

 

Yohann L.
0 Compliments
Message 8 sur 11
4 683 Visites

Les snippets perdent les variables locales ... oui, j'ai remarqué ça aussi.

 

Concernant la Led qui clignote, j'aime bien ça moi:

histoire de gagner 1 porte et 3 cycles machines Smiley clignant de l'œil

(pas besoin d'initialiser la rétroaction)

 

snippet_03.png

0 Compliments
Message 9 sur 11
4 663 Visites

ouadji a écrit :
histoire de gagner 1 porte et 3 cycles machines Smiley clignant de l'œil

(pas besoin d'initialiser la rétroaction)


C'est un bon réflexe de chercher à optimiser, mais là pour ce qu'il y a à faire, à moins de vouloir faire tourner ça sur un 486 (et encore), ça revient à couper les cheveux en quatre Smiley clignant de l'œil

Yohann L.
0 Compliments
Message 10 sur 11
4 650 Visites