Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamically spawning cRIO daemons using "open VI ref" and "Start Asynchronous Call"?

Solved!
Go to solution

Hi,

 

I'm trying to create a cRIO application that needs to spawn a dynamic number of processes depending on events happening during execution. On the Windows platform, this is relatively straight forward, just obtain a VI reference, or static, strict typedef'ed vi reference etc, and run it. works like a charm. I can't seem to get this to work on the cRIO.

 

Can anyone point me to, or quickly list, the restrictions (if any) and suggested method for doing this?

 

Thanks!

-Q 

QFang
-------------
CLD LabVIEW 7.1 to 2016
0 Kudos
Message 1 of 4
(4,727 Views)
Solution
Accepted by topic author QFang

Hi Q:

 

Can you provide some insight into how you're trying to do this now?  I ask because you should be able to use the same method you were using on Windows.

 

If your project contains your main VI as well as the VIs you want to call dynamically, all the VIs should be in the same location.  Therefore, you should be able to come up with the path to the dynamic VIs by using the path method to your main VI and replacing the main VI name with the dynamic VI name.  In order for this to work, make sure you deploy all VIs under your cRIO controller.

 

Capture.PNG

There aren't any restrictions I can think of so give this a shot and let us know if you have further troubles with it.

Alex Person
NI-RIO Product Support Engineer
National Instruments
0 Kudos
Message 2 of 4
(4,709 Views)

[edited to add extra space between images and text]

The problem may have been caused by this dialogue that sometimes pops up that makes no sense to me (I only have LV2011 installed, no other version?) Or possibly because I somehow made my own "strict typedef" static VI reference, whilest when I re-created your example, I noticed the "make strictly typed VI reference" right click option. Both my original attempt and the one I created based on your post above now works without error. I have not tried to build it yet though, but if I put the "clone.vi" in "always include" and put it in the same folder as the .exe it should still work I assume?

 

VI version is too early.png 

 

 

By the way, something else strange, if I right click the block diagram and to to "application Control" I get this palette:

 

 

right click palette.png

 

But notice all the stuff that is missing here? If I open help, search for "start asynchronous call", then select "find on palette" from the help window, it opens this palette:

application control opened by help.png

 

But as soon as I make a selection or click on the window, the "extra" options dissapear? Whats going on here? Have anyone else seen this behaviour? (I have VI package manager installed, could that cause this?) 

QFang
-------------
CLD LabVIEW 7.1 to 2016
0 Kudos
Message 3 of 4
(4,706 Views)

Hi QFang, 

 

I have VI package manager installed and don't have the problem. You may just be able to mass compile the "vi.lib" folder located in the c:/.../National Instruments/labview xx folder. 

 

It also might be a custom setting issue. When you set go to the "edit pallete view" there is an option to reset to defaults that might be worth a try. 

 

If neither of those work I would just repair LabVIEW. 

 

Jesse Dennis
Engineer
INTP
0 Kudos
Message 4 of 4
(4,695 Views)