Running Multiple VIs on a Real-Time Target

Updated Apr 18, 2024

Reported In

Software

  • LabVIEW
  • LabVIEW Real-Time Module

Operating System

  • NI Linux Real-Time
  • PharLap
  • VxWorks

Issue Details

I have a real-time target that I want to run multiple VIs on simultaneously, but I cannot run multiple startup executables. How can I run multiple VIs on my real-time target?
 

Solution

LabVIEW will allow the user to run multiple VIs simultaneously on a real-time target using interactive front panel communication. This happens when the user opens the real-time VIs from the project and presses the Run button. 

However, only one real-time executable can run on a target at a given time. There are two main alternative ways to accomplish running multiple VIs executable form on a real-time target simultaneously:

1. VI Server

You can use the VI Server API in your startup executable to run a second (or third, fourth, etc.) VI that resides on the real-time target. To do this, the second VI will need to be copied to the real-time target by either manually FTPing it to the real-time target or by including it in the startup executable. You can include the second VI in the startup executable by moving it to the Always Included section of the Source Files category in the Real-Time Application Properties as seen below:
 

You can then also choose to include the second VI in the Support Directory of the executable as seen below. This will place the second VI in the data folder associated with the executable.
 

In your startup executable, you can then use the VI Server API to reference and run the second VI as seen in this example code:
 
 

2. Multiple VIs in the Startup Executable

You can also run multiple VIs simultaneously on a real-time target by including multiple VIs in the startup executable. This is done by moving the desired VIs to the Startup VIs section of the Source Files category in the Real-Time Application Properties as seen below
 

Then build and deploy the startup executable in the normal fashion to run both VIs simultaneously.