1. 课程导入与工程全景

在晶圆厂、封测厂、面板厂乃至光伏与LED产线中,设备每天产生海量数据,但真正决定良率与产能的,往往不是"数据有多少",而是"数据能否在正确的时间被正确的人或系统使用"。EAP(Equipment Automation Program,设备自动化程序)与FDC(Fault Detection and Classification,故障检测与分类)正是承担这一职责的两类核心系统:EAP负责让MES与设备"对话",把工单、配方、物料、载具等信息准确下发到机台并回收状态;FDC则负责从设备高频信号中提取特征、建立模型、判断异常并触发告警或联锁。二者一"控"一"监",共同构成智能制造的数据闭环。

一、EAP与FDC的工程定位

从制造执行层看,MES负责生产调度与批次管理,SPC负责统计过程控制,YMS负责良率分析,而EAP是MES与设备之间的"翻译官与执行者"。它通常实现SEMI E30 GEM、E5 SECS-II、E37 HSMS等标准协议,完成远程命令、配方管理、事件收集、载具追踪等功能。没有EAP,MES的派工指令只能靠人工在机台HMI上输入,既慢又容易出错。

FDC则位于设备控制与工艺质量之间。它从设备或EAP采集温度、压力、射频功率、气体流量、转速等时间序列信号,经过清洗、对齐、特征提取后,用统计模型(如PCA、EWMA、马氏距离)或机器学习模型判断当前批次是否偏离正常轨迹。一旦越限,FDC可只记录告警,也可通过EAP触发Hold、停机或配方锁定。因此FDC的价值不仅是"报警",而是把工艺漂移拦截在良率损失之前。

一句话理解:EAP解决"设备听不听话、数据拿不拿得到",FDC解决"数据说明设备正不正常、要不要干预"。

二、整体架构:从设备信号到故障闭环

一个典型的EAP+FDC数据链路可分为五层:设备层、采集层、传输层、应用层与决策层。设备层包括刻蚀机、薄膜沉积、光刻机、清洗机等;采集层通过SECS/GEM、OPC UA、Modbus TCP或厂商私有接口获取数据;传输层常用Kafka、RabbitMQ或MQTT做消息缓冲;应用层由EAP、FDC、SPC、RMS等系统组成;决策层则面向MES、YMS和工程师看板。下图展示了这一全景关系。

EAP与FDC工程全景:设备数据采集与故障监控闭环 设备层 刻蚀机 薄膜沉积 光刻机 清洗/量测 传感器/PLC 采集层 SECS/GEM OPC UA Modbus TCP 私有接口/文件 传输层 Kafka 消息队列 MQTT / RabbitMQ 时序数据库 边缘缓存 应用层 EAP 设备自动化 派工/配方/载具/状态 FDC 故障检测 特征/模型/告警/分类 SPC / RMS 统计过程控制 MES / YMS 调度与良率分析 决策层 工程师看板 / 告警 Hold / 停机 / 配方锁定 根因分析与复盘 控制反馈

图中纵向是数据上行链路:设备信号经采集、传输进入EAP与FDC,再汇入MES/YMS形成决策;右侧橙色虚线是控制反馈链路:FDC判定异常后,通过EAP向设备下发Hold或停机指令,实现"检测—判断—干预"的闭环。这条反馈链正是EAP与FDC必须协同工作的原因。

三、学习路径与实战目标

本课程按"协议基础→采集实现→EAP工程→FDC建模→故障监控→综合实战"推进。前四章建立SECS/GEM、HSMS、数据字典等通信基础;随后进入EAP侧的任务派工、配方管理、载具追踪与事件处理;再进入FDC侧的信号清洗、特征工程、模型训练与告警规则;最后通过一个虚拟产线案例,把EAP与FDC串成完整闭环。

实战目标可归纳为三点:第一,能读懂并调试一段SECS-II消息,知道S1F1、S2F41、S6F11分别用在什么场景;第二,能设计一条从设备信号到FDC告警的数据流,明确采样频率、特征窗口与判定阈值;第三,能根据告警结果反推是设备故障、工艺漂移还是数据质量问题,并给出可执行的处置建议。

学习建议:不要只记协议编号,要把每条消息放回"谁发给谁、为了什么、失败会怎样"的工程场景中理解。FDC部分则要亲手算一遍均值、标准差和EWMA,才能理解模型为什么会在某些批次误报。

四、一个教学示例:刻蚀机腔体压力监控

假设某刻蚀机在工艺步骤中采集腔体压力信号,采样周期为100 ms,一个批次持续约120 s,即约1200个采样点。EAP通过S6F11事件在批次结束时上报批次ID、配方名和结束状态;FDC则从采集层获取压力曲线,计算前30 s稳定段的均值与标准差。示例参数:正常批次均值约 8.0 mTorr,标准差约 0.12 mTorr;若某批次均值偏移到 8.6 mTorr,且EWMA(λ=0.2)连续3点超过 8.35 mTorr,则触发"腔体压力偏高"告警。该告警经EAP写入设备状态并通知MES Hold该批次,工程师再结合清洗周期、阀门响应和漏率数据判断根因。这里的数值均为教学假设,用于说明判定逻辑,而非实测结果。

示例判定逻辑(伪代码):
mean = avg(pressure[0:300])          # 前30秒稳定段
std  = std(pressure[0:300])
ewma = 0.2 * mean + 0.8 * ewma_prev
if ewma > 8.35 and consecutive >= 3:
    raise Alarm("CHAMBER_PRESSURE_HIGH")
    EAP.hold_batch(batch_id)