TestStand Error When Loading Compiled Code Using LabVIEW Run-Time Engine

Updated Nov 14, 2023

Reported In

Software

  • TestStand
  • LabVIEW Runtime

Issue Details

  • I am calling a VI in TestStand and everytime I switch the adapter to LabVIEW Run-Time Engine, I receive an error which indicates that the VI is a source - only component and its compiled code could not be found in the compiled object cache.
  • I see Error -17600 when running TestStand deployment with included LabVIEW code modules

Solution

This behaviour comes because of how a LabVIEW VI is composed.
By default, a VI contains two kinds of code:
  1. Graphical source code that you edit
  2. Compiled version of this code that LabVIEW uses to run the VI.

Do not separate the compiled code from VIs that you intend to load or run using the LabVIEW Run-Time Engine. The Run-Time Engine cannot run source-only VIs because it has no access to the compiled object cache that stores the separate compiled code.
 

To overcome this issue:
  1. Open the VI.
  2. Navigate to VI Properties in the General window (ctrl+I).
  3. Disable the Separate compiled code from source file option.
  4. Repeat this step for every subVI used in the main VI and then perform a mass compilation.
Alternatively, you can create an image deployment of your sequence file using the TestStand Deployment Utility. The tool performs a LabVIEW source distribution and removes the separation option from the called VIs.

Additional Information

  • If you intend for VI hierarchies that you check into source control to run on the Run-Time Engine, build a source distribution with the VIs or use the TestStand Deployment Utility.
  • If using VI files from vi.lib, create a packed library(PPL) of the code modules to bring along the compiled vi.lib code. Else, configure a source distribution that is configured to bring along the compiled code. This is what the TestStand Deployment Utility does under the hood when properly configured.