电子工程师技术服务社区
- 社区首页
- 下载
- 1 简单状态机.pdf
资料描述
简单状态机
021-50509800 • 800-820-3622 • china.info@ni.com • ni.com/china national instruments
“简单状态机”模板便于定义各代码段的执行序列。这种特定的实现通常称为摩尔机
-下一个状态取决于当前状态的决定。代码段可以随意增减,执行顺序可以随意更改,
不必对应用程序的结构作大改动。
范例
关于修改本模板以用于测量应用程序的范例,见创建项目对话框中的“有限次测量”
范例项目。
开发者走查
关于本模板开发者走查的详细信息见ni.com。
系统要求
labview 基础版、完整版或专业版开发系统
使用条件
本模板适用于符合以下所有情况的应用程序:
状态
决策逻辑:确定何时转移至特定的状态
例如,对下列应用程序采用状态机模式非常有效:
单个页面或包含多个选项卡的对话框。对话框的每个选项卡对应用于一种状态。
用户单击特定的选项卡时,启动状态转移。对于每个选项卡,用户可执行的操
作都包含在相应的状态中。
自动取款机(atm)。该应用程序可能涉及以下几种状态:等待用户输入、检查
请求的金额是否超过账户余额、吐钞、打印收据等。
执行一次测量,将结果记录至磁盘,然后等待其他用户操作的应用程序。该应
用程序可能涉及以下几种状态:等待用户输入、执行测量、记录数据、显示数
据等。
概述
021-50509800 • 800-820-3622 • china.info@ni.com • ni.com/china national instruments
注:
上图中的每一种状态对应于main.vi 中条件结构的一个分支。同时,每种状态:
1. 执行某项操作
2. 通过向while 循环的移位寄存器传递指令,指定状态机的下一个状态。
初始化完成后,状态机转移至"wait for event"状态。该状态通过事件结构等待
前面板发生改动。用户单击按钮时,由labview 识别该事件,然后切换至事
件结构的相应分支。接着由该分支发起状态转移,转移至相应的状态。
每种状态可以访问一个数据簇。簇中包含的数据类型通过data.ctl 定义。
state.ctl 是一个自定义类型,罗列了有效的状态。用自定义类型实现状态转移
的方法限制了可能的转移操作数量,减小了状态机陷入不可识别状态的可能