
SEMI GEM200 到底是什么剥开 E30/E5/E4/E37 四件套看清 200mm 厂通信的地基摘要很多人把“GEM200”当成“低配 GEM300”这是误解。GEM200 不是某个单标准而是 SEMI 给 200mm 及光伏、封装、LED产线划的通信基线剖面——以 E30GEM为行为核心E5SECS-Ⅱ为消息语法E4SECS-Ⅰ串口或E37HSMS以太网为传输层。它不强制 E87/E90/E40/E94但把“设备能连、能报状态、能收 Remote Command”这件事钉死了。本文拆开 GEM200 的四件套讲清它管什么、不管什么、和 GEM300 的精确边界在哪。一、先正名GEM200 不是一个标准是一个“剖面”SEMI 官方没有叫《SEMI E200》的文件。“GEM200”是行业俗称指在 200mm 及以下产线中以E30 GEM为基础配合E5 SECS-Ⅱ、E4 或 E37传输层构成的最小可用 SECS/GEM 通信集。对应关系层标准在 GEM200 里的角色行为/状态机E30(GEM)控制状态机(Offline / Online / Remote)、Event / Alarm、Recipe 管理、Data Collection 的最小子集消息语法E5(SECS-Ⅱ)S1F1 / S1F13 / S2F41 / S5F1 / S6F11 / S7F1 等消息格式定义串口传输E4(SECS-Ⅰ)RS-232 / RS-4859600bps半双工BlockChecksum以太网传输E37(HSMS)TCP/IP 封装 SECS-Ⅱ全双工LinkTest 心跳GEM300 是在这套地基上再叠加 E39 / E40 / E87 / E90 / E94 / E116 / E148 等扩展。所以 GEM200 ⊂ GEM300 的通信地基但不包含上层对象管理。二、E30GEM200 的“大脑”E30 定义了设备必须实现的最小行为集200mm 厂哪怕再老只要说“支持 GEM”至少得有这些2.1 控制状态机(Control State Model)只有三层比 300mm 简单得多OFFLINE通信未建立或已断主机不能控ONLINE LOCAL通信通了但控制权在操作员手里(HMI)ONLINE REMOTE主机通过 S1F17 拿到控制权可发 RCMD没有 E87 的 LoadPort 状态也没有 E40 的 PRState——设备商自己用内部变量补。2.2 必须支持的 Stream / Function(GEM200 最小子集)消息用途S1F1 / S1F2请求在线 / 响应S1F13 / S1F14Are You There / 通信参数确认S1F17 / S1F18请求 Remote / 同意S1F3 / S1F4读 SV (Status Variable)S2F29读常量枚举(消息集、EC、SVID列表)S2F37事件使能开关S5F1读 Alarm 列表S6F11事件上报 (设备自定义 CEID)S7F1 / S7F3选 Recipe / 读 Recipe 体S2F41Remote Command (START / STOP/LOAD/RECIPE_SELECT)2.3 不强制但常见的Spooling(断网缓存)E30 提了但 200mm 老设备 90% 没做Limit Monitor (S2F49)很少实现Trace Data (S6F1 / S6F2)部分新一点设备有三、E5消息长得什么样SECS-Ⅱ 定义所有 SxFy 的二进制结构。GEM200 里你最常拼的是S6F11 事件上报 L CEID1001/CEID RPT SVID200/SVID ← 当前 Lot IDASCII SVID201/SVID ← 当前 Recipe NameASCII SVID202/SVID ← 设备状态U1 /RPT /L关键点E5 只管“语法”不管“语义”。CEID1001 在 A 厂是 RunCompleteB 厂是 DoorOpen——这就是 200mm 厂 EAP 必须做“事件字典映射层”的根本原因。四、E4 vs E37传输层的两套世界4.1 E4(SECS-Ⅰ)——200mm 老厂的体温物理RS-232DB9有时 RS-485 多-drop速率9600 / 19200bps7E1 或 8N1帧结构ENQ → 10 字节 Header Block → 数据 Block每块 128 字节含 Checksum→ EOT半双工Host 发完一整条消息等设备回 ACK/NAK才能发下一条无 LinkTest断线不主动通知4.2 E37(HSMS)——200mm 改造后的逃生舱TCP 5000 端口Session ID 区分设备全双工消息分块用 4 字节长度头有LinkTest(S1F1 周期发)断连能感知很多 200mm 厂做法是设备端仍是 E4加一个串口转 HSMS 网关EAP 侧统一走 HSMS 连网关。⚠️ 注意HSMS 只是传输层换了E30/E5 的消息内容不变。所以设备支持 HSMS≠设备支持 GEM300它可能只是把 SECS-I 的报文套了 TCP 外壳。五、GEM200 明确“不管”什么和 GEM300 的边界这是最容易混的地方直接列表能力GEM200GEM300Carrier/FOUP 管理不管(无 E87)E87 LoadPort 状态机单片晶圆追踪不管 (无 E90)E90 SubstHistoryProcess Job 生命周期不管 (只有 S2F41)E40 15状态多 Job 排产不管E94 Control Job时间同步精度声明不管E148 TS-Clock对象服务不管E39 Object Services设备性能追踪不管E116结论GEM200 解决“设备和 Host 能说话”GEM300 解决“设备和 Host 能一起把晶圆管到单片级”。六、200mm 厂 GEM200的典型实现形态国内 200mm 功率/MMEM/BCD 线常见三种纯 E4 E30 老设备AMAT 老刻蚀、TEL 老涂胶、国产老扩散串口直连工控机EAP 用 C/C# 写串口轮询事件靠 S6F11 自定义 CEIDLot 级追踪E4 设备 串口转 HSMS 网关网关品牌Cimetrix、Agileo、金南瓜、自研EAP 用 secsgem / Python 连 HSMS内部仍按 Lot 级建模好处WireShark 能抓断线有感知新 200mm 设备原生 HSMS 部分 E87部分国产新机、MEMS 专用机厂商宣称“支持 GEM200 / GEM300 混合”但实际 E90 只做到 Cassette 级EAP 要写兼容层对老设备走 Lot 模型对新设备走伪 E90七、EAP 工程师在 GEM200 里真正要写的“补丁”因为标准不管以下全得 EAP 自己补虚拟 LoadPort 状态监听 HMI 的 Load / Unload 按钮 PLC 地址自己维护状态表Lot 级 SubstHistoryLot 下发时生成 25 个虚拟 SubstrateIDRobot 信号触发时打内部事件Cassette ID 对账HMI 输的 ID vs MES 下发的 ID不一致卡死事件字典每台设备导一份 CEID→含义 的 YAMLEAP 启动时加载串口超时重试SECS-Ⅰ 块错重传、T3 配到 10s以上时间裁判用 EAP 服务器时间打所有事件设备时间只做展示这些补丁层就是上篇《200 Fab 的 EAP 为什么这么难做》里说的“EAP 替设备补标准”。八、总结GEM200 的价值是被低估的它让 1998 年的老机台今天还能被 MES 叫起来跑 Lot它定义了SECS/GEM 通信基线没有它200mm 厂连 Remote Command 都统一不了它的边界也清晰——只管到设备和 Host 能对话不管晶圆去哪了。做 300mm 的工程师懂 E87/E90 是本职做 200mm 的工程师懂 GEM200 四件套E30/E5/E4/E37才懂为什么上层要补那么多补丁——因为你见过地基原本只打了多深。你们厂的设备是原生 HSMS 还是串口转网关GEM200 里最让你头疼的是 CEID 不统一还是 SECS-I 半双工撞车评论区聊。