4. 状态机与设备安全互锁

半导体设备一旦进入自动运行,晶圆、机械手、阀门、射频电源、真空泵与高温腔体往往同时处于高能量或高价值状态。此时如果状态机允许“非法状态组合”出现,例如腔体未达到真空就开启射频、机械手未缩回就关闭腔门、化学品阀门与排风未建立就进入工艺步,轻则报废晶圆,重则造成硬件损伤甚至人身风险。因此,安全互锁不能作为状态机之外的“补丁逻辑”,而必须嵌入状态迁移的判定条件中,使非法迁移在发生之前就被拒绝。

一、安全状态与紧急停止在状态模型中的位置

设备状态机通常包含初始化、空闲、就绪、运行、暂停、报警、维护等状态。安全设计要额外明确一个安全状态(Safe State):它是设备在异常、急停或互锁触发后应尽快到达的、能量受控且不会继续损伤硬件的状态。对多数半导体设备而言,安全状态不是简单的“停机”,而是分层的:

  • 能量切断层:射频电源关闭、加热电源关闭、运动伺服使能撤销、化学品阀门关闭。
  • 保持层:真空维持、冷却水继续循环、排风保持,防止腔体污染或热积聚。
  • 机械定位层:机械手退回安全位、升降机构落到低位、闸阀关闭到位。

紧急停止(E-Stop)是最高优先级的安全输入。它不应被建模为普通事件,而应作为全局迁移:无论当前处于哪个状态,只要 E-Stop 有效,状态机立即进入 EMERGENCY,并执行安全状态动作序列。E-Stop 恢复后,不能自动回到原状态,必须经过 ALARM_RESET 与 RE_INIT,确认所有互锁条件满足后才允许重新进入就绪。

二、互锁条件如何嵌入状态迁移

互锁(Interlock)本质上是状态迁移的守卫条件(Guard Condition)。一个迁移可写成:

迁移:READY → PROCESSING
触发事件:StartProcess
守卫条件:
  ChamberPressure < 1e-3 Torr
  DoorClosed == TRUE
  RobotAtHome == TRUE
  CoolingWaterFlow > 2.0 L/min
  RF_Off == TRUE
动作:
  OpenProcessValve()
  SetHeater(180°C)
  EnableRF(13.56 MHz, 50 W)

只有当守卫条件全部为真,迁移才被允许;任一条件不满足,状态机保持原状态并产生互锁报警。这样,互锁不再是“事后检查”,而是迁移能否发生的前置约束。

实际工程中,互锁条件可分为三类:

  • 硬互锁:由安全继电器、硬件回路直接切断能量,软件只读取其状态,例如 E-Stop、门开关、过温开关。
  • 软互锁:由 PLC 或设备软件判断,例如真空度、流量、位置、温度是否在允许窗口内。
  • 工艺互锁:与配方步骤绑定,例如“先通工艺气体再开射频”“先关闭射频再关气体”。

三类互锁在状态迁移中的优先级不同:硬互锁最高,触发后直接进入安全状态;软互锁阻止迁移并报警;工艺互锁则约束步骤顺序,防止配方跳步。

三、避免非法状态组合的建模方法

非法状态组合往往来自“多个独立子系统各自迁移,但组合后不合法”。例如腔门状态、机械手状态、真空状态、射频状态各自合法,但“腔门打开 + 射频开启”就是危险组合。为避免这类问题,可采用以下方法:

  1. 状态变量正交化:把设备拆成若干正交子系统状态,如 DoorState、RobotState、VacuumState、RFState,每个子系统独立建模。
  2. 定义禁止组合表:明确哪些组合绝对不允许,例如 Door=Open && RF=On、Robot=Extend && Door=Closed。
  3. 迁移守卫统一引用禁止组合:任何迁移动作执行前,先检查目标组合是否在禁止表中。
  4. 安全状态收敛:一旦检测到禁止组合,立即触发 SAFE_STOP,按能量切断、保持、机械定位顺序执行。
禁止组合检查必须在动作执行之前完成,而不是在动作执行之后。否则即使检测到危险,硬件可能已经受到损伤。

四、状态迁移中的安全嵌入示例

下面给出一个简化的状态迁移与互锁嵌入示意。图中展示了 IDLE、READY、PROCESSING、SAFE_STOP、EMERGENCY 五个状态,以及互锁条件如何作为迁移守卫。E-Stop 作为全局迁移,可从任意状态进入 EMERGENCY;软互锁失败则进入 SAFE_STOP,而不是直接跳回 IDLE。

状态迁移中的安全互锁嵌入示意 IDLE 空闲 / 初始化完成 READY 就绪 / 互锁自检通过 PROCESSING 工艺运行 / 配方步进 SAFE_STOP 软互锁失败 / 能量受控 EMERGENCY E-Stop / 硬互锁触发 InitOK 门关 / 真空就绪 StartProcess 压力 / 流量 / 位置 / RF_Off ProcessDone 互锁失败 真空 / 流量 / 位置异常 工艺互锁失败 Reset + 自检通过 E-Stop / 硬互锁:全局迁移,任意状态 → EMERGENCY E-Stop 复位 + ALARM_RESET + RE_INIT 安全状态动作序列(进入 SAFE_STOP / EMERGENCY 时执行): ① 切断 RF / 加热 / 化学品阀门 ② 保持真空、冷却水、排风 ③ 机械手回安全位、闸阀关闭到位 ④ 置报警、锁定重启

五、工程实现要点与判断依据

在软件实现上,建议把互锁条件集中定义为一个互锁表,而不是散落在各迁移代码中。互锁表至少包含:互锁名称、类型(硬/软/工艺)、检测信号、允许窗口、触发后目标状态、恢复条件。状态机每次迁移前统一查询该表,可显著降低遗漏风险。

判断互锁嵌入是否正确,可观察以下现象:

  • 在 READY 状态下人为打开腔门,状态机不进入 PROCESSING,而是进入 SAFE_STOP 并报警。
  • 在 PROCESSING 中触发 E-Stop,RF 与加热在 100 ms 内切断,真空与冷却水保持,机械手回到安全位。
  • E-Stop 复位后,设备不会自动恢复运行,必须经过 ALARM_RESET 与 RE_INIT,且所有互锁条件重新满足。
  • 日志中能看到“迁移被拒绝”的记录,包含被拒绝的迁移、未满足的互锁名称与当前值,便于排障。
安全互锁的目标不是“让设备停下来”,而是“让设备停在不会继续损伤硬件、且可安全恢复的位置”。因此,安全状态的动作顺序、保持项与恢复路径,必须与状态迁移一起设计、一起验证。

综上,把安全状态、紧急停止与互锁条件嵌入状态迁移,核心是三点:用守卫条件阻止非法迁移,用全局迁移保证 E-Stop 的绝对优先,用禁止组合表消除子系统组合后的危险状态。只有做到这三点,状态机才能在自动运行中既高效又安全。