Shared variables don't have tips?

Am I missing something here? I understand I cannot enter tip information for VIs or functions, and only for controls, indicators or constants, but shouldn't shared variables logically fall into a tip-enabled category? New developers assigned to our projects with the variable architecture already defined need a way to quickly refer to what indexes to use, and tip would be much more convenient than opening up the description in properties. This won't be the first time I've blatantly missed something obvious, so feel free to rub it in my face if I'm overlooking something.
R

I've found you can't get the information by highlighting a shared variable dropped into a VI, but rather by just hovering your cursor over the variable in the shared variables list in the project window.

Similar Messages

  • All files in a shared folder don't have permissions

    I have two users on my mac and am having some issues with sharing files.  I created a shared folder and gave the other user read/write permissions.  When I log in as that user, the folder can be accessed, but some of the files in that folder cannot be accessed.  These are all photos, and for the most part I'm dropping them into the shared folder from iPhoto. 
    I tried it again by using the Public folder with the same result.  However, there isn't consistency with the actual files that don't have permission.  In other words, the shared folder I created may have a file that does not have permission, but that same file does have permission when I dropped it in the Public folder.  So it is totally random as to which files in the shared folder don't have permission to be accessed. 
    I also tried to simply drag the files to the other user.  Same result. 
    Can anybody help me with this?  I'm stumped as I thought once a folder was shared that all contents are accesible.

    Sharing a folder does give others access to it, but it does not change the permissions of the files inside.  Other users can probably read everything, but they can't modify files that they do not own unless the owner of those files has changed the permissions to allow it, or other steps have been taken to provide additional access such as the use of an Access Control List (ACL).
    Apple doesn't include a GUI utility for manipulating ACLs, so your choices are to use a third-party utility such as TinkerTool System (not free) or the Terminal application.  The Drop Box folder in your user's Public folder has an ACL entry that gives access to change just about everything on files that are dropped there, so a Terminal example that sets similar permissions for everyone (a particular user group can also be used) would be:
    1.  copy and paste the folowing into the Terminal window (there is a trailing space):
    chmod -R +a "everyone allow list,add_file,search,delete,add_subdirectory,delete_child,chown,file_inherit,directory_inherit"
    2.  drag the desired folder into the Terminal window (this copies the path)
    3.  press return
    Note that ACL entries only work on items that have been created in the folder - not moved there - so you should use option drag to make a new copy in the shared folder.

  • 10.3.9 server - files copied to shared folder don't have proper permissions

    When 1 user copies a file to a shared volume the next user cannot save. The copied file is read only. If I choose the enclosing folder or whole volume and propagate permissions (Copy these privileges to enclosing items) then the file is read/write as it should be but the next file copied is read only.
    This started when I used Carbon Copy Cloner to clone the system to a new drive. I know this isn't completely kosher but I done it successfully with this same system before.
    This server is still Panther because it has been on for 4.5 years and has not crashed once. It provides AFP and nothing else.
    This is a creative team that is kind of freaking out so any help would be greatly appreciated..

    Sharing a folder does give others access to it, but it does not change the permissions of the files inside.  Other users can probably read everything, but they can't modify files that they do not own unless the owner of those files has changed the permissions to allow it, or other steps have been taken to provide additional access such as the use of an Access Control List (ACL).
    Apple doesn't include a GUI utility for manipulating ACLs, so your choices are to use a third-party utility such as TinkerTool System (not free) or the Terminal application.  The Drop Box folder in your user's Public folder has an ACL entry that gives access to change just about everything on files that are dropped there, so a Terminal example that sets similar permissions for everyone (a particular user group can also be used) would be:
    1.  copy and paste the folowing into the Terminal window (there is a trailing space):
    chmod -R +a "everyone allow list,add_file,search,delete,add_subdirectory,delete_child,chown,file_inherit,directory_inherit"
    2.  drag the desired folder into the Terminal window (this copies the path)
    3.  press return
    Note that ACL entries only work on items that have been created in the folder - not moved there - so you should use option drag to make a new copy in the shared folder.

  • Why should you explicitly open and close shared variable connections?

    I'm looking into switching over from the old Datasocket API to the new Shared Variable API for programmatic access to shared variables, and I noticed that LV doesn't seem to have any problems executing Shared Variable Reads & Writes without first opening the connection explicitly. That is, I can just drop in a shared varaible Read VI, wire a constant to the refnum input, and it will work. I'm wondering, then, what benefits are offered by explicitly opening the conenction ahead of time...?
    I guess I could see some cases where you want to open all necessary connections in an initialization state of a top-level state machine, particularly if you want to use the "Open & Verify Connection"---so you could jump straight to an error case if any connections fail. But other than that, why else might one want to explicitly open the connections.
    And, along those lines, are there any problems with implicitly opening the connections? One reason why I am hesitant to open them explicitly is because for one of our applications, we need to be able to dynamically switch from one variable to another at runtime. It would be nice to just switch the variable refnum (wired to the input of the Read function), without having to manually close out the old connection and open a new one. A quick prototype of this seems to work. But am I shooting myself in the foot by doing so?
    Thanks in advance.

    I'd expect there's a very small number of people at NI that would know the answer to the detail you're asking for.  But, let's try to extrapolate from this rather old post to see if we can understand what they're forming their impression on.
    The shared variable has to have some sort of reference going on in the background.  It looks like they're calling this a connection.  It's how LabVIEW knows where to find this variable on the network.  We can also see this reference certainly exists if we're opening/closing the reference in the explicit method.  You see the connection as just a string referencing the variable by URL.  This "reference" has to be stored somewhere.  No matter how we're looking at this, we're aware there's a reference of some sort stored. 
    Now, we'd want to look at what would cause this reference to go away.  If you open/close explicitly, it's easy to see it goes away at the close.  If it's implicit, when would it make sense to close it out?  The VI can't be expected to guess where it's done being referenced and close it out.  This puts us into a situation where the soonest it could close is when the VI ends.  From my experience, references tend to be wiped when you close out LabVIEW.  It's this kind of idea that makes the FGV possible.  I wouldn't be surprised by Morgan's claim here.
    If we look at scalability, you're talking about two different topics.  You're talking about adding an extra open, close, read, etc rather than just a few wires.  That certainly would look a mess.  In terms of the dynamic swap that was being discussed, we wouldn't be adding all of those.  The concern would be if enough connections were opened it'd start to behave similar to a memory leak.  This could be something that works with a smaller number of variables.  If you continue to scale, it becomes problematic.  This is why they suggest it's not scalable. 
    To your questions:
    Does LV allocate some kind of session in memory using that string as a lookup?
    It would HAVE to allocate some memory to hold that string.  Otherwise, it'd be pointless to even have the reference. 
    Does it reuse that session if other parts of the application reference the same variable, or does it create a unique session for each referencing call to "Read Variable.vi"?
    I would expect this to be "it depends."  With the implicit method, I would expect it to open a new reference in each point it isn't wired.  This is similar to int x,y = 5;  x and y share the same value but are their own unique memory location.  If you wire the reference to the other points, it should use the same reference.  This would make more sense to me than the program seeking out any other potential usage of the variable in the application to see if there's already a reference open.  I could be wrong, though.
    And what resources does this "connection" actually represent?
    At best, this is just the string.  At worst, it's the string and the TCP socket.  I'd lean towards the first.  Opening and closing sockets should be relatively easy in most applications.  But, it also wouldn't surprise me if it holds the socket.
    I'm sure others have a better understanding than I do.  But, that's what I'd expect for anything you've asked.

  • Using Shared Variables and Initialize Front Panel Binding (to PSP)

    Hi,
    I use LV DSC RT 8.2.1
    I have a Vacuum System That includes signals from - Pumps failure, Valves status, Vacuum gauge, start Pump ...
    Each signal is read by a FieldPoint. 
    All the relevant FieldPoint Channels are read by the Server (a computer in the Ethernet Network) and published to the network in the form of Shared Variables.
    I have a client VI that is reading the Shared Variables published by the Server using Front Panel Binding.
    Problem : 
    Some of the Bindings are in the mode 'Write &Read' and that causes some initialization problems.
    For example - Valve #1 is Open, and then a User start running the Client VI, (the Valve #1 Status mode is 'Write & Read")
                           if in the VI the status of Valve #1 is closed (before running it) then the Valve status is changing to Closed.
    I want the Client VI to first read the Physical status of the instrument and then to change the Value if the User changes it.
    But that's seems to be a problem when using Front Panel Binding... (is it?)
    I know I can Deploy a lvlib in the Client Side and Item Bind to the Shared Variables or Use DataSocket.
    (Is DataSocket is a Reliable method when connecting to Shared Variables? What are the disadvantages when using DataSocket?) 
    What is recommended by those of you that are experienced or by NI ?
    Sincerely Yours,
    Amitai Abramson.

    Amitai Abramson,
    Hello and thanks for using the NI Forums.
    I'm glad that you've read the Using the LabVIEW Shared Variable Tutorial on our website. Check out these other resources:
    Network Variable Technical Overview
    Troubleshooting Network-Published Shared Variables
    Why Do I See Unexpected Value Change Events for Shared Variables Using LabVIEW DSC?
    All You Need to Know About Shared Variables
    Creating a Value Change Event for Shared Variables
    Alternative Method for Using Shared Variables Between Systems in LabVIEW 8.x
    What Is The Difference Between Using Shared Variables And DataSocket VIs To Access OPC Tags?
    The issue that you are seeing by having "Write & Read" bound items on both the server and client side is essentially a race condition, you don't know which one is being read/written at what time. To resolve this issue I would take a look at some of the documents below.
    Using a Local, Global, or Shared Variable in Parallel Loops Can Cause Race Conditions
    Using Local and Global Variables Carefully
    Tutorial: Local Variable, Global Variable, and Race Conditions
    Locking a Shared Resource or Variable in LabVIEW Using Semaphores
    You mentioned not wanting to have two sets of shared variables (one on each side), but this is a great method to resovle this issue, that, or you can develope some sort of hand shaking to prevent these race conditions.
    I would suggest that in the future when using these forums you try to ask only one question per thread and make it more concise. It's hard to tackle multiple questions and such broad questions as "I want to know all the ways that I can connect to Shared Variables, and I want to know the advantages and disadvantages." I suggest this because we want you to get your questions answered and more concise questions will result in quicker and better answers. 
    Message Edited by Ben S on 10-01-2009 06:05 PM
    Ben Sisney
    FlexRIO V&V Engineer
    National Instruments

  • Weird delay reading shared variables

    Hello,
    I'm working on a project were I'm monitoring some prodution lines. I'm using DSC module's OPC server to connect to PLCs on the production line and I've created bound variables on my labview project of the PLC's tags.
    On my project I have one main VI were I show information about the production lines and were I can access several subVIs were I show other information about those lines. Then I have a VI that is running in background were I'm reading about 50 shared variables from the PLC and where I'm registering some data in a MySQL database, datalogging data on the Citadel database and registering alarms.
    The problem I'm having is that on the VI that runs in background I noticed a delay reading the variables that are reading containers weights from the production line. It seems that all the other shared variables don't suffer any delay, only the weight variables start having some delay when the values are increasing. It also seems like that, when I'm only running that VI alone, without running the main VI, there isn't any kind of delay. I'm reading the shared variables as shared variable nodes.
    Can anybody help me understand what's happening and how can I fix this delay? The VI that runs in background is time critical and a weird delay like that messes up my data.
    Solved!
    Go to Solution.

    Hi Mateus23,
    The shared variable has various buffering capabilites, including integration with the Real-Time FIFO feature in LabVIEW Real-Time.
    I guess that the buffering settings are causing the unexpected behavior.
    Check these resources:
    Buffered Network-Published Shared Variables (whitepaper)
    Shared Variables Properties Dialog
       - Network Page
       - Real-Time FIFO Page
    ~~

  • "Shared Variable Control" combo box on Front Panel is empty after Build

    Hello;
    I have a project using shared variables and the DSC module. I am working on building a .exe application now that the project seems to run well.
    I have several places on the front panel where I have shared variable controls. These combo boxes allow the user to click the drop down button and browse the list of shared variables in the project, as well as "browse". When I run the VI from the project, the combo boxes fully populate with all of the deployed tags in the project (I have only one .lvlib in the project).
    When I build the project and run the executable, the only item in the combo box list is the "browse..." selection. I can click on that and browse to my variables, but it is much more time consuming to do so than to simply select the desired variable from the drop down list.
    So, how can I populate the list of shared variables from a particular library ino the Shared Variable Control combo box in a project build?
    A couple of things I have done to try to esolve th problem are ensure that the "Enable Enhanced DSC Run-Time Support" box is checked in the advanced tab of the build window, added the appropriate .lvlib file to the "Dynamic VI's and SUpport Files" window under the "Source Files" tab of the build window, and properly deployed the tag library programmatically in the project.
    Thanks,
    Michael Hampson
    Michael Hampson
    President
    XL Automation, Inc.

    Hi Michael,
    What you see in the development environment is to make it easier for developers, and as far as I know, there's no way to automatically populate the shared variable control during run time in an executable.  The reason being that the shared variable control would have no way to know which process it should be using to get the variables from.  The attached vi demostrate how you can acquire the list of shared variables in a process.  You can also set the default values of the shared variable control by right clicking it on the front pannel, go to Data Operations->Make Current Value Default.  I can do some more research on this, but I'm about 95% sure that there's no way to convert the array of shared variables to populate the shared variable control, as the shared variable control is a special type of xControl.
    Yi Y.
    Applications Engineer
    http://www.ni.com/support
    Message Edited by Yi Y on 07-02-2007 01:27 AM
    Attachments:
    SharedVariableList.vi ‏15 KB

  • Digital shared variables stop working

    I have many shared variables bound to Fieldpoint channels with OPC (DSC 8.2). Sometimes, all the digital input and output variables stop working at the same time, with no apparent reason. In Variable Manager their quality shows as "subnormal". If i try to read/write any variable, i get error -1950679030 (Unspecified error) at ni_tagger_lv_read or ni_tagger_lv_write (writing works, though).
    The Fieldpoints keep working perfectly and i can normally access all the channels in MAX, only shared variables don't work.
    The variables never get to work again (it happened friday night last time, and i discovered it monday morning!), until their vaule changes. When the value of a digital channel changes, the bound shared variable starts working again, and its quality gets back to "good".
    The only way to make all the variables work again is manually undeploy and redeploy the library. Any hint?

    Hello Dave,
    You can try to pinpoint where the problem is with some tests. First, you could try running the real-time VI on your host instead and seeing if the problem with communication still occurs. Then if this seems to work fine, try running a LabVIEW shipping example for network shared variables on the host and target. One such example is Analog Input - Getting Started - Scan Mode.lvproj from the NI RIO driver.  If this succeeds, the problem is most likely with the LabVIEW application you have. However, if it fails there is a much higher chance that there is a problem with the cRIO.
    Have a good day,
    Siana A.
    Application Engineering
    National Instruments

  • Shared variable does not work in executable

    In editor mode, the shared variables update fine.  When I build the executable, the shared variables no longer work.
    See attachment.
    Attachments:
    TestCitadel.vi ‏30 KB

    I found this note in the LV2010 help, I wonder if this could be related to your problem...
    Note  You can use scaling only for network-published
    shared variables, I/O variables, or I/O aliases. When the shared
    variable you want to scale is a network-published shared variable, it
    must have a data source. Configure a network-published shared variable
    to have a data source by placing a checkmark in the Enable Aliasing checkbox on the Variable page of the Shared Variable Properties dialog box.

  • How Can i retain the Shared Variable Values after PC rebooting

    Hi all,
    I am facing a paculiar problem with Shared Variables. I have an application in which shared variables are used for data communication.
    One of the application requirement is to retain the variable values eventhough PC is rebooted or started after crashing. 
    As per the my understanding, the variable values will retain eventhough the PC is rebooted. But here i can observe a paculiar problem like some library variables are retaing the values while some others not. I enabled logging for all the variables.
    I tried many ways. like logging enabled, logging disabled, changing variable names, changing process names etc... But i am not getting a consistent behaviour.
    I hope some you can help me in solving this issue.. "How Can i retain the Shared Variable Values after PC rebooting"
    Thanks and Regards,
    Mir

    Hi Blackperl,
    Thanks for the post and I hope your well. 
    What do you mean by not getting consistent behaviour.. this will all depend on excatly when the crash happens i.e. before the write or after. 
    Surely a better method would be to log the data to a file during the reboot...
    I beleived the value read back
    will be the default value for the shared variable's data type.
    The LabVIEW DSC 8.0 module adds more functionality to the shared variable, including initial values and alarms.
    If you enable an initial value on a shared variable, when the variable
    engine comes back on-line it will default to this value. Setting a bad
    status alarm for the shared variable is also a good way of handling
    this type of event. Additionally, if you are using a LabVIEW Real-Time
    target such as Compact RIO or Compact FieldPoint, it is appropriate to
    consider hosting the shared variable engine on the real-time target.
    These devices have watch-dog capabilities and are typically the
    hardware controlling the critical pieces of an application. Most
    Windows or PC-based targets do not have these fail-safes.
    I guess, if you could explain to me again that would be great. From my point of view, if I have a cRIO and a Windows PC. If the windows PC crashes, the cRIO will still update its shared variables. Then once the PC has started up its own shared variable engine, and the bindings are loaded, it will once again continue to update its copies of the variables.
    Please let me know what you think,
    Kind Regards,
    James.
    Kind Regards
    James Hillman
    Applications Engineer 2008 to 2009 National Instruments UK & Ireland
    Loughborough University UK - 2006 to 2011
    Remember Kudos those who help!

  • How do I install Shared Variable Engine on a computer not having Labview?

    Hi,
    I am trying to communicate with a real time program running on Compact RIO through shared variables. I have an executable of the host vi that runs on a Windows computer. If I run this executable on the computer that has Labview installed on it, it functions fine. I want to be able to run this executable on a computer with Labview. I learned that I have to first install Shared Variable Engine on this computer.
    How do I do that? Where to install it from? Is that going to be sufficient? Please provide the solution or point me to the right resources.
    Thank you.
    Anmol.

    When you built the installer for the executable, you have a choice to include additional installers. One of them is the "NI Variable Engine". Have you tried including it?
    LabVIEW Champion . Do more with less code and in less time .

  • Why do Single-Process shared variables create a single variable VI in my dir.

    I'm creating an application VI following the example which is created by starting a two loop Real-Time project which creates a Single-Process shared variable and a Network-Published shared variable for each variable that needs to be sent to a non-Realtime host VI. Each of the Single-Process variables shows up as a VI file with the following format: <variable library>_<variable name>.vi. The VI has one control which is the shared variable. I have a large number of variables and this creates a lot of clutter in the directory. I expected them to be rolled up into the library file. Is this expected behavior? I'm attaching a screen shot to show the behavior.
    Attachments:
    Shared Variables in Directory.JPG ‏383 KB

    Hi davidreed10,
    This is a known issue with single process variables that are saved in a
    project that has the .lvproj and .lvlib files initially saved in different
    locations, as is the case with Real-Time projects. This has been
    previously reported to our R&D department with the ID #56580, and
    is being worked on for a fix in a future release of LabVIEW.
    This should be only a problem for Single-Process variables, and not
    Network-Published variables, so if you want to keep your folder from
    getting cluttered up, changing the variable types to Network-Published
    should get you around the problem for now.
    Regards,
    Stephen S.
    National Instruments
    Applications Engineering

  • Support for Shared Variables in Third Party XP embedded based TPC's?

    I have deployed an application in an XP embedded based Touch Panel (Third party). The application is working fine, but the shared variables hosted on an RT (sbRIO Board) are not getting updated in the application on TPC
    1. The TPC is part of the project as Windows XP Embedded Touch Panel
    2. NI TPC Service has been installed on the TPC and the application can be deployed remotely from the development PC through ethernet. (Hence network connections and communications are OK)
    3. By using Distributed Systems Manager in the development computer, I can see that the shared variables are getting updated on the network
    I believe that the problem can be solved if the following programs are installed on the TPC
    A. Support for shared variables for XPembedded
    B. Shared Variable engine
    I have tried installing support for shared variables from Program Files > National Instruments > Labview 8.6 > PDA > Utilities > Variables > x86 - but am getting an installation error "Unable to find application manager for Pocket PC applications".
    Shared variable engine has been installed from ve220 folder. The program is getting installed. But the Variable Engine is not started Control Panel > Administrative tools > Services in Xpe, the service is stopped and cannot be started. When I try to start the service, I am getting the following error on TPC
    "Could not start the National Instruments Variable Engine Service on the local computer.
    Error 1053. The service did not respond to the start or control request in a timely fashion."
    Please suggest solutions for the above or alternate locations for the following:
    1. Support for shared variables for XP embedded TPC's
    2. Shared Variable engine installer program.
    Thanks
    Krish
    Solved!
    Go to Solution.

    Problem solved!
    Update for interested folks working on XP Embedded TPC's
    Just to make sure that Shared Variables were indeed accessible to the TPC, I wanted to install Distributed Systems Manager 8.6 on the TPC. However since the TPC was having only 1 GB of DOM (Disk on Memory) and with all the software I had tried, there were only a few Megabytes left on the system. I had to add another DOM of 2 GB.
    All the products of the Installation went fine, with the exception of NI Logos (Version 5.0). NI Logos installation failed repeatedly.  I tried installing NI Logos separately, with the same results. Then I had this gut feeling that NI Logos had something to do with the issue.
    I then downloaded the new version of NI DSM 2009 SP1. Although this was supposed to get installed on any fresh system without Labview, the installation would not proceed beyond the setup stage. I tried installing NI Logos from the products folder on the new download separately and it worked like magic!
    Once the new Logos (Ver 5.5) got installed, the Shared Variable Engine started automatically and the Shared Variables were finally unleashed - free to rise and shine! Thank God Almighty!!
    On the lighter side, come to think of it - for running an application of around 400KB, we need XP embedded, NI Run Time, Logos, DSM ..........  (all around 900MB). Can we make it any simpler?!!  Inviting your comments .......
    Thanks
    Krish

  • Network Datastreams and FIFO Shared Variables

    Does someone know why one would use a Network Datastream as opposed to a network published shared variable with FIFO enabled? Seems like they would be identical except that the Shared variable could potentially have multiple listeners.
    Thanks,
    Craig

    Hey Craige
    You are correct that a major difference between Network Steams and Network Published Shared Variables with RT FIFO enabled is that the Shared Variable can publish to many computers at once.  There are a few other differences that are outlined in the comparison table in this article  
    http://zone.ni.com/reference/en-XX/help/370622J-01/lvrtbestpractices/rt_gui_bp/
    There's another good comparison with some more information in the last paragraph of this article. 
    http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/networkstreams/ 
    Regards,
    Eric L.
    Applications Engineer
    National Instruments

  • Datasocket Server vs. Shared Variables

    Does anyone have any thoughts on what is better - Datasocket Server vs. Shared variables?  I have a table on my application that has text indicating application status, information, warning and debug messages and would like to view it remotley over a network.  The old way was to use the datasocket server and bind it to the other control.  Is the new shared variable engine more efficient?  These machines are at different sites.
    John

    Hi John,
    It definitely seems as if you want to gauge user experience on this issue, but since you've had no response I'll chime in and give the "National Instruments view" on the DataSocket/Shared Variable debate.
    Shared Variables were created to expand the functionality of DataSocket and simplify the programming style required to pass information between networked computers. We have extensive literature on this topic and the most pertinent is linked here.
    I hope some users will post to this forum to give you a less formed response than you get from me, but I am more than willing to answer more specifically if you have any more questions regarding this issue.
    | Michael K | Project Manager | LabVIEW R&D | National Instruments |

Maybe you are looking for

  • Mounting a usb hard drive in single user mode

    I've gotten as far as connecting the hard drive at boot, but I don't know how to figure out which dev is the hard drive, and which arguments to use with the mount command. I can't do much when I login, and I'm trying to cp files from my hard drive to

  • Very slow importing of photos from camera lightroom 4.4

    I'm trying to import photos directly from my nikon D7000 as I normally do, but today, it is taking forever. I have tried restarting lightroom, as well s my MAC and also tried optimizing my catalog, and also installed software updates. HELP!!

  • MTOM support in BPEL is a problem

    I have created a simple BPEL process which accepts a string and base64string. I enable oracle/wsmtom_policy in the composite xml and enabled MTOM encoding to true. This enables MTOM for the BPEL process. I upload the composite into WebLogic. Now I cr

  • Order type for conversion of planned order

    Hi gurus, I have configured 6 different order types for PPPI and not maintained any default order type for conversion of planned order into process order. But when I am trying to convert planned order into process order by branching out from MD04 to

  • Can't figure out why printer isn't working

    Hey Everyone, So I've hooked up my TC, and I plugged the printer into the back of the TC and then went to settings on My mac and hit add printer. The printer is there, it adds and then I try to print, but it won't print. Did I not set it up properly