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

EAP(Equipment Automation Program,设备自动化程序)并不是一个孤立的“设备驱动”,而是晶圆厂自动化体系中承上启下的中枢。它向上承接MES的工单与派工指令,横向与RMS、APC交换配方与参数,向下通过SECS/GEM协议与设备通信,同时还要与AMHS协同完成物料搬运。理解EAP的架构,关键是看清它在这些系统之间的位置,以及它内部由哪些核心组件支撑实时派工与流程联动。

EAP在MES、RMS、APC、AMHS之间的位置

从系统分层看,MES位于最上层,负责工单管理、批次调度与生产追踪;EAP位于中间层,是MES与设备之间的“翻译官”和“执行器”;设备层则包括工艺设备、量测设备以及AMHS搬运系统。RMS(Recipe Management System)负责配方版本与权限管理,APC(Advanced Process Control)负责工艺参数反馈与模型调整,它们通常不直接与设备通信,而是通过EAP完成配方下发与数据采集。

具体交互关系可以这样理解:MES向EAP下发“批次加工请求”,EAP将其转换为设备可识别的SECS消息;EAP从RMS获取指定配方并校验版本,再下发给设备;设备加工完成后,EAP将过程数据上传给APC,APC计算新的参数后经EAP回写设备;AMHS则根据EAP上报的设备状态和MES的搬运需求,将批次送到对应端口。EAP在这里既是数据通道,也是状态协调者。

EAP在晶圆厂自动化系统中的位置与交互 MES 工单管理 · 批次调度 · 生产追踪 RMS 配方版本 · 权限管理 APC 参数反馈 · 模型调整 EAP 核心 SECS/GEM 通信 任务队列 状态机 派工引擎 AMHS 物料搬运 · 端口调度 工艺设备 SECS/GEM 接口 量测设备 SECS/GEM 接口 工单/派工指令 状态/数据上报 配方请求 配方下发 过程数据 参数回写 SECS 指令 SECS 指令 搬运请求/状态 事件/数据 事件/数据

设备端SECS/GEM通信

SECS/GEM是EAP与设备之间的标准通信协议。SECS-II定义了消息格式,GEM定义了设备行为模型。EAP通过SECS消息完成配方下发、批次启动、状态查询和事件订阅。实际工程中,EAP通常以“主动上报+被动响应”的方式工作:设备通过S6F11事件报告主动上报状态变化,EAP收到后更新本地状态机;EAP通过S2F41发送远程命令控制设备动作。

一个典型的配方下发流程是:EAP先发送S7F19查询设备当前配方列表,再发送S7F1请求配方下载,设备回复S7F2确认后,EAP发送S7F3携带配方主体,设备校验后回复S7F4。整个过程需要处理超时、重试和异常回复。例如,若设备回复S7F2为“拒绝”,EAP应记录错误码并触发告警,而不是盲目重试。

任务队列与状态机

EAP内部的任务队列负责缓存来自MES的派工请求。队列通常按优先级排序,紧急批次(Hot Lot)优先于普通批次。每个任务包含批次号、设备号、配方名、优先级和超时时间。队列管理需要处理“设备忙”“配方未就绪”“物料未到位”等阻塞条件,避免任务堆积导致产线停滞。

状态机是EAP的“大脑”,它跟踪每台设备的实时状态。常见状态包括:IDLE(空闲)、RUN(加工中)、PAUSE(暂停)、DOWN(故障)、PM(维护)。状态迁移由设备事件驱动,例如设备上报“加工开始”事件后,状态从IDLE迁移到RUN;上报“加工完成”后,迁移回IDLE并触发下一任务派发。状态机必须与MES的批次状态保持一致,否则会出现“MES认为批次在加工,EAP认为设备空闲”的严重不一致。

派工引擎的基本组成

派工引擎是EAP的决策核心,它根据MES下发的派工规则、设备状态、批次优先级和物料可用性,决定“哪个批次去哪台设备”。一个简化的派工逻辑可以用以下伪代码表示:

function dispatch(taskQueue, equipmentList):
    for task in taskQueue.sortByPriority():
        candidates = equipmentList.filter(eq =>
            eq.state == IDLE &&
            eq.recipeReady(task.recipe) &&
            eq.portAvailable(task.materialPort)
        )
        if candidates.isEmpty():
            continue
        selected = candidates.minBy(eq => eq.currentLoad)
        selected.assign(task)
        taskQueue.remove(task)
        return selected
    return null

实际派工引擎还会考虑设备利用率均衡、换线时间最小化、配方切换成本等因素。例如,若两台设备都能加工同一批次,优先选择“当前配方与目标配方一致”的设备,以减少换线时间。派工引擎的输出是“设备-批次-配方”三元组,EAP据此生成SECS指令序列并下发设备。

工程提示:EAP与MES之间的状态同步必须设置心跳和超时机制。若EAP超过设定时间未收到MES响应,应主动将设备状态置为“未知”并暂停派工,避免错误派工导致批次报废。

总结来看,EAP的架构可以概括为“一个中枢、四条通道、四个组件”。中枢是EAP本身;四条通道分别通向MES、RMS、APC和AMHS;四个组件是SECS/GEM通信、任务队列、状态机和派工引擎。只有这四个组件协同工作,EAP才能实现设备自动派工与生产流程的实时联动。