状态机的使用在实战项目中是经常使用到的,可能每个公司所用的 labview测试框架不同,但是状态机的使用一定不可避免,所以要理解一个LabVIEW测试框架。就必须看懂并学会使用状态机。
每一本书都会对状态机有介绍,但是例子都比较单一,今天我就用以前的一个小项目(附件可下载)和大家聊聊状态机。
书中状态机的种类很多,看得人脑袋疼。但开发项目常用的状态机并不多,有几种常见的状态机基本上就可以解决项目开发问题:
1.一个While循环+事件结构 组成的状态机(最简单的)
2.一个Whie循环+用户事件+事件结构
3.队列消息+while循环+事件结构 组成的状态机(较复杂)
4.队列消息+while循环+用户事件+事件结构
今天和大家分享的是前两个状态机在实战中的应用!
大致项目要求:
1.能在指定位置(可更改)读取csv文件。
2.获取csv文件中多个位置的值(0或1),都为1是显示结果PASS,否则FAIL
3.当csv文件的数据判断完成后,软件停下来等待。一旦csv文件更新就继续判断。
项目讲解:
第一个要求,软件讲究灵活。所以文件路径都是通过config中的配置文件写入(如图一)
第二个要求,就是用一些逻辑知识解决。
第三个要求,这个就要用到状态机解决了,因为用到了事件结构的超时!
状态机在这个项目如何使用:
(如图2)
我们把就检测CSV文件有没有更新的VI放在超时哪里,所谓超时就是在没有其他响应的时候,会一直执行超时里的东西。一旦VI检测到有更新就会触发用户事件。状态机执行用户事件里的东西。
(如图3)
用户事件里的东西,我们就是把开始这个全局变量的值改变。当开始的值改变后就能进入逻辑判断的VI了,该VI在处理完所以数据后,会自己退出。(如图4
)
注:为方便大家使用,我把一些VI禁用了,程序只要将CSV文件放在config对应的路径下就可运行成功。希望对大家有所帮助,如果有大四学生党要用LabVIEW弄毕设的,看个人时间,我可以帮你解答一些问题。
6
|
|
|
|
我这只是知道点皮毛而已,让大神见笑了。刚看您的一些帖子,你才是技术大亨,还请多多指教。
|
|
|
|
|
谢谢分享,支持
|
|
|
|
|
|
|
-
小科ka
2019-4-11 10:25
涂点风油精再看看,就不晕了。哈哈!
|
|
|
感谢分享,确实如楼主所说,书上都有介绍状态机,结合实际案例的比较少,希望能通过学习得到你的编程经验,再次感谢。
|
|
|
|
|
单纯的知识点比较简单,有实际的项目例子还是比较有用,学习学习
|
|
|
|
|
66666666666666666666666666666666666666666666
|
|
|
|
|