labview入门到出家8(进阶)——一个简单好用的状态机

      labview的状态机类似于一个软件框架的基本单元,好的软件框架和软件思路采用一个好的状态机,就如虎添翼了。这章给大家讲一个本人常用的一个状态机,基本上以前的项目都是建立在这个状态机上完成的,当然网上也有很多很好用的状态机,如JKI等。不过几乎都大同小异,看大家习惯用哪种了。下面直接附上状态机概述,大家可以参照着写一个,或者在老曹资源上下载该状态机,上面还有几个我常用的辅助VI,如Excel存储,界面延时显示等,原创不易,请大家多多支持(下载)拉。

1、整体逻辑是这样的,前面板上目前有三个基本按键,确定,取消,退出。运行程序时,逻辑从左到右。(1)先将前面板定位到0,0原点位置;(2)初始化事件处理列表以及数据列表;(3)开始默认状态处于NAN事件上,然后执行50ms超时事件。超时事件一般用来处理常规逻辑,或者程序空置,等待响应其他事件。

2、这里附上事件先进先出 “NEXT”  VI的逻辑,方便大家编写逻辑,也可以直接下载本博客上的状态机资源,直接运行,高亮显示加强理解。

 

    

3、现在点击前面板确定按钮,触发值改变事件。触发后程序跳转到事件结构中,我们可以直接在事件结构中处理数据,或者统一编程风格,所有处理事件都跳转到外层的条件结构中处理。注意程序下方插入OK事件的操作,这里我们可以插入一个OK字符串,表示下一个条件结构中执行的事件是“OK”事件,也可以插入一个字符数组,数组的排序就是执行事件的顺序,通过移位寄存器一一读取并一一处理(不了解移位寄存器的可以看第6章),同时可以在下面插入该事件的数据“OK_Information”,跟随事件一同转移。这里的数据可以是字符,数值,簇,数组等,最后通过变体还原数据。如之前说的,变体相当于面向对象语言中的泛型。

 

执行OK事件,该事件处理逻辑为读取OK事件的数据。

4、同样的,添加取消事件还有退出事件,大家后续的功能可以往外层的条件结构和内层的事件结构逐渐增加,内层事件结构响应界面操作,外层条件结构实现处理逻辑。外层处理逻辑可以通过插入事件的方式,进行灵活的跳转。大家前期先熟悉该状态机,下一章用该状态机实现串口助手的功能,加强理解。

 

Exit事件比较特殊,因为执行完Exit后我们要退出程序了。左下方执行退出程序时,在先进先出NEXT VI下做了一个比较,如果是EXIT事件,则将while循环置TRUE,退出程序。程序最右侧有一个关闭前面板的动作,这个看大家的需求,可要可不要。

5、最后,附上项目的文件结构,新手可以参考一下

项目文件结构,Data放程序执行的相关信息和数据,File放置项目对应的文件,SubVis放置子VI,子VI内部分模块文件,最后来一个Main VI。

 

如有讲解不到位的地方请留言指正,大家一起学习一起提升。原创不易,一键三连拉!

  • 38
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
LabVIEW状态机是一种常用的编程工具,用于管理软件系统中的控制流程。它采用有限状态自动机的概念,将整个系统划分为不同的状态,通过状态之间的转换来描述系统的行为。 在LabVIEW中,状态机通过使用状态图、状态迁移和状态事件来实现。状态图是状态机的核心,用于表示系统中所有可能的状态以及状态之间的转换。每个状态代表系统中某个特定的行为和状态;状态之间的转换表示系统从一个状态切换到另一个状态的条件。 在状态机中,状态迁移是状态之间的转换规则。它定义了系统如何从一个状态切换到另一个状态,以及切换的触发条件。例如,当系统满足某个特定条件时,状态机将从一个状态切换到另一个状态。 状态事件是触发状态迁移的事件,它可以是用户的输入、传感器的信号等。当状态机接收到某个特定的事件时,它会根据当前的状态和状态迁移规则来判断是否需要进行状态切换。 LabVIEW状态机的优点是能够清晰地描述系统的行为,使得程序的结构更加模块化和可维护。通过将系统划分为不同的状态和状态之间的转换,可以降低系统的复杂度,并且能够更好地应对系统的变化和扩展。 总之,LabVIEW状态机是一种有效的编程工具,可以帮助开发者更好地管理系统的控制流程,实现复杂系统的控制和管理。它的使用可以提高程序的可读性、可维护性和可扩展性,是LabVIEW编程中常用的技术。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值