Variables locales et globales en LabVIEW pour FRC

Cet exemple sert d’introduction aux variables locales et globales, comment elles sont utilisées dans un projet LabVIEW FRC® par défaut, et comment vous pouvez les utiliser dans votre projet.

Local variables and global variables may be used to transfer data between locations within the same VI (local variables) or within different VI’s (global variables), breaking the conventional Data Flow Paradigm for which LabVIEW is famous.  Thus, they may be useful when, for whatever reason, you cannot wire the value directly to the node to another.

Note: One possible reason may be that you need to pass data between consecutive loop iterations; Miro_T covered this in this post.  It should also be noted that the feedback node in LabVIEW may be used as an equivalent to the shift register, although that may be a topic for another day!

Introduction aux variables locales et globales

Les variables locales peuvent être utilisées dans le même VI. Créez une variable locale en cliquant avec le bouton droit sur un contrôle ou un indicateur sur votre panneau frontal :

../../../../_images/11.png

Vous pouvez également créer une variable locale à partir de la Structures palette du diagramme bloc. Lorsque vous avez plusieurs variables locales dans un VI, vous pouvez cliquer à gauche pour choisir la bonne variable:

../../../../_images/22.png

Les variables globales sont créées de manière légèrement différente. Ajoutez-y un diagramme bloc à partir de Structures palette et remarquez que lorsque vous cliquez deux fois, il ouvre un panneau avant séparé. Ce panneau avant n’a pas de diagramme bloc, mais vous pouvez ajouter autant d’entités au panneau avant que vous souhaitez et enregistrez-le sous forme de fichier *.vi :

../../../../_images/32.png

Note

Be very careful to avoid race conditions when using local and global variables! Essentially, make sure that you are not accidentally writing to the same variable in multiple locations without a way to know to which location it was last written. For a more thorough explanation, see this help document

Comment elles sont utilisées dans un projet de robot FRC LabVIEW par défaut

Des variables globales pour « Enable Vision » et « Image Size » sont écrites à chaque itération de Robot Main VI…

../../../../_images/41.png

… Et puis lire à chaque itération de l’instrument virtuel Vision Processing VI:

../../../../_images/5.png

Ce qui permet à l’utilisateur, lors du déploiement sur Robot Main VI à partir de l’environnement de développement LabVIEW, d’activer/désactiver la vision et de modifier la taille de l’image à partir du panneau avant de Robot Main.

Comment pouvez-vous les utiliser dans votre projet?

Consultez le diagramme bloc de l’instrument virtuel Periodic Tasks VI. Il existe peut-être y a-t-il une valeur, par exemple un booléen, qui peut être écrite à une variable globale dans le Teleop VI, puis lue dans Periodic Tasks VI. Vous pouvez ensuite décider quel code ou valeurs utiliser dans Periodic Tasks VI, selon la variable globale booléenne :

../../../../_images/6.png