NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Batch Model, I have a working system but feel I am missing a trick to make it better, advice please

Sorry for the long post but I am after some guidance and advice on the setup below. The system does work, but I wish to improve things.

 

The requirements

 

A Environment Charmer test system running in Batch Mode testing multiple UUT's, the GUI and software is written in C#

Results use On-The-Fly recording with a custom Model Plugin and C# dll, to allow specific formatting and deal with extra info from the C# GUI.

Chamber is externally controlled.

Chamber runs through a temperature profile = 1 Cycle, UUT are run through many cycles.

A Cycle start and end point is room temperature, interval 0.

Interval (0), during this times operators can load / unload UUTs, the load /unload is registered on the C# GUI.

UUT's may have different number of cycles requirements.

Should a UUT not be removed after it has finished its required number of cycles logging should continue with warnings added to file.

 

My Solution

 

preBatch (Interval 0)

-----------

loop until Chamber Interval 1 is seen, may be long term profile or manual start of chamber.

Get UUT information for report header and testing parameters this info comes from from C# GUI

 

Model Plugin - UUT - Done (Batch ProcessModel addition)

------------------------------------

This is a modified version that called in two places in the Process Model, it looks for a UUT Status of Unloaded, this mean UUT has been removed from system and results file can be finished off with footer and summary etc.

 

 surrounded by an If statement to stop test sockets with no loaded UUT from running MainSequence.

 

MainSequence (Batch ProcessModel change to ensure MainSequence is only run if a UUT is loaded in the testSocket) 

--------------------

A loop checking chamber interval and doing tests as required on all UUTs at required chamber intervals

When Interval 0 seen exit.

 

PostMainSequence

---------------------

Check how testing went, has the correct number of cycles been done or not check on some manual testing.

 

Model Plugin - UUT - Done

------------------------------------

This is a modified version that called in two places in the Process Model

- In this case it looks for errors /fails in any sockets and if so adds a results footer and summary.

 

then back to preBatch and wait for Chamber / operator input.

 

 

 

What I feel is wrong / do not like

I have had to modify the standard Batch Model, I would prefer to find a better way

I really would like to disable unwanted testsockets, rather than making them skip MainSequence. This would need to happen in preBatch, but once disable I will not be able to close of the result file unless I can get to Model Plugin - UUT Done from with my preBatch.

 

I feel I am missing something here, I keep going round in circles.

Danny Thomson AshVire Ltd
0 Kudos
Message 1 of 3
(394 Views)

Just to throw in some thoughts from my side:

 

from what you've been describing, I am not completely sure on how tight the C# OI is coupled to the test sequence regarding steps to be executed.

 

Regarding modifying the ProcessModel, a good question to ask is always: do I want to use the ProcessModel for different tasks/ sequences as well? If so, the effort for maintaining a model is probably justified.

If not, you should be pretty good with overwriting callback from the client sequence.

 

For the latter case, especially consider moving the temperature chamber code into your client sequence and have that part of the code run in a BatchSynchronizationSection (One Thread only mode)

For checking the presence of a DUT in the socckets, I would tend to overwrite PreBatch Callback: the standard NI dialog here allows you to un-/select DUTs from a Batch, so why look for another place.

 

Just to make sure: when you're talking about the Model Plugin, it means, you have created our own Plugin, haven't you?

 

 

0 Kudos
Message 2 of 3
(351 Views)

@Oli_Wachno wrote:

Just to throw in some thoughts from my side:

 

 


Pleased for any comments or feedback 🙂 thank you.

This is a standalone system so there is no maintenance problem altering the ProcessModel, it just I feel I should not have to if I have a better solution.

 

There is no temperature control as such,  in the preBatchLoop I start a separate Execution to monitor for a C# notification, that tells TestStand the chamber is in a new interval and what the interval is and pass that around in a Station Global ( I know that some people will not like this).

 

I have overwritten the preBatch, that's where I get all the UUT information and where I can seen if UUTs that make up my Batch change so that I could Disable unused testsockets. My problem is to nicely deal with UUTs that are removed from the Batch, how to complete their Results file, before I then disabler their testsockets,  because until they are removed I do not know they need completing.

 

I think my issue is that I am not really running  a 100% Batch process, in a true Batch process X UUTs are loaded in and tested and removed then a new Batch is loaded. I have the situation where the UUTs that make up the Batch may or may not change.  

 

 


@Oli_Wachno wrote:

 

Just to make sure: when you're talking about the Model Plugin, it means, you have created our own Plugin, haven't you?

 


Yes I have my own Report plugin adapted from the NI example.

Danny Thomson AshVire Ltd
0 Kudos
Message 3 of 3
(340 Views)