Error -1950679035 or -1950679027 When Using LabVIEW Shared Variables

Updated Oct 19, 2018

Reported In

Software

  • LabVIEW Real-Time Module
  • LabVIEW

Issue Details

I am getting Error -1950679035 and sometimes Error 1950679027 when I am trying to access LabVIEW shared variables in my program, even though I successfully deployed my shared variable(s) when I first setup my program, and I do not redeploy between the errors.

Error -1950679035 occurred at Open Variable Connection in Host.vi

Possible reason(s):

LabVIEW: (Hex 0x8BBB0005) Unable to locate the shared variable in the Shared Variable Engine (SVE). Deployment of this shared variable may have failed, the SVE has not started, or the SVE is too busy to respond to this request.

 

Solution

There are multiple reasons on why this error could be occurring depending on the system and what other software components are being used. The error could be due to one of these causes, or a combination of them. 

Cause 1: 

When hosted on Real-Time targets, this may happen if there are not enough resources on the Real-Time target to host the shared variables. To fix this issue, you should try slowing down your loop rates to free up CPU time, to give the shared variable engine time to run. You may also try adding a wait at the begging of your program to give the cRIO services time to start before accessing the variables.

This cause happens predominantly on real-time operating systems because you can more easily starve lower level threads like the one needed to operate the Shared Variable Engine. Typically, this is a result of higher priority threads such as Timed Loops taking up too much CPU time and preventing the Shared Variable Engine from running. For more information on monitoring Real-Time system performance, refer to the following article: How Can I Monitor CPU and Memory Usage on Real-Time Embedded Targets?.
 
Cause 2: 
 
An incorrect shared variable path specified when using Aliasing or programmatic access will cause this error. This could be as simple as a typographical error in the defined path. When using Aliasing, you can double-check the path in the Shared Variable Properties window in the Bind to: section.

Cause 3:

Firewall or antivirus settings may be preventing your computer from having access to the individual variables in the shared variable engine. One good step to try is making sure that both public network and private network firewalls are turned off, as opposed to just one or the other. Unblocking the specific ports used by the Shared Variable Engine as described in Configuring Software and Hardware Firewalls to Support National Instruments Products will resolve this issue.
 
Cause 4:
 
In some cases, you may need to run LabVIEW with administrator privileges in order to read shared variables properly. You can run LabVIEW as an administrator by locating your LabVIEW version in the Start Menu, right-clicking on it, and selecting Run as administrator.
 
Cause 5:
 
If you receive this error when using a property node with the SharedVariableIO class, refer to the following article: Why Do I Receive Error -1950679035 When I Change Shared Variable Properties Programmatically?
 
Cause 6:
 
When using Shared Variables Bound to OPC Tags, there are a number of other potential causes which are covered in depth in the following article:  Error -1950679035 When Using Shared Variables Bound to OPC Tags.

Cause 7: 
The library containing the shared variable may not have been properly been deployed. To check this right-click on the library hosting the shared variable and select one of the deploy options. You can find more information on investigating this cause in Troubleshooting Network-Published Shared Variables.
 

Additional Information

To help narrow down the cause of the error, you can use the LabVIEW example "shared variables.lvproj" which can be found at Help >> Find Examples in LabVIEW.

Run the Shared Variable Server.vi on one PC, then open up Shared Variable Client - Variable API and change the string shown below using either an IP or a computer name. This will allow you to use code that is confirmed to work and isolate the network/firewall as a cause of error.

WAS THIS ARTICLE HELPFUL?

Not Helpful