NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Concurrent applications using System Exec.vi do not run concurrently when executed within TestStand

I created a vi which must execute an application, wait 2 sec then execute a second application while the first one is running.

When running the vi using LV, it works well.

This vi is now part of a test sequence within TestStand. The problem is that when the vi is called by TestStand, the first application is launched using "System Exec.vi", completes, then waits 2 sec, and then executes the second application.

Both applications must run simultaneously.

I am using the Sequential Model for TestStand as there is only one thread of sequence running.

How do I overcome this unexpected barrier?

-JLV-
Message 1 of 10
(4,754 Views)
Is your VI marked as reentrant (under vi properties - execution settings on the vi)? I'm not sure if I specifically understand the problem. You say you created a vi that executes an application, waits 2 seconds, then executes another. And that that is what happens when you run the vi in teststand. So what specifically is the problem? Are you running two different copies of teststand and only one of them is able to run your vi at a time? If so, try marking your VI as reentrant.
Message 2 of 10
(4,752 Views)
The vi works well in Labview..

It does not work well in TestStand.

Only one copy of TestStand is running.

I'll try to describe the situation better:

In Labview vi.

System Exec.vi# 1 calls application to start bitstream.
wait 2 sec
System Exec.vi# 2 calls application to receive bitstream while first application continues in parallel.

Both applications return values while they run.

This works when running the Labview vi by itself.
Insert this vi within a TestStand sequence and it no longer works... Only one application runs at the given time.. they should run simultaneously..

Thanks,

JLV
0 Kudos
Message 3 of 10
(4,752 Views)
Hi Joe,

Is this TestStand 3.0? If so, try changing the execution system of the VI to be other 2. Open the front panel of the VI and right-click on the VI Icon. Select Properties, and then choose Execution from the category menu. Set the Preferred Execution System to other 1 (i.e. something other than "same as caller" or "user interface"). Try calling the VI from TestStand.

Let me know if this works.

Ryan R.
NI
Message 4 of 10
(4,752 Views)
Thanks,

Yes it worked..

🐵
Message 5 of 10
(4,752 Views)
Joe,

Ryan's answer was correct, but for future reference this answer is also documented in our online KnowledgeBase in KnowledgeBase 35IFJRO6: Why Does My LabVIEW VI's Parallel Blocks Run Sequentially when Called from ....

Glad your question got answered!

Regards,
Shannon R.
Applications Engineer
National Instruments
Message 6 of 10
(4,752 Views)
Thanks Shannon..

🐵
Message 7 of 10
(4,753 Views)
Joe (or anyone else),

Im trying to do the exact same thing, run 1 vi and a few seconds later run another while the first is still running. I am fairly new to LabVIEW and brand new to test stand. What did you do in LabVIEW to make your VIs run in parallel?

Thanks,
Brian
0 Kudos
Message 8 of 10
(4,627 Views)
In LabVIEW , you can enable "Reentrant Execution" (under VI Setup»Execution Options) for a VI and LabVIEW will execute multiple, simultaneous calls to that VI in parallel.

Note that VIs with the "Reentrant Execution" property enabled do not have an active front panel.

Please see this KNowledge Base entery:
http://digital.ni.com/public.nsf/websearch/862567530005F09C8625676B006B3405?OpenDocument

Thank you
Nandini Subramaniam
Applications Engineering
National Instruments
Message 9 of 10
(4,617 Views)
Great! Thanks.

Brian
0 Kudos
Message 10 of 10
(4,603 Views)