2. EAP异常分类与分级体系

EAP(Equipment Automation Program,设备自动化程序)位于MES与设备之间,向上承接工单、配方、物料与流程指令,向下通过SECS/GEM、OPC UA或厂商私有协议与机台交互。异常一旦发生,现场最怕的不是“报错”,而是“不知道属于哪一类、该由谁处理、要停多久”。因此,异常分类与分级体系的核心价值,是把一条报警从“现象描述”快速映射为“类别 + 等级 + 责任方 + 处置路径”。

一、按异常对象分类:五类异常的判定边界

分类的第一原则是看异常发生在哪条链路上,而不是看谁先发现。EAP的交互链路可概括为:MES指令 → EAP逻辑 → 通信层 → 设备/配方/物料 → 回传结果。据此可划分五类:

  • 设备通信异常:EAP与设备之间的连接、报文、状态机层面失败。典型现象包括SECS连接断开(S1F13/S1F14超时)、SVID/ECID读取超时、事件(CEID)不上报、心跳丢失、通信线程阻塞。判定要点:EAP自身逻辑正常,但收发报文无响应或响应超时。
  • 配方异常:配方本体或配方操作失败。包括PPID不存在、配方版本与机台不匹配、配方下载(PPSELECT/PPLOAD)失败、参数校验越界、配方被误改。判定要点:通信正常,但配方内容或选择动作不合法。
  • 物料异常:载具、批次、片号与EAP/MES记录不一致。包括Lot ID不匹配、Carrier ID读不到、片数不符、混批、物料状态为Hold却仍被派工。判定要点:设备可运行,但“料”的身份或状态与系统不符。
  • 流程异常:工单流转、状态迁移、跳站/重工逻辑错误。包括未按Route执行、重复进站、出站条件不满足、EAP与MES状态不同步。判定要点:单点动作成功,但整体流程顺序或状态机不合法。
  • 系统异常:EAP主机、数据库、中间件、接口服务层面的故障。包括EAP服务崩溃、数据库连接池耗尽、消息队列积压、MES接口超时、磁盘写满。判定要点:影响面通常跨设备,非单机台问题。
分类时建议先问三个问题:通信是否通?配方是否合法?物料身份是否一致?若三者都正常,再查流程与系统。这样可避免把“配方下载失败”误判为“通信异常”。

二、按影响程度与恢复难度分级

仅有分类还不够,产线需要知道“先救谁”。分级建议采用二维矩阵:影响程度(影响机台数量、是否停线、是否影响良率/出货)与恢复难度(是否需人工介入、是否需重启/回滚、预计恢复时间)。据此可定义四级:

等级影响程度恢复难度典型响应
L1 提示单机台、不影响产出自动重试可恢复记录日志,EAP自动重连/重发
L2 警告单机台停机,可切换需现场确认或简单操作通知设备工程师,5–15分钟处理
L3 严重多机台或关键站点停线需人工干预、回滚或换配方升级至EAP/工艺工程师,30分钟内响应
L4 紧急整线/多区域停摆,影响出货需系统级恢复、可能重启服务启动应急,EAP与IT联合处置

分级不是静态标签,而是随上下文变化。例如“通信断开”在单机台且可自动重连时为L1;若同一交换机下10台设备同时断开,则升级为L3甚至L4。因此分级必须结合影响范围与持续时间动态判定。

三、实际产线案例映射

以下为教学示例(参数为合理假设,用于说明判定逻辑,非实测数据):

案例A:通信异常。某刻蚀机EAP日志显示“S1F13 timeout, retry 3/3”,机台状态仍为Remote,但EAP无法下发指令。判定:设备通信异常,影响单机台,自动重连失败 → L2。处置:检查设备HSMS端口与网络,确认设备侧通信服务是否假死,重启设备通信模块后恢复。

案例B:配方异常。MES下发PPID“ETCH_OX_02”,EAP执行PPSELECT返回“PPID not found”。判定:配方异常,单机台停机,需工艺确认配方是否存在或版本是否迁移 → L2/L3。处置:核对机台配方列表与MES PPID映射表,补建或修正PPID后重新下载。

案例C:物料异常。Carrier ID读取为“LOT123”,但MES记录该载具应为“LOT124”,片数也不符。判定:物料异常,若继续加工将导致混批 → L3。处置:立即Hold该载具,核对物理标签与MES绑定关系,修正后放行。

案例D:流程异常。某批次已出站,但EAP仍收到进站请求,MES拒绝并报“duplicate track-in”。判定:流程异常,影响单批次流转,需人工确认状态 → L2。处置:检查EAP与MES状态同步逻辑,必要时手动同步批次状态。

案例E:系统异常。EAP数据库连接池耗尽,导致20台设备同时无法上报状态。判定:系统异常,影响面跨设备 → L4。处置:紧急重启EAP服务、扩容连接池,并排查慢SQL或连接泄漏。

EAP异常分类与分级映射图 分类看链路 · 分级看影响与恢复难度 · 案例映射到处置路径 设备通信异常 连接/报文/超时 配方异常 PPID/版本/校验 物料异常 载具/批次/片数 流程异常 状态/顺序/同步 系统异常 服务/DB/中间件 影响程度 × 恢复难度 → 四级分级 影响程度 → 恢复难度 ↑ L1 提示 · 自动重试 L2 警告 · 现场处理 L3 严重 · 升级干预 L4 紧急 · 系统恢复 产线案例映射(示例) 案例A 通信 S1F13 timeout 重连3次失败 → L2 案例B 配方 PPID not found 版本不匹配 → L2/L3 案例C 物料 Carrier ID不符 片数异常 → L3 案例D 流程 duplicate track-in 状态不同步 → L2 案例E 系统 连接池耗尽 20台设备失联 → L4

四、落地建议:把分类分级写进EAP规则

分类分级不能只停留在文档。建议在EAP中建立异常代码字典,每个代码绑定:类别、默认等级、影响范围、责任方、自动动作(重试/挂起/通知)。例如:

ALM_COMM_TIMEOUT   → 类别:通信  等级:L1  动作:自动重连3次
ALM_PPID_NOT_FOUND → 类别:配方  等级:L2  动作:挂起并通知工艺
ALM_LOT_MISMATCH   → 类别:物料  等级:L3  动作:Hold载具并通知制造
ALM_DUP_TRACKIN    → 类别:流程  等级:L2  动作:拒绝并同步MES状态
ALM_DB_POOL_EMPTY  → 类别:系统  等级:L4  动作:告警IT并触发服务重启预案

同时,等级应支持动态升级:同一异常在5分钟内重复3次,或影响设备数≥5台,自动升一级。这样既能避免“小题大做”,也能防止“大事化小”。最终目标是让现场人员看到报警代码,就能在30秒内判断:这是什么类、什么级、找谁、先做什么。