状态机

由一张卡片带来的思考,芯片有睡眠、待机、停机、运算等不同的状态,仪表有“校零/预热/测量/吹扫”等状态,本质上都是有限状态机

状态机的概念

“状态机”(Finite State Machine, FSM) 是逻辑控制中的一种数学模型。它的第一性原理是:系统在任何一个时刻,只能处于一种特定的状态中。 它不能既是 A 又是 B。

想象一个人:

  • 状态 A:睡觉。 (此时如果你听到闹钟响 -> 这是一个事件/输入)
  • 动作: 起床。
  • 状态 B:清醒。

这就是一个最简单的状态机。 如果没有状态机思维,你可能会写出这样的逻辑:“我正在睡觉,同时我在跑步”。这在逻辑上是崩溃的。

状态机的四大要素

要描述一个状态机,需要定义清楚这四个东西,以 CMES 仪表为例:

  • 现态 (Current State): 你现在在哪?(例如:测量中)
  • 条件/事件 (Condition/Event): 发生了什么事?(例如:收到校准指令 或 定时器时间到)
  • 动作 (Action): 你要干什么?(例如:切电磁阀、冻结数据)
  • 次态 (Next State): 做完动作后,你变成了什么?(例如:变成“校准中”)

有限状态机思维 (Finite State Machine, FSM)

  • 核心思想: 系统不是一个连续混沌的过程,而是由若干个离散的、定义明确的状态 组成的。
  • 设计哲学:各司其职,互不干扰。
  • 在 CEMS 中的应用:
    • 预热状态 : 此时系统的唯一任务是“热起来”。策略: 全功率开启加热器,但禁止开启采样泵(防止冷凝水抽入气室,类似芯片的软启动保护)。
    • 校零状态: 此时系统的任务是“找基准”。策略: 切换电磁阀,屏蔽掉所有超标报警(因为标气可能超标),并冻结 4-20mA 输出(保持在测量前的数值),防止 DCS 误报警。
    • 吹扫状态: 此时系统的任务是“清洁”。策略: 泵反转或开启反吹气源,此时任何测量数据都是无效的,必须打上“无效数据”的 Flag。

负载分级与最坏情况设计 (Worst-Case Design)

芯片之所以有很多电容,是因为设计者考虑到了最坏的瞬时功耗。在 CEMS 设计中,这对应着“功耗预算 (Power Budgeting)”思想:

  • 不同档位(状态)的功耗是不一样的:
    • 预热状态: 伴热管线加热(2000W)+ 探头加热(500W)+ 仪表加热(200W)。这是峰值功耗(Max Load)。
    • 测量状态: 加热器只需保温(占空比 30%),但泵全速转。这是典型功耗。
    • 待机状态: 只有电路板供电。
  • 设计陷阱: 很多新手设计师只按“典型功耗”选电缆和空开,结果一到冬天冷启动(预热状态),全系统跳闸。
  • 思维模型: 必须按照“所有耗能元件同时开启的那个瞬间”(通常是上电瞬间或预热态)来设计供电系统。
Licensed under CC BY-NC-SA 4.0