Discussions au sujet de NI LabVIEW

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

Bug ou comportement souhaité ??

Résolu !
Accéder à la solution

Une structure Flat_Séquence dans la "ligne de retour" d'un noeud de rétroaction.

 

Avec une seule "Frame", aucun soucis ..... mais si j'ajoute une Frame ... terminé ... LV refuse, vi broken.

 

 

SR1.png

 

Est-ce un Bug ?

 

(pour moi, oui ... il n'y a aucune raison "logique" pour que cela soit "ok" avec une Frame ... et pose problème avec 2)

 

Et si cela n'est pas un Bug ... quelle serait la raison "cohérente" à ce comportement ?

 

Merci.

 

pour tester, ci-joint "toto.vi" en LV2011

 

0 Compliments
Message 1 sur 6
4 890 Visites
Solution
Accepté par l'auteur du sujet ouadji

Salut Ouadji,

 

Selon moi, l'explication est assez simple:

- La structure séquence déroulé est faite pour que les différentes frames de la séquence s'exécute dans l'ordre de gauche à droite. (Rapelle-toi que cette structure permet de créer du flux de donnée là où il n'y en a pas, ce n'est pas le flux de donnée créé par tes fils qui indique l'ordre d'exécution, mais bel et bien l'ordre des frames).

 

Lorsque tu mets 2 frames cablées tel que tu le montres, tu essayes de définir une entrée de la 1ere frame comme provenant de la 2eme frame, Or, la 2eme frame s'exécutant après la 1ere, c'est totalement impossible.

 

Il faudrait alors cabler la structure comme ceci:

sequence feedback.png

 

Il y a un autre comportement de la structure séquence qui m'a toujours intrigué, c'est le fait que l'on soit capable de sortir de la séquence en cours, et d'exécuter du code en paralèlle de celle-ci avant qu'elle ne soit finie. Cette phrase n'est peut-être pas très claire, mais voici un code qui l'explique:

sequence.png

 

Cet exemple montre que l'on va piloter la valeur de l'indicateur boléen avec la constante vrai une fois que la 1ere frame est executée, alors que la structure séquence est bloquée dans la 2eme frame en attendant qu'on clique sur le bouton OK. On peut voir ça comme si la struicture séquence n'était pas un seul noeud, mais plusieurs noeuds assemblés les uns à la suite des autres.

Olivier L. | Certified LabVIEW Developer


Message 2 sur 6
4 863 Visites

Bonjour Olivier,

 

Ta façon "de voir" la chose est cohérente, et rend ce comportement "logique". (ok)

 

 

Pour ton étonnement suivant :

 

un post inéressant de Darren  ici  (le post qui a été accepté comme solution)

 

Cette structure flat_séquence semble être une "chose" créée un peu comme un "électron libre" et non aboutie.

Un reliquat du temps où le scripting était uniquement interne à NI ... un reliquat qui n'est pas forcément très heureux.

 

Un bon réveillon pour toi Oilivier.

Message 3 sur 6
4 859 Visites

Sans oublier que cette structure, imparfaite, non-aboutie (connue et reconnue comme telle par NI)

atypique, complètement "hors pistes" dans la hierarchie des Class ... 

 

(la flat_sequence est la seule structure qui n'est pas un Node)

 

..... est en réalité la Structure la plus utilisée par les débutants.

 

"Le Débutant", bien souvent ... "fonce dessus" ... sans savoir qu'il s'agit en réalité du plus bel Alien de LV.

 

Smiley heureux

Message 4 sur 6
4 850 Visites

Juste pour ajouter une remarque, après la guerre… L’explication d’Olivier me semble totalement juste. C'est juste un trompe l'oeil!

le nœud de rétroaction est similaire à un registre à décalage. Si dans ton exemple tu remplaces le nœud de rétroaction par une boucle while avec registre à décalage, tu remarques que dans ton exemple, la sortie est « à gauche » et l’entrée « à droite », mais le « trompe l’œil » ne peut pas être réalisé avec 2 états de la structure « flat ». l'entrée doit donc revenir à gauche...

original.png

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

Message 5 sur 6
4 788 Visites

oui Luc ... parfaitement compris.

 

et oui, bien évidemment ... que l'explication d'Olivier est totalement correcte.

 

Merci pour le snippet et le "plus" d'explications Luc, super !

0 Compliments
Message 6 sur 6
4 785 Visites