Variables partagées entre executable et entre machine

Bonjour,
J'utilise deux variables partagées pour communiquer entre deux exécutables sur une même machine (Labview 2011).
Le reproduis ce schéma sur deux machines. Sur chaque machine, j'ai mes deux variables partagées.
La valeur de chacune d'entre elle est visible par le gestionnaire de systèmes distribués (2011).
Je souhaiterai utiliser une troisième variable partagée qui serait écrite par l'instance d'un exécutable sur une première machine et qui, sur une seconde machine, serait lu (avec utilisation du timeout). J'ai choisi pour chacune des trois variables la lecture /  écriture et l'option publiée sur le réseau.
Pour ma troisième variable, je souhaiterai qu'elle ne soit diffusée que par une seule machine. J'ai donc choisi l'option 'Activer les alias'  et mis l'alias d'une de mes deux machines \\sbgantlbv2\Variable partagées\Online Offline.
Cependant, la valeur de ma troisième variable n'est pas accessible.Ci joint copie d'écran de mon gestionnaire de systèmes distribués.
Quelle est la configuartion à utiliser pour une telle variable?
Merci
Attachments:
ges sys distri.png ‏35 KB

Julien,
In fact, you cannot do what you want with only one variable. The idea is to create two shared variables : One with read/write access and the other one in read only.
Let's name them "ReadWriteVariable" and "ReadOnlyVariable".
On the machine where you'll have to write into your shared variable, you'll use "ReadWriteVariable".
In the properties of "ReadOnlyVariable", you'll have to enable aliases and put the path of the "ReadWriteVariable" variable :
Then, on all the other machines where you have to only read the variable, you'll obviously use "ReadOnlyVariable" with the following method :
The function used is "Read Variable" :
So you'll have two applications. One for the machine where you write into the "ReadWriteVariable" and an other one for all the machines which will have to only read the value of your variable ("ReadOnlyVariable").
Regards,
Jérémy C.
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;}
Travaux Pratiques d'initiation à LabVIEW et à la mesure
Du 2 au 23 octobre, partout en France

