Utilisatio​n des variables
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 ?
Résolu !
Accéder à la solution.
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+
Luc Desruelle | Voir mon profil | LabVIEW Code & blog
Co-auteur livre LabVIEW : Programmation et applications
CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW
Similar Messages
-
Equivalence des variables automates M251 sous labview Modbus
Bonjour,
Je cherchais à savoir les équivalence pour accéder au variable d'un automates Modicon M251 via le protocole ModBus de Labview.
Je connais déjà ces équivalences :
- 0XXXXX : %M
- 1XXXXX : %I
- 3XXXXX : %IW
- 4XXXXX : %MW
Mais je ne connais pas l'équivalence des variables %IX et %QX, si quelqu'un peut me renseigner ?
Cordialement,
Nathan -
Bonjour,
Je travail sous TestStand 3.5 ET LabView 8 et je désirerai accéder en lecture et en écriture à des variables que j'ai créées au niveau des utilisateurs. Je m'explique, dans TestStand j'ai créé pour l'utilisateur par défaut 2 variables, NbBon et NbMauvais. Maintenant lorsque je crée un utilisateur les champs NbBon et NbMauvais apparaisse au même titre que PassWord ou bien encore FullName. Maintenant je désire écrire et lire les valeurs de ces champs à partir de LabView, comment puis je faire ???
Merci de toute l'aide que vous pourrez m'apporter.
Will WLes variables globales sont stockées dans le fichier "StationGlobals.ini" du répertoire "ini" de TestStand. Pour sauvegarder les variables de manière durable, il faut sauver ce fichier. La plus simple des méthodes est d'utiliser la méthode "Engine.CommitGlobalsToDisk()". Vous trouverez ci-joint le VI modifié de façon à sauvegarder les valeurs sur disque.
Cordialement,
Attachments:
Access Prop.vi 25 KB -
Problème avec des variables globales
Bonjour,
J'ai un problème avec mon sous VI, où j'utilise des variables globales. Le problème est comme suit: même si j'initialise les valeurs de mon programme mon sous VI s'exécute avec les premières valeurs que j'ai entré au début (même si je change les valeurs avec lesquelles je travaille).
Merci pour votre aideci joint le vi principal : essai, et le sous VI paramètres
Pièces jointes :
Essai.vi 200 KB
Paramètres.vi 23 KB -
Probleme pour dupliquer des variables dans le projet
Bonjour à tous,
J' ai un soucis que je n'ai pas rencontré dans le passé concernant la duplication de variables dans mon projet Labview...
Avant je faisais un petit CTRL + clic , glisser déposé, mais dans mon projet actuel des fois ça marche et des fois ça ne marche pas , j' imagine qu'il y' a des restrictions ou autre.
Je peux bien entendu les créer manuellement mais là il s'agit de plusieurs dizaines de variables qui pour la plupart ne diffèrent que par le nom. Je gagnerai mon temps à les dupliquer et juste les renommer par la suite.
Avez vous des idées sur le problème ?
Merci d' avance.En fait c'est vraiment au niveau du projet
Voir le jpg : Je voudrais copier par exemple toutes les variables "KEPCO_BOP_WOOB1_ xxxxxx" et les renommer en "KEPCO_BOP_WOOB2_ xxxxxx" .
Si je selectionne tous et je fais ctrl + clic droit pour dupliquer à un autre endroit, j'ai la fleche de la souris avec le petit " + " à coté et je fais un glissé déposé mais rien ne se passe.
Pour l' instant je m 'en sors en créant à chaque fois une nouvelle variable mais c'est beaucoup plus long surtout si je dois répéter l' opération 100 fois.
Pièces jointes :
Capture.JPG 60 KB -
Bonjour,
Je vous expose mon problème, nous possédons une installation qui communique avec un automate qui nous retourne des données par le biais d'une passerelle modbus/ethernet. Ensuite en utilisant le Gestionnaire de systèmes distribués NI, je remarque que les valeurs que je lis (F400504 et F400506 par exemple) ne correspondent pas aux valeurs que je lis sur le logiciel modbus doctor.
Reprenant ce projet à l'abandon et étant débutant, je souhaiterais quelques éclaircissement.
Cordialement.Bonjour,
Je ne connais pas Modbus Doctor et je supose que pour retrouver les variables ModBus de votre automate via le Gestionnaire de systèmes distribués NI, vous utilisez le module DSC, que je n'utilise pas non plus. Malgré tout ça je pense que les différences de valeur lues sont dues au fait que le Gestionnaire de systèmes distribués NI affiche un Float alors que ModBus Doctor doit afficher la table ModBus de manière brute. En effet, le protocole ModBus ne gère que les booléens et les mots de 16 bits. Les valeurs flottantes sont donc obtenues par combinaisons de mots de 16 bits en fonction de règle défini par l'automate. Il y a donc de fortes chances que les données soit correctes des 2 côtés ou alors que le flotant affiché par le Gestionnaire de systèmes distribués NI ne soit pas converti correctement.
Cordialement,
Olivier JOURDAN
SAPHIR | Certified LabVIEW Architect | Topaze on NI Community | LabVIEW add-ons on NI Community | Follow me on Twitter -
Chargement des Variables (Flash 6, 7, 8)
Bonjour � tous,
Il y a un mystere que je ne comprends pas.
Je charge une liste de variable dans le m�me dossier
avec la commande
suivante:
loadVariables("Id.db", "_root");
Cela fonctionne parfaitement avec l'apercu avant publication
flash ou bien
sous un mode .exe mais en mode html rien, nada !
Quelqu'un aurrait il la gentillesse de m'expliquer pourquoi
ou ce que je
fait de faux. Je ne pige rien � ce truc
Je vous remercie d'avance
Cordialement
R�gineOups! J'ai trouv� il s'agissait de l'option
acc�s aux fichiers locaux et non
� l'acc�s au r�seau uniquement.
Merci � tous et bon Week-end
R�gine
"R�gine" <[email protected]> a �crit dans le
message de
news:e72kca$eju$[email protected]..
> Bonjour � tous,
>
> Il y a un mystere que je ne comprends pas.
>
> Je charge une liste de variable dans le m�me
dossier avec la commande
> suivante:
> loadVariables("Id.db", "_root");
>
> Cela fonctionne parfaitement avec l'apercu avant
publication flash ou bien
> sous un mode .exe mais en mode html rien, nada !
> Quelqu'un aurrait il la gentillesse de m'expliquer
pourquoi ou ce que je
> fait de faux. Je ne pige rien � ce truc
>
> Je vous remercie d'avance
> Cordialement
> R�gine
>
> -
Utilisatio​n des fonctions trigo sur labview
Bonjour,
je fais de l'acquisition de données sur labveiw et je suis encore débutant!! j'ai un problème avec l'utilisation des fonction trigonométrique sur labview car ca me renvoie tout et n'importe quoi. j'ai fait un simple VI pour vérifier le fonctionement de la fonction sinus et arcsinus et quand j'entre par exemple j'entre la valeur 30 ca me donne en sortie du sinus -0.98 alors qu'on sait tous que le sin 30°=1/2 et pire encore quand je reprend ces -0.98 que j'entre dans la fonction arcsin ( la réciproque) je n'obtiens plus les 30 de depart mais -1.42 :/ j'aimerais savoir savoir le truc que je ne capte pas. Car pour moi tous ces résultats sont illogique!!!
Merci
Résolu !
Accéder à la solution.Bonjour,
Il faut utiliser des angles en radians.
Cordialement,
Micaël DA SILVA -
J'aimerais lire ou modifier des variables globales sur TestStand à partir de LabVIEW
Bonjour,
J'utilise LabVIEW pour lancer TestStand et j'aimerais avant de lancer la sequence, modifier les variables globales sous LabVIEW.
Pourriez vous m'indiquer comment faire?
Merci,
Cordialement
Résolu !
Accéder à la solution.Bonjour,
En cherchant un peu dans l'API de TestStand (TestStand API Poster : http://www.ni.com/pdf/manuals/372844b.pdf)
On trouve :
Typically, you use the PropertyObject class to get or set the values of custom step properties, sequence local variables,
sequence file global variables, and station global variables.
Ce qui donne :
Cordialement,
Da Helmut
Pièces jointes :
TestStand Globale.vi 11 KB -
Bonjour,
Je cherche le moyen le plus fiable et simple pour enregistrer et récupérer des valeurs de variables numériques entre deux exécutions d'un logiciel créé avec Labview 2009.
Cordialement
PhilippeUne fois l'executable fermé, on perd les valeurs de variable partagée? Comment peux t on les stocker automatiquement à la fermeture de l'exe et les récupérer à son ouverture? Il y a toujours la solution de les enregistrer sur un fichier texte mais je n'ai pas l'impression que cela soit la solution la plus usuelle. J'ai vu qu'il y avait la possibilité d'allouer les clefs de registres à la création de l'installeur. Est ce que ces clefs de registres peuvent servir à stocker des données de configuration pour mon logiciel comme des variables numériques?
Cordialement,
Philippe -
Bonjour,
J'utilise actuellement les variables partagées. J'ai compris plusieurs aspects mais certains m'échappent.
Les variables partagées peuvent être configurées en mode "publiées sur le réseau" avec ou sans "bufferisation". Après plusieurs tests, le comportement est très proche d'une FIFO dont l'accès au timeout, horodatage...sont disponibles. Très bien.
On peut configurer la variable partagée en mode "un processus" pour par exemple le partage de données entre 2 boucles (par exemple, une boucle déterministe et l'autre non) du même VI. De même que pour la configuration en mode "publiée sur le réseau, on peut activer le principe de bufferisation avec l'activation de la FIFO RT. Ce qui permet de garder l'aspect dit "déterministe" qui pour moi signifie temps réel avec contrôle temporel de ce qu'on fait, utilile pour l'acquisition de données ou l'envoie de données avec contrôle du cadencement. L'aspect FIFO permet de s'abstenir des éventuels problèmes de contention lors de l'acquisition de données.
J'ai plusieurs questions :
- Ce que j'ai dit précédemment est-il juste (dans les grandes lignes)?
J'ai pu constater que l'on pouvait activer, pour une variable partagée, à la fois la bufferisation réseau et la FIFO RT.
- J'aimerais savoir à quoi peut servir la double configuration "Activation de la bufferisation" + "Activation de la FIFO RT" sur une variable partagée et comment ça fonctionne?
Quelle que soit la configuration de la variable partagée, lorsque celle-ci est lue, automatiquement le timeout se déclenche ensuite (ou plutard si la bufferisation est longue) si aucune écriture n'est faite ensuite. Ce qui signifie que la variable perd sa valeur! J'ai pu constater que cette valeur pouvait être un élément vide ou la dernière valeur maintenue. Suivant l'aide Labview, ça peut être 0.
Comment controle-t-on ceci? Y'a-t-il un moyen de le définir par défaut?
En vous remerciant par avance de vos réponses,
Je vous souhaite une bonne journée.
Vincent.Bonjour Bruno,
Oui l'installeur doit installer les différents drivers et runtime nécessaires à ton programme.
Vérifie que tu as bien coché toutes les options nécessaires dans l'onglet "Installeurs supplémentaires" dans ta spécification d'installer.
En ce qui concerne l'utilisation des variables partagées, je ne m'en suis jamais servi, mais il te faut forcément un point connu.
Par exemple, si tu ne connais pas l'adresse IP des postes "utilisateurs", alors je te conseillerais d'inverser le système, c'est l'utilisateur qui met à jour une variable partagée sur ton poste ( en supposant qu'il a une adresse fixe & connue).
J'imagine ce schéma en faisant l'analogie des systèmes client/serveur (principe du web) le serveur a tjs une ip fixe, et le client initiateur de la demande peut varier.
En espérant t'avoir apporter des éléments de réponse.
Cdt,
Michael -
Evénement déclenché par une variable connectée par Datasocket à un serveur OPC
Bonjour,
J'utilise un serveur OPC pour lire et écrire des variables sur un automate. J'ai essayé de connecter les variables directement avec un connexion Datasocket et d'utiliser les VI en exemple. Dans les deux cas, les ressources de mon PC augmentent et les temps de réponse sont assez longs.
Dans mon application, j'ai besoin d'"attendre" une valeur particulière d'une variable automate. Je voudrais donc dans un premier temps, vérifier que la variable n'est pas à la valeur souhaitée et si ce n'est pas le cas, avoir un événement qui se déclenche au changement de valeur de cette variable. Cette méthode de programmation fonctionne lorsque la connexion de la variable locale n'est pas activée, mais pas avec la connexion Datasocket.
Est-ce normal? Y-at-il un moyen pour que ce soit le serveur qui informe le client Labview que la variable a changé d'état?
CécileBonjour Cécile !
Et bienvenue sur ce Forum ...francais
Je ne vous apporterai pas d'élément complet de réponse car je n'ai jamais utilisé de process DATASOCKET .
Cependant je pense pouvoir vous aider lorsque , je vous cite :
"Dans les deux cas, les ressources de mon PC augmentent et les temps de réponse sont assez longs. "
Je pense que vous utilisez des boucles contenant des tableaux ou des variables locales et pire encore ,pour l'espace mémoire, des fonctions concaténation, des fonctions de modification de tableau etc...
En effet contrairement à certains languages de programmation utilisant des boucles (presque tous maintenant) Labview génére à chaque itération de boucle une allocation mémoire (différente si ce n'est pas le premier appel ) lors d'une lecture ou écriture de variable locale (imaginez alors si c'est un tableau de clusteur par ex...) l'utilisation mémoire augmente alors à chaque lecture ecriture des variables...
Utilisez un registre à décalage (click droit sur la boucle for ou while) pour que votre variable soit transmise à la prochaine itération (même en arretant Labview, vous pouvez utiliser les valeurs précédents l'arret !) et ne soit plus réallouer à chaque itération
vous pouvez avoir plus de détails en lisant l'Application note suivante...
Labview Performance and Memory Management
et un sujet (en anglais) qui définit bien la différence et le fonctionnement des variables
locales et noeuds de propriété
que vous pourrez retrouver dans le répertoire manuals de LAbview...n'oubliez pas de préciser à chaque sujet votre config et des infos précises sur votre problème , le monde des sytèmes electronique - informatique et vaste et varié...
CordialemntMessage Edité par Ecosmose_CNRS le 05-26-2005 06:13 PM
Julien
Conception Informatique et électronique
CNRS LCSR Web
Orléans la Source FRANCE -
Datasocket comment retrouver une variable avec un lien datasocket mal configuré dans un VI
Bonjour,
J'ai dans un projet une variable configurée avec un lien datasocket en mode lecture qui fait appel à une adresse IP fixe.
Je le vois avec la commande Netstat sous dos...
Mon problème c'est que je n'arrive pas à la retouver dans tous les VIs de mon projet pour la corriger ....
Y'a t'il une astuce
MerciBonjour Clément,
Malheureusement je ne saisi pas très bien votre problème
Utilisez-vous des variables partagées que vous avez liées à une adresse IP?
Elles ne sont pas présentent dans une bibliothèque de votre projet?
Je ne comprends ce que vous voulez dire lorsque vous écrivez: "je n'arrive pas à la retrouver dans tous les VIs de mon projet"
Peut-être pourriez vous poster votre projet?
Cordialement
PS: ce forum est destiné au posts en anglais si vous désirez poster en français vous avez le forum français.
Message Edité par Véronique D le 04-01-2008 04:29 AM
VéroniqueD
NI France -
Problème NXT + variables globale
Hello, my name is Jérôme and i'm doing a project for my studies.
The goal of this project is to do a Segway in Labview for NXT (LEGO)
But the problem is that i don't know how to create globales variables ?? Because it's impossible with NXT envirronment.
The stabilisation software works perfectly, my problem is to go forward and backward.
I wish to do two differents while loops working together. The first one content the stabilisation software and the second one is for moving.
But in order to do this, in the second loop, i have to modifie the values of variables in the first variable in real time (contained in an array of floats).
Do you have some ideas about this ?
Thks
Bonjour, je m'apelle Jérôme et je dois réaliser un projet dans le cadre des mes études.
Le but étant de réaliser un segway en Labview pour un NXT de Lego.
Je ne sais pas comment faire des variables gloabales ??? car le NXT interdit les variables globales.
Le programme de stabilisation marche impécable, mon problème étant de le faire avance et reculer.
Je souhaiterais faire deux boucles while, une qui contient le programme de stabilisation et l'autre qui contient mon programme "avancer/ reculer". Le programme avancer/reculer doit modifier des variables ( en temps réel) de la boucle stabilisation (qui sont stockées dans un tableau de float) sans interrompre le programme de stabilisation.
Auriez-vous des idées pour m'aider ??
Merci
Spoiler (Highlight to read)Did you try with functional global variables?:
FGV
regards,
Romain DUVAL || Application Engineer Specialist ||Certified LabVIEW Architect (CLA) || Certified TestStand Architect (CTA)
National Instruments France -
Communication par variable partagée entre un PC et une cible RT LabVIEW 2009
Bonjour,
j'utilise un version 2009 de LabVIEW.
Je tente d'utiliser des variables partagée (publiée sur le réseau et non RT -> pas de FIFO activé).
Je lance mon programme sur le cible RT (écriture sur la variable partagée) puis le lance mon programme surle PC hôte (lecture de la varaible partagée) ça fonctionne.
Maintenant je veux faire un exécutable pour ma cible RT et la, plus moyen de lancer le programme sur le PC. De la même façon, si je lance le programme sur le PC sans que la cicle RT ne soit connecté, pas déployement possible.
J'utilise également des version 8.2.1 et 8.5 et ce procèdait de la même façon avec succès...
Merci pour votre aide.
Message Edité par Jean-Baptiste D le 11-19-2009 09:51 AMBonjour,
Avez-vous vérifié que la version des logiciels est la même sur l'hôte et sur la cible?
Je joins deux documents qui vous aideront peut être à résoudre le problème.
Cordialement,
Thomas B. | CLAD
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
>> Inscrivez-vous gratuitement aux Journées Techniques : de l'acquisition de données au contrôle/com...
Attachments:
KB 4QQ9FCCX.docx 139 KB
KB 53A3QPHY.docx 15 KB
Maybe you are looking for
-
How can I delete an authorized computer?
In my account settings it says I have 5 devices authorized, I want to deauthorize old devices. I see teh optoin to deauthorize all, but how can I look a th
-
Outlook 2010 Send/Receive Issue
I have Windows. Office 2010. Norton Internet Security. Microsoft Windows 8 x64 Business Edition (Build 9200) Dell Inc. Inspiron 7720 iTunes 11.0.4.4 QuickTime 7.7.4 FairPlay 2.4.14 Apple Application Support 2.3.4 Using Outlook 2010, pop email address
-
It is a big news in Japan recently and many news site in Japan report the incident. At first I thought it will be settled in a couple fo days. I decided to translate a couple of their articles and post here because I hear Apple Japan wrongly treated
-
Hello, I am currently working with an UCCX 9.0(2) installation and the csutomer is using CUIC as the reporting tool. We are currently facing some troubles: 1. We are in a timezone that is GMT-3 (Argentina). If, for instance, you ask for de summary ac
-
Help! Getting the cannot find symbol error.
Hello everyone. I have gone throught my whole program and I am still getting a cannot find symbol error. What does this error mean exactly? Here is the code below. I am trying to color a background using a comobox method. import java.awt.BorderLayout