开源SECS/GEM Python驱动:3行代码连接半导体设备
在半导体制造中,SECS/GEM协议(SEMI E4/E5/E30/E37)是设备与主机系统通信的标准接口。无论是Applied Materials、Lam Research还是TEL的设备,都通过HSMS/SECS-II协议与MES、FDC、R2R等上层系统交换数据。
然而,现有的SECS/GEM通信方案要么是昂贵的商业软件(Brooks、Cimetrix),要么是过时的C/C++库。Python生态中一直缺少一个生产可用、配置驱动的SECS/GEM驱动。
今天,我们开源了 secsgem-driver — 一个基于Python asyncio的SECS/GEM设备通信驱动,已在NeuroBox产品线的实际产线中验证。
为什么我们选择开源
SECS/GEM协议本身是公开的SEMI标准,通信层不应该成为行业的技术壁垒。我们的核心价值在于上层的AI算法(虚拟量测、R2R调机、设备诊断),而非底层协议实现。开源通信驱动能让更多工程师快速接入设备数据,加速整个行业的AI化进程。
3行代码连接设备
from secsgem import SecsGemDriver
driver = SecsGemDriver("configs/amat_centura.yaml")
await driver.connect()
response = await driver.send("S1F1") # Are You There
不需要手写任何消息结构体。设备的所有消息定义、变量、事件都在YAML配置文件中描述:
equipment:
id: "CENTURA_001"
type: "AMAT_CENTURA"
vendor: "Applied Materials"
connection:
mode: "active"
ip_address: "192.168.10.101"
port: 5000
messages:
S1F1:
stream: 1
function: 1
wait_bit: true
description: "Are You There Request"
commands:
START:
description: "Start process"
parameters:
- name: "RECIPE_ID"
type: "ASCII"
required: true
换一台设备?换一个YAML文件就行,代码不用改。
核心特性
- HSMS协议(SEMI E37)— 完整实现 Active/Passive 模式、Select/Deselect/Linktest、心跳检测
- SECS-II编解码器(SEMI E5)— 支持所有数据类型:List、ASCII、Binary、Boolean、整数、浮点数
- 配置驱动 — YAML设备配置文件,换设备不改代码
- 异步架构 — 基于Python asyncio,非阻塞I/O
- 自动重连 — 可配置的断线重连策略
- 事件系统 — 装饰器订阅设备事件(S6F11)和报警(S5F1)
- 类型安全 — Pydantic验证的配置,类型化API
适用场景
secsgem-driver 是一个纯协议层实现,可以作为以下系统的通信基础:
- MES(制造执行系统)设备集成
- 设备数据采集与监控
- Run-to-Run(R2R)工艺控制
- 虚拟量测(VM)系统
- 故障检测与分类(FDC)
- 设备健康管理(PHM)
与NeuroBox的关系
secsgem-driver 是 NeuroBox E系列 边缘AI平台的通信层。NeuroBox在此基础上增加了:
- 物理信息神经网络(PINN)虚拟量测引擎
- Trust-Region约束优化的R2R调机算法
- 基于不确定性量化的故障诊断系统
- TensorRT加速推理(<50ms延迟)
通信层开源,AI层商业化 — 这是我们认为对行业最健康的模式。
开始使用
pip install secsgem-driver
GitHub仓库:github.com/shensi8312/secsgem-driver