Similar Messages

  • Variable partagée entre 2 éxécutables sur deux machines en réseau

    Bonjour, je désire communiquer par variable partagée entre deux éxécutables (créés en LV 8.6) sur deux machines différentes d'un même réseau local. Le noeud de méthode "déployer une librairie" me retourne une erreur dès que je place une ip différente de localhost ; d'une façon plus générale, l'exacte marche à suivre n'est pas très clair pour moi : qui déploie vers qui, necessité d'un "binding" ou pas, etc...Quelqu'un a t-il déja réalisé cette opération ? Merci d'avance...
    Vincent
    Solved!
    Go to Solution.

    Bonjour,
    Quel est précisément votre message d'erreur ? Pouvez-vous nous fournir votre VI afin de reproduire votre problème ?
    Voici quelques tutos :
    sur la technologie PSP pour les variables partagées publiées sur un réseau
    Network Variable Technical Overview
    Ainsi que quelques KB traitant du sujet :
    Comment déployer des variables partagées publiées sur le réseau
    Can I Use Multiple Network Cards with LabVIEW?
    Deploying Shared Variables to a Specific Network Card
    Et sur les messages d'erreur rencontrés :
    Troubleshooting Network-Published Shared Variables
    Shared Variable Error Explanations
    Cordialement,
    Message Edité par Steve Mohamed le 01-28-2009 05:32 PM
    Steve M.
    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;}
    >> Vidéo-t'chats de l'été : présentations techniques et ingénieurs pour répondre à vos questions

  • 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 AM

    Bonjour,
    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

  • Variable partagée sans spécifier le client/machine

    Bonjour à tous,
    Comme indiqué, je souhaite utiliser une variable sur un réseau pour communiquer une donnée entre une machine A et une machine B. Après avoir bidouillé, crée un projet et une bibliothèque, je peux maintenant envoyer ma variable partagée réseau. Pour cela, je désactive l'alias sur la machine client. Sur la machine B, j'active l'alias et je vais chercher la variable sur la machine A. Justement, ne puis je pas récupérer la variable sur la machine A sans spécifier d'alias ? Cela m'oblige en effet à aller chercher son emplacement manuellement si je veux changer de machine. Puisque la variable est partagée sur le réseau localhost, ne puis pas accéder à la variable juste avec son nom ?
    J'espère avoir été clair et je vous souhaite un bon après midi.

    Bonjour,
    SI j'ai bien compris, vous souhaitez lire une variable qui a toujours le même nom depuis un ou plusieurs endroits, et cette variable peut changer d'emplacement. J'entend par emplacement l'adresse IP du PC qui publie la variable et celle de celui qui vient lire la variable.
    Si c'est bien ça, on doit pouvoir le faire en indiquant le nom du PC dans le chemin de la variable à la place de l'adresse IP. Du coup, au moment de lire la variable, il va chercher le nom du PC et non son adresse IP.
    Le chemin devriendrait alors quelque chose comme : ni.var.psp://NomDuPC/NomDeLaBibliothèque/NomDeLaVariable
     A voir si ca fonctionne. Sinon, on peut toujours rendre le tout plus facilement modifiable en construisant la châine en indiquant la nouvelle valeur d'adresse IP pour la variable.
    Cordialement
    .mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
    Maxime R.  
      CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié  
      CLAD - Certified LabVIEW Associate Developer   

  • Enregistrer et récupérer des valeurs de variables numériques entre deux exécutions d'un logiciel créé avec Labview 2009

    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
    Philippe

    Une 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

  • Variables partagées

    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

  • Variables partagé publiés réseaux

    Bonjour,
    Je suis en train de réaliser un programme et pour cela je dois faire circuler des données entre mon vi UI main et mon vi RT. Pour cela j'utilise des variables partagées publiés sur réseaux de type tableau de double. 
    Dans un premier temps j'écris mes consignes sur mon vi UI main dans ma variables partagées (nom : PC) puis je la désassemble dans mon vi RT pour les lire.
    Problème lorsque je la désassemble dans RT je n'ai que 9 valeurs, alors que j'en ai environ vingt dans mon UI main.
    Savez vous d'ou vient le problème, est ce que j'aurais pas oublié un paramétrage (même si j'ai déja vérifié)
    Ci joint deux photos explicatives:
    La première (photo 1) correspond aux moment ou j'écris mes valeurs dans ma variables partagées sur le vi UI main
    La seconde (photo 2) correspond aux moment ou je lis mes valeurs dans ma variables partagées sur le vi RT
    Solved!
    Go to Solution.
    Attachments:
    photo 2.png ‏173 KB
    photo 1.png ‏193 KB

    Salut,
    Clique-droit sur la fonction "tableau en cluster" et configure la taille souhaitée pour le cluster. Par défaut elle est de 9...tu dois donc modifier ce paramètre et la régler à la valeur 21. Et ça devrait rouler !

  • Communication variable partagée

    Bonjour,
    Est-il possible de communiquer entre ordinateur sur un réseau local un tableau de Chaines 2D avec une variable partagée ?
    J'arrive à communiquer un tableau 1D mais pas 2D
    Résolu !
    Accéder à la solution.

    Bonjour,
    Essayez de convertir votre tableau en variant et d'utiliser ce type de donnees pour communiquer entre vos deux systemes.
    Cordialement.
    Da Helmut

  • Variable Partagée OverFlow (Erreur -2221)

    Bonjour,
    J'utilise LabView 2011 avec un Module cRio 9025.
    J'ai programmé une 1ère tache déterministe Cadencée à 1 ms / Priorité 500 => Cette boucle acquière 19 mesures à 1Khz.
    J'ai programmé une 2ème tache non deterministe Cadencée à 10 ms / Priorité 100 => Cette boucle gère l'enregistrement des 19 mesures dans 3 fichiers différents (chacun ayant une fonction particulière)
    Le transfert des données entre la boucle déterministe et non déterministe se fait par le biais d'une variable partagée paramètrée avec : 
    - Tableau Double 1D / Un processus
    - Fifo RT : nombre de tableaux = 11 / Nombre d'éléments = 19.
    Quand j'exécutes mon programme un overflow se produit dans la boucle déterministe (env 7000 en 1 min).
    Je cherche des pistes pour l'éviter.
    Dans un 1er temps j'ai désactiver toutes les fonctions "Écriture dans un fichier ASCII" et effectivement plus aucun OverFlow ne se produit.
    Ayant identifié la source du problème je suis passé au format d'enregistrement Binaire. Dans ce cas, j'ai effectivement 2 fois moins d'erreur 3785 overflow en binaire au lieu de 6623 en ASCII.
    Je précise que dans la boucle non determinste la fermeture et l'ouverture des fichiers ne se font que lorsque un nombre de lignes est atteint. Dans les autre cas, je ne fais que de l'enregistrement.
    Sur quel autre paramètre puis-je interagir pour éviter le phénomène ?
    D'avance merci beaucoup pour votre nombreuses pistes.
    CAPRA - KB

    Bonjour,
    En bleu les réponses aux questions.
    Merci.
    ===============================
    Comment est faite la lecture de la variable partagée dans la boucle non déterministe?
    => On "Dépile" la variable partagée, puis on enregistre.
    On répete la structure ci-dessus jusqu'à atteindre le code -2220. Dans ce dernier cas, on purge l'erreur puis on recommence.
    Est-ce que vous lisez une donnée à chaque itération?
    => Oui on lit une donnée à chaque itération à savoir 1 tableau de 19 mesures.
    Ou est-ce que vous venez vider l'ensemble de la fifo de la variable en attendant une erreur d'underflow?
    =>Non
    Il est important que vous veniez vide l'ensemble de la FIFO à chaque itération de la boucle non déterministe.
    Ensuite, vous devez regarder comment l'enregistrement est le plus efficace. Est-il préférable de lire les données et de les enregistrer une par une, et de réitérer cela jusqu'à ce que la fifo soit vide, ou est-il préférable de venir lire tous les éléments de la fifo, puis de tout enregistrer d'un coup dans le fichier (je pense que l'appel au fichier une seule fois par itération est préférable).
    => Je vais faire un essai d'enregistrement unique de plusieur iteration jusqu'a ce que la FIFO soit vide. Merci pour cette proposition.
    Enfin, si malgré cela, le temps d'écriture du fichier est encore un peu juste, il est peut-être préférable de grossir un peu la taille de la FIFO.
    => Y'a-t-il une méthode pour choisir la taille de la FIFO ? J'ai peur de mettre une valeur trop grande et de me rendre compte après qqes heures de fonctionnement que ça n'a pas suffit... Y'a-t-il l'equivalent d'un "scan backlog" <=> "nombre de points encore disponibles" dans la FIFO ? sachant que la variable partagée a été créée à partir d'un projet....
    Cordialement,
    Olivier L. | Certified LabVIEW Developer

  • How can i copy a dbx executable to other machine to run without installion

    How can i copy a dbx executable to other machine to run without installion whole workshop
    packet??? how to generate a configuration for dbx alone???
    thanks

    Hi, thanks for you help.
    actually, I have once copied dbx to other machine. certainlly, it needs a license. But when I copied
    a license file from the directory /opt/SUNWspro/license-dir/ of machine that installed Workshop
    to another machine that i want to run dbx. dbx starts correctly. but when i type
    $ dbx ipCentrex
    it prints following message:
    dbx: warning: cannot find global initialization file: dbxrc
    /opt/wacos/./.dbxrc[1]: syntax error
    dbx: installation problem, can't find help file: ./SUNW_SPRO_Dbx_help.info
    _find_executable: not found
    To suppress this message, add the following line to your .dbxrc file:
    dbxenv suppress_startup_message 6.2
    Reading ipCentrex
    dbx: warning: setuid program exec()ed. Reattaching
    There might be too many LWP's in this process.
    See `help dbxenv' under mt_scalable.
    dbx: Cannot open lwpstatus.
    dbx: warning: process initialization failed
    dbx: warning: can't find file "/opt/wacos/server/feature_server/bin/obj/ipCentre
    x/ipcentrex_main.o"
    dbx: warning: see `help finding-files'
    when it says that has errors in .dbxrc file, I can remove this file. But the critical error is why it says
    too mamy LWP's in this process? when I debug it at a machine that installed workshop, this error not occurs.
    anyone have answer?

  • Wrong output when executed in UNIX machine

    Hi All,
    We have created a java class which takes a file name as command line arguments and trying to test whether that file which has taken from command-line is accessible if it is already in use (like copying from/to other path). For this we are passing filename as argument to FileInputStream Class .
    This java class when executed in windows machine is giving expected output i.e. throwing Exception if the file is already in use. But the same code when ran from UNIX machine, there it is not giving expected result as mentioned above. Can anyone please help us in resolving this problem?
    Thanks in Advance

    Not sure if this has anything to do with it, but did ftp the text file up to the UNIX machine? If you did, were you using ascii mode?
    Windows:
    file in  use.becomes
    file in use.^Min unix when I transfer the file using the binary mode.
    -J

  • Comment retrouver l'utilisation d'une variable partagée dans un projet

    J'ai un projet assez important où j'utilise des variiableables partagées. Le problème arrive lorsque je veux les retrouver.
    Avec un vi ou une variable glogale, c'est facile : il suffit de faire un clic droit et de sélectionner "trouver toutes les instances". Mais pour une variable partagée, ça n'existe pas.
    Existe-t'il une méthode? quelle-est-elle?

    Bonjour,
    Veuillez suivre cette procédure afin de résoudre votre problème.
    In order to see your Network-Published Shared Variables in the VI Hierarchy you must change their Variable Type to Single-Process. You should only change this property type when you are not accessing the variables from the network. Changing the Variable Type can be done by right-clicking on your variable in the Project Explorer Window and selecting Properties from the drop-down menu. In the Shared Variable Properties window change the Variable Type to Single-Process. Once the variable type has been changed, you can now see what variables are being used by what VI's. To do this open your Main VI, go to VIEW » VI Hierarchy. In the VI Hierarchy window go to VIEW » Include Globals. Now all of your variables will be seen as Globes in the VI Hierarchy.
    Cordialement

  • Variables partagées Labview avec Visual C#

    Bonjour,
    Je suis étudiant en Génie Electrique et Informatique.
    Je cherche un moyen pour pouvoir lire et écrire, à partir d'une Form en C# directement dans le Moteur de Variables Partagées de Labview.
    À terme, je devrais pouvoir, à partir du PC n°1 (C#) écrire dans le VI du PC n°2 et lire dans le VI du PC n°3.
    J'ai déjà créé mes VIs et les variables globales et ils fonctionnent sur les PC n° 2 et 3.
    Il ne me manque "que" la partie C#, ou comment acceder à ce MVP. Quelqu'un peut-il m'orienter ?
    Anthony
    Hi,
    I'm currently studying in Computing and Electrical Engineering.
    I'm searching a way to Read/Write from a C# Form directly in the Labview's Shared Variables Engine.
    At the end, I'll have to communicate between the C# application (Computer n°1) and the first VI (Computer n°2, in order to write) and between the C# application and the second VI (Computer n°3, in order to read).
    My VI files and my shared variables are already created and this pack work with the two VIs.
    I have miss the C# part, then i don't know how to acces to the SVE. Could anyone show me the way ?
    Anthony

    see if http://www.ni.com/white-paper/6593/en/ and http://zone.ni.com/reference/en-XX/help/372636F-01/mstudiowebhelp/html/usingninetnetworkvariable/ are useful

  • Comment créer une variable partagés d'un cluster?

    bonjour,
    Je cherche à créer une variable partagé d'un cluster à 5 elements de type chaine de caractère comment faire??
    merci d'avance

    Il faut faire un control personnalisé du cluster (un définition de type par exemple). Ensuite dans la création de variable, il faut sélectionner "from custom control" dans le type de données...
    Rodéric L
    Certified LabVIEW Architect

  • Créer une variable partagée de type chemin de fichier

    bonjour
    est-ce que quelqu'un sait comment créer une variable partagée de type chemin de fichier.
    merci de votre réponse=)
    Résolu !
    Accéder à la solution.

    Salut,
    Je crois pas que ce type de variable existe. Cependant tu peux transformer ton chemin de fichiers en chaine de caractère et faire transiter cette donnée via une variable partagée... puis faire la transformation inverse côté cible (ou PC c'est selon).
    Regarde du côté des VIs de chaîne de caractère dans la palette de fonction : Programmation > Chaîne > Conversions chaîne/tableau/chemin > Chemin en chaîne (ou Chaîne en chemin).
    @ + 

Maybe you are looking for