4. SECS/GEM协议详解
SECS/GEM(SEMI Equipment Communications Standard / Generic Equipment Model)是半导体及电子制造业设备自动化的事实标准协议族。在 AMHS 系统中,天车(OHT)、Stocker、Loadport 等物料搬运设备与 MES 之间的所有指令交互、状态上报、报警传递,几乎都基于 SECS/GEM 协议栈完成。本章将深入剖析其分层架构、消息编码格式以及 SML 描述语言。
4.1 协议栈总体架构:SECS-I、SECS-II、HSMS
SECS/GEM 协议栈自底向上分为三层:物理传输层(SECS-I 或 HSMS)、消息层(SECS-II)和应用模型层(GEM)。在现代化 AMHS 集成中,HSMS 已全面取代 SECS-I 成为主流物理层。
4.2 SECS-I(SEMI E4)与 HSMS(SEMI E37)对比
| 特性 | SECS-I(E4) | HSMS(E37) |
|---|---|---|
| 物理介质 | RS-232 串口(DB9/DB25) | TCP/IP 以太网(RJ45) |
| 最大速率 | 115.2 kbps | 100 Mbps / 1 Gbps |
| 连接方式 | 点对点(1 对 1) | 点对点 / 多会话(1 对 N) |
| 消息帧结构 | Length + Block + CRC | Message Header + Data |
| 超时机制 | T1/T2/T3/T4 | T3/T4/T5/T6/T7/T8 |
| AMHS 适用性 | 仅老旧设备(建议升级) | 所有新项目标配 |
4.3 SECS-II 消息格式:Stream & Function
SECS-II(SEMI E5)定义了设备与主机之间交换消息的格式。每条消息由 Stream(流) 和 Function(功能) 唯一标识,写作 S<nn>F<nn>。例如 S1F1 表示“Are You There”请求,S1F2 表示“On Line Data”响应。
4.3.1 Stream 分类
| Stream | 名称 | 典型用途 |
|---|---|---|
| S1 | Equipment Status | 设备状态查询、通信建立 |
| S2 | Equipment Control | 远程控制、参数设定 |
| S3 | Material Status | 物料状态、载具信息 |
| S4 | Material Control | 物料搬运指令、传送控制 |
| S5 | Exception / Alarm | 报警、异常上报 |
| S6 | Data Collection | 数据收集、Trace 数据 |
| S7 | Process Program | 配方管理(AMHS 中较少用) |
| S9 | System Error | 协议错误报告 |
4.3.2 消息方向与 W-bit
SECS-II 消息分为 Primary Message(主消息) 和 Secondary Message(副消息)。主消息中的 W-bit(Wait bit) 决定是否需要对方回复:
- W-bit = 1:主消息发送后,接收方必须回复对应的 Secondary 消息(如 S1F1 → S1F2)。
- W-bit = 0:主消息为单向通知,不需要回复(如 S6F11 事件报告)。
4.4 SECS-II 数据项编码(Item 格式)
SECS-II 消息体由若干 Item(数据项) 组成。每个 Item 包含 长度字节、数据格式字节 和 数据内容。常见格式码如下:
| 格式码(十六进制) | 类型 | 说明 | AMHS 典型用途 |
|---|---|---|---|
| 0x00 | List | 列表容器,可嵌套 | 包裹多个参数 |
| 0x10 | Binary | 二进制字节数组 | 状态位图 |
| 0x20 | Boolean | 布尔值(00/01) | 开关状态 |
| 0x40 | ASCII | 字符串 | 设备 ID、载具 ID、工单号 |
| 0x60 | I8 / I1 / I2 / I4 / I8 | 有符号整数 | 坐标、速度、计数 |
| 0x80 | F4 / F8 | 浮点数 | 位置偏移、重量 |
4.5 SML 语言基础
SML(SECS Message Language) 是描述 SECS-II 消息结构的文本化标记语言,广泛用于设备通信规范文档和测试工具(如 SEMI E5 标准附录、SECS 模拟器)。SML 使用缩进表示层级,关键字定义数据项。
4.5.1 SML 基本语法规则
- 每条消息以
S<n>F<n> W开头,W 表示 W-bit。 - 数据项使用
<类型> [变量名] 值格式。 L表示 List,<A>表示 ASCII 字符串,<I4>表示 4 字节整数。- 注释以
/* ... */包裹。
4.5.2 SML 示例:S2F41 远程命令(AMHS 搬运指令)
S2F41 W
<L>
<A> "MOVE_CMD" /* 命令名称 */
<L>
<A> "CARRIER_ID" /* 载具 ID */
<A> "OHT-2024-001"
<A> "SOURCE_PORT" /* 源端口 */
<A> "STK-01-LP-03"
<A> "DEST_PORT" /* 目标端口 */
<A> "STK-05-LP-07"
<A> "PRIORITY" /* 优先级 */
<I4> 1
</L>
</L>
4.6 GEM 模型与 AMHS 的关联
GEM(SEMI E30)定义了设备的行为模型,包括:
- 状态模型(State Model):设备在 INIT、IDLE、SETUP、PROCESSING 等状态间转换。
- 事件通知(Event Notification):设备主动上报状态变化(如载具到达、搬运完成)。
- 报警管理(Alarm Management):设备上报 S5F1/S5F2 报警消息。
- 远程命令(Remote Command):主机通过 S2F41 下发搬运指令。
4.7 本章小结
- SECS/GEM 协议栈分为物理层(SECS-I/HSMS)、消息层(SECS-II)和应用模型层(GEM)。
- HSMS 基于 TCP/IP,是 AMHS 系统对接的推荐物理层;SECS-I 仅用于老旧设备兼容。
- SECS-II 消息由 Stream & Function 唯一标识,W-bit 控制是否需要回复。
- 数据项编码支持 List、ASCII、整数、浮点数等类型,嵌套结构用于复杂参数传递。
- SML 是描述 SECS-II 消息的文本语言,用于文档编写和测试工具。
- GEM 模型定义了设备状态机、事件、报警和远程命令,是 MES 与 AMHS 设备交互的行为契约。