SECS/GEM 是半导体设备与工厂主机之间那套「普通话」。标准由 SEMI 在上世纪九十年代定下,到今天全球的 8 吋线、12 吋线、封测线还在用它传数据。做过设备联机的人都知道,代码量其实不大,难的是让两台机器真正听懂彼此——项目一半的工期,都耗在调试现场那几个来回上。
这篇不讲课,讲现场:从物理连上,到数据可信,中间有四道坎,顺序基本就是联机调试的顺序。提前知道卡在哪,能省掉好几轮出差。
一、三个词别混:SECS-I、HSMS、GEM 不是一回事
谈设备联机,第一件容易出错的事是把这三个概念当成同义词。招标文件里写「设备需支持 SECS/GEM」,供应商回一句「支持」,双方的期待可能完全不一样。
- SECS-I(SEMI E4):串口跑,RS-232,速率通常 9.6 kbps,老设备上还能见到。
- HSMS(SEMI E37):走 TCP/IP,默认端口 5000,现在新建产线基本只用这一种。
- GEM(SEMI E30):既不是协议也不是接口,是一套「设备该有什么行为」的模型——状态怎么报、事件怎么发、参数怎么读写、配方怎么管。
所以「支持 SECS/GEM」这句话,落到合同里至少要拆成三条:走 SECS-I 还是 HSMS、支持到 GEM 的哪一层、SVID 与 CEID 清单谁出。这三条没写清,验收时一定扯皮。
二、第一道坎:连不上,多半是主动被动配反了
HSMS 的连接是主从结构。设备侧通常做被动端(Passive,监听端口等主机来连),主机侧做主动端(Active)。现场最典型的故障,是两边都配了被动——两边都在等对方先开口,日志里一片安静,看不出任何报错。
另一种常见情形是定时器没对齐。HSMS 定义了一组超时参数:T3 管回复等待,T5 管连接分离,T6 管控制会话,T7 管连接建立,T8 管单次数据块间隔。这些值在主机端和设备端必须互相兼容,任何一侧取得过短,都会出现「偶发断线」这种最难查的现象——因为它在实验室里不复现,只在产线节拍跑满时才冒出来。
实操建议:联机第一天先把两端的连接模式、IP、端口、设备号(Device ID)、定时器配置打在一张纸上,双方签字。这张纸能省掉后面三天的互相怀疑。
三、第二道坎:连上了,但数字不对——SVID 定标
这是我认为最值钱的一道坎,也是最容易被当成「小问题」放过的。SVID 是设备向主机上报变量的编号表,每条包含变量名、数据类型、单位、缩放系数。麻烦在于:这张表由设备厂定义,主机端按自己的理解解析。
举个真会出事的例子:某设备把腔体温度以 0.1 ℃ 为最小单位上报,原始值 2350 表示 235.0 ℃。主机端如果按整数直接解析,界面上显示 2350 ℃。数值没报错、通讯没断线、日志干干净净,但工艺工程师看到的是一个荒谬的温度——如果没有交叉校验,这种错能挂好几天。
| 项目 | 数据格式 | 定标 | 原始值示例 | 正确解读 |
|---|---|---|---|---|
| 腔体温度 | U4 | ×0.1 ℃ | 2350 | 235.0 ℃ |
| 压力 | U4 | ×0.01 Torr | 750 | 7.50 Torr |
| 流量 | I2 | ×1 sccm | -3 | -3 sccm(有符号) |
还有两个附带陷阱:一是数据类型的有无符号,I2 与 U2 混用会让负值变成六万多;二是单位口径,设备报 Pa、主机显示 Torr,差的不只是换算系数,还有人对数字的直觉。做法很朴素——SVID 清单在开发前双方会签,联机时用万用表或设备本地面板做一次比对,抽三个点就够发现定标错误。
四、第三道坎:状态机跑不通,事件和报告对不上
GEM 规定了设备的状态模型,其中控制状态分离线、在线本地、在线远程三档。很多国产设备只做了「在线」这一档,远程指令下去没反应,因为设备还停在在线本地状态——操作员面板上有优先权,这是设计如此,不是 bug。
事件与报告这一层更琐碎。设备发事件(CEID),主机订阅报告(RPTID),报告里挂变量(VID)。常见故障有三种:事件发了但没开报告链接,主机收不到;报告定义里的 VID 顺序和主机解析顺序不一致,字段全部错位;链路闪断重连后没有重新使能报告,数据从此静默——最后这种最危险,界面还在刷新,刷新的是缓存。
所以联机测试不能只看「有没有数据」,要看「数据是否还在更新」。一个简单办法:在主机侧加一条心跳监控,超过设定周期没有收到任何事件就变红报警,别让人靠眼睛盯。
五、一套可复用的联机顺序
- 确认物理链路与连接模式,双方配置纸面会签。
- 打通 HSMS 控制会话,确认 T3 到 T8 的取值兼容。
- 核对 SVID/ECID/VID 清单,抽点比对实测值。
- 跑通控制状态切换,验证远程指令与本地优先权。
- 逐一使能事件与报告,用真实工艺动作触发,不用模拟器造数。
- 做断线重连测试:拔网线、重启设备、重启主机,各来一次。
- 连续跑一个班次,比对设备本地记录与主机入库记录,看有没有丢点。
第 6、7 步是最容易被砍掉的,也是上线后最容易出事的。断线重连和数据完整性,恰恰是产线最不能容忍的两件事。
六、买 SDK 还是自己写
市面上有成熟的 SECS/GEM 驱动库,省掉协议栈这一层,代价是授权费和定制受限;自研的好处是对接现场逻辑可以按产线习惯长,坏处是 T3 到 T8 这类细节要自己啃标准。判断标准不在技术偏好,在于这条线以后要不要接更多设备——要接,就把驱动层做成可复用的,别为单台设备写死。
飞莱栖在半导体与光学制造现场做上位机与数据采集,多设备并采、协议转换、数据入库这一层有现成的模块,可参考多设备数据采集与芯片烧写两类项目的做法。如果贵司正在做设备联机或产线数据打通,欢迎联系我们,把 SVID 清单和现场拓扑发过来,先做一次可行性判断。


QQ:874059561