4. 状态转换条件与触发机制:控制状态转换、通信状态转换、处理状态转换、事件触发与命令触发
GEM 设备状态机是 SECS/GEM 协议栈的核心骨架,它定义了设备在不同运行阶段的行为边界。本章深入剖析三大状态机(控制、通信、处理)的转换条件与触发机制,并重点讲解事件触发与命令触发如何驱动状态变迁。理解这些转换逻辑是进行联调测试和故障排查的基础。
4.1 控制状态转换(Control State Model)
控制状态机管理设备对远程主机的响应模式,决定设备是否接受主机指令。GEM 标准定义了三种控制状态:OFFLINE、ONLINE 和 REMOTE。
关键概念: 控制状态决定了设备是本地操作(OFFLINE)、在线但本地控制(ONLINE)还是完全由主机远程控制(REMOTE)。联调时最常见的故障是设备处于 OFFLINE 状态导致主机指令无响应。
4.1.1 控制状态转换图
4.1.2 转换条件与触发消息
| 当前状态 | 目标状态 | 触发消息 | 触发方向 | 典型场景 |
|---|---|---|---|---|
| OFFLINE | ONLINE | S1F13 (Go Online Request) | 主机 → 设备 | 设备上电后,主机请求设备进入在线模式 |
| ONLINE | OFFLINE | S1F15 (Go Offline Request) | 主机 → 设备 | 维护或调试时,主机将设备切回本地模式 |
| ONLINE | REMOTE | S1F17 (Go Remote Request) | 主机 → 设备 | 开始自动化生产,主机接管控制权 |
| REMOTE | ONLINE | S1F19 (Go Local Request) | 主机 → 设备 | 主机释放控制权,设备回到本地控制 |
| REMOTE | OFFLINE | S1F15 或通信断开 | 主机/网络 | 紧急停止或网络故障时的安全回退 |
联调提示: 在联调测试中,务必先确认设备处于 ONLINE 或 REMOTE 状态再发送控制指令。使用 S1F13 请求 ONLINE 时,设备必须回复 S1F14 并携带 HCACK(Handshake Acknowledge)码 0 表示成功。
4.2 通信状态转换(Communication State Model)
通信状态机管理设备与主机之间的连接生命周期。GEM 定义了三种通信状态:NOT COMMUNICATING、COMMUNICATING 和 WAIT CRA(Wait for Communication Request Acknowledge)。
4.2.1 通信状态转换图
4.2.2 通信状态转换条件
- NOT COMMUNICATING → WAIT CRA: 设备主动发送 S1F1(Communication Request Acknowledge),请求建立通信。触发条件包括设备上电、网络恢复或主机主动要求重连。
- WAIT CRA → COMMUNICATING: 主机回复 S1F2,携带 ACKC1 码为 0(接受请求)。此时设备进入正常通信状态。
- WAIT CRA → NOT COMMUNICATING: 超时(T3 超时)未收到主机回复,或收到 S1F2 但 ACKC1 不为 0。
- COMMUNICATING → NOT COMMUNICATING: TCP 连接断开、T3 超时、或主机/设备主动关闭连接。
常见陷阱: 通信状态机与控制状态机是独立的。设备可能处于 COMMUNICATING 但控制状态为 OFFLINE,此时主机可以收到消息但无法控制设备。联调时需同时检查两个状态机。
4.3 处理状态转换(Processing State Model)
处理状态机描述设备在工艺处理过程中的状态变迁。GEM 定义了以下处理状态:IDLE、SETUP、READY、PROCESSING、PAUSED 和 COMPLETE。
4.3.1 处理状态转换图
4.3.2 处理状态转换条件表
| 当前状态 | 目标状态 | 触发条件 | 触发类型 |
|---|---|---|---|
| IDLE | SETUP | 主机发送 S2F41 携带参数设置指令 | 命令触发 |
| IDLE | READY | 主机发送 S2F41 携带就绪指令,或设备自检完成 | 命令/事件触发 |
| SETUP | READY | 参数设置完成,设备自动转换 | 事件触发 |
| READY | PROCESSING | 主机发送 S2F41 携带启动指令 | 命令触发 |
| PROCESSING | PAUSED | 主机发送 S2F41 携带暂停指令,或设备检测到异常 | 命令/事件触发 |
| PAUSED | READY | 主机发送 S2F41 携带恢复指令 | 命令触发 |
| PROCESSING | COMPLETE | 工艺处理正常结束 | 事件触发 |
| COMPLETE | IDLE | 主机发送 S2F41 携带复位指令,或设备自动复位 | 命令/事件触发 |
4.4 事件触发与命令触发
GEM 协议中,状态转换的驱动力分为两大类:事件触发和命令触发。理解两者的区别是编写设备端逻辑和主机端脚本的基础。
4.4.1 事件触发(Event Trigger)
事件触发是指设备内部状态变化自动引发的状态转换,无需主机主动干预。设备通过 S6F11(Event Report)消息将事件通知主机。
- 典型事件: 处理完成、报警发生、材料耗尽、温度到达设定值。
- 消息流: 设备内部检测到事件 → 设备发送 S6F11 → 主机回复 S6F12 确认。
- 配置方式: 主机通过 S2F33(Define Event Report)和 S2F35(Link Event Report)预先定义事件报告链接。
事件触发示例: 当晶圆处理完成时,设备自动从 PROCESSING 转换到 COMPLETE,并发送 S6F11 报告处理结果。主机无需发送任何指令。
4.4.2 命令触发(Command Trigger)
命令触发是指主机通过发送 SECS 消息主动请求状态转换。设备收到命令后执行相应操作并回复确认。
- 典型命令: S1F13(Go Online)、S2F41(Process Command)、S1F17(Go Remote)。
- 消息流: 主机发送命令消息 → 设备执行 → 设备回复确认消息(如 S1F14、S2F42)。
- 命令参数: S2F41 的 CPNAME(Command Parameter Name)字段指定具体命令,如 "START"、"STOP"、"PAUSE"。
4.4.3 事件触发与命令触发对比
| 对比维度 | 事件触发 | 命令触发 |
|---|---|---|
| 发起方 | 设备内部 | 主机 |
| 典型消息 | S6F11 (Event Report) | S2F41 (Process Command) |
| 响应方式 | 设备主动上报 | 设备回复确认 |
| 适用场景 | 状态完成、报警、异常 | 启动、停止、参数设置 |
| 实时性 | 异步,设备自主决定 | 同步,主机控制节奏 |
| 联调关注点 | 事件报告是否及时、数据是否完整 | 命令响应时间、HCACK 码是否正确 |
4.4.4 事件与命令的协同工作流
4.5 联调实战要点
联调检查清单:
- 确认设备初始控制状态是否为 OFFLINE,通信状态是否为 NOT COMMUNICATING。
- 使用 S1F13 将设备切换到 ONLINE,检查 S1F14 的 HCACK 码。
- 使用 S1F17 切换到 REMOTE,验证设备是否接受后续命令。
- 发送 S2F41 启动处理,观察设备是否进入 PROCESSING 状态。
- 等待处理完成,检查设备是否自动上报 S6F11 事件。
- 模拟通信断开,验证设备是否自动回退到 OFFLINE 或 NOT COMMUNICATING。
常见联调失败原因:
- 设备处于 OFFLINE 状态,主机发送命令被忽略。
- 通信状态为 WAIT CRA 但超时未收到主机确认,设备自动断开。
- 事件报告未正确链接(S2F35 配置错误),导致主机收不到 S6F11。
- 命令参数 CPNAME 拼写错误