2. EAP系统架构与核心组件

EAP(Equipment Automation Program)是晶圆厂中连接 MES 与生产设备的自动化中枢。它并不是一个“大而全”的单体程序,而是由若干职责清晰、边界明确的模块协同构成的系统。理解 EAP 架构的关键,不是记住模块名称,而是搞清楚每个模块“管什么、不管什么、和谁交互、数据往哪流”。本节围绕 EAP 主机、设备驱动、通信中间件、配方管理、物料追踪、报警管理、日志与追溯七个核心组件,梳理它们的职责划分与协作关系。

一、EAP 主机:调度与业务编排的中枢

EAP 主机(Host)是系统的“大脑”,负责与 MES 交互、接收工单与派工指令、编排设备动作序列、维护设备状态机。它不直接操作设备端口,而是通过设备驱动下发命令。EAP 主机通常维护以下核心对象:设备状态(Idle、Run、Down、PM)、批次上下文(Lot ID、Recipe ID、Wafer Count)、命令队列与超时控制。

一个典型的 EAP 主机处理流程是:MES 下发“开始加工 Lot A,使用 Recipe R1”的指令,EAP 主机校验设备状态与配方可用性后,生成命令序列(Load Port → Read Carrier ID → Select Recipe → Start),逐条交给设备驱动执行,并在每一步等待设备回报结果。若某步超时或失败,主机根据预设策略决定重试、暂停还是报警。

二、设备驱动:协议适配与命令翻译层

设备驱动(Equipment Driver)是 EAP 与物理设备之间的“翻译官”。不同设备厂商使用不同协议(SECS/GEM、OPC UA、Modbus、自定义 TCP),驱动层负责将这些差异屏蔽,向上提供统一的命令接口。驱动的核心职责包括:连接管理、消息编解码、命令-响应匹配、事件订阅、超时与重连。

以 SECS/GEM 为例,驱动需要处理 S1F1(Are You There)、S1F13(Establish Communication)、S2F41(Host Command)等消息。驱动不关心“为什么要加工这个批次”,它只负责把主机的逻辑命令翻译成设备能理解的报文,并把设备的事件(如 Process Start、Wafer End)翻译成主机能理解的事件。

三、通信中间件:消息路由与解耦

通信中间件(Communication Middleware)是 EAP 内部各模块之间的“消息总线”。它通常基于消息队列(如 RabbitMQ、Kafka)或 RPC 框架实现,负责消息的发布/订阅、路由、缓冲与可靠投递。中间件的价值在于解耦:EAP 主机不需要知道报警管理模块部署在哪台机器上,只需把报警事件发布到指定 Topic,报警模块订阅后自行处理。

在晶圆厂场景中,中间件还需要处理高并发与消息顺序问题。例如,同一台设备的多个事件必须按时间顺序处理,否则会导致状态错乱。因此,中间件通常按设备 ID 进行分区(Partition),保证同一设备的消息有序。

EAP 系统核心组件协作架构 MES 工单 / 派工 / 配方 EAP 主机 状态机 / 命令编排 批次上下文 / 超时控制 通信中间件 消息路由 / 发布订阅 分区有序 / 可靠投递 设备驱动 SECS/GEM 协议适配 生产设备 ETCH / CVD / CMP 配方管理 Recipe 版本 / 校验 下发 / 比对 / 回读 物料追踪 Carrier / Wafer 映射 位置 / 状态 / 历史 报警管理 Alarm 采集 / 分级 通知 / 抑制 / 恢复 日志与追溯 命令 / 事件 / 报警日志 批次追溯 / 审计 数据流:MES → EAP主机 → 中间件 → 驱动 → 设备;事件/报警/日志反向回流 控制流 配方/物料 报警 日志/追溯

四、配方管理:版本控制与一致性保障

配方管理(Recipe Management)负责 Recipe 的存储、版本控制、下发与校验。在晶圆厂中,Recipe 是决定工艺结果的核心数据,任何版本错用都可能导致整批晶圆报废。因此,配方管理模块必须做到:Recipe 与产品/工序绑定、版本可追溯、下发前校验、下发后回读比对。

