Discussions au sujet de NI LabVIEW

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

qu'en pensez-vous (comportements)

Résolu !
Accéder à la solution

(voir le vi en image et ci-joint en LV2011)

 

Le Controle booléen "alpha" est false.

Dès que l'on touche à toto, le FP se verouille.

 

a)

Je m'explique ce comportement en disant que la modification de toto place un event sur la Pile des events statiques de la Structure Event ...

et comme cet event n'est jamais exécuté, cet event n'est jamais "vidé" de la Pile ... ce qui bloquet le FP. 

car "Lock Panel until the case for this event completes" = ON"

Il n'est donc pas nécessaire "d'entrer" dans le code de l'event ... le simple fait que l'event soit "enregistré" suffit.(pour bloquer le FP)

 

b)   Mais pour ceci,

 

avec  "Lock Panel until the case for this event completes = ON" (rien de changé de ce côté)

si je remplace le Controle booléen alpha (qui est False), par une simple Constante False ... ça tourne, le FP n'est pas bloqué.

 

très curieux, non ?

 

ici, je m'explique cela de la façon suivante :

 

avec une constante ... le compilateur supprime le code du diagramme "true" de la structure_case.

Pas de diagrame "true", pas de structure Event, pas d'enregistrement de l'event toto-value-change, donc pas de FP bloqué.

Je ne vois pas d'autres explications.

Ce qui m'étonne ... c'est que "allow debugging" est ON ... le compilateur, dans ce cas, ne devrait-il pas s'abstenir de "simplifier" (?)

 

mes raisonnements sont-ils corrects ??

 

 

SR1.png

 

 

0 Compliments
Message 1 sur 5
4 483 Visites

Salut ouadji, 

 

As-tu lu cette page de l'aide de LabVIEW? La dernière partie d'explique le pourquoi du comportement que tu observe 😉

    Benjamin R.


Senior LabVIEW Developer @Neosoft


Message 2 sur 5
4 459 Visites

Bonjour Benjamin.

 

Merci pour ton intervention et pour ce lien.

 

Cette doc explique le comportemennt a ... (mon raisonnement était correct)

 

mais elle ne donne pas d'explication pour le comportement b

 

soit pour b : (en faisant tourner mon vi totoLV2011)

 

avec un Controle_Booléen false ... le FP est bloqué.

avec une Constante_Booléenne False ... le FP n'est pas bloqué.

 

PS:

ce "comportement" ne vient pas d'un de mes codes, mais d'une autre question postée par Danaé .

Dans l'absolu, placer une Structure_Event dans une Structure_case ... est un ticket gagnant pour avoir des soucis ... je suis contre)

 

 

EDIT

cette phrase expliqurait-elle le comportement b ?

"The Event structure handles a queued event when data flow allows the structure to execute."

 

0 Compliments
Message 3 sur 5
4 452 Visites
Solution
Accepté par l'auteur du sujet ouadji

Pour le B LabVIEW optimise le code avec ou sans Allow Debugging. Cette option permet seulement de pouvoir utiliser ou non les outils de debug de LabVIEW en "instrumentant" quelque part le code. Cela n'indique pas au compilateur d'optimiser ou non le code. 

    Benjamin R.


Senior LabVIEW Developer @Neosoft


Message 4 sur 5
4 444 Visites

ok, mes "2" raisonnements étaient donc corrects.

 

avec une "confirmation", on passe de la supposition à la certitude, c'est beaucoup mieux "pour avancer".

 

merci Benjamin.

0 Compliments
Message 5 sur 5
4 442 Visites