3. AMHS与MES接口总览:接口交互的典型场景、数据流方向与协议基础

AMHS(自动物料搬运系统)与MES(制造执行系统)的接口是整个半导体/电子制造工厂自动化体系的中枢神经。本章从宏观视角梳理两者之间的交互全景,包括典型业务场景、数据流方向以及底层通信协议栈,为后续章节的逐层深入调试奠定基础。

AMHS与MES接口交互总览架构图 AMHS ↔ MES 接口交互总览架构 MES 制造执行系统 • 工单管理 • 物料追踪 • 设备状态管理 • 生产调度 AMHS 物料搬运系统 • OHT 天车调度 • AGV 路径规划 • 升降机控制 • Stocker 管理 接口协议层 SECS/GEM (HSMS) Web Service (REST/SOAP) MQ (消息队列) 典型交互场景 ① 物料请求 ② 搬运指令下发 ③ 到达确认 ④ 状态上报 ⑤ 异常处理 数据流方向:双向实时交互 MES → AMHS AMHS → MES

3.1 典型交互场景

AMHS与MES之间的交互围绕物料搬运的生命周期展开,核心场景可归纳为以下五类:

场景 触发方 描述 典型报文方向
物料请求 MES 生产设备需要物料(FOUP/晶圆盒)时,MES向AMHS请求搬运至指定Port MES → AMHS
搬运指令 MES MES下发明确的搬运任务(源地址→目标地址),AMHS执行调度 MES → AMHS
到达确认 AMHS 物料到达目标设备Port后,AMHS上报到达事件,MES更新物料位置 AMHS → MES
状态上报 AMHS AMHS周期性或事件触发上报设备状态(OHT/Stocker/AGV运行状态) AMHS → MES
异常处理 双方 搬运超时、路径阻塞、设备故障等异常事件的双向通知与恢复 双向
调试要点: 在接口调试阶段,物料请求和到达确认是最容易出错的环节。建议优先验证这两个场景的报文格式与响应超时设置。

3.2 数据流方向分析

AMHS与MES之间的数据流并非单一方向,而是呈现双向、异步、实时的特征。根据业务场景的不同,数据流可分为以下三种模式:

  • 下行流(MES → AMHS): 包含物料请求、搬运指令、取消指令、优先级变更等。AMHS作为执行端,必须保证指令的幂等性和时序正确性。
  • 上行流(AMHS → MES): 包含到达确认、位置上报、设备状态、报警事件、搬运完成回执等。MES依赖这些信息维护实时物料地图。
  • 双向流(MES ↔ AMHS): 包含握手/心跳检测、异常协商、批量数据同步(如Stocker库存清单)等。
AMHS与MES数据流方向示意图 数据流方向与典型报文示例 MES AMHS 下行流 (MES → AMHS) 物料请求 | 搬运指令 | 取消指令 上行流 (AMHS → MES) 到达确认 | 状态上报 | 报警事件 双向流 (MES ↔ AMHS) 心跳检测 | 异常协商 | 批量数据同步

3.3 协议基础

AMHS与MES的接口通信依赖标准化的工业协议。根据工厂自动化成熟度和实时性要求,主流协议包括以下三种:

3.3.1 SECS/GEM (HSMS)

SECS/GEM是半导体行业最经典的设备自动化协议,通过HSMS(TCP/IP)传输。AMHS系统中的Stocker、OHT等设备通常作为Equipment端,MES作为Host端。

  • 通信模式: 主动/被动模式,通常AMHS作为被动端等待MES连接。
  • 典型报文: S1F13 (建立通信请求)、S2F41 (远程命令)、S6F11 (事件报告)。
  • 适用场景: 实时性要求高的搬运指令和状态上报。
// SECS/GEM 搬运指令示例 (S2F41)
Stream: 2
Function: 41
WBit: 1
Data:
  <L>
    <U4> 1001 </U4>   // 指令ID
    <A> MOVE </A>     // 指令类型
    <L>
      <A> SOURCE </A> <A> STK-01-PORT-03 </A>
      <A> DEST   </A> <A> EQ-05-PORT-02 </A>
      <A> CARRIERID </A> <A> FOUP-12345 </A>
    </L>
  </L>

3.3.2 Web Service (REST/SOAP)

Web Service适用于IT层与AMHS上层调度系统之间的交互,通常用于非实时性业务,如批量查询、配置下发、报表数据同步。

  • RESTful API: 使用JSON格式,轻量级,适合微服务架构。
  • SOAP: 使用XML格式,安全性高,适合企业级集成。
  • 适用场景: 物料请求、库存查询、历史数据追溯。
// RESTful API 物料请求示例 (JSON)
POST /api/v1/amhs/transport-request
Content-Type: application/json

{
  "requestId": "REQ-20250321-001",
  "carrierId": "FOUP-A123",
  "source": "STK-01",
  "destination": "EQ-05-PORT-02",
  "priority": 1,
  "timestamp": "2025-03-21T10:30:00Z"
}

3.3.3 MQ (消息队列)

消息队列(如RabbitMQ、Kafka、ActiveMQ)用于解耦MES与AMHS之间的异步通信,特别适合高吞吐量的事件流处理。

  • 发布/订阅模式: AMHS发布事件,MES订阅消费。
  • 持久化: 消息可持久化,防止数据丢失。
  • 适用场景: 大批量状态上报、到达确认、报警广播。
// MQ 到达确认消息示例 (JSON)
Topic: amhs/arrival/event
Payload:
{
  "eventType": "ARRIVAL_CONFIRM",
  "carrierId": "FOUP-A123",
  "location": "EQ-05-PORT-02",
  "arrivalTime": "2025-03-21T10:35:12.456Z",
  "status": "SUCCESS"
}
协议选型建议:
  • 实时控制指令(搬运、取消)→ SECS/GEM(毫秒级响应)
  • 业务层请求/查询(物料请求、库存)→ Web Service(秒级响应)
  • 海量事件流(状态上报、到达确认)→ MQ(异步削峰)

3.4 协议对比总结

特性 SECS/GEM (HSMS) Web Service (REST/SOAP) MQ (消息队列)
传输层 TCP/IP HTTP/HTTPS TCP/IP (AMQP/MQTT)
数据格式 SECS-II (二进制/ASCII) JSON / XML JSON / Avro / Protobuf
实时性 高(毫秒级) 中(秒级) 中高(毫秒~秒级)
耦合度 紧耦合(长连接) 松耦合(请求-响应) 松耦合(异步)
典型场景 搬运指令、状态上报 物料请求、配置查询 到达确认、报警广播
调试难度 高(需专用模拟器) 低(Postman/curl) 中(需监控队列)
常见陷阱: 在混合协议架构中,务必注意事务一致性。例如:通过Web Service下发搬运指令后,AMHS执行完成通过MQ上报到达确认,此时MES需要设计去重和时序校验逻辑,避免因网络延迟导致物料状态错乱。