NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Queue implementation in LabView won't work in TestStand

I am a very longtime user of LabView but haven't used TestStand in years.  I have an application where I launch a VI with a named queue handler that monitors a communications device.  I leave it running in order to maintain the comm link syncronization.  I then use several LavView applications sequentially and each can access the named queue while it is active.

 

This all works flawlessly when used stand alone.  I set up TestStand and fire off the queue handler in a New Thread and leave it running.  I then step further in the sequence and launch one of the other applications.  It does not successfully retrieve the data from the named queues.

 

These are the exact same VIs,only now being launched from TestStand.  Is there something I need to do the allow the applications to communicate via the named queues?

0 Kudos
Message 1 of 4
(4,542 Views)

Here are the two sample programs.  You can launch both VIs in LabView and they communicate.  Launch them in TestStand and they don't.

Download All
0 Kudos
Message 2 of 4
(4,526 Views)

something to be careful about is what application instance you are running in.

LV Queues do not cross application instances.  This means if you have some of your LV code running in the LV RunTime Engine, and then run other LV code in the LV Development environment, it won't see the queues that are in LV RTE.

 

Message 3 of 4
(4,483 Views)

In other words, all steps that call VIs that use the que should have Project Path: set to the same project, or make them all empty.

 

Also your LabVIEW adapter in Configure>>Adapters ... should have Options, Reserve Loaded VIs for Execution checked.

 

You could also create a LabVIEW class that encapsulates everything and share the reference between threads to be really ninja. This would be a good template,

https://decibel.ni.com/content/docs/DOC-15385

 

cc

Message 4 of 4
(4,454 Views)