LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Alternative to Property nodes for a RT system?

Hello,

     I am attempting to access the Boolean text from a radio button. Unfortunately, it looks like you cannot do this on a RT system. From what I understand, this is because on a RT system there is really not an actual front panel. Is there perhaps a workaround to this? It was really not worth the time and effort to create a RT program, and then create another Front panel to run on the host, etc. Currently I am running it all on the RT side. The answer might be "no" but I figured I would ask anyway. The code included works great on the host, and returns an error when attempted on the RT system. Thanks....

 

DanRadio button text.png

0 Kudos
Message 1 of 8
(3,377 Views)

This isn't quite the same, but does it work for you? It gives the label of the button, rather than the boolean text.

 

RadioName.png


GCentral
0 Kudos
Message 2 of 8
(3,340 Views)

I appreciate the thought.... but I was needed to programatically change the Boolean text of the radio button. Not the label. 

0 Kudos
Message 3 of 8
(3,333 Views)

Ah. Then I would imagine you're stuck. Your example showed you reading the text, not changing it. My snippet won't allow you to change even the label - it just gets the string value associated with the enum which the radio buttons represent. I thought your code was checking the text for comparison. I doubt you'll be able to write the property (but I await the incoming post that proves me wrong)


GCentral
0 Kudos
Message 4 of 8
(3,330 Views)

Because of the radio button, I guess you have a RT application which is not actually running embedded but is controlled by a user, haven´t you?

In this case you should create a VI on you PC that handles the user interaction and build a communication path (network streams/network shared variables) between this VI and the VI on the RT-Target which executes the commands of the user. There´s an pretty good example project on how to establish such an architecture called 'LabVIEW Real-Time Sequencer on CompactRIO'. The radio button would be placed on the PC VI and the property node will work.

 

Another way it could work is connecting to your target. Right-click on the RT-Target in your project explorer and select 'Connect'. By doing so, the front panel you see on your PC screen should connect to the code running on the RT-Target which - according to http://zone.ni.com/reference/en-XX/help/370622J-01/lvrtconcepts/rt_unsupportedets/ - allows using things like front panel editing property nodes, user dialogs, ... 

0 Kudos
Message 5 of 8
(3,319 Views)

As you stated, an RT system does not have a front panel GUI.  Therefore it makes no sense why a Boolean text should matter.  The exception here would be with a 903X series cRIO, which has an option in it to use the embedded display port.

 

Otherwise, an RT should run headless and any required GUIs should be on a Windows system.  Use Network Streams or the STM library for communicating between the RT and Windows systems.  I find Shared Variables to be evil.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 6 of 8
(3,293 Views)

Understanding Communication Options Between the Windows HMI, RT Processor, and FPGA is a great source for more information about the different communication options between the RT Target and HMI

Message 7 of 8
(3,256 Views)

As others have said, it's a little unclear what you are trying to achieve since there is no front panel, there is no-one to see it. I see there are two options:

 

  1. You are just reusing code from Windows to RT and this is part of it, but it is not relevant because of the lack of a front panel - In this case you can use conditional disable structures to disable this code based on the Target_Type condition.
  2. You are using a debug interface to launch the panel and run it like it is local - In this case better practice is to have a seperate Windows GUI as mentioned.
  3. ??? - You need this for some other behaviour and are using the labels to drive it - In which case this may not work but if you describe what you want to achieve we may be able to suggest a different technique.
James Mc
========
CLA and cRIO Fanatic
My writings on LabVIEW Development are at devs.wiresmithtech.com
0 Kudos
Message 8 of 8
(3,232 Views)