Using Property Nodes in Real-Time Applications

Updated Aug 18, 2023

Reported In

Software

  • LabVIEW Real-Time Module

Issue Details

I am using property nodes in my real-time application. I am seeing different behavior when I deploy it from the development environment and when I deploy it as a stand-alone real-time executable. Why am I seeing this behavior?

Solution

Since real-time targets do not host front panels for real-time executables, property nodes that reference front panel controls will always output the default value for the datatype of the specific property. For example, using the Value property of a Boolean datatype will always output False. This is because property nodes are updated asynchronously. This can cause unexpected behavior when decisions are made programmatically based on the output of a property node. 
 

You can use the following figure to demonstrate this behavior.  If you run this as a VI with a front panel on an Real Time target, you will see the Boolean control blinking when set to true.  You will also see the USER LED blinking as well.
 

SnippetForTesting
 

If you run the VI as an RT EXE, the USER LED will be solid.  Because there is no front panel, no value will be written to the Front Panel Controls.  So in the figure above, setting the control to blink won't do anything due to the fact that there is no front panel.

In the event that you try to write the Value property of a Front Panel Object, no value will be written. The property node can be changed to write by right-clicking and selecting Change All to Write. If no Front Panel is attached to the block diagram, then no value will be written and no error will occur. This can cause unexpected VI behavior if you plan to write a value to a Front Panel object and then read it back while no Front Panel is active.

If you are using properties other than "Value" (as in the bottom loop in the above figure), one way you can trigger the property nodes to be updated is by creating a Remote Front Panel for your real-time executable and gaining control of the VI. To gain control, right-click on the Remote Front Panel and select Request Control of VI from the pop-up menu. See the Related Links for more information on creating a Remote Front Panel for your real-time executable.