SECS/GEM (HSMS) — 半导体 / 显示面板 fab
SECS/GEM 是半导体 / 显示面板 fab 中设备 (tool) 与主机 (MES / EAP) 之间的标准通信协议。消息由 SECS-II 定义,在以太网上通过 HSMS (High-Speed SECS Message Services) TCP/IP 传输。
网关的 SECS/GEM 驱动基于 HSMS Select handshake + 后台 Linktest + 异步 reply 匹配 + SECS-II item codec (L / A / B / U1U8 / I1I8 / F4 / F8),提供 read (S<n>F<m>) / write (S2F41 host command,含 HCACK 校验) 功能。
如需针对具体设备的 GEM 时序 — S1F13/F14 establish、S6 event reports、S5 alarms、control state model、spool — 请联系开发团队。
注册表单输入项
| 输入栏 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | 设备 (tool) 的 HSMS IP | 192.168.0.140 |
| 端口 | HSMS 端口 | 5000 (常用) |
| Device ID | SECS device ID | 0 (常用) |
| Mode | passive / active | active (网关作为 connect 方) |
| T3 / T5 / T6 / T7 / T8 | HSMS 超时 (ms) | 建议使用默认值 |
按 SECS/GEM 标准,推荐由 host (MES / 网关) 以 passive 方式 listen、由 tool 发起 connect;但根据现场实际情况,由网关以 active 方式 connect 的环境更为常见。请与 tool 侧设置保持一致。
标签的 PLC 地址表示法
在网关中,SECS-II 消息以 S<n>F<m> 格式输入。n=stream,m=function。
| 表示法 | 含义 |
|---|---|
S1F1 | Are You There — 通信存活 ping |
S1F3 | Selected Equipment Status Request |
S1F11 | Status Variable Namelist Request |
S2F13 | Equipment Constant Request |
S2F41 | Host Command Send (write — start/stop 等) |
S5F1 | Alarm Report |
S6F11 | Event Report Send |
读取类消息 (S1F3、S1F11 等) 的响应即为其值。
从响应中提取特定值
若响应为 SECS-II list 形式,可通过 S1F4[0]、S1F4[2].[1] 这样的索引取值。
| 表示法 | 含义 |
|---|---|
S1F4[0] | S1F4 响应 list 的第 0 项 |
S6F12[1].[3] | S6F12 nested list 的 [1][3] |
数据格式匹配
与 SECS-II 的 item code 对应。
| SECS-II 类型 | 含义 | 数据格式 | 格式辅助 |
|---|---|---|---|
| L | List (递归) | (按索引展开使用) | — |
| A | ASCII | String | (留空) |
| B | Binary | String | (留空) |
| BOOLEAN | Boolean | Boolean | (留空) |
| U1/U2/U4 | Unsigned 1/2/4 byte | Integer | UI/UDW |
| U8 | Unsigned 8 byte | Long | (留空) |
| I1/I2/I4 | Signed 1/2/4 byte | Integer | (留空)/DW |
| F4 | Float 32-bit | Float | REAL |
| F8 | Float 64-bit | Double | LREAL |
写入 (Write) 支持
可通过 S2F41 (Host Command Send) 向设备下发命令。
| 表示法 | 含义 |
|---|---|
S2F41 | Host Command Send (RCMD = "START" / "STOP" / "PP-SELECT" 等) |
S2F49 | Enhanced Remote Command |
值以 命令名 (RCMD) + 参数 list 的形式发送。详细格式请参考设备手册中的 SEMI 标准说明。
S2F41 的 START / STOP 会触发设备的实际动作。在生产 fab 中务必与 EAP / MES 团队协商后再使用。
常见问题与解决
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| “Select.rsp not received” | active/passive 不匹配 | 检查 tool 侧 GEM 设置 |
| “Linktest timeout” | 防火墙 | 调大 T6 (linktest) 仍无效时请巡检网络 |
| “Communication not established (S1F13)” | 部分设备要求先完成 S1F13/F14 establish sequence | 在设备侧 GEM 设置中启用自动 establish 选项,或使用 S1F1 / S1F3 等进行 raw 通信 |
| 响应解码失败 | nested list 层级错误 | 以 raw 方式接收响应,再用 SECS-II 解码器单独解析 |
常用 SECS 消息详解
S1F1 / S1F2 — Are You There (ping)
| 消息 | 方向 | 含义 |
|---|---|---|
| S1F1 | host → tool | “是否在线?” — 空消息 |
| S1F2 | tool → host | 返回 "MDLN, SOFTREV" (设备型号名 + 固件版本) |
S1F3 / S1F4 — Selected Equipment Status Request (读取 SVID)
S1F3 的 body 为 SVID list,响应 S1F4 为同顺序的值 list。
| 表示法 | 含义 |
|---|---|
S1F3 (body=L,1.<U4 100>) | 读取 SVID 100 (CassetteCount 等) |
S1F4[0] | 响应 list 的第 0 项 (= SVID 100 的值) |
S2F41 — Host Command Send (write — 设备动作)
| RCMD | 含义 |
|---|---|
START | 开始加工 |
STOP | 停止加工 |
ABORT | 立即中止 |
PP-SELECT | 选择 Process Program (CPNAME=PPID,CPVAL=程序名) |
PAUSE / RESUME | 暂停 / 恢复 |
S6F11 / S6F12 — Event Report Send (以 CEID 为单位)
设备在自身发生事件时主动 push 给 host,按 CEID (Collection Event ID) 分组上报。
| 字段 | 含义 |
|---|---|
| DATAID | 事件序列号 |
| CEID | Collection Event ID (例:21=ProcessStarted) |
| RPTID list | 按报告 ID 组织的 nested data |
PlantPulse 直接接收 raw 响应,因此可用 S6F11[0]、S6F11[1] 的方式提取索引后,再通过计算公式进行后处理。
S5F1 / S5F2 — Alarm Report
| 字段 | 含义 |
|---|---|
| ALCD | Alarm Code (1 byte:bit7=set/clear,bit0~6=category) |
| ALID | Alarm ID |
| ALTX | Alarm text (供人阅读的消息) |
常用运维模式
模式 1. fab tool 健康监控 (ping + 状态)
| 标签名称 | 地址 | 格式 | 备注 |
|---|---|---|---|
| Ping | S1F1 | (有无响应) | timecycle 30s |
| 型号名 | S1F4[0] | String | (S1F3 SVID=MDLN) |
| 加工状态 | S1F4[1] | Integer | (S1F3 SVID=ControlState) |
模式 2. 结果数据采集 (S6F11)
在设备侧 GEM 设置中启用 “EventReport on PROCESSEND” → 通过 S6F11 push。PlantPulse 以 active mode connect 后采集 raw 响应 → 在后处理管道中用 SECS-II 解码器 (如 secsgem-py) 解析。
模式 3. Pset / Recipe 切换 (S2F41)
S2F41 RCMD="PP-SELECT" CPNAME="PPID" CPVAL="RECIPE_AB100"
在实际 fab 中,S2F41 会触发设备动作。务必与 EAP / MES 团队协商,并仅在设备处于 idle 状态时使用。
下一步
- 参考 SEMI E5 (SECS-II) / E37 (HSMS) / E30 (GEM) 标准文档。
- 如需完整的 GEM 集成 (event reporting、control state、recipe),请联系开发团队。
- 参考高级 — REST API 中的 SECS/GEM 示例。