NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Batch processing of multiple test stations

Hi All,

Bit of a complex one here (for me anyway!) that I want to bounce off you clever people to see if can aid me in any way.

I am about to develop a system which uses a 6 UUT position(so 6 UUTs are held on a wheel) device which spins around. There are two test PCs and hardware at points on the system (say at position 1 and 4, although the idea is to perhaps add more at the other empty stations) and the wheel is moved around at set intervals to present the UUT to the test station (approx 2s, but this can be varied depending upon processing time). UUTs are fed onto and off of the wheel at station 6 (ie when the UUT has been around stations 1-5 it is pulled off and a new one is put in its place).

The two test stations will be using TestStand and the remote engine to sequence tests with LabView code modules and due to the set movement time of the wheel I will be doing 'hands on' tests when the UUT is at a test station and I will be processing the test data for that UUT when it has moved around (although obviously I will then be taking measurements from the next UUT on the wheel).

I was thinking of using the batch processing model for this task and was going to have 6 UUTs running at the same time. I can clock the UUTs around using Labview and have wait/processing points while that UUT is not being physically tested.

My questions are:
1) My process is going to be contiunous (it will run 24:7) as the 6 test sockets run, each one step in front of the other, can they independently produce test reports and then be restarted for the next UUT which has been introduced to the wheel? I dont want the traditional 'Run Test, get results, re run test, get results'. I want the process to be continuous, so results files will be popping out every 2 seconds as a UUT has moved around all of the stations and dumped in the PASS/FAIL bin

2) Is it possible to have an array of common parameters between the batch processes or will they all have seperate parameters.

3) Kind of linked to 2, but I assume that if each batch is running in a seperate thread that the data they share to labview will be seperate to each test socket. There will only be a single instance of each test running at one time. Is there multiple sequence contexts (one for each test socket?) or is it one big one?

4) Am i using the right approach? Test Stand is definitely the thing for this customer and I feel it will help us, but am I going to be using in the right way?

Thanks in advance
Marlon
0 Kudos
Message 1 of 3
(3,670 Views)
Let me answer question 4 first since it will effect my answers to questions 1-3.

4) It sounds to me like you should really be using the parallel model instead of the batch model. The batch model was really intended for things that need to be tested as a group. In otherwords, a tray of 6 items that all start being tested and complete being tested together, and then a completely new tray of another 6 items is tested after that. What you have really is more of a set of 6 independent test sockets running in parallel with some synchronization involved because of the interdependencies and that is more what the parallel model is designed for.

1) If you are using the parallel model than the answer to this is yes. You can set things up so that each testsocket writes its reports to a separate file completely independently from the other test sockets. This is also kind of true for the batch model, but in the case of the batch model, all test sockets must wait for each other to complete before the next batch of uuts can be tested and this does not sound like what you really want.

2) Yes, but there are several ways you can accomplish this. One way would be to use file globals for your mainsequence file and edit the sequence file properties setting for the file to share file globals between executions. But because you are running remote executions you will then have to go to the additonal step of passing the data that you want the remote sequences to have as parameters to the remote sequence. You will need to pass the data as parameters rather than use the share file globals setting for the remote sequences on multiple machines because that setting only works for executions that are all running on the same machine. Passing parameters however is pretty easy to do and to use on the other end. Also I'd like to add that it might be possible for you to run everything on one computer. I'm not sure what your reason for having multiple computers is though.

3) By batch I'm going to assume you mean test socket (i.e. "each TESTSOCKET is running in a separate thread"). A batch is a group of testsockets. And if you mean testsocket then the answer is yes, you are correct. Each testsocket runs in a separate execution and thus a separate teststand and OS thread. Additionally each will have a completely separate sequence context. However, if you pass the same data as a parameter to all of the sequences (i.e. a set of global variables of some sort), then they will all be able to access that same data. Additionally, you can pass data between threads using synchronization step types such as queues and notifications.

Hope this helps, if you need more information let me know.

Douglas Melamed
NI
Message 2 of 3
(3,671 Views)
Hi Douglas, thanks for your help. I have rigged up a demo of what I am going to do and have some more questions. The Parallel model does exactly what i need it to and I have set the Test UUTs part of the model to just run over and over. However there are a few more things I am a bit stuck with! Thanks again

I posted them as a new question, here....
<>
0 Kudos
Message 3 of 3
(3,670 Views)