Pretest Termination causing FPY Skew
Hi, I believe WATS FPY might be skewed in the fact that it is including duts that have "Termination" status. In out FCT tests, we have multi-up fixtures with more than one DUT in the fixture at a time. If one or more of the DUTS fail the pretest, it will fail that DUT and notify the operator to replace that DUT and start the test session over. Any remaining DUTS that pass the pretest will be forced to have a "Terminated" status instead of a "Fail" or "Pass" status. This seem to be the correct way to handle the situation for these DUTs because they neither pass the "entire" test sequence or fail the "entire" test sequence. They only pass the pretest and should be considered untested devices. However, the only problem is that WATS includes Termination status in the FPY calculation. So these DUTS that have passed the pretest but have been terminated is falsely lowering the FPY. I don't want to include the terminated DUTS in the FPY calculation.
The test stand step that forces these passing pretest duts into a "Termination" status has the "Step Failure Cuases Sequence Failure" checked. Can I just uncheck this to cure my problem?
-
Hi David,
No, disabling "Step Failure Causes Sequence Failure" will not change this issue since the UUT status will still be Terminated.
You are correct that "any None Passed" will cause poor yield by definition. I see your point but you could also argue that since you "need to Terminate all UUTs", this should affect the Yield (retest time etc.).
I think the (First Pass) Yield in general does not differentiate what is causing poor yield (unit, production, component, test system, process, firmware, etc issues). Repair report, MI and Root Cause will provide these details.
One option is to skip logging for the Terminated UUTs since you anyway need to run the pretest again on the same units?
Another option is to change the operation type to e.g. Test System Issue or takeout on those reports. You will then be able to log the reports to WATS without it affecting you production FPY.
Would this solve your issue?
-
Tom,
Thanks for the response. Based on what you have explained below, I want the unit that failed pretest to go into WATs as a failed unit in “PCBA_Test” status. However, I want the remaining boards that have passed pretest (but have been terminated) to skip going into WATS. So the suggestion I like the most of what you state below is the option of skipping logging of the terminated DUTs. Keep in mind that I am using the modified version of the batch process model, so I need to somehow turn off logging for only the terminated duts but keep the logging on for the failed pretest dut.
Do you know how I can do that in Teststand? Is there a way to control individual socket logging using the batch process model?
-
Hi David,
I see two options.
1: Modify the WATS_ReportLogger.seq plug-in (e.g. modify the IF step condition "Parameters.ModelData.EntryPoint == "Test UUTs"" to also include Status != Terminated and Model = Batch).
The disadvantage is that you will now have a custom version of the WATS_ReportLogger.seq.2: I found a work around for disabling logging dynamically for one socket: add the PostMainSequence callback, add a statement step and create expression: "Parameters.ModelThreadType.IsTestSocket = False". Add the precondition Parameters.UUTStatus == "Terminated". Second, add a similar step in the PreMainSequence callback and "reset socket": Parameters.ModelThreadType.IsTestSocket = True.
This method seems to work well for me (TS2019) but I haven't tested it very thoroughly and it may impact the batch model behavior for later TS versions. -
Tom,
A while back, the Gods lead me to use the "Single Pass" instead of "Test UUT's". I has been good and working for what we need so I am going to sticking with it. It has been good. That being said, I already modified the the "WATS_ReportLogger.seg" and commented out the If "Test UUT's" in the Model Plugin - UUT Done. Also, I recently made another modification to the "Skip WATS Logging" precondition to include Runstate.Sequence.Parameters.UUTStatue = "Terminated". When I add this to the "Skip WATS Logging" step, it won't put any records for Terminated status into WATS. it seems to work. For our FCT applications, we don't want the Terminated Status to be applied to FPY. That is what we want. This code update seems to work and prevent terminated status duts from entering WATS. So it is different than your suggestion but it seems to work and has also made a customized "WATS_ReportLogger.seq". Let me know if you see any issues or concern in this implementation.
-
David,
Ok, this should work. Just be aware that this will disable all UUTs with status Terminated, also the ones run with the other process models (e.g Sequential Model).
You may also consider to rename your custom "WATS_ReportLogger.seq" file as a WATS Client upgrade will overwrite this file.
-
Tom,
I am using a custom process model. I can't seem to figure out how my process model calls the 'WATS_ReportLogger.seq". As you mention above, I want to rename the 'WATS_ReportLogger.seq" so that it doesn't get over written by the next Client upgrade. But I am not sure how my custom process model will distinguish between my custom 'Custom_WATS_ReportLogger.seq" and the a newly installed 'WATS_ReportLogger.seq". How does it know which one to use?
-
Hi David,
In TestStand, browse to Configure > Result Prosessing... and disable the "original" WATS Logging entry (you should see your custom WATS logging also listed).
This article may also give you some insight: https://virinco.zendesk.com/hc/en-us/articles/207424553-Replace-or-create-custome-Identify-UUT
Please sign in to leave a comment.
Comments
7 comments