NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

process model doesn't wait for unload client file

Hi,

 

upon a product type change on a production line, I want to unload the currently loaded client sequence file:

Runstate.Engine.ReleaseSequenceFileEx(RunState.Execution.ClientFile, 5) -> where the option 5 means unload.  

 

I have put a message popup in the client sequence file's SequenceFileUnload callback sequence, this appears when run the above mentioned step. But the process model continues to run, and I want to wait in the process model until the SequenceFileUnload sequence of the client file is done. How can I do it?

 

I use TS2014

 

Madottati

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

Madottati,

 

honestly, i have a hard time to understand the purpose of the request.

My experience is that most customers meddling with the "ClientFile" during the execution do run into support issues. Therefore, i always recommend: Load the correct client file from start and keep it as long as the execution is running.

 

I have seen cases where the customer wants to run the execution, but the serialnumber (which is usually collected during PreUUT!) defines the type of the UUT. In this situation, considering to swap "ClientFile" is valid; still, it makes a custom process model necessary and the modification is not easy to get stable on a long term (as you currently obviously experience!).

Is it possible for you to have a generic ClientFile which "relays" to the correct UUT test routine by usage of the current serialnumber once it is called?

 

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 2 of 4
(4,639 Views)

Hello Norbert,

 

thanks for your reply.

 

The case is as you exacty guessed: during PreUUT the serial number will be read. The product variant is coded in the S/N, and the process model should load the corresponding test sequence file. If a new type is detected, I force unloading the last used ClientFile and load the needed one. In each variant's sequenc file I initialize- and deinitialize the some variant specific things (bus interfaces, hardware outputs etc...), that's why I use the SequenceFileLoad / Unload callbacks in the ClientFiles.

 

On loading a ClientFile everything works fine, the process model doesn't start the MainSequence callback until the ClientFile's SequenceFileLoad callback is executed completely. The only thing I need is to somehow trigger on the end of execution of SequenceFileUnload. I tried with the property "IsExecuting", but it is false - even if the SequenceFileUnload is running.

 

Do you have any other proposal to do init / deinit variant specific things, other as the Load/Unload callbacks? I test on UUT at a time, no parallelity is required -> this must ease the topic.

 

regards

Madottati

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

Madottati,

 

if you really want to walk down the way of swapping the client file and require a kind of handshake for the unload, you will need to implement it. As far as i know there is no handshake availble without either digging quite deep into TS or to implement one on your own.

Regarding the first option, i want to share a hint: The SequenceFileUnload is an execution. Each execution will end at some point, which triggers the EndExecution UI Message. Maybe you can create a working solution for a custom User Interface with this hint...

 

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
Message 4 of 4
(4,574 Views)