Accessing a Real-Time Program From a Device Without NI Software

Updated Nov 3, 2023

Reported In

Hardware

  • CompactRIO Controller

Software

  • LabVIEW
  • LabVIEW Real-Time Module

Issue Details

I have a real-time VI running on a cRIO, and I am controlling it using the LabVIEW front panel on my PC. I want to be able to access the front panel from another computer without NI software installed on it. Can I create an installer for my real-time VI? What are my options for accessing my program on another computer? 

My real-time application is running on a RIO device that is connected to my development PC using a USB cable. I would like to control my application from a simpler PC with no NI software installed through the same USB cable, how can I achieve this?

Solution

Unlike PC VIs, you can't create an installer for a real-time VI since the real-time VI is already running on your cRIO. Here are some options for communicating with your cRIO from a computer without NI software.
  1. Create a stand-alone application with a PC VI, and use this VI to control and monitor your cRIO program from your computer without NI software. Use Network-Published Shared Variables, which can be accessed by both the PC VI and real-time VI, to read and write to your cRIO. See Using the LabVIEW Shared Variable for more information and instructions on how to use shared variables. To run the PC VI on your computer without NI software, you must create a stand-alone application using the LabVIEW Application Builder. See Distributing Applications with the LabVIEW Application Builder for information and instructions.
  2. Use web publishing to create a remote front panel that you can access from a computer without NI software. See Configuring Remote Front Panels on a Real-Time Target for more information.
In case you have your cRIO (or sbRIO) connected to your computer using the USB cable, you can use one of the options mentioned above. Additionally, you will need to install on the target PC the same compactRIO driver version that you used for building your application, so the computer can recognize the Real-Time controller.