2. 多机台通信协议与接口全景
在半导体工厂里,EAP(Equipment Automation Program,设备自动化程序)要同时面对两类“世界”:一边是机台内部或机台边缘的实时控制,另一边是MES、EES、SPC、RMS等工厂侧系统。多机台通信之所以复杂,并不是因为协议数量多,而是因为不同协议处在不同层次、承担不同职责。把SECS/GEM、HSMS、GEM300、EDA放在同一张“协议栈地图”上理解,才能看清EAP为什么必须成为设备侧与工厂侧之间的桥梁。
一、先分清“消息语义”和“传输承载”
SECS(SEMI Equipment Communications Standard)定义的是消息语义与交互规则,核心是SECS-II:它规定了消息的Stream、Function、数据项结构,例如S1F1、S1F2、S2F41、S6F11等。可以把SECS-II理解为“说什么、怎么组织数据”。而HSMS(High-Speed SECS Message Services)定义的是传输层:它把SECS-II消息封装成HSMS消息,通过TCP/IP传输,并管理连接、会话、超时、重连和事务配对。简单说,SECS-II管语义,HSMS管通道。
GEM(Generic Equipment Model)则是在SECS-II之上定义的一套设备行为模型,规定设备应支持哪些状态、事件、报警、变量、远程命令和配方管理。GEM不是新的报文格式,而是“设备应该怎么表现”的规范。GEM300进一步面向300mm晶圆厂,补充了载具管理、配方管理、设备追踪、基板追踪等能力,常涉及E87、E90、E94、E116等SEMI标准。EDA(Equipment Data Acquisition)则代表另一条路线,典型是SEMI E120/E125/E132/E134/E164等,强调基于HTTP/SOAP或gRPC的数据采集与元数据模型,适合高频、结构化、按需订阅的数据流。
二、设备类型差异决定接口组合
并非所有机台都使用同一套接口。刻蚀、薄膜、光刻等主设备通常要求完整的GEM300能力,因为它们涉及载具交换、配方切换、基板追踪和远程命令;量测设备可能只需要GEM基础能力加数据采集;而一些老设备或简单搬运设备,可能只支持SECS-II/HSMS,甚至只有串口或私有协议。EAP在接入前必须做“能力画像”:该设备支持哪些Stream/Function、是否支持E87载具管理、是否支持E90配方管理、是否支持EDA、事件报告是主动上报还是轮询。这个画像直接决定EAP的适配层怎么写、状态机怎么建、超时和重试策略怎么定。
例如,一台支持GEM300的刻蚀机,EAP需要处理S2F41远程命令、S6F11事件报告、S7F3配方上传下载、E87载具到达/离开事件;而一台仅支持基础GEM的量测机,EAP可能主要处理S1F1在线确认、S1F3状态查询、S6F11事件和S6F1 Trace数据。接口能力不同,EAP的并发模型也不同:前者需要维护载具与配方的状态关联,后者更偏向高频数据采集与缓存。
三、通信链路拓扑:EAP不是单点,而是多机台汇聚点
典型链路是“设备—EAP—工厂侧”三层。设备侧通过HSMS主动或被动连接EAP,EAP再通过工厂侧接口(可能是SECS/HSMS、EDA、MQ或数据库)与MES/EES交互。一个EAP进程往往同时管理几十台设备,每台设备一个HSMS会话,每个会话有独立的连接状态、事务队列和超时计时器。拓扑上,EAP是星型汇聚点:向下多路连接设备,向上汇聚到工厂系统。这种结构带来两个关键问题:一是单台设备断线不能影响其他设备,二是工厂侧指令必须能按设备维度隔离和排队。
因此,EAP内部通常按“设备通道”划分资源:每个设备通道有独立的接收线程、发送队列、状态缓存和重连策略。工厂侧下发的命令先进入EAP的命令编排层,再按设备ID路由到对应通道。设备上报的事件先进入EAP的事件处理层,做去重、补全、格式转换后,再转发给工厂侧。这样,EAP既不是简单的协议转换器,也不是透明的消息代理,而是一个有状态、有缓冲、有调度能力的桥梁。
四、EAP的职责划分:翻译、路由、缓冲、状态、隔离
把EAP职责拆开看,至少包含五类。第一是协议翻译:把工厂侧的批次命令翻译成设备能理解的SECS-II消息,把设备的S6F11事件翻译成工厂侧可消费的数据结构。第二是路由与寻址:根据设备ID、端口号、会话ID把消息送到正确的通道。第三是缓冲与补传:设备断线时,EAP要缓存未发送的命令或未上报的事件,待重连后按序补传,避免数据丢失。第四是状态维护:EAP要维护设备在线状态、控制状态、载具状态、配方状态,供工厂侧查询和决策。第五是异常隔离:单台设备超时、报错或协议异常时,EAP要能熔断该通道,避免拖垮整个进程。
五、一个可参考的接口能力检查表
在实际接入新机台时,可以用下面这张表快速梳理接口能力。表中字段是示例,具体值需以设备规格书和实际测试为准。
| 检查项 | 典型问题 | 对EAP的影响 |
|---|---|---|
| HSMS角色 | 设备主动连接还是被动监听? | 决定EAP是Server还是Client,影响重连策略 |
| GEM能力 | 支持哪些SxFy?是否支持S6F11? | 决定事件模型和状态机复杂度 |
| GEM300 | 是否支持E87/E90/E94? | 决定载具、配方、追踪逻辑是否要建 |
| EDA | 是否支持E120/E125? | 决定高频数据走EDA还是SECS Trace |
| 超时与重试 | T3、T5、T6、T7、T8如何设置? | 决定事务配对、断线检测和重连节奏 |
| 数据频率 | Trace周期是多少?事件量多大? | 决定缓存容量、批量上报和背压策略 |
以HSMS超时为例,T3是回复超时,T5是连接分离超时,T6是控制事务超时,T7是未选择状态超时,T8是网络字符间超时。假设某设备T3设为45秒,EAP发送S2F41后45秒内未收到S2F42,就应判定该事务失败并触发重试或报警。如果T5设为10秒,EAP在10秒内未收到Select响应,就应断开并进入重连。这些参数不是随便填的,它们直接决定EAP对设备异常的响应速度。
六、从协议全景回到工程实践
理解协议全景的最终目的,是让EAP在多机台环境下做出正确取舍。对于支持GEM300的主设备,EAP应优先使用标准事件和远程命令,减少私有轮询;对于只支持基础GEM的设备,EAP可以用S1F3轮询补充状态,但要注意轮询频率对设备通信负载的影响;对于支持EDA的设备,高频Trace数据可以走EDA订阅,SECS通道只保留控制命令和关键事件,从而降低HSMS会话压力。EAP的桥梁职责,本质上是在设备能力、工厂需求和网络现实之间做平衡:该翻译的翻译,该缓冲的缓冲,该隔离的隔离,该降级的降级。
当你能把一台设备的SECS-II消息、HSMS会话、GEM状态、GEM300对象和EDA数据流分别对应到EAP的某个模块时,多机台通信就不再是一团协议名词,而是一张可以设计、可以测试、可以排障的工程地图。