实际实现中,配方管理通常维护一张 Recipe 映射表,记录 Recipe ID、版本号、适用设备类型、校验和(Checksum)。当 EAP 主机请求下发 Recipe R1 时,配方管理模块先检查设备当前 Recipe 版本,若不一致则触发下发流程:将 Recipe 内容分块传输到设备,设备回读后计算 Checksum,与主机端比对,一致才允许开始加工。若比对失败,立即报警并阻止批次启动。

五、物料追踪:Carrier 与 Wafer 的全程映射

物料追踪(Material Tracking)模块负责维护 Carrier(FOUP)、Wafer 与设备端口之间的映射关系。它需要实时回答三个问题:这个 Carrier 现在在哪台设备的哪个端口?里面有哪些 Wafer?这些 Wafer 处于什么状态(Waiting、Processing、Completed)?

物料追踪的数据来源包括:RFID Reader 读取 Carrier ID、设备上报的 Wafer Mapping 结果、EAP 主机下发的加工指令。模块内部通常维护一个内存映射表,并定期持久化到数据库。当设备上报“Wafer 3 加工完成”时,物料追踪模块更新对应 Wafer 状态,并通知 EAP 主机判断是否继续下一片或结束批次。

六、报警管理:分级、抑制与恢复

报警管理(Alarm Management)模块负责采集设备报警、分级、通知与恢复跟踪。晶圆厂设备报警数量庞大,若不加处理直接推送给操作员,会造成“报警风暴”。因此,报警管理需要实现:报警分级(Critical、Major、Minor、Warning)、报警抑制(同一报警在短时间内重复出现只通知一次)、报警恢复确认(设备报警清除后,模块需确认并记录恢复时间)。

实际配置中,报警管理模块通常维护一张报警规则表,字段包括 Alarm ID、级别、是否抑制、通知方式(邮件/短信/Andon)、恢复超时。当设备上报 Alarm ID 101(Critical)时,模块立即触发 Andon 灯与邮件通知;若 5 分钟内未恢复,升级通知到设备工程师。

七、日志与追溯:审计与问题定位的基础

日志与追溯(Logging & Traceability)模块负责记录 EAP 全链路的命令、事件、报警与状态变化。它的核心价值在于:当出现批次异常或设备故障时,能够快速还原“当时发生了什么”。日志通常分为三类:命令日志(Host → Driver → Equipment)、事件日志(Equipment → Driver → Host)、报警日志(Alarm 产生与恢复)。

追溯模块则需要支持按 Lot ID、Carrier ID、Wafer ID、时间范围等维度查询。例如,当某批次出现良率异常时,工程师可以通过追溯模块查询该批次在 EAP 中的所有命令与事件,确认 Recipe 版本是否正确、设备是否在加工过程中产生过报警、Wafer 映射是否异常。

职责边界小结:EAP 主机负责“决策与编排”,设备驱动负责“协议翻译”,通信中间件负责“消息路由”,配方管理负责“版本一致性”,物料追踪负责“位置与状态”,报警管理负责“异常通知与恢复”,日志与追溯负责“记录与还原”。七个模块各司其职,通过中间件解耦协作,共同构成 EAP 的完整能力。

八、模块协作的典型数据流

以“MES 派工 Lot A 到 ETCH 设备”为例,完整数据流如下:MES 通过中间件发送派工消息 → EAP 主机接收并校验设备状态 → 主机向配方管理请求 Recipe R1 版本信息 → 配方管理返回版本与 Checksum → 主机通过驱动下发 Recipe → 驱动翻译为 SECS 消息发送到设备 → 设备回读 Recipe 并返回 Checksum → 驱动上报主机 → 主机比对通过后,通知物料追踪更新 Carrier 状态 → 主机下发 Start 命令 → 设备开始加工并上报事件 → 驱动将事件转发中间件 → 报警管理订阅事件并判断是否触发报警 → 日志模块记录全链路消息。

这条数据流中,每个模块只处理自己职责范围内的数据,不越界、不耦合。正是这种清晰的职责划分,使得 EAP 系统在晶圆厂 7×24 小时运行中保持稳定、可维护、可扩展。