1.3 状态机
一、状态机
LabVIEW 的状态机(State Machine) 是一种极其重要和常用的设计模式(架构)。它非常适合用于编写清晰、有序且易于维护的应用程序,特别是那些需要按顺序执行不同任务或对用户输入做出复杂响应的程序。
核心思想:程序在任意时刻都处于一个且仅处于一个已知的“状态”(State)中。根据当前状态和接收到的“事件”或“条件”,程序决定下一步要执行哪个状态,并执行相应的代码
二、状态机的基本组成部分
一个典型的状态机由以下部分在 While 循环内构成:
1.状态寄存器 (State Register):
通常是一个移位寄存器(Shift Register),用于存储和传递“下一个状态”或“当前状态”。
这是状态机的“记忆”,它告诉循环下一次迭代应该执行哪个状态。
2. 状态选择器 (Case Structure):
一个巨大的 Case 结构,包裹着 While 循环内的所有代码。
每一个分支(Case)对应一个状态(如:“初始化”、“等待用户输入”、“执行测量”、“处理数据”、“错误处理”、“退出”)。
每个状态分支内包含了该状态下需要执行的具体代码。
3. 转换逻辑 (Transition Logic):
在每个状态分支的末尾,根据当前执行的结果或条件,决定下一个要执行的状态,并将该状态值写入到状态移位寄存器中。
这是状态机的“大脑”,决定了状态流转的路径
三、代码