3. 设备端SECS/GEM接口建模

设备端SECS/GEM接口建模的本质,是把一台物理设备在通信层面“翻译”成一组可被主机识别、订阅和操作的对象。主机不会直接理解“腔体压力到了多少”“机械手是否在取片”,它只理解SVID、CEID、ALID、RPTID这些标识符。因此建模的核心任务,就是建立物理世界与SECS/GEM对象之间稳定、唯一、可追溯的映射关系。这一节围绕设备类型、数据源、状态变量、事件、报警、配方与远程命令七类对象,说明它们各自承担什么职责、如何定义,以及它们之间如何组织成一台可被集成的设备模型。

先确定设备类型与建模边界

建模第一步不是打开配置文件,而是确定设备类型和边界。设备类型决定了对象集合的规模与组织方式。单机设备通常只有一个处理单元,对象结构扁平;而集群设备(Cluster Tool)包含传输单元、多个工艺腔体、Load Lock等,需要按“设备—模块—子模块”分层建模。例如一台PECVD设备可划分为设备级(EQ)、传输模块(TM)、腔体1(PM1)、腔体2(PM2),每个层级拥有自己的状态变量、事件和报警。

边界确定的原则是:凡是主机需要独立监控或独立控制的最小单元,就应作为一个建模对象。若两个腔体可以独立运行、独立报警、独立下发配方,就必须分别建模,而不能合并成一个“工艺模块”。边界一旦确定,后续所有SVID、CEID、ALID的命名都应携带层级前缀,例如 PM1_ChamberPressure、TM_RobotState,避免跨模块重名。

数据源与状态变量:从物理量到SVID

数据源是设备内部真实存在的信号来源,包括PLC寄存器、传感器模拟量、运动控制器的状态字、软件内部变量等。状态变量(SV)是这些数据源在SECS/GEM层面的可见投影。建模时不是把所有内部变量都暴露出去,而是选择主机真正需要的量。选择依据通常有三类:工艺监控必需(如温度、压力、功率)、设备健康必需(如泵速、阀门状态)、生产追溯必需(如批次号、片号)。

每个SVID需要定义数据类型、单位、采样来源和更新方式。SECS-II支持的数据类型包括ASCII、U1/U2/U4、I1/I2/I4、F4/F8、BOOLEAN等。例如腔体压力可定义为F4(4字节浮点),单位Torr;阀门开关定义为BOOLEAN;批次号定义为ASCII。更新方式分为轮询(主机发S1F3请求)和报告(设备通过事件触发S6F11上报)。对于变化频繁且需要实时监控的量,应绑定到报告;对于变化缓慢或按需查询的量,可保留轮询方式。

SVID命名建议采用“模块_物理量_单位”结构,例如 PM1_Temp_C、PM1_Pressure_Torr。这样在主机端做数据解析和报警关联时,不需要额外查表就能判断数据归属。

事件、报警与报告的组织关系

事件(CEID)是设备状态发生有意义变化的通知,报警(ALID)是需要主机关注或干预的异常。两者都通过报告(RPTID)携带数据,再经S6F11发送给主机。建模时最容易出问题的地方,是把事件和报警混为一谈。事件可以是正常的,例如“配方开始”“批次结束”“片已传输到位”;报警则一定对应异常或需要记录的状态,例如“腔体压力超限”“机械手取片失败”。

一个CEID可以关联多个RPTID,一个RPTID可以包含多个SVID。例如CEID 1001“工艺开始”可关联RPTID 2001,其中包含 LotID、RecipeID、WaferCount、PM1_Temp_C。报警ALID则通常单独定义,并绑定到报警报告,报告中至少包含报警代码、报警文本、发生时间和严重等级。严重等级可参考SEMI E5的ALCD定义:1为个人安全,2为设备安全,3为可能影响产品,4为警告,5为其他。

