How to Identify if My cRIO/sbRIO is Running?

Updated Jun 27, 2023

Environment

Software

  • LabVIEW Real-Time Module

Programming Language

  • LabVIEW G

Other

Hardware : cRIO, sbRIO

I have executed a VI or start-up executable in my cRIO, how do I check if the program is executing or not? 

Running the Code in LabVIEW

The easiest way to see if your code is running on your cRIO is simply just to run the VI. Ensure that the VI is located under your Real-Time target in your Project Explorer. Opening up the VI and clicking the Run button will deploy the code to the cRIO and run it on the cRIO. The Front Panel, if configured, will display the actual values on the cRIO's Front Panel. The Run button at the top will be grey instead of white, like any other running VI on a local host.

Alternatively, there are various LED indicators available in a cRIO to display the internal state of the hardware. The colour and blinking pattern of these LED are used to communicate these states. Refer to the user manual of your cRIO to understand these patters. For instance the different patterns and meaning of LED indicators of cRIO 9068 is provided here .
 

Using the User1 LED

The User1 LED present on the cRIO controller can be controlled from your RT VI which indicates if the VI running on the cRIO controller is executing or not. Implement a toggle logic inside your RT code which would make the User1 LED blink. This blinking indicates that your RT VI is running.



Incase the User1 LED is not blinking, either the RT VI is not running or the blinking code is starved(because RT CPU utilisation 100%). To troubleshoot further on why your RT start-up VI is not running refer to this link,


Using the Host Application

You would also have a loop inside your RT code which increments its iteration terminal in each execution. Read the iteration terminal of the while/for loop present in your RT VI from a Host program to check if your RT code is executing or not. Transfer the data you read from the RT VI to the host VI using Network Buffered Shared Variable .



Following this, read the iteration count in your Host VI to understand the execution state of your RT code.



Similarly different data types like boolean, numeric and string can be transferred to probe the different values and validate the functionality of the RT code at different points in time from the Host VI.

Additional Information

Based on the nature and rate of data transfers different protocols like Network Streams, UDP and TCP/IP can also be used. In case of transfering large number of tag values, use the CVT Client Communication (CCC) Reference Library