4. 变量分类与作用域:设备级变量、过程级变量、材料级变量、报警变量、状态变量、事件变量
在 SECS/GEM 协议体系中,数据变量并非单一扁平结构,而是按照其生命周期、可见范围和业务语义划分为多个类别。理解变量分类与作用域,是正确配置设备模型、编写通信脚本以及进行故障诊断的基础。错误的分类会导致变量冲突、数据丢失或报警误报。
4.1 变量分类总览
根据 SEMI E5/E30 标准,GEM 变量主要分为六大类。下表从作用域、生命周期和典型用途三个维度进行对比:
| 变量类别 | 英文缩写 | 作用域 | 生命周期 | 典型用途 |
|---|---|---|---|---|
| 设备级变量 | V | 全局(整个设备) | 设备上电至断电 | 设备ID、软件版本、系统时间 |
| 过程级变量 | V | 当前配方/制程 | 配方加载至配方结束 | 温度设定值、压力设定值、工艺时间 |
| 材料级变量 | V | 当前批次/晶圆 | 批次开始至批次结束 | 晶圆ID、批次号、膜厚测量值 |
| 状态变量 | SV | 全局 | 持续存在 | 设备状态、腔室压力、电机转速 |
| 事件变量 | EV | 全局 | 事件触发时采集 | 报警发生时的上下文数据 |
| 报警变量 | AL | 全局 | 报警激活至清除 | 报警ID、严重等级、报警描述 |
关键区分: 设备级、过程级、材料级变量在 SECS 报文中都使用
V 作为数据项标识,但它们的 VID(变量ID) 范围必须严格分区,不能重叠。状态变量、事件变量、报警变量则使用独立的 ID 空间(SVID、EVID、ALID)。
4.2 设备级变量(Equipment-Level Variable)
设备级变量是全局唯一且持久化的变量,其值在设备整个运行周期内保持不变或由系统维护。它们不依赖于任何配方或批次。
- 特点: 作用域为整个设备,所有模块均可访问;生命周期从设备上电开始,直到断电或复位。
- 典型示例:
VID=1:设备序列号(String)VID=2:软件版本号(String)VID=3:当前系统时间(ASCII)
- 管理要求: 设备级 VID 通常分配在 1~999 范围内,且一经定义不应修改。
实践建议: 在设备初始化阶段,主机(Host)应通过
S1F3 请求读取所有设备级变量,用于校验设备身份和固件版本。
4.3 过程级变量(Process-Level Variable)
过程级变量与当前加载的配方(Recipe)绑定。当配方切换或重新加载时,这些变量的值会随之更新。
- 特点: 作用域限定在当前制程模块;生命周期从配方加载开始,到配方卸载或新配方加载时结束。
- 典型示例:
VID=1001:沉积温度设定值(Numeric)VID=1002:气体流量设定值(Numeric)VID=1003:工艺腔室压力设定值(Numeric)
- 管理要求: 过程级 VID 通常分配在 1000~9999 范围,与设备级变量隔离。
常见错误: 将过程级变量误设为设备级变量,会导致配方切换时旧值残留,造成工艺偏差。务必在配方加载时通过
S7F19 或 S2F41 重新写入过程变量。
4.4 材料级变量(Material-Level Variable)
材料级变量与当前正在处理的批次(Lot)或晶圆(Wafer)关联。它们用于追踪每一片晶圆的工艺历史。
- 特点: 作用域为当前批次或单个晶圆;生命周期从批次/晶圆进入设备开始,到离开设备时结束。
- 典型示例:
VID=2001:当前晶圆ID(String)VID=2002:批次号(String)VID=2003:晶圆在腔室内的停留时间(Numeric)
- 管理要求: 材料级 VID 通常分配在 2000~9999 范围,且必须支持在批次结束时自动清零或归档。
4.5 状态变量(Status Variable, SV)
状态变量是 GEM 标准中最核心的变量类型,用于描述设备当前时刻的物理或逻辑状态。主机通过 S1F3 请求读取 SVID。
- 特点: 全局作用域,持续存在;值由设备硬件或底层软件实时更新。
- 典型示例:
SVID=501:当前腔室压力(Numeric)SVID=502:电机当前转速(Numeric)SVID=503:设备控制状态(Discrete: INIT/IDLE/RUNNING)
- 管理要求: SVID 必须与 设备状态模型(Equipment State Model) 联动,确保状态转换时 SV 值同步更新。
4.6 事件变量(Event Variable, EV)
事件变量是与特定事件绑定的数据快照。当事件(如工艺完成、报警触发)发生时,设备自动将相关 EV 值打包发送给主机。
- 特点: 不独立存在,必须挂载在某个事件 ID(CEID)下;仅在事件触发时采集并上报。
- 典型示例:
EVID=101(事件:工艺结束)关联的 EV:EV=1(最终膜厚)、EV=2(工艺时间)EVID=102(事件:报警发生)关联的 EV:EV=3(报警ID)、EV=4(当前压力值)
- 管理要求: EV 的采集时机必须精确,避免在事件触发前或触发后采集到错误值。
4.7 报警变量(Alarm Variable, AL)
报警变量用于描述设备报警状态。每个报警由唯一的 ALID 标识,包含报警严重等级、当前状态(激活/清除)和描述文本。
- 特点: 全局作用域;生命周期从报警激活开始,到报警清除结束。
- 典型示例:
ALID=1:温度超限报警(严重等级:Critical)ALID=2:门互锁打开报警(严重等级:Warning)
- 管理要求: 报警变量必须支持 Set/Clear 两种状态,且报警清除时必须发送
S6F11通知主机。
4.8 变量作用域与生命周期对比图
下图以时间轴和模块范围两个维度,直观展示六类变量的作用域差异:
4.9 变量分类管理最佳实践
- VID 分区规划: 在项目初期制定 VID 分配表,确保设备级、过程级、材料级变量 ID 不重叠。建议预留扩展段。
- 状态变量与设备模型同步: 每个状态变量应映射到设备状态模型中的一个或多个状态,避免出现“状态变量显示 RUNNING,但设备实际处于 IDLE”的不一致情况。
- 事件变量采集时机: 在事件触发前完成 EV 值锁定,避免因采集延迟导致数据错位。建议使用硬件中断或高优先级任务采集 EV。
- 报警变量去重: 同一物理报警不应映射到多个 ALID,否则会导致主机报警风暴。每个报警源只分配一个 ALID。
- 生命周期管理: 材料级变量在批次结束时必须执行清理操作(清零或归档),防止下一批次读到残留数据。
总结: 变量分类的本质是数据作用域的划分。设备级变量是“全局常量”,过程级变量是“配方参数”,材料级变量是“批次轨迹”,状态变量是“实时快照”,事件变量是“触发快照”,报警变量是“异常状态”。正确分类是构建可靠 GEM 通信模型的第一步。