当发生特定的Run-Time Error时,将 DUT 置于Software Bin中的Fail

更新 Jul 17, 2023

环境

软件

  • TestStand Semiconductor Module
  • TestStand

如果发生的特定error是预期内的,则可以故意忽略该error,以便即使step status显示为errorerror occurred 参数也为 false,但实际statuspassed,因为error已被忽略。相反,如果您想要获得fail的结果,则必须使用Set and Lock Bin步骤来重新分配设备的 Binning。本教程将完成创建特定error、清除 SequenceFilePostStepRuntimeError 回调中的error以及使用Set and Lock Bin步骤重新分配software bin以获得不良DUT的步骤

 

您需要在系统上先安装NI TestStandTestStand Semiconductor 模块才能完成以下步骤。


1. 启动NI TestStand
2. 选择Semiconductor Module » Edit Pin Map File...以启动Pin Map Editor
3. 不要编辑pin map文件。单击Save按钮以保存pin map文件。

03.png


4. 选择Semiconductor Module » Edit Bin Definition File...以启动Bin Definition Editor
5. 单击Add Bin (+)在Hardware Bins选项卡下面添加新的hardware bin。

  • Number设置为4
  • Name设置为SpecificErrorOccurs
  • Type设置为Fail
05.png


6. 单击Add Bin (+) 在Software Bins选项卡上添加新的software bin。

  • Number设置为4
  • Name设置为SpecificErrorOccurs
  • Hardware Bin设置为SpecificErrorOccurs
  • Type设置为Fail
06.png


7. 单击Save按钮以保存 bin definition file。
8. 向MainSequence插入一个Statement步骤。

  • “Properties”选项卡上的“Name”文本框中键入Create a Specific Error。
  • “Expression”选项卡的“Expression”文本框中键入Step.Result.Error.Code = 1234, Step.Result.Error.Occurred = True, Step.Result.Error.Msg = "A specific error occurs"。
08.png


9. 向MainSequence插入一个If步骤。

  • If Condition选项卡上的Conditional Expression文本框中键入RunState.Sequence.Main["Create a Specific Error"].Result.Status == "Error" 。
09.png


10. 将Step Types面板中的Semiconductor Module里面的Set and Lock Bin步骤插入到MainSequence中。

  • Set and Lock Bin选项卡上的Bin Expression下拉菜单中选择4 - SpecificErrorOccurs。
10.png


11. 选择Edit » Sequence File Callbacks...启动Sequence File Callbacks对话框。
12. 选择SequenceFilePostStepRuntimeError Engine Callback并点击Add。现在,您可以在Sequences窗格中看到SequenceFilePostStepRuntimeError回调。

12.png
12-1.png


13. 向SequenceFilePostStepRuntimeError插入一个Statement步骤。

  • “Properties”选项卡上的“Name”文本框中键入Clear the Specific Error。
  • Expression选项卡的Expression文本框输入以下表达式:#NoValidation(Parameters.Step.Result.Error.Occurred) = #NoValidation(Parameters.Step.Result.Error.Code) == 1234 ? False : #NoValidation(Parameters.Step.Result.Error.Occurred),
    #NoValidation(Parameters.Step.Result.Error.Msg) = #NoValidation(Parameters.Step.Result.Error.Code) == 1234 ? "" : #NoValidation(Parameters.Step.Result.Error.Msg),
    #NoValidation(Parameters.Step.Result.Error.Code) = #NoValidation(Parameters.Step.Result.Error.Code) == 1234 ? 0 : #NoValidation(Parameters.Step.Result.Error.Code)
            13.png


14. 向SequenceFilePostStepRuntimeError插入一个Statement步骤。

  • Properties选项卡的Name文本框中输入Set MainSequence to Fail。
  • Expression卡上的Expression文本框中键入RunState.Caller.RunState.SequenceFailed = True。
14.png


15. 完成上述所有步骤后, MainSequneceSequenceFilePostStepRuntimeError将如下所示。

15-1.png15-2.png


16. 选择Semiconductor Module » Show Lot Statistics Viewer以启动Lot Statistics Viewer窗口。
17. 单击Single Test按钮开始批量测试单个 DUT。
 

测试完成后,您可以看到当main sequence中的步骤Create a Specific Error发生错误时,TSM在Lot Statistics Viewer中将 DUT分配给了software bin 4 - SpecificErrorOccurs。