设备端SECS/GEM对象化建模关系图 设备层级 设备级 EQ 设备状态/总报警 传输模块 TM 机械手/位置状态 腔体 PM1 温度/压力/功率 腔体 PM2 温度/压力/功率 Load Lock 真空/门状态 气体供给 GS 流量/阀位 数据源 PLC寄存器 D寄存器/线圈 模拟量传感器 4-20mA/0-10V 运动控制器 状态字/位置 软件内部变量 批次/配方/计数 RF电源 功率/反射功率 MFC质量流量计 流量/设定值 SECS/GEM对象 SVID 状态变量 F4/BOOLEAN/ASCII CEID 事件 正常状态变化 ALID 报警 异常/需干预 RPTID 报告 SVID集合 PPID 配方 工艺参数集 RCMD 远程命令 START/STOP/PP-SELECT 主机侧消费 S1F3 查询 按SVID读取 S6F11 事件报告 CEID+RPTID S5F1 报警上报 ALID+ALCD S2F41 远程命令 RCMD+参数 S7F3 配方下发 PPID+PPBODY Trace 采集 S6F1/S6F2 物理信号 → 数据源 → SECS/GEM对象 → 主机消费,四层映射关系

配方与远程命令的建模要点

配方(PPID)在SECS/GEM中通过S7系列消息管理。设备端需要维护一个配方库,每个PPID对应一组工艺参数。建模时要明确:配方是存储在设备本地还是由主机下发?是否允许主机修改?是否支持配方比较?例如,设备可定义PPID为ASCII字符串,PPBODY为二进制或ASCII格式的参数体。主机通过S7F3下发配方,设备通过S7F5请求配方,通过S7F1/S7F2进行配方比较。若设备不支持配方编辑,则应在能力集(S1F2)中明确声明。

远程命令(RCMD)通过S2F41下发,是主机对设备发起动作的主要手段。常见RCMD包括START、STOP、PAUSE、RESUME、PP-SELECT、CLEAR。每个RCMD可携带参数,例如START命令可带 PPID 和 LotID。建模时要定义每个RCMD的合法参数集、执行前置条件、执行结果返回码。例如,若设备处于报警状态,START命令应返回失败并附带原因码,而不是静默忽略。

对象之间的关联与一致性检查

七类对象不是孤立的。SVID是数据基础,RPTID是SVID的集合,CEID和ALID通过RPTID携带数据,PPID和RCMD则触发状态变化并可能产生新的CEID。建模完成后,必须做一致性检查:每个CEID是否至少关联一个RPTID?每个RPTID中的SVID是否都已定义?每个ALID是否有对应的报警文本和等级?每个RCMD的参数是否在S2F42中正确声明?这些检查可以在设备端启动时自动执行,也可以在集成测试阶段由主机侧发起S1F1在线识别后逐项核对。

常见建模错误包括:SVID定义重复、CEID与ALID混用、RPTID为空、RCMD参数未在S2F42中声明、PPID大小写不一致。这些问题在单机测试时可能不明显,但在主机端做批量数据采集或配方管理时会直接导致解析失败或命令被拒绝。

一个可参考的建模检查清单

对象类型 建模要素 检查要点
SVID ID、名称、数据类型、单位、数据源 命名唯一、类型与SECS-II一致、单位明确
CEID ID、名称、关联RPTID、触发条件 至少关联一个RPTID、触发条件可复现
ALID ID、报警文本、ALCD等级、关联RPTID 等级符合E5定义、文本可读、可清除
RPTID ID、包含的SVID列表、采样周期 非空、SVID均已定义、周期合理
PPID ID、参数体格式、存储位置、可编辑性 格式与S7F3一致、大小写敏感处理
RCMD 命令名、参数列表、返回码、前置条件 参数在S2F42中声明、失败有原因码

完成上述建模后,设备端就具备了一套可被主机识别、订阅和操作的SECS/GEM对象模型。这套模型的质量直接决定了后续数据采集的完整性、Trace监控的实时性和过程追溯的可靠性。建模不是一次性工作,当设备增加新传感器、新工艺步骤或新报警项时,应同步更新对象定义,并重新做一致性检查,避免模型与物理设备逐渐脱节。