NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Easy way to run test steps in parallel?

Hi, all,

I have a situation in which I need to verify that several things happen before different specified times -- and I also need to measure the actual times when they happened. Example:

1. Hit unit on processor with hammer
2. Verify that unit says "Ouch" within 3 seconds
3. Verify that unit sees stars in less than 10 seconds
4. Verify that unit has a lump on its processor in less than 60 seconds

Now, it could be that the events all happen, but not in the order I listed above. For example, it could see stars before it says "Ouch!" So if I assume a particular sequence of events and wait for them in sequence, my timing measurements will be inaccurate.

I know I can execute subsequences as new threads, but this seems extremely cumbersome. All I need to do is execute a set of test steps in parallel, and pass the entire test case if all the steps pass.

I don't think the parallel execution model will help, because this is a single UUT.

Is there an easy way to do this?

Thanks,
- Steve.

0 Kudos
Message 1 of 4
(3,422 Views)

Hi,

If you are using labview then you can run a step using the LabVIEW Utility step 'Run VI Asynchronously'.

see Reference Manual Appendix E.

 

Regards

Ray Farmer

Regards
Ray Farmer
0 Kudos
Message 2 of 4
(3,419 Views)
Thanks, but it looks like there are a couple of problems with this approach:

1. The remote execution doesn't directly support a test (I could get around that by saving the flag value and checking it afterward, but I'd rather just run the test step directly);
2. Even on localhost, I'm a little concerned about extra overhead for remoting.

Any thoughts?

Thanks,
- Steve.


0 Kudos
Message 3 of 4
(3,417 Views)

Hi,

A quick look at the code behind the Run VI Asychronously, it looks like its dynamically creating a Sequence and placing the LabVIEW to run in it.

If this is the case, then you might as well start of with you VI(s) in a Sequence contained in a SequenceFile and Specify the SequenceCall to run in a New Thread at edit time. This is easy to do, also it does allow you to call a sequence of steps rather than just one VI. It just depends on whether you want to call a series of simple LabVIEW steps  or one complicated VI.

The Static version (calling a SequenceCall step) does seems to have less overhead at runtime.

 

Regards

Ray Farmer

Regards
Ray Farmer
Message 4 of 4
(3,407 Views)