第4节 程序设计的模式
一、顺序编程
使用顺序结构可强行指定程序框图对象的操作顺序。 顺序结构是由多个帧构成的结构,它按顺序执行每一帧,在第一帧没有完全执行完之前不能执行第二帧。
在LabVIEW 中,可以将每一个任务单独放在一个子VI 中,然后用错误簇将这些子VI 按顺序连接在一起。
应充分利用LabVIEW 固有的并行机制,避免使用太多顺序结构。 顺序结构虽然可以保证执行顺序但同时也阻止了并行操作。 使用顺序结构的另一个缺点是顺序执行的中途不能停止该执行。
二、状态编程
虽然使用顺序结构或者顺序连接各子VI 都可以实现一些任务,但无法完成:
❑ 改变执行的顺序
❑ 多次重复执行序列中某一帧
❑ 仅在满足一定条件时才执行某几帧
❑ 立刻停止该程序而不是等到最后一帧执行完才停止该程序
三、状态机设计模型
状态机是LabVIEW 中常用且用途广泛的一个设计模型。 可以实现任何用状态图或流程图明确描述的算法。 状态机通常用于实现较为复杂的判决算法,如诊断程序或过程监控。
状态机包含一组状态和映射下一状态的转移函数。 最常用的两种有限状态机是米勒型状态机和摩尔型状态机。 米勒型状态机对于每一个状态变化产生一个响应。 而摩尔型状态机是对状态转移图中的每一个状态产生一个响应。LabVIEW 中状态机设计模型模板可以实现任何由摩尔型状态机描述的算法。
应用状态机
在状态区分明显的应用程序中可采用状态机。
每一个状态都会导致另一个或多个状态,或者结束处理流程。
状态机通过计算用户输入和内部状态来决定下一状态。 许多应用程序都需要一个初始状态,后面接着一个默认状态,以执行各种不同的操作。 具体执行什么操作要依据以前和当前的输入及状态。 停止状态通常用来执行清除操作。
状态机应用场合
状态机常用来创建用户界面。 用户界面中,不同的用户操作会让用户界面进入不同的处理程序段。 每一个处理程序段都相当于状态机里的一个状态。 每一个处理程序段都会引起下一步的处理或者等待另一个用户操作。
过程测试是状态机设计模型的另一个常见应用。 过程测试中,一个状态表示程序中的一段。 根据每一个状态的测试结果,相应地调用不同的状态。 这个过程可不断地执行,从而对整个过程有一个彻底全面的分析。
状态机基本结构
将状态转移图转化为LabVIEW 程序框图需要如下基本结构:
While 循环-不断地执行各个状态。
条件结构-包括对应于每一个状态的条件分支和执行代码
移位寄存器-包括状态转移信息
状态功能代码-实现状态的功能
状态转换代码-判定下一个状态
状态机示意图
状态机示意图

使用并行机制
程序经常需要同时执行多个任务。 LabVIEW 中,如果多个任务之间没有数据依赖关系且不会使用到同一共享资源,则这些任务可以并行运行。 文件、仪器等都属于共享资源。
用于执行多个任务的LabVIEW 设计模型,包括并行循环、主/ 从模型和生产者/ 消费者模型。
本章部分内容引自NI公司教程。
选择(30)
判断(10)
计算(20)
填空(10)
简答(30)
<<完>>


