Shared Variable VI development on machine other than server

I'm about to do my first shared variable code, I read the white paper
http://www.ni.com/white-paper/4679/en
Something that isn't immediately clear to me is the expected work flow in actually creating ALL the VIs using the shared variables.  I tried creating the project and the variable as per instructions, easy.  But I'm going to have one of those VIs running as the server of the data and one as the client.  Would these be two seperate project files with the same variable name and type?  One project file with seperate builds for server and client executables?
Actually, SV might not even be the best way to do what I need.
I have a PXIe machine with a slot 0 controller that has a mux (a pxi-2503) and dmm (pxi-4072) for getting measurements from multiple channels.  Rather than calling via VI server every time I want to grab a measurement I'd rather have an application running waiting on commands.  I was thinking of creating a crude command/acknowledge data avail/acknowledge scheme to synchronize the PXI slot 0 with the client that will be requesting the data, but I can imagine there is probably a more suitable framework that someone else has no doubt tackled?
I just need to guarantee that the rack takes the measurement when I want it to (ie, after some other action I've triggered the system to perform) and that the data I get back from it is identifiable.
Ideally, I'd have a MXI controller and this gets really easy but I won't be able to get ahold of one for months if at all so I'm going this route for now.

Hi Marcus,
When I drag a shared variable from the project window into the block diagram and then left click it and go to browse, I'm only presented with variables on my local machine to choose from.  If I switch into programmatic access and then go to browse I'm presented with a nice list and am able to browse to the remote shared variables and select it for my constant/control.  This works fine and I'll remember to do this from now on, I just wonder why the two different behaviors.
I have this working quite well provided I go ahead and start the VI running either with a built exe or through the vi.  As these instruments are going to ultimately be sitting in a headless (no monitor/mouse/keyboard) PXI with slot 0 rack, I am now trying to figure out how to either start these VIs running remotely.  I thought I'd just be able to drop the .exe into a windows scheduled task and have it run on start up.  This works fine but my client VI doesn't communicate.  If I go ahead and log in to the machine I can see the exe running in the Task Manager.  If I kill that exe and start a new one then I'm able to communicate with the VI though with some initially odd behavior, almost as if when I was running it on the client the SVE had changed the states of the variables locally and then when the new process was started it latched those states and causes me to have race-like conditions.  If I then kill that exe and start another one everything is in its expected "default" state and I don't have race like conditions or get into unexpected states.  I can probably add some code on the client side to avoid this weird behavior but I'd rather understand why things aren't working.  My guess is the SVE and other NI processes on the headless box aren't starting properly until I actually log in?

Similar Messages

  • Can I do a back up on a machine other than my home pc?

    Hey all.
    I have a faulty iphone and have an appointment to take it into the apple store this evening, but I forgot to do my backup last night.
    Is it possible to do my backup on a machine other than my home pc?
    I can do one on my mac here at work, but not really sure if its possible to do a back if its not on the machine with all my apps and music.
    Reason being is that if they replace my phone in the store tonight, I would like to be able to reinstall the backup to put my new phone back to the same content thats on my current/old phone (ie. contact numbers, music and app settings and all that stuff)
    Cheers

    Is it possible to do my backup on a machine other than my home pc?
    Yes. But make sure you disable auto sync when an ipod/iphone is connected under preferences in itunes(under the edit menu in windows) BEFORE you do so. Then simply connect your phone, right click in the device pane & select backup. When finished, eject your phone, DO NOT SYNC!
    Itunes places the backups here:
    * Mac: ~/Library/Application Support/MobileSync/Backup/
    * Windows XP: \Documents and Settings\(username)\Application Data\Apple Computer\MobileSync\Backup\
    * Windows Vista and Windows 7: \Users\(username)\AppData\Roaming\Apple Computer\MobileSync\Backup\
    You'll want to copy that folder to its proper location on the computer you normally sync with because after you restore from backup, you MUST sync to restore your itunes content.

  • Using diskspacemonitor on machines other than osx server

    Hi All,
    I'm wanting to monitor disk space free on a box I backup to and get emailed a warning if the free % is less than a certain amount.
    I have found df and can see it would do the job and would need more help if I was to use this. More about that in another post maybe!
    My question for this forum (it may not be the right one) is can the osx server command line app 'diskspacemonitor' be run on the desktop os's? and if so, how?
    tia all,
    Joe

    as you undoubtedly have found, there is no 'diskspacemonitor' in the usual /bin, /sbin, /usr/bin, or /usr/sbin directories, nor is there a "man" page for it, on 10.6.3 client. I guess you'd have to find a copy of it and install it, which may or may not violate apple software licensing agreements.
    I'm not sure of the mechanism that you are employing for the file backup, but on the target machine, you could create a launchd job that uses the watchpaths parameter. Just copy one of the com.apple.periodic-*ly.plist files in /System/Library/LaunchDaemons to a nw filename in /Library/LaunchDaemons and use it as a template to edit so that it does what you want. "man launchd.plist" will tell you about the watchpaths parameter - essentially, when a change is sensed in the directory or file specified by that parameter, a script that you specify (conveniently located in a "local" place like /usr/local), that would invoke df, will launch. IF you have enabled Postfix on that box, you could have that script pipe the output of df to the mail or sendmail commands

  • Inserting Title variable that refers to topic other than where variable resides

    Still using RH9, but I think RH10 is going into our upcoming budget. I understand the Title variable in the Fields and Variables dialog refers to the title of the topic in which you are placing the variable. However, I would like to use a topic title reference in another topic, because it is likely the title will change and I only want to change it in one place and have it reflected automatically.
    Here are two inadequate solutions I would reject:
    Dragging the topic name from the Project Manager and then changing the title of the referred topic: it does not change the reference text.
    Making a user defined variable: seems counterproductive because I will still be making one change too many.
    Example: I have a topic called VIP PO Approval that is referring to the VIP PO Upload/Entry topic. I am putting hyperlinks from the Approval topic to the Upload/Entry topic, but the text of the links should come from the "Upload/Entry" Topic Title field. If the powers that be change the spelling of Upload/Entry (perhaps include spaces around the slash), I only want to change it in the properties of that topic or rename it in Project Manager (the point is, in one place only).
    Does anyone know how to do this in RH9? Is there an enhancement in RH10?
    Thank you.

    I would add to Peter's response by saying this: When you drag and drop to create a link, what the link actually reads is dependent upon how you created the link. For example, if you select the text used to constitute the link, THEN drag to the selected text, the selected text is used instead of the Topic title. And sure, if you just drag the topic to an empty spot on the page, the Topic Title is used.
    Sure, it seems like an extra step is involved, but with RoboHelp 10, I defined a variable and used the variable as my topic title. I then dragged the variable to the selected text to create the variable. Then I dragged the desired topic to the variable to create the link. All seemed to work just fine with the link text updating when the variable was changed
    I think  any way you slice it you are going to have at least one extra step. But then again, anything that gives you more functionality tends to require an extra hoop or two, no? And on the up side, while an extra step is inovolved initially, you actually SAVE steps down the road. So overall, I'd say you are still in the benefit zone.
    Cheers... Rick
    Helpful and Handy Links
    RoboHelp Wish Form/Bug Reporting Form
    Begin learning RoboHelp HTML 7, 8 or 9 within the day!
    Adobe Certified RoboHelp HTML Training
    SorcerStone Blog
    RoboHelp eBooks

  • Cannot access created sharepoint site other than server machine

    I have installed SP2013 in windowsserver2008, i have chosen standalone server while configuring the server. I have created a toplevel
    site using Central Admin with Admin permissions. I opened the newly created site in the browser successfully. But i cannot connect this site from another machine using browser, i can able to open the site in the same installed server not in another machine
    using a browser. Can you please suggest me how can i share the created site to users to get work around.

    This sounds like a networking/dns issue and nothing related to SharePoint. Once your networking is setup correctly, you should be able to access the farm with the url http://{Server Name}/. But there has to be a dns entry for [Server Name] on your
    domain controller that points to the ip address of your SharePoint server and the SharePoint Server has to be reachable over the network on port 80.
    Doug Hemminger http://www.sharepointdoug.com
    What is the way to find out the network/ dns issue?
    And how to solve if any of this has >

  • How to setup Oracle 10g grid on a node other than SERVER

    Hi,
    We are in a process of moving the database residing on Windows servers to IBM AIX5L servers. For this purpose I came up with an idea of installing database on AIX and operate it remotely on Windows platform using 10g Grid Control and 10g Client. For this to happen perfectly, I am in middle of implementing same concept on Windows platfrom. I have made a test database on a Windows based server and I am trying to connect it with another Window based node. I know hwo to connect it using a client software but I am more interested to do it on Grid Control.
    At this stage, I have created database on server and have also configured Oracle Management Agent along with Oracle 10g Grid Control. I read oracle documentation that it is necessary to install Oracle Management Agent on server machine in order to let other nodes get connected with the server.
    I would extremely appreciate anyone who could help me in setting up 10g grid control on another node. Please note I wish to operate the database using grid control remotely. For know you can consider both computers on same network, I will go on VPN once I am able to do it on local network.
    Looking forward for your reply
    Shez

    Hi Xaheer,
    Thanks for looking into this matter. I had agent and grid running on the server and I have almost installed 10g Grid control 10.2.0.2. The place where I am stuck now is the OMS Configuration script that run after the installation in Configuration Assistant window. It just stuck here for some minutes and then displays the error. Let me paste here the lines in that appears in the detail panel of installation wizard.
    Output generated from configuration assistant "OMS Configuration"
    Command = oracle.sysman.emcp.oms.OmsPlugIn -configureOms
    Operation Stopping OPMN Processes is in progress.
    Operation EM Deploying is in progress.
    Operation Creating OMS Respository is in progress.
    Configuration assistant "OMS Configuration" failed
    The "d:\OracleHomes\agent10g\cfgtoollogs\configToolFailedCommands" script contains all commands that failed, were skipped or were cancelled. This file may be used to run these configuration assistants outside of OUI. Note that you may have to update this script with passwords (if any) before executing the same.-----------------------------------------------------------------------------
    According to the oracle installation guide, I had to deconfigure the database before running the setup. I did it using this command,
    emca -deconfig dbcontrol db -repos drop
    AS far as i think, I am getting this error becouse of sysman schema which was droped during the installation and was recreated( as I read in the oracle installation guide ) is not found by the script. So in order to b ring back sysman schema, I recreated the repository using following commands.
    emca -deconfig dbcontrol db -repos drop
    emca -config dbcontrol db -repos create
    Now, the database on server is not starting up. I can just see RED downword error, u know what i mean right ? Everyting is down, Database instance, Listener and Agent Connection to Instance, and on the top pf page I can see " Enterprise Manager is not able to connect to the database instance. The state of the components are listed below."
    When I try to startup the database using the grid control it gives me this error.
    Couldnot contact the agent. Verify that the url for the agent is null.
    I am stuck in here. If you know how to fix this agent , i would really appreciate that.
    Thanks

  • Alternative to specify the jar file location other than server classpath.

    Hi,
    We use weblogic 8.1 for our development purpose... and mostly work on ejb's. Every time a new ear file is created and deployed we need to specify the jar files needed to run that application in server classpath.... is there any alternate way so that v can avoid specifying these jar files in server classpath...

    vinod hadlee wrote:
    Hi,
    We use weblogic 8.1 for our development purpose... and mostly work on ejb's. Every time a new ear file is created and deployed we need to specify the jar files needed to run that application in server classpath.... is there any alternate way so that v can avoid specifying these jar files in server classpath...One alternative is you could bundle the jars in the EAR itself in APP-INF/lib.
    Gerald

  • Linux edition connecting from computer other than server

    Hi,
    After a days hard work, I managed to install the sneak preview 6.40 on Linux. Everything is working fine, as long as I am running on the server.
    If I want to connect from another computer with the GUI or a URL it showing errors, i.e. host not reached, host not found etc.
    This probably has to do with my lack of Linux knowlegde on ethernet interface configuration.
    Any help on this issue would be greatly appreciated.
    Greetings,
    Vincent

    Hi Gregor,
    Thanks for your helping hand.
    I am running on a SUSE Linux 9.3 distribution.
    This is my output from linux:
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    195.155.155.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
    192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
    127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
    0.0.0.0192.168.0.251   0.0.0.0         UG    0      0        0 eth0
    eth0      Link encap:Ethernet  HWaddr 00:90:F5:13:3B:3B
              inet addr:192.168.20.116  Bcast:192.168.255.255  Mask:255.255.0.0
              inet6 addr: fe80::290:f5ff:fe13:3b3b/64 Scope:Link
              UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:1279 errors:0 dropped:0 overruns:0 frame:0
              TX packets:458 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:443357 (432.9 Kb)  TX bytes:60807 (59.3 Kb)
              Interrupt:10 Base address:0xa000
    eth0:0    Link encap:Ethernet  HWaddr 00:90:F5:13:3B:3B
              inet addr:195.155.155.1  Bcast:195.155.155.255  Mask:255.255.255.0
              UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
              Interrupt:10 Base address:0xa000
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:69406 errors:0 dropped:0 overruns:0 frame:0
              TX packets:69406 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:139871419 (133.3 Mb)  TX bytes:139871419 (133.3 Mb)
    And this is from windows:
    Connection-specific DNS Suffix  . : corp.<companyname>.nl
    IP Address. . . . . . . . . . . . : 192.168.20.131
    Subnet Mask . . . . . . . . . . . : 255.255.0.0
    Default Gateway . . . . . . . . . : 192.168.0.251
    Hopefully you have some ideas.
    Greetings,
    Vincent

  • Where can I find the "Shared Variable Properties" VI to be used in my program for configuring SV remotely?

    I was using the "configure Alarms" and "configure Logging" VIs to design two user interfaces to make use of these VIs when I came across a problem.  In both VIs you can enable logging of alarms.  So which one is valid?  Which one has priority?  Then I looked at the "Shared Variable Properties" built into the project explorer.  Now I realize that I am spending all of this time redesigning this properties dialog (which also has two options of enabling logging of alarms (on the Alarms tab to the far right side as well as on the Logging tab).  So now my question is, how do I access this "Shared Variable Properties" dialog through my program (Note: this would be on a different machine than where the shared variables are set up.  The point is to configure shared variables remotely).
    Thanks
    Matt

    Here is a VI I re-created and posted for all.  I'm not sure why NI doesn't provide their VI to the developer.  The only thing I can't figure out is that when reading in the "Ack Type" into a variable, it generates an error.  It will work if you go into "project explorer" and right click on the library with the shared variable and "deploy" but eventually stops working.  I have tried using the "undeploy library" and "deploy library" to see if this would be a work around but had no success.
    Just pipe the path of the shared variable into the vi.
    Mattk
    Attachments:
    Shared Variable Properties.vi ‏95 KB

  • Correct Shared Variable behavior

    I have a program, written in version 8.5, that has a shared variable used in an number of locations to shut down the program's major loops when the test system is being "shut down". I used a SV specifically to use its error in/out to force the execution order in these various loops. In 8.5 it has worked correctly, but yesterday I was helping my customer commision a new test system, using this program, and they only have 8.6, so we decided to migrate it all to this version. While still debugging the test system hardware we got an error which caused me to attempt to terminate the program. At this point I noticed that all but one loop had terminated correctly, and when I probbed the no terminating loop I discovered that it had had a hardware error, putting an error on the loop's error cluster. This caused the boolean Shared Variable to output a F rather than the T that had been written to it when I attempted the shutdown. This wasn't the behavior I remembered in my 8.5 version, so I created a quick little test, two parallel loops, one with the boolean SV in  the write mode with a control to toggle it F/T the other loop having the SV in the read mode, with its output set to stop the loop if T. I had an error cluster shift register in the second loop, with the SV's error in/out connected to it that had a control to introduce an error in the error cluster. On the system running 8.5 writing a T to the SV stops the loop regardless of the error cluster state, but on 8.6 it does not, with the SV returning a F if there is an error present.
    Has this been seen by others? Which is the correct behavior?    I ended up doing a really quick change, making a "real global" and putting it into a case statement within a VI so that I could retain the ability to have the error in/out chain. I should have used a functional global, which is my normal mode rather than a "real global" but was tired and had just had an educational discussion with my customer about SV vs Globals and for the few minutes it took was in the "global mindset".  I think it might be the first global I've used in a couple of years or more, I just was so flabbergasted about finding the apparent change in behavior.
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

    IMHO if a function's behavior hasn't been specifically defined for 3 major release cycles, and it performs one way, it shouldn't be changed, regardless of some philosophical "standard". Pre-8.6 it behaved by passing the error through, but still performing its own task, output the value written to it elsewhere, so why would someone think that making this behavior change to "if an error is present output the default" would not have major implications? We don't all have the luxury of rewriting our projects from scratch. Worse yet, no where in the "release notes" , "known issues", "changes since 8.6", do I see this mentioned. I wouldn't have known about it, possibly for some time, if in debugging the test system hardware we hadn't had a hardware error (which hadn't occured in the prior three months of "ringing out" the hardware) that generated and error on the error cluster. The shared variable was in the  various loops in my program to allow them to be stopped if an error was detected, or the operator was shutting down.
    I would suggest that you use some type of "functional global" also called a LabVIEW 2 style global  which uses a shift register on a while loop as the memory storage element in a while loop wired to execute only once (the stop node is wired "stop")rather than "real globals" unless you encapsulate the global in a sub-vi,. You can wire an error cluster straight through to allow the resulting vi to use the error chain for execution order control, as I had planned with the Shared Variable. You can also have a write case, read case, etc. inside the loop.  Search on the this board for "functional global" or "LabVIEW 2 style" (there were no globals back then).
     My fix at the moment is that I drove 250 miles (400 km) through a snow storm  last night, am going in this morning and scrubbing the 8.6 based machine and installing 8.5.1 to make both machines identical. I would have done this originally (and not found out about this issue) but last week I forgot to pack my 8.5 DVD's and the customer only has the 8.6 ones at this time. They will be calling the NI office that handles them for their own, I suspect.
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Migrating large project from DSC 7.1 to LabView 2009 Shared Variables ... What's the next step after recreating my variables?

    I am in the process of migrating a large distributed (multi-workstation) automation system from the LabVIEW 7.11 DSCEngine on Windows XP to the LabVIEW 2009 Shared Variable Engine on Windows 7.
    I have about 600 tags which represent data or IO states in a series of Opto22 instruments, accessible via their OptoOPCServer. There are another 150 memory tags which are used so the multiple workstations can trade requests and status information to coordinate motion and process sequencing.  Only one workstation may be allowed to run the Opto22 server, because otherwise the Opto22 instruments are overwhelmed by the multiple communications requests; for simplicity, I'll refer to that workstation as the Opto22 gateway.
    The LabVIEW 2009 migration tool was unable to properly migrate the Opto22 tags, but with some help from NI support (thank you, Jared!) and many days of pointing and clicking, I have successfully created a bound shared-variable library connecting to all the necessary data and IO.  I've also created shared variables corresponding to the memory tags. All the variables have been deployed.
    So far, so good. After much fighting with Windows 7 network location settings,  I can open the Distributed System Manager on a second W7/LV2009 machine (I'll refer to it as the "remote" machine henceforth) and see the processes and all those variables on the Opto22 gateway workstation. I've also created a few variables on the remote workstation and confirmed that I can see them from the gateway workstation.
    Now I need to be able to use (both read and write) the variables in VIs running on the remote workstation machine. (And by extension, on more remote workstations as I do the upgrade/migration).
    I have succeeded in reading and writing them by creating a tag reader pointed at the URL for the process on the Opto22 gateway. I can see a way I could replace the old DSC tag reads and writes in my applications using this technique, but is this the right way to do this? Is this actually using the Shared Variable Engine, or is it actually using the DataSocket? I know for a fact that attempting to manipulate ~800 items via Datasocket will bog down the systems.
    I had the impression that I should be able to create shared variables in my project on the remote workstation that link to those on the Opto22 gateway workstation. When, however, I try to browse to find the processes on that workstation, I get an error saying that isn't possible.
    Am I on the right track with the tag reader? If not, is there some basic step I'm missing in trying to access the shared variables I created on the gateway workstation?
    Any advice will be greatly appreciated.
    Kevin
    Kevin Roche
    Advisory Engineer/Scientist
    Spintronics and Magnetoelectronics group
    IBM Research Almaden

    I have found the answer to part of my question -- an relatively easy way to create a "remote" library of shared variables that connect to the master library on my gateway workstation.
    Export the variables from the master library as a csv file and copy that to the remote machine.
    Open the file on the remote machine (in excel or the spreadsheet app of your choice) and (for safety's sake) immediately save it with a name marking it as the remote version.
    Find the network path column (it was "U" in my file).
    replace the path for each variable (which will be either a long file path or a blank, depending on the kind of variable) with \\machine\'process name'\variable name
    where machine is the name or ip address of the master (gateway) workstation (I used the ip address to make sure it uses my dedicated automation ethernet network rather than our building-wide network)
    and process name is the name of the process with the deployed variables visible in the Distributed System Manager on the gateway machine.
    NOTE the single quotes around the process name; they are required.
    The variable name is in the first ("A") column, so in Excel, I could do this for line 2 with the formula =CONCATENATE("\\machine\'process name'\",A2)
    Once the formula worked on line 2, I could copy it into all the other lines.
    Save the CSV file.
    Import the CSV into the remote library to create the variables.
    Note: at this point, if you attempt to deploy the variables, it will fail. The aliases are not quite set properly yet.
    Open the properties for the first imported variable.
    There is probably an error message at the bottom saying the alias is invalid.
    In the alias section, you'll see it is set to "Project Variable" with the network path from step 4.
    Change the setting to "PSP URL" with the same path and the error message should disappear.
    Close the properties box, save the library, and then export the variables to a new CSV file.
    Open the new CSV file in Excel, and scroll sideways to the NetworkrojectBound field.
    You'll notice it is False for the first variable, and true for the rest. Set the field FALSE for all lines in the spreadsheet.
    Scroll sideways... you'll notice there are two new columns between NetworkrojectPath and Network:UseBinding
    The first one is NetworkingleWriter; it should already be FALSE for all lines.
    The second one is Network:URL. That needs to be set equal to the value for each line of NetworkrojectPath.
    You can accomplish this with a formula like in step 4. In Excel it was =U2 for line 2, and then cut and paste into all lines below it.
    There is a third new field, Path, which should already be set to the location of the variable library. You don't need to do anything with it.
    Save the edited CSV file.
    Go back to the remote library, and import variables from the just-edited remote library CSV file.
    Once you have imported them and the Multiple Variable Editor opens, click on done.
    You should now be able to deploy the remote variable library without error. (Make sure to open the Distributed System Manager and start the local variable engine. It took me a few failures before I realized I had to do that before attempting a deployment).
    Voila! You now have a "remote" library of shared variables that references all the shared variables on the master machine, and which should be deployable on other machines with very little difficulty.
    It actually took longer to write out the process here than to perform these steps once I figured it out.
    Kevin Roche
    Advisory Engineer/Scientist
    Spintronics and Magnetoelectronics group
    IBM Research Almaden

  • Shared variables not updating in exe

    Hi,
    I've created a project with 2 vi's, they share data via Networked Shared Variables, one vi writes while the other reads.
    The data is passed between the 2 vi's whilst running in the Labview 2009 SP1 development environment, but when I create an exe, the screen values in the reader vi do not update at all.
    In the build specification I've tried both including the vi's which reference the shared variables and the
    option to list the shared variable libaries for deployment at run time, as methods to overcome the problem.
    Please, any clues why the exe should fail to allow shared variables to pass data ?
     thanks,
    Gary. 

    Hey Gary,
    I've just created a project to replicate the issue you are having and indeed when I built the application, the Shared Variables were no longer working. This is because I hadn't deployed the Shared Variables in code; which I think may be the problem that you're having at the moment. When create a Network Published Shared Variable library in LabVIEW, it auto-deploys itself for the development environment; but this is definitely not the case for when you build an executable. Instead, you must deploy the library yourself in code.
    In the attached zip folder, please follow the following instructions and hopefully you'll be able to fix your VI:
    Unzip the folder and extract the files.
    Open up the project.
    Look at the project layout. Notice the SharedVariableLibrary.lvlib and inspect the Shared_Double variable.
    Look at how the Reader.vi and the Writer.vi interact with the variable.
    Go into the Main.vi. See that I make an Open Application Reference VI and Invoke Node to manually deploy the library in code. You'll have to change the path to this library to match the directory structure of your own computer, so just make sure it navigates to the library in the extracted folder.
    Check out the Build Specifications. I've done nothing here except ensure I only include the Main VI. Finally build the VI and run the executable. 
    You should see that this will give you a working Shared Variable setup. The Machine Name input for the Open Application Reference is blank because you only want to communicate with the localhost i.e. Your computer. Therefore by explicitly deploying all libraries you require, your VIs should be able to communicate effectively.
    Does this solve your problem?
    Alex Thomas, University of Manchester School of EEE LabVIEW Ambassador (CLAD)
    Attachments:
    GlobalVariableProject Folder LabVIEW 9_0SP1.zip ‏26 KB

  • Using shared variable not in the project.

    hi all
    I have a project with the 2 RT targets and the development PC which were i currently deploy all my shared variables, But I need to finally deploy these shared variable in a different stand alone windows based machine. To do this I created separate application which does nothing but deploys the shared variables in this PC. but when i tried to bind to this variables (frount panel binding) from my RT targets it woudnt work, the led does not glow, it is always transperent. but when I tried to connect to these variables from my development PC it works fine. I double checked the firewall problem, that is not the case here. Can anyone tell me what am i doing wrong?
    Thanx
    Arun

    Hi Prashanth
    Thanks for the reply. I did realize that the front panle connection would not be supported in RT, now i have the shared variables on my RT machine which has te source as the windows machine. If the windows machine is my development machine the shared variables connect fine, but if its a different PC the shared variables connect for few seconds and with the error info "shared variable value 0" then the connection gets disconnected.
    Also i read a note in the shared variables help, it said to subscribe and publish on a network shared variable all the shared variable which connects to this variable should be active. does this mean that if there are 2 RT targets that subscribe data and one of them is not switched on the shared variable does not work.?
    Thanks again for your support.
    Regards
    Arun

  • Modbus and shared variable performanc​e in large applicatio​n

    Hi all,
    I am preparing to work on an application which is going to reading from up to 500 Modbus input registers on a CompactRIO over Modbus Ethernet using the LVRT Modbus IO Server implementation.  I've put together some minor test VIs on the local network to test the Modbus connectivity and understand in the shared variable minding mechanism.
    To save potential headaches in the future, do you all have any best programming/proejct management practices for using high channel count Modbus applications?  Has anyone done high channel count testing (similar to the link below) but for shared variables bound to a Modbus I/O Server?  Any caveats I should keep in mind?
    Performance Benchmarks for Network Published Shared Variables
    http://www.ni.com/tutorial/14675/en/
    Thanks,
    Chris
    d2itechnologies.com

    If your application can deal with it I would recommend staying clear of the 'Networked Published' option.
    When I started my Modbus development on cRIO....I left it enabled, and with ~100 shared variables on a 9074, the CPU was railing, and I saw a buffering behavior on the shared variables (which was not desirable in my application).
    In my application I am using the old modbus library (as apposed to the new API) for cRIO to slave comms, the cRIO being the master.
    I am also using the IOserver making the cRIO a slave to an external SCADA - and it passes essentially the same data arrays as I use on the modbus library for my local HMI [Not an NI product].....Which is two full Modbus frame writes (@ 120 words each, and about 60 words more for ~300 words outbound from the cRIO).
    The IOserver slave was a recent addition and did not add much to the CPU load - although only 16 bytes is high speed, the balance of the total word package is at either 1 second or 3 seconds.
    So, in my experince, the 'Networked Published' option adds significant CPU loading (on entery level cRIOs) YMMV.
    I am huge fan of the shared variable engine (some at NI were pusing the CVT, and TCE etc...). However most of my shared variables are not the Networked Published variety (excepting local module channels) those have remained networked published for DSM (Distributed System Manager) use.

  • What is the best way to create shared variable for multiple PXI(Real-Time) to GUI PC?

    What is the best way to create shared variable for multiple Real time (PXI) to GUI PC? I have 16 Nos of PXI system in network and 1 nos of GUI PC. I want to send command to all the PXI system with using single variable from GUI PC(Like Start Data acquisition, Stop data Acquisition) and I also want data from each PXI system to GUI PC display purpose. Can anybody suggest me best performance system configuration. Where to create variable?(Host PC or at  individual PXI system).

    Dear Ravens,
    I want to control real-time application from host(Command from GUI PC to PXI).Host PC should have access to all 16 sets PXI's variable. During communication failure with PXI, Host will stop data display for particular station.
    Ravens Fan wrote:
    Either.  For the best performance, you need to determine what that means.  Is it more important for each PXI machine to have access to the shared variable, or for the host PC to have access to all 16 sets of variables?  If you have slowdown or issue with the network communication, what kinds of problems would it cause for each machine?
    You want to located the shared variable library on whatever machine is more critical.  That is probably each PXI machine, but only you know your application.
    Ravens Fan wrote:
    Either.  For the best performance, you need to determine what that means.  Is it more important for each PXI machine to have access to the shared variable, or for the host PC to have access to all 16 sets of variables?  If you have slowdown or issue with the network communication, what kinds of problems would it cause for each machine?
    You want to located the shared variable library on whatever machine is more critical.  That is probably each PXI machine, but only you know your application.

Maybe you are looking for