3. SVID与VID的命名规范

SVID(状态变量ID)和VID(数据变量ID)是SECS/GEM通信中标识设备数据点的唯一键。合理的命名规范直接影响设备集成效率、上位机解析正确率以及后期维护成本。本章从编号规则、行业标准分配和自定义注意事项三个层面展开。

3.1 编号规则:SVID与VID的ID结构

SEMI标准规定SVID和VID均为无符号4字节整数(U4),取值范围为0~4,294,967,295。编号本身不携带语义,但行业惯例和标准文档对特定区间做了功能划分。

区间 范围 用途 示例
标准保留区 0 – 999 SEMI标准定义的通用变量 SVID 1 = 设备状态
设备商自定义区 1,000 – 32,767 设备制造商分配的私有变量 SVID 1001 = 腔体压力
用户扩展区 32,768 – 65,535 最终用户或系统集成商自定义 VID 50000 = 批次配方参数
保留/未来扩展 65,536 – 4,294,967,295 标准预留,不建议使用 —
实践建议:设备商自定义区(1,000–32,767)是最常用的分配区间。建议将SVID和VID的编号空间分开管理,避免冲突。例如SVID使用1,000–9,999,VID使用10,000–32,767。
编号规则核心原则:
  • 唯一性:同一设备内SVID不可重复,VID不可重复,SVID与VID之间可以重复(属于不同命名空间)。
  • 稳定性:一旦发布,已分配的ID不应变更,废弃ID应标记为“已废弃”而非重用。
  • 可扩展性:预留连续区间给未来新增变量,避免碎片化。
SVID / VID 编号区间分配 0 – 999 1,000 – 32,767 32,768 – 65,535 65,536 – 4,294,967,295 标准保留区 设备商自定义区 用户扩展区 保留/未来扩展 说明: • 标准保留区:SEMI E5/E30/E37 已定义的通用变量,设备必须支持。 • 设备商自定义区:设备制造商分配,需提供文档说明每个ID对应的含义。 • 用户扩展区:最终用户或集成商使用,需与设备商协调避免冲突。 • 保留区:标准未来扩展使用,当前不建议分配任何变量。

3.2 行业标准中的常见变量ID分配

SEMI E5(SECS-II)、E30(GEM)和E37(HSMS)等标准文档中定义了一组通用SVID和VID,用于实现设备与主机之间的基本互操作。这些标准变量是所有GEM兼容设备必须或应当支持的。

3.2.1 SEMI E5/E30 标准SVID(部分)

SVID 变量名 数据类型 描述 支持级别
1 MDLN ASCII 设备型号 必须
2 SOFTREV ASCII 软件版本 必须
3 DEVICE_ID U2 设备ID 必须
4 COMM_STATUS B 通信状态 应当
5 CONTROL_STATE B 控制状态 应当
6 PROCESS_STATE B 工艺状态 应当

3.2.2 SEMI E30 标准VID(部分)

VID 变量名 数据类型 描述 支持级别
1 LOT_ID ASCII 批次ID 必须
2 WAFER_ID ASCII 晶圆ID 必须
3 RECIPE_ID ASCII 配方ID 应当
4 OPERATOR_ID ASCII 操作员ID 可选
5 PRODUCT_ID ASCII 产品ID 可选
注意:标准变量ID(0–999)的分配由SEMI国际标准委员会管理。设备商不得自行占用标准保留区内的ID,除非该ID对应的标准变量确实被实现。误用标准ID会导致上位机解析错误。
标准变量与自定义变量关系 标准变量 ID: 0–999 设备商自定义 ID: 1,000–32,767 用户自定义 ID: 32,768–65,535 变量分配流程: 1. 首先检查标准变量(0–999)是否满足需求,若满足则直接使用标准ID。 2. 若标准变量不满足,设备商在自定义区(1,000–32,767)分配新ID。 3. 最终用户可在用户扩展区(32,768–65,535)分配现场级变量。 4. 所有自定义变量必须提供文档说明,包括名称、数据类型、单位、取值范围。 5. 变量ID一旦分配并投入使用,不得修改或删除,只能标记为废弃。

3.3 自定义变量ID的注意事项

在实际项目中,标准变量往往无法覆盖所有设备特性,自定义变量是不可避免的。以下是经过多个半导体Fab项目验证的注意事项清单。

3.3.1 命名与编号原则

  • 语义化命名:变量名应清晰反映物理含义,例如 Chamber1_Pressure 优于 CP1。
  • 编号连续性:按功能模块分组分配ID区间,例如:
    • 腔体相关:1,000–1,999
    • 温度传感器:2,000–2,999
    • 压力传感器:3,000–3,999
    • 流量控制器:4,000–4,999
  • 避免ID跳跃:不要随意跳过大量ID,防止未来扩展时区间碎片化。
  • 数据类型固定:同一ID的数据类型一旦确定,不得更改。例如SVID 1001定义为F4(浮点),后续不能改为U4。

3.3.2 文档与版本管理

文档要素 要求 示例
变量定义表 包含ID、名称、类型、单位、范围、默认值 SVID 1001, Chamber1_Pressure, F4, Torr, 0–1000
变更记录 每次新增/废弃/修改需记录版本号和日期 v2.1 2024-03-15 新增SVID 1010
兼容性说明 标注哪些变量影响上位机兼容性 SVID 1001 变更会影响历史数据解析

3.3.3 常见错误与避坑

避坑清单:
  • ❌ 重用废弃ID:废弃ID应永久保留,新变量使用新ID,否则历史数据解析会错乱。
  • ❌ 使用标准保留区ID:即使标准变量未实现,也不要用0–999区间定义私有变量。
  • ❌ 数据类型不一致:同一ID在不同版本中改变数据类型,会导致SVID/VID读取失败。
  • ❌ 无文档分配:口头约定ID分配,后期人员变动后无人知晓变量含义。
  • ❌ 忽略单位:不标注单位会导致上位机显示错误数值(如Pa vs Torr)。

3.3.4 自定义变量ID分配示例

// 设备商自定义SVID分配示例(某刻蚀设备)
// 区间分配:
// 1,000–1,099: 系统状态
// 1,100–1,199: 腔体1
// 1,200–1,299: 腔体2
// 1,300–1,399: 气体系统

SVID 1000 = System_Status          // U2, 0=Idle, 1=Running, 2=Alarm
SVID 1001 = System_Uptime          // U4, 秒
SVID 1100 = Chamber1_Pressure      // F4, Torr
SVID 1101 = Chamber1_Temperature   // F4, °C
SVID 1102 = Chamber1_Power         // F4, W
SVID 1200 = Chamber2_Pressure      // F4, Torr
SVID 1201 = Chamber2_Temperature   // F4, °C
SVID 1300 = Gas1_FlowRate          // F4, sccm
SVID 1301 = Gas2_FlowRate          // F4, sccm
最佳实践:在设备交付前,向客户提供完整的SVID/VID变量定义手册(PDF或Excel格式),并包含在设备的SECS/GEM通信文档中。建议同时提供一份机器可读的变量定义文件(如JSON或XML),方便上位机自动导入。
自定义变量ID分配流程 1. 需求分析 确定变量列表 2. 区间规划 按模块分组 3. 分配ID 避免冲突 4. 文档化 变量定义表 审核与修订循环 关键检查点: ✅ 是否与标准变量ID冲突? ✅ 是否与已有自定义变量ID重复? ✅ 数据类型、单位、取值范围是否明确? ✅ 是否已记录到变量定义文档并通知相关方?

3.4 小结