Error -1950679035 Is Shown in LabVIEW When Communicating an RT EXE With a PC Through Shared Variables

Updated Aug 9, 2023

Reported In

Hardware

  • PXI-8840
  • CompactRIO Controller
  • myRIO-1900

Software

  • LabVIEW

Issue Details

I want to establish a data transfer between my (Real-Time) RT target and my PC via Network Published Shared Variables (NSVs). Therefore I created a VI or a LabVIEW executable that has been deployed on my PC and a RT EXE running on my RT target.
When I start the RT EXE on my target and the VI on my PC I do not get data transferred via NSVs. I can see the NSVs in NI Distributed System Manager under my RT target, but data is not transferred. I also get displayed the error code -1950679035 in LabVIEW.
 
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.
 
The error is shown in the following dialog box:
error 1950679035.png

Solution

This error may be caused by multiple factors, depending on your system's configuration. To make sure you review the most common factors that could affect the communication between a PC with an RT target through shared variables, please review the following aspects:
  • Review the article about Error -1950679035 or -1950679027 When Using LabVIEW Shared Variables. This resource provides an overview of some settings you need to review on your target PC to make sure that communication through shared variables is possible. 
  • Make sure that the RT EXE (Startup application) is running properly on your RT target. Please review the article Startup Executable Does Not Launch on Real-Time (RT) Target for more details.
  • When hosted on Real-Time targets, this error may occur 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 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: Monitoring CPU and Memory Usage on Real-Time Embedded Targets . Also, please review the following example code that shows how to add a wait time at the beginning of your code.
Note: This image is a LabVIEW snippet, which includes LabVIEW code that you can reuse in your project.
To use a snippet, right-click the image, save it to your computer, and drag the file onto your LabVIEW diagram. 
 
  • In case you are trying to communicate a LabVIEW executable (running on a target PC that does not have the development environment installed) with shared variables hosted on a myRIO controller while having this device connected through the USB cable, make sure that you have already installed the CompactRIO Runtime on the target PC as this software is required to allow the target computer to recognize the myRIO and create a virtual network connection. For more information, please review the following article: Software Needed to Use a myRIO.