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上报)。对于变化频繁且需要实时监控的量,应绑定到报告;对于变化缓慢或按需查询的量,可保留轮询方式。
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为其他。
配方与远程命令的建模要点
配方(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 | ID、名称、数据类型、单位、数据源 | 命名唯一、类型与SECS-II一致、单位明确 |
| CEID | ID、名称、关联RPTID、触发条件 | 至少关联一个RPTID、触发条件可复现 |
| ALID | ID、报警文本、ALCD等级、关联RPTID | 等级符合E5定义、文本可读、可清除 |
| RPTID | ID、包含的SVID列表、采样周期 | 非空、SVID均已定义、周期合理 |
| PPID | ID、参数体格式、存储位置、可编辑性 | 格式与S7F3一致、大小写敏感处理 |
| RCMD | 命令名、参数列表、返回码、前置条件 | 参数在S2F42中声明、失败有原因码 |
完成上述建模后,设备端就具备了一套可被主机识别、订阅和操作的SECS/GEM对象模型。这套模型的质量直接决定了后续数据采集的完整性、Trace监控的实时性和过程追溯的可靠性。建模不是一次性工作,当设备增加新传感器、新工艺步骤或新报警项时,应同步更新对象定义,并重新做一致性检查,避免模型与物理设备逐渐脱节。