1. EAP系统高可用概述
在半导体晶圆制造与先进制造现场,EAP(Equipment Automation Program,设备自动化程序)位于 MES/EAP 与生产设备之间的关键中间层。它向上承接 MES 的工单、配方与批次指令,向下通过 SECS/GEM、OPC UA、Modbus 等协议与光刻机、刻蚀机、CVD、量测设备等机台通信,负责派工、配方下发、数据采集、状态上报与异常处理。一旦 EAP 不可用,机台可能停在等待指令的状态,Lot 无法流转,产能与良率都会直接受损。因此,EAP 的高可用不是“IT 系统可选项”,而是产线连续运行的基础设施。
EAP 在制造现场的角色与失效影响
从数据流角度看,EAP 承担三类核心职责:指令下行(工单、配方、远程命令)、状态上行(设备状态、报警、过程数据)、事务一致性(批次与设备绑定、防呆校验)。这三条链路中任意一条中断,都会表现为“设备在线但无法生产”或“数据丢失导致追溯断链”。例如,EAP 与 MES 之间的连接中断时,机台可能已完成加工但结果无法回传,形成数据黑洞;EAP 与设备之间的 SECS 连接中断时,配方切换失败可能导致整批晶圆报废。理解这些失效路径,是设计高可用架构的起点。
高可用核心指标:可用性、MTBF 与 MTTR
衡量 EAP 高可用水平,最常用三个指标:
- 可用性(Availability):系统在统计周期内可正常提供服务的时间比例,通常用 A = MTBF / (MTBF + MTTR) 表示。半导体 EAP 通常要求 99.9% 以上,关键产线甚至要求 99.99%。
- MTBF(Mean Time Between Failures,平均无故障时间):两次故障之间的平均运行时长,反映系统稳定性。MTBF 越长,说明架构、代码与运维越健壮。
- MTTR(Mean Time To Repair,平均修复时间):从故障发生到恢复服务的平均耗时,反映容错与恢复能力。MTTR 越短,业务中断越少。
举例说明:若某 EAP 集群 MTBF 为 2000 小时,MTTR 为 2 小时,则可用性约为 2000 / 2002 ≈ 99.90%。若把 MTTR 压缩到 0.5 小时,可用性提升到约 99.975%。可见,提升可用性有两条路径:拉长 MTBF(减少故障)和缩短 MTTR(快速恢复)。前者依赖冗余、隔离与健康检查,后者依赖自动切换、断线重连与状态恢复。
示例计算(假设数据,仅用于教学):某 12 英寸厂 EAP 系统月度统计:故障 3 次,累计停机 90 分钟,运行时间 43200 分钟。则 MTBF = 43200 / 3 = 14400 分钟(240 小时),MTTR = 90 / 3 = 30 分钟,可用性 = 14400 / (14400 + 30) ≈ 99.79%。若目标为 99.95%,则需将月度停机压缩到约 21.6 分钟以内。
容错与恢复的基本概念
容错(Fault Tolerance)指系统在部分组件发生故障时,仍能继续提供服务的能力。EAP 容错通常包括:多实例冗余、主备/主主切换、消息持久化、幂等重试、熔断降级。例如,EAP 与设备通信的 Host 进程采用双实例部署,主实例故障时备实例在秒级接管 SECS 会话,机台无需停机。
恢复(Recovery)指故障发生后,系统恢复到正常状态并补齐中断期间数据的过程。EAP 恢复的关键在于:断线重连、会话重建、未完成事务补偿、缓存数据回放。以设备断线为例,EAP 需要检测连接断开、按退避策略重连、重新建立 SECS 会话、同步设备状态,并将断线期间缓存的采集数据补传到 MES,避免数据缺失。
关键区分:容错解决“故障时不停服”,恢复解决“故障后回到一致状态”。两者配合,才能把 MTTR 压到最低。
EAP 高可用架构的整体视图
下图展示 EAP 高可用的核心关系:MES 与 EAP 集群之间通过消息队列与数据库解耦,EAP 多实例通过注册中心与心跳实现故障发现,设备侧通过 SECS/GEM 连接池与重连机制保持通信。图中同时标注了可用性、MTBF、MTTR 三个指标的作用位置,帮助理解“冗余减少故障、恢复缩短停机”的整体逻辑。
从指标到设计:EAP 高可用的落地要点
把上述概念落到工程实践,EAP 高可用设计通常围绕以下要点展开:
- 无状态化与状态外置:EAP 实例本身尽量无状态,会话、缓存、事务状态放入 Redis、数据库或消息队列,便于任意实例接管。
- 多实例与健康检查:至少双实例部署,通过注册中心心跳检测,故障时自动摘除并切换,避免单点。
- 连接与重连策略:设备连接采用连接池与指数退避重连,设置最大重试次数与告警阈值,防止雪崩。
- 数据持久化与补偿:关键指令与采集数据先落盘或入队,断线期间缓存,恢复后按序补传,保证最终一致。
- 可观测性:对 MTBF、MTTR、连接数、消息积压、切换次数进行监控与告警,用数据驱动可用性改进。
常见误区:只做“主备切换”而不做“数据补偿”,切换后虽然服务恢复,但断线期间的数据丢失仍会造成追溯断链。高可用必须同时覆盖“服务连续”和“数据完整”。