Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Utilisation des variables

Solved!
Go to solution

Bonjour,

 

Je viens vous demander quelques conseils pour l'utilisation des variables : Faut-il préférer des noeuds de propriétés par rapport aux variables locales ? pourtant il me semblerait que la première nécéssite une référence + un noeud de propriété alors que la second il n'y a seulement une seule variable. D'après qq infos la première solution est préconisée, et vous que pensez-vous ?    

0 Kudos
Message 1 of 42
(3,845 Views)

GSXR100045 a écrit :

Bonjour,

 

...pourtant il me semblerait que la première nécéssite une référence + un noeud de propriété


Salut,

Tu parles d'un noeud de propriété par référence? 

Edit:

exp.png

Reg
0 Kudos
Message 2 of 42
(3,842 Views)

 

 

Oui de ce genre implicite ou explicite cela dépend des cas en tout cas ce sont des Noeuds de propriétés alors qu'avec la variable locale c'est beaucoup plus simple, au niveau des situations de compétitions l'un ne vaut pas mieux que l'autre, la mémoire l'un utilise deux variables par rapport à la variable locale alors pourquoi préférer les noeuds de propriétés par rapport au variable locale ? C'est plus compliqué à faire peut-être, + c'est compliqué et obscur + c'est cher et complimenté sans doute ?     

 

Noeud.JPG

0 Kudos
Message 3 of 42
(3,837 Views)

Excuse moi,

 

 

Je n'avais pas vu que c'était R3g, Salut   

0 Kudos
Message 4 of 42
(3,825 Views)

salut si tu cherches des infos sur locale VS noeuds de propriétés VS terminal, je te conseille la lecture de

 

blog : Techniques Programmation avancée LabVIEW : Gestion des données FGV – AE - vers DVR

ou Technique de programmation avancée : gestion des données sous LabVIEW de la locale vers la DVR

 

ou LabVIEW noeud bloquant - Thread User Interface - Root Loop - priorité - interruption 

 


GSXR100045 a écrit :

 

Faut-il préférer des noeuds de propriétés par rapport aux variables locales ?    


Pour modifier juste la donnée dans un même diagramme (dans l’ordre) : terminal / variable locale / nœud de propriété.

 

Le nœud de propriété va engendrer des lenteurs car dans thread UI (le ratio est de l'ordre de 100 à 300 x plus lent en écriture). Par contre le nœud de propriété peut permettre de faire un value signaling + chainage erreur.

Quand vous mettez à jour une commande avec la même valeur plusieurs fois de suite, une variable locale ou un terminal de commande ne redessine pas la commande sur la face-avant à chaque fois (ce qui est le cas avec le noeud de propriété).

Il y a des duplications des données avec locale ou noeuds de propriétés.

 

Bonne lecture

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW
Auteur livre LabVIEW : Programmation et applications - Introduction à LabVIEW NXG
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD)
LabVIEW Champion

Message 5 of 42
(3,798 Views)

De plus dans ton exemple, le close référence n'est pas utile (ne pas faire de close sur une constante de référence)

Quand faut-il fermer une référence sous LabVIEW?

 

The use of a close operator on a control reference (generated from a control reference constant) is a NULL operation in LabVIEW. When the VI that calls the control reference constant becomes idle, LabVIEW automatically cleans up and disposes the reference. Calling the close does not generate an error

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW
Auteur livre LabVIEW : Programmation et applications - Introduction à LabVIEW NXG
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD)
LabVIEW Champion

0 Kudos
Message 6 of 42
(3,796 Views)

Perso, j'étais totalement anti-locale (même poubelle, avec la structure séquence Smiley Happy )

 

Je n'ai pas changé d'avis à propos de la sructure séquence,

 

mais en ce qui concerne la variable locale .... j'ai un peu élargi mon champs de vision.

 

Cela reste malgré tout quelque chose que j'utilise toujours après large réflexion (attention au flux, et aux conditions de compétition)

 

mais, parfois, je suis surpris d'en trouver une (ou deux) dans certains de mes codes.

 

Utilisées de façon "intelligente" (et certainement pas en les semant à tous vents) ...

 

elles sont efficaces, et surtout rapide. (à part le terminal lui-même, difficile de faire plus rapide)

 

et quand on a besoin de modifier par programmation la valeur d'un d'un Controle (pas un Indicateur) ... la locale, c'est pas mal.

 

petit avis perso ... en passant par ici.

Message 7 of 42
(3,787 Views)

Bonjour,

 

Cela me fait plaisir de votre intervention, mais désolé de vous décevoir le code ce n'est pas de moi c'est la correction d'un CLD 16 (en copie ci-joint), il me semblerait qu'avec "VI Analyzer ou Desktop Execution Trace", il ne nous tolère que quelques variables locales (2 ou 3), il me semblerait aussi que la DVR n'est pas au programme (je n'ai pas vu au CORE 3). C'est pour cette raison ils ont supprimé toutes les variables locales, je me trompe ou c'est une correction qui n'est pas encore optimisée ? Avez-vous le regret de critiquer une correction qui est censée de nous préparé au mieux les certifs ?              

0 Kudos
Message 8 of 42
(3,772 Views)

Meci Desruelle_luc pour la qualité de la documentation et les explications très claire. je n'ai pas tout lu,  mais le chapitre qui traite le sujet de la discussion est top 🙂 (apartir de la page 22):

http://www.mesulog.fr/download/JournTech2013_MESULOG_ProgAvanceeLabVIEW_GestionDonnees_VNI.pdf

 

 

Reg
Message 9 of 42
(3,785 Views)

Bonjour GSXR, la question est pour moi?


GSXR100045 a écrit :

Avez-vous le regret de critiquer une correction qui est censée de nous préparé au mieux les certifs ?              


 

 

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW
Auteur livre LabVIEW : Programmation et applications - Introduction à LabVIEW NXG
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD)
LabVIEW Champion

0 Kudos
Message 10 of 42
(3,759 Views)