前言

EAP(Equipment Automation Program,设备自动化程序)是半导体晶圆厂CIM系统的核心模块,负责MES与设备之间的通信与控制。很多工程师想学EAP,却不知道从何入手。本文从零开始,手把手教你搭建一个可用的EAP系统。

一、EAP在CIM架构中的位置

CIM(Computer Integrated Manufacturing)系统分为4层:

  • Level 4:企业层(ERP/CRM/SCM)
  • Level 3:制造执行层(MES/MCS/EAP)
  • Level 2:过程控制层(APC/SPC/FDC)
  • Level 1:设备层(Equipment/Tool)

EAP位于Level 3,是MES与设备的"翻译官"。设备说的是SECS/GEM语言,MES说的是业务语言,EAP负责翻译。

二、EAP核心功能

2.1 设备通信(SECS/GEM)

  • S1F1/S1F2:心跳检测(Are You There)
  • S2F41/S2F42:远程命令(Host Command)
  • S5F1/S5F2:报警上报(Alarm Report)
  • S6F11/S6F12:事件上报(Event Report)

2.2 状态机管理

  • OFF-LINE → ON-LINE → LOCAL → REMOTE
  • 状态转换必须符合SEMI E58标准
  • 只有REMOTE状态才能接收Host命令

2.3 Recipe管理

  • Recipe上传/下载
  • Recipe参数校验
  • Recipe版本管理

三、从0到1搭建EAP系统(Python实现)

3.1 项目结构

EAP_System/

├── secs_handler.py   # SECS/GEM消息处理

├── equipment.py     # 设备对象模型

├── state_machine.py # 状态机

├── recipe_manager.py # Recipe管理

├── mes_interface.py # MES接口

└── main.py           # 主程序

3.2 核心代码实现(关键片段)

(完整代码已包含在下载包中,这里展示核心片段)

# ===== secs_handler.py =====

import socket

import struct

from enum import Enum

class SECSMessage:

    """SECS消息封装类"""

    def __init__(self, stream, function, data=None):

        self.stream = stream

        self.function = function

        self.data = data

    def pack(self):

        """打包为字节流"""

        # SECS-II 消息格式

        header = struct.pack(">HB", self.stream, self.function)

        if self.data:

            return header + self.data

        return header

class SECSHandler:

    """SECS/GEM处理器"""

    def __init__(self, equipment_id):

        self.equipment_id = equipment_id

        self.state = "OFF-LINE"

        self.socket = None

    def connect(self, host, port=5000):

        """连接Host(MES)"""

        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        self.socket.connect((host, port))

        self.state = "ON-LINE"

        print(f"EAP连接到MES:{host}:{port}")

    def send_s1f1(self):

        """发送S1F1:Are You There"""

        msg = SECSMessage(1, 1)

        self.socket.send(msg.pack())

        print("发送S1F1心跳检测")

3.3 设备状态机实现

(完整状态机代码见下载包)

四、EAP与MES接口设计

4.1 REST API设计

MES通过REST API与EAP通信:

  • POST   /api/equipment/start   # 开始加工
  • POST   /api/equipment/stop    # 停止加工
  • GET    /api/equipment/status  # 查询状态
  • POST   /api/recipe/upload    # 上传Recipe

4.2 数据上报格式

EAP → MES 数据上报(JSON格式):

{

  "equipment_id": "ETCH-001",

  "timestamp": "2026-06-06T21:00:00",

  "event": "PROCESS_START",

  "params": {

    "lot_id": "ABC123",

    "recipe": "ETCH_P50"

  }

}

五、实施建议

  1. 先用SECS/GEM模拟器测试(推荐CIMControlFramework)
  2. 连接真实设备前,务必在Offline模式下测试
  3. Recipe管理先实现基础的上传/下载,再迭代高级功能
  4. 状态机必须严格遵守SEMI E58标准
  5. 日志!日志!日志!重要的事情说三遍

---

�� 关注我,每天分享半导体智能制造干货!

�� 有问题?评论区留言,必回!

�� 我的CSDN资源(积分兑换,持续更新):

1. 《晶圆检查可视化工具》Python完整源码

2. 《简单标签管理系统》小工厂数据管理神器

3. 《SPC控制图分析工具》质量管理必备

4. 《MES系统设计文档模板》企业级模板

5. 更多CIM工具:SPC/OEE/SECS-GEM/FDC/MES/EAP/APC...

�� 访问主页下载:https://blog.csdn.net/yeflashzhihui

更多推荐