关于状态机结构

2019-07-18 07:49发布

老板交代一个任务,需要做一个测试机,完成IC的基本测试。本人白板一个,看了一些书籍和一些电子资料,做出了如下构想。考虑到一个IC有很多测试项,所以决定使用状态机结构。如图,我把IC的各个测试项做成了一个枚举变量。通过移位寄存器来实现测试项目之间的跳转。但是,这样有一个弊端,当一个测试项目测试完毕之后,无论它是PASS还是FAIL,都需要调到下一个测试项目。那么当最后一项测试完成之后,怎么判断这个IC的整体测试结果呢,比如说第一项fail,但是最后一项PASS.附上截图,程序不完整,只是一个大概的想法和结构,帮忙分析一下,不胜感激。
clip_image002.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
sushu
1楼-- · 2019-07-18 08:02
再添加一个移位寄存器,链接一个簇(簇里面是多个布尔量:个数由你侧测试项决定),每完成一项测试,把结果写入相应的布尔量中,最后查看这个簇就可知道整体的测试结果了。
huzhao1027
2楼-- · 2019-07-18 11:02
sushu 发表于 2013-8-7 14:31
再添加一个移位寄存器,链接一个簇(簇里面是多个布尔量:个数由你侧测试项决定),每完成一项测试,把结果 ...

版主,谢谢您的回复。我想过这个问题,但是现在有一些地方比较纠结。思路是,我在每一个条件框下,都做了一个简单的比较,就是用作测试数值的比较。之后又用了一个选择VI,虽然只是写了个大体的框架,想必您应该知道。不管结果是否超出SPEC,都会跳到下一个测试项(D_EN)。目的就是无论是否PASS,最后我都可以看到每一项的测试值。但是这样问题又来了,到了最后一项测试完成之后,就不知道如何去判断整个IC的测试结果是否PASS了。想过您说的方法,在对采集完的数据做出比较的同时,一方面通过一个选择VI让其跳到下一个测试项。另外一方面,再引入一个选择VI,本测试项若是PASS,则输出布尔值1,若是FAIL,输出布尔值0。期望的是将每一个条件下的这个布尔值放到一个数组里面,在整个IC测试完毕之后,再从这个数组中索引出每个元素,再作一个与运算,若结果是1,代表PASS,若结果是0,代表FAIL。但是现在就是没有想到有什么办法可以把这每个条件下的布尔值放入一个数组。我尝试过再加入一个移位寄存器,但是在后面创建显示控件的话,会是一个单一的布尔。也就是说,这里的数据类型并不是一个数组,连线并没有变粗。想了很久,也没有找到比较合适的方法,能不能稍微指导一下,谢谢了。

未命名.jpg
sushu
3楼-- · 2019-07-18 12:21
本帖最后由 sushu 于 2013-8-7 19:21 编辑
huzhao1027 发表于 2013-8-7 16:28
版主,谢谢您的回复。我想过这个问题,但是现在有一些地方比较纠结。思路是,我在每一个条件框下,都做了 ...

上传了一个简单的例子,忘您读下,使用的事簇,这样感觉更方便一点。版本是8.5的,
在每一个状态里面,直接将你的判断结果赋值给相应的簇里面的布尔,即可,不用选择结构。

0_2013-08-07_19-16-43.png 1_2013-08-07_19-17-16.png 2_2013-08-07_19-17-27.png 3_2013-08-07_19-17-38.png






Untitled 1.vi (9.53 KB, 下载次数: 7)



huzhao1027
4楼-- · 2019-07-18 15:49
真的非常感谢版主,我先看下您这个程序的用意。再次感谢
huzhao1027
5楼-- · 2019-07-18 16:09
 精彩回答 2  元偷偷看……
hanshiwangzi
6楼-- · 2019-07-18 21:02
学习学习。。。

一周热门 更多>