如果你正在为晶圆厂或OSAT(外包半导体组装和测试)部门开发设备控制软件,迟早会遇到同样的难题:机器需要与主机通信,而且必须使用SECS/GEM协议。对于使用C#/.NET的团队来说,问题很快就从“我们是否应该开发这个功能”变成了“我们应该使用哪个SDK”。
本指南将介绍在评估C#/.NET SECS/GEM SDK时真正重要的因素、OEM 遇到的自建与购买的权衡取舍,以及如何在不浪费数月时间进行毫无进展的概念验证的情况下筛选供应商。
为什么SECS/GEM仍然会让设备OEM厂商感到困惑
SECS/GEM(SEMI E30,基于 SECS-II/E5 和 HSMS/E37)协议描述起来并不难,难的是如何正确实现,因为合规性并非仅仅关乎消息解析,而是关乎状态机的行为。大多数内部开发项目都会在正确实现 GEM 状态模型(设备状态、控制状态、通信状态、事件/报警/报告处理、远程命令)方面遇到瓶颈。
对于原始设备制造商 (OEM) 而言,这会表现为几个反复出现的问题:
- 合规风险。晶圆厂越来越要求设备在投入生产前必须符合 SEMI E30/E37/E4/E5 标准。自行开发的、看似“基本可用”的解决方案,可能无法通过客户现场的验收测试。
- 工程机会成本。每个月花在SECS/GEM管道系统上的时间,就意味着一个月无法用于设备真正的差异化逻辑——过程控制、运动控制和配方执行。
- 维护负担。SECS/GEM并非一成不变。 GEM300 (E40、E87、E90、E94、E116)为 300 毫米晶圆厂集成增加了相当大的复杂性,并且主机侧要求会根据客户而变化。
- 专业知识分散。SECS/GEM 知识属于小众领域。当唯一一位了解状态机的工程师离职时,代码库就会成为累赘。
这就是为什么大多数设备 OEM(即使是拥有强大的内部软件团队的 OEM)最终都会评估商业化的 SECS/GEM API 或 SDK,而不是无限期地维护定制的堆栈。
这个决定通常由谁做出?
SECS/GEM SDK 的决策很少由单一角色决定。在大多数 OEM 组织中,它涉及以下方面:
- 自动化工程师和嵌入式软件工程师 拥有设备控制器代码并需要每天与 API 打交道的人。
- 工厂自动化架构师, 需要集成架构来适配更广泛的设备软件堆栈,而不仅仅是一个工具。
- MES集成工程师 他们最关心的是设备端实现与工厂主机之间的通信是否干净——因为设备端行为不端的 GEM 状态机之后会成为他们的支持工单。
- 工程经理和首席技术官, 最终,他们会根据进度、预算和长期维护所有权来权衡自建还是购买。
如果您是以这些角色之一的身份阅读本文,那么以下各部分将组织成让每个利益相关者都能找到他们需要的内容:为执行实施的工程师提供技术评估标准,为最终做出决定的人员提供自建与购买框架以及供应商概况。
在选择 C#/.NET SECS/GEM SDK 时应注意哪些方面
并非所有 SECS/GEM C# 库的构建方式都相同,而且一旦过了演示阶段,这些差异就显得尤为重要。以下标准区分了可用 SDK 和那些最终沦为需要自行维护的项目。
1. 真正符合SEMI标准
请关注产品是否明确符合SEMI E30 (GEM)、E5 (SECS-II)、E4 (SECS-I)和 E37 (HSMS) 标准,而不仅仅是营销文案中提及的“支持 SECS/GEM”。如果您面向的是 300mm 晶圆厂,那么 GEM300 SDK 功能(E40、E87、E90、E94、E116)必须已纳入产品路线图或已上市。
2. 原生 C#/.NET 实现(非封装)
真正的 .NET 原生 SECS/GEM 库提供托管内存管理、消息流的 async/await 支持,以及如同使用普通 C# 一样的集成体验,而无需费力地与 C++ 互操作层或 COM+ 封送层交互。封装或桥接的库往往会将复杂性重新引入到您原本想要避免的代码库中。
3. API 人体工程学
优秀的 SECS/GEM API 会以清晰易懂的方式呈现概念——事件、警报、远程命令、数据采集计划等等——而无需团队手动编写原始的流函数 (SF) 消息结构。这对于没有专门 SECS/GEM 专家的团队尤为重要,因为它降低了日常开发所需的领域知识门槛。一些供应商更进一步,提供了用于定义 GEM 服务和数据项的可视化配置工具,这可以显著缩短新工程师的入门时间。
4. 集成架构灵活性
设备软件架构差异很大。一个优秀的SDK应该支持多种集成模式:
- 嵌入到与您的设备控制器相同的流程中(最紧密的集成,完全源代码访问权限)
- 在同一台电脑上作为独立进程运行(隔离性更好,对现有控制器代码的更改最小)
- 在设备内部的专用PC上运行(适用于资源受限的控制器)
- 为希望使用 SECS/GEM 功能但又不想嵌入原生 SDK 的团队提供 REST API 或 gRPC 层。
如果一个 SDK 只支持一种架构,那么它可能无法适配你尚未设计的设备。
5. 跨平台和跨语言覆盖范围
Windows 系统在制造车间设备上仍然占据主导地位,但 Linux 甚至 Raspberry Pi 级别的控制器在新平台上越来越常见。如果您的组织拥有混合团队或使用其他语言编写的遗留代码,请检查同一供应商是否除了 .NET 库之外,还提供 C++、Java、Python 或 Delphi 绑定——这可以降低为同一协议维护两个不相关工具链的风险。
6. GEM300 和成长路径
即使您目前的工具是 200 毫米级的,也应该询问供应商是否有明确的升级路径来支持 GEM300。将 GEM300 集成到原本并非为此设计的 SDK 中,比从一开始就使用已经支持扩展对象模型的 SDK 要困难得多。
7. 测试和仿真工具
内置的 SECS/GEM 模拟器(无需连接实时主机即可测试事件报告、警报和远程命令)可以显著缩短开发和调试周期,尤其对于那些难以访问晶圆厂主机进行测试的团队而言更是如此。
8. 真正的支持,而不仅仅是文档
SECS/GEM 问题往往会在客户验收测试期间出现——而这恰恰是您最没有时间调试协议层面极端情况的时候。供应商支持的响应速度(以及他们之前是否确实为 OEM 解决过此类问题)与 SDK 的功能列表同样重要。
9. 与原始设备制造商 (OEM) 的合作记录,而不仅仅是与代工厂的合作记录
为主机端(晶圆厂/MES)设计的SDK与为设备端(OEM)设计的SDK之间存在着本质区别。务必确保供应商已提供专门针对OEM的设备端实现——主机和设备角色之间的状态机职责存在显著差异。
自建还是购买:真正的权衡
| 标准 | 内部建造 | 商业版 SECS/GEM SDK |
|---|---|---|
| 首次工作集成所需时间 | 历经数月的开发和测试 | 预制组件用了好几周 |
| SEMI标准符合性 | 这完全取决于你们团队的专业水平。 | 内置符合SEMI标准 |
| 开发成本 | 高额的前期工程投资 | 更低的实施成本和更快的投资回报率 |
| 持续维护 | 由您的工程团队无限期管理 | 由供应商维护并定期更新 |
| GEM300 及未来标准 | 需要持续再投资 | 包含在 SDK 增强功能和版本发布中 |
| 客户验收测试(FAT/SAT) | 仅限内部支持 | 供应商提供技术支持 |
| 实施风险 | 由于定制开发,价格更高 | 使用经过验证的、可用于生产环境的 SDK 降低成本 |
| 上市时间 | 更长的产品上市周期 | 更快的部署和产品发布 |
| 技术支持 | 仅限于内部资源 | 专属供应商支持和故障排除 |
| 可扩展性 | 需要额外的开发工作 | 旨在适用于多种设备型号 |
| 文档和示例 | 必须内部创建 | 全面的文档、API 和示例项目 |
| 长期总拥有成本 (TCO) | 由于持续的维护和升级,价格较高。 | 价格随着供应商的持续支持和更新而降低 |
如果 SECS/GEM 连接是贵公司的核心差异化优势,或者贵公司已拥有深厚的内部协议专业知识,那么采用这种构建路径是合理的。然而,对于大多数半导体设备 OEM 厂商而言,SECS/GEM 兼容性只是出货的必要条件,而非竞争优势——这使得成熟的 SDK 更具优势。
C#/.NET SECS/GEM SDK 概览
如果你仔细搜索一下,会发现一些成熟的基于 .NET 的 SECS/GEM 开发方案,每个方案都有不同的侧重点。以下是对评估过程中你会遇到的主要类别的简要概述(由于 SDK 会不断更新,请务必直接与各供应商核实最新的规范):
长期运行的原生 .NET 库(例如 SECSGEM.NET/GEM300)通常已在市场上存在多年,它们强调自身是真正的 .NET 库而非封装器,并采用按连接许可模式,同时支持主机和设备角色。这些库往往吸引那些希望使用成熟、代码优先的库,并且乐于在协议层附近工作的团队。
面向模型构建器的 SDK(例如 NxSphere GEM,以前使用不同的产品名称)侧重于可视化配置工具——一个用于定义 GEM 服务、数据项和事件的 GUI——以及底层 .NET 库,此外还捆绑了一个用于离线测试的模拟器。这些工具可以缩短没有内部 SECS/GEM 专家的团队的上手时间。
提供全方位服务的SDK加实施方案提供商(例如eInnoSys的EIGEMEquipment)将SDK本身与集成服务、多种语言绑定(C#/.NET、C++、Java、REST API)、多种集成架构(嵌入式、独立流程、专用PC、PLC/HMI桥接器)以及通过合规性验证和部署提供的直接工程支持相结合。这种模式更适合那些希望按时获得合规性和可用集成方案的OEM厂商,而不仅仅是希望获得一个可供开发的库。
这些类别本身并没有绝对的“最佳”标准,具体取决于您的实际情况——一个拥有深厚协议专业知识的小团队可能更倾向于精简的、代码优先的库;而一个时间紧迫且SECS/GEM经验有限的团队,往往能从提供集成服务和支持的供应商那里获得更多价值。下面的评估清单旨在帮助您确定哪个类别最适合您的需求。
EIGEMEquipment 的适用范围
eInnoSys 的EIGEMEquipment SECS/GEM SDK专为解决此问题的 OEM 方而设计。以下几点值得对照上述标准进行检查:
- 标准覆盖范围: 完全符合 SEMI E30 (GEM)、E4 (SECS-I)、E5 (SECS-II) 和 E37 (HSMS) 标准,并包含 GEM300 功能。
- 语言和操作系统支持: 提供 C#/.NET、C++、Java 和 REST API 版本,可在 Windows、Linux 和 Raspberry Pi 上运行——如果您的设备产品线跨越多个平台,或者您的工程团队没有完全统一使用一种语言,这将非常有用。
- 开箱即用的覆盖范围: eInnoSys 表示,大约 80% 的典型 SECS/GEM 功能无需定制集成工作即可实现,这也是节省大部分工期的原因。
- 架构灵活性: 支持将 SDK 直接嵌入到控制器进程中,在同一台 PC 上作为单独进程运行,在专用 PC 上运行,或通过基于 PLC/HMI 的选项进行桥接(EIGEMHMI, EIGEMLink)适用于您无法完全访问控制器源的设备。
- API设计: 围绕简洁易读的 API 进行设计,以便没有专门的 SECS/GEM 专家的团队可以实施和维护集成。
- 传统设备路径: 对于那些当初设计时并未考虑SECS/GEM技术的旧款150mm/200mm工具,eInnoSys也提供相应的解决方案。 EIGEMBox即插即用的接口,无需修改现有控制器软件即可添加 SECS/GEM 连接——如果您的 OEM 产品组合涵盖新一代和老一代工具,这将非常有用。
EIGEMEquipment 或其他 SDK 是否适合您,取决于您的设备架构、平台目标、内部 SECS/GEM 专业知识,以及您愿意将多少控制器源代码暴露给第三方依赖项——但如果您正在评估附带工程支持的 C#/.NET 选项,那么它是一个合理的候选名单起点。
MES集成:SDK安装完成后会发生什么
选择 SECS/GEM SDK 不仅仅是让设备能够使用协议——更重要的是设备部署到晶圆厂后,与实际的 MES 系统通信时会发生什么。以下几点需要在选择 SDK 之前规划,而不是之后:
数据收集计划 (DCP) 和跟踪请求:各制造工厂将根据各自的工具定义 Stream 2/6 的数据收集需求。在生产环境中,SDK 用于处理动态事件报告和跟踪数据的 API 比在演示环境中更为重要。
配方管理:如果您的设备支持可下载的配方,请检查 SDK 如何处理 Stream 7(进程程序管理),以及它是否支持大型配方传输(如果您的配方超过单个消息的实际大小,则此问题尤为重要)。
针对不同客户定制报警和事件:不同的晶圆厂配置不同的报警集,并启用/禁用不同的事件采集。采用配置驱动而非代码驱动的 SDK,可以避免客户部署过程中出现重复工作。
多工具和多连接扩展:如果您的 OEM 出厂的设备带有多个子模块或处理工具集群,请确认 SDK 的许可和架构能够干净利落地支持同时连接,而不会出现单个连接的不稳定性。
这些都不会在功能对比图表中显示出来,但这正是 SDK 选择真正经受考验的地方——在客户资格审查期间,而不是在你的内部概念验证期间。
实用评估清单
在决定采用某个SDK之前,最好先进行一次简短的技术评估,而不是仅仅依赖规格表:
- 通过实际的符合性测试来确认是否符合 SEMI E30/E5/E37/E4 标准,而不仅仅是口头声明。
- 询问目前是否已提供 GEM300 支持,或者是否有相关计划——以及何时提供。
- 使用您实际设备的事件/警报设置构建一个小型概念验证,而不是通用演示。
- 检查有哪些集成架构选项,以及它们是否与控制器的当前设计相匹配。
- 请核实操作系统和语言支持是否符合您实际的设备配置和团队技能水平,包括未来 1-2 年的任何计划。
- 特别询问客户验收测试期间的支持响应时间——因为问题往往在这个阶段出现。
- 测试任何捆绑的模拟器或模型构建器工具时,应针对真实的事件/警报/配方场景,而不仅仅是示例应用程序。
- 与在 OEM(不仅仅是晶圆厂)部署中使用过 SDK 的客户交流,最好是在与您类似的设备上进行过交流。
最后的想法
“最佳”C#/.NET SECS/GEM SDK 并非万能答案——它取决于您的设备架构、合规时间表、团队的 SECS/GEM 专业知识以及您长期维护协议级功能的意愿。但对于大多数半导体设备 OEM 厂商而言,成熟且符合标准的 SDK 能比从零开始构建更快地实现合规且易于维护的集成,从而节省工程时间,专注于真正能使设备脱颖而出的环节。
如果您正在评估各种方案,那么针对 SECS/GEM SDK 集成进行技术咨询是一种低成本的方法,可以在您投入数月工程时间选择任何一种方案之前,根据实际实施经验对您的架构进行压力测试。