大数跨境

SEMI E42标准技术解读:Recipe管理的对象模型、服务行为与消息接口

SEMI E42标准技术解读:Recipe管理的对象模型、服务行为与消息接口 鼎格工业软件
2026-10-30
5
导读:鼎格的半导体设备控制软件体系以设备软件平台 SEPlat 为运行底座,以其上的开发框架 SOF 固化 SEMI 标准的交互逻辑,Recipe 管理是其中的一个组成部分,与设备控制、数据采集、物料跟踪等

设备进入产线后,Recipe管理往往是设备厂和工厂之间最容易产生分歧的地方。设备厂通常把Recipe作为本地文件存在设备里,工厂则要求集中管理、版本可追溯、认证状态可查。换一个客户,上传下载的口径、版本选择的规则、权限控制的做法又不一样,设备厂每接一个工厂就要定制一套接口。这些问题和 Recipe 本身的内容无关,根源是Recipe 作为一个对象,在设备和工厂之间缺少统一的标识、状态和流转约定。

SEMI E42就是为这一层制定的标准,全称为Recipe Management Standard: Concepts, Behavior, and Message Services,从概念(Concepts)、行为(Behavior)、消息服务(Message Services)三个层面,规定 Recipe 对象如何定义、管理与执行服务如何划分、各类操作如何在消息层承载。E42主体定义概念与行为,子标准E42.1(Standard for SECS-II Protocol for Recipe Management)规定这些服务在SECS-II协议上的消息映射。E42主体在引用文件中列出了几个相互配合的标准:工厂侧集成对接E30(GEM),对象服务遵循E39(OSS),事件报告遵循E53。

图1  RMS 的主要对象

(图源:SEMI E42-0704)

在概念层,E42首先把Recipe定义为一个带完整属性信息的对象,由属性集与Body(正文)两部分构成,具有明确结构。Recipe基类(supertype)定义了所有类型Recipe的共有属性,Body则是一个非标对象,除文本形态外通常只能由执行端解析。在实际产线中,一份Recipe往往不是孤立存在:E42考虑了几个Recipe组合使用的工况,一道工艺包含两步操作、每步采用不同Recipe是一种;也可能由一个main recipe构成,而main recipe本身由sequence recipe与step recipe等不同部分组成。标准不涉及 Recipe Body 的编辑功能。它界定的是对象的管理、版本、分发与状态,Body 的编写与所用编辑器由独立的 Recipe Editor 完成,两者通过接口协同。E42 不介入工艺内容,只负责让承载工艺的对象在系统之间能够被一致地识别和流转。

在对象标识上,E42以Class、Name、Version三个字符串的组合作为Recipe的唯一识别符,三者缺一不可,并按“/CLASS1/CLASS2/…/CLASSn/NAME;VERSION”的顺序拼接为完整标识符,Name与Version之间以分号分隔。Class用于对Recipe进行分类管理,可含层级子类,完整路径以主分类(Primary Class)起始、以该Recipe所属的具体类结束,例如“/PROCESS/FURNACE/DIFFUSION/NORMAL CYCLE/DryOx;4”;当Namespace内类名唯一时,也允许只写单个类。主分类中PROCESS是必备类,SERVICE为可选类,设备厂还可定义其他主分类,但不在PROCESS类或其子类内的Recipe不允许用于生产,分类信息由Equipment Agent或Recipe Editor提供。Name在不同Namespace或分类内可以不唯一,是否在子类内也保持唯一,标准建议作为全局配置项,由设备厂根据管理习惯决定。Version 标识具体版本。E42不允许新版本覆盖旧版本,所有版本都要保留、可被访问,即使同一台设备也允许使用不同版本。多PM设备可以在各 PM内执行不同版本的Recipe,同一批次需要回退到旧版本时也必须能随时取到。若是覆盖删除旧版本,工厂就没有了追溯和回退的依据。

Body承载工艺参数与设备控制指令,E42规定其可以文本(text)或二进制对象(object)两种形态存在,鼓励采用文本以便解析,但不强制;对象形态主要用于图像数据、CAD文件、特定结构的参数信息等。文本Body的字符集有明确限定:ASCII可打印字符范围为0x20至0x7E,加上tab(0x09)、换行(0x0A)、回车(0x0D)与换页(0x0C),也可采用JIS-8编码。文本不区分大小写,支持以//起始的单行注释和以/* */包裹的多行注释,注释不允许嵌套;空白字符不携带任何物理意义,头尾空白与多余空行不应存在,删除后不产生影响。这些约束保证Body在不同系统之间传输、解析时的确定性,避免因非法字符或空白差异导致执行端解析失败。

Recipe基类定义的通用属性,各自承担明确的管理语义。ApprovalLevel标识审批级别,是版本自动选取的依据;AttrLength与AttrChgTime记录属性长度与变更时间,时间统一采用yyyymmddhhmmsscc格式;BodyFormat与BodyLength描述Body的形态与长度;EditedBy、EditTime与Comments记录编辑人、编辑时间与备注;EstRunTime以秒为单位记录标称或预估执行时间,在创建或更新时清零、Verify时写入,主要用于调度,计算算法需文档化,默认值为0;SrcRcpID在派生Recipe(derived recipe)中指向源Recipe,构成来源追溯;Linked与LinkList描述Recipe之间的链接关系;Verified与VerificationID记录验证状态与凭据。除标准属性外,E42允许以UD_为前缀扩展非标属性,为设备特有参数留出标准化的扩展入口,而无需改动核心对象模型。

图2  Recipe 超类型属性

(图源:SEMI E42-0704)

在产线上,用错版本的代价很高,同一份 Name 下参数差一个版本,可能造成整批晶圆的工艺偏差。E42让所有版本同时存在、被管理和访问,并设置默认选取规则:不指定版本时,选取该 Class 与 Name 下审批级别最高的Recipe,审批级别相同时取版本最高者。具体用哪个版本,由审批级别和版本号共同决定,不靠人工记忆,也不简单取最新。版本本身是一个至少含一个字符的文本字符串,可由用户指定或由Namespace自动生成。标准对数字版本(只含数字与一个小数点、可换算为纯数字的版本号)规定了格式约束:不带小数点的整数不得以0后接其他数字开头,如“09”不允许,应写为“9”;带小数点的版本不得以小数点开头或结尾,也不得以小数点后的0结尾,如“1.”“.5”“1.670”均不允许,对应正确形式为“1”“0.5”“1.67”;版本可以是“0”但不能是“00”。由系统自动分配的版本进一步限定为不含小数点的整数,最小值为1,并按现有最高版本递增。标准只规定版本号的格式与选取规则,并不规定各段数字的工艺含义;至于以分段编号区分编辑器版本、参数变更性质等做法,属于设备厂在标准之外自行约定的版本管理策略。

集中管理和本地执行对 Recipe 的要求不同。管理侧要处理版本、审批和追溯,执行侧要保证当前这台设备能直接运行。E42 在存储与执行两个阶段,把 Recipe 区分为 Managed Recipe(受管 Recipe)与 Execution Recipe(执行 Recipe)。Managed Recipe存储在服务器Namespace(命名空间)中,处于集中管理状态;Execution Recipe存储在设备执行区(Execution Area),通常由Managed Recipe下发转换而来。Namespace是对Recipe进行管理与永久保存的逻辑概念,类似文件系统的文件夹结构,但Namespace本身不具备对外功能,只提供存储空间,权限也不在此设置。围绕Namespace,E42把操作划分为两类服务:服务端的Recipe Namespace Manager(命名空间管理器)负责Namespace与Recipe的集中管理,设备端的Recipe Executor(Recipe执行器)负责Recipe的下载、校验、执行与上传。两类服务的划分,使集中管理与本地执行在逻辑上解耦。

图3  Recipe Namespace 模型

(图源:SEMI E42-0704)

Managed Recipe 到 Execution Recipe是一次带属性映射的转换。同一份 Recipe下到不同设备,因硬件状态、校准结果不同,参数本就该有差异,这部分差异不能进入集中管理的Recipe。E42用Agent-Specific Dataset(设备专属参数集)承载这部分差异,它是与特定设备相关的一组参数,只在面向该设备转换时才带入。下发时,Namespace Manager把Managed Recipe转换为Execution Recipe,将目标设备对应的Agent-Specific Dataset带入,Body不做改变;上传时反向转换。两种形态的属性差异有明确规定:Managed Recipe的Link Param与Agent-Specific Link Param合并为单一属性ExecLinkParam;Agent-Specific Dataset的其余属性吸收为Execution Recipe属性;新增ExecAttrLength与ExecAttrChgTime记录执行侧属性长度与变更时间;在执行端具备改写Body或新建Recipe能力时,新增ChangedBody属性。此外,已验证Managed Recipe中用于链接的ExtRef与Parameters不被Executor使用、不保留在Execution Recipe中。这套转换规则保证同一份受管Recipe能够正确适配不同设备,同时使执行端的变更能够被准确记录和回传。

01

在行为层,服务端Namespace Manager提供一组完整的管理服务。Namespace的创建(Create Namespace)以name为唯一识别符,name为空或重复不允许创建;删除(Delete Namespace)支持多选,但非空Namespace不允许删除,Recipe Executor的默认Namespace建议禁止删除,每删除一个触发对应完成事件;重命名(Rename Namespace)需相应权限,Executor默认Namespace不建议重命名。此外还包括:查询Namespace剩余存储空间(Get Available Storage)、查询Recipe状态(Get Recipe Status,含写保护状态与下一个可用数字版本号)、查询最优版本(Get Recipe Version,按最高审批状态对应最高版本)、创建/更新Recipe(Create/Update Recipe)、Store(存储到指定section)、Retrieve(取回)、Copy/Rename、通用动作(General Action)、获取描述符(Get Descriptors,顺序与请求一致)、设置设备可变参数(Set Agent Recipe Variable Params,一旦设置Certified状态变为false)以及完成通知(Notify User Completion)。写保护对象拒绝更新,只读对象拒绝写入。

设备端Recipe Executor承担Recipe的执行侧操作,标准定义了下载并校验(Download and Verify)、下载(Download,可指定目标位置与是否强制覆盖)、Verify、Upload、Rename、空间查询、Delete、Select、Deselect、Get Descriptors、Change与完成通知等服务。下载的Recipe若未经Verify会立即自动校验,已验证的不重复执行;Recipe可从多个Namespace下载,识别符重复时不执行或按配置覆盖,处于selected状态的Recipe不允许任何更改。Select使Recipe进入待执行状态并锁定,Deselect用于防止错误执行,selected状态的Recipe不允许删除。执行端对Recipe的正式变更,通过Change通知回传Namespace源头,从而保持受管侧与执行侧状态一致。

02


E42本身不能直接作为成品交付,它提供的是一套判断框架。它界定对象模型、服务行为与消息接口,不涉及 Recipe Body 的具体编辑,也不规定设备特有工况。离线程序创建、跨编辑器版本迁移、设备注册与分组、具体的权限与运维策略,都需要设备厂在标准之外实现,分布式 Recipe Namespace 等方向也预留了扩展空间。对设备厂的工程师来说,这套框架有两个实际用处。一是面对工厂的 Recipe 管理需求时,可以判断哪些内容在标准内、按标准实现,哪些在标准外、需要自行设计并承担后果,减少一次性定制。二是在实现 Recipe 管理时区分主次,文件上传下载只是表层部分,五个并行状态、版本与审批的选取、设备专属参数的转换,决定设备能否真正进入产线。标准本身不包含这些具体实现,它的作用是让设备、工厂主机和上层系统采用同一套对象、服务与消息语言对接,减少这一层的反复沟通和定制。

E42主体是协议无关的,对象模型和状态机可以承载在任何通信协议上,SECS-II 只是其中一种。把服务落到SECS-II上的是子标准E42.1,它把上述服务映射到S15流,F3至F36成对承载请求与应答,完成通知经 S6F25事件报告传递。消息可以换,对象和状态的语义不能换,所以不能把E42简单理解为S15消息表。具体而言:Namespace创建/删除为F3/F4、重命名为F5/F6、空间查询为F7/F8、状态查询为F9/F10、版本查询为F11/F12、创建/更新为F13/F14、Store为F15/F16、Retrieve为F17/F18、Copy/Rename为F19/F20、通用动作为F21/F22、获取描述符为F23/F24、可变参数为F25/F26、下载为F27/F28、Verify为F29/F30、上传为F31/F32、Select为F33/F34、Deselect与删除为F35/F36。更早的S7流仅覆盖过程程序文件的上传下载,不具备完整管理语义,需要与S15并存。看消息层时,把每一对F消息对应到行为层的一项服务,异步完成事件统一通过S6F25汇集。

标准把对象、行为和消息界定清楚,具体落地则由设备控制软件承载。鼎格的半导体设备控制软件体系以设备软件平台SEPlat为运行底座,以其上的开发框架SOF固化SEMI标准的交互逻辑,Recipe管理是其中的一个组成部分,与设备控制、数据采集、物料跟踪等能力在同一平台内协同。对应E42的部分按标准的对象模型、并行状态与服务划分实现,覆盖Managed Recipe与Execution Recipe的区分、版本与审批的自动选取、设备专属参数的转换以及异步操作的完成通知,使设备侧和工厂侧对同一Recipe对象的标识和状态保持一致。整个体系的通信与集成遵循SEMI的SECS/GEM、GEM300与EDA标准集,面向半导体制程与检测设备的软件开发和工厂导入。

图5  带完成通知的消息流

(图源:SEMI E42-0704)

针对一组Recipe的长耗时操作,标准采用异步链路,以Operation ID标识在途或队列中的动作,以Link ID标识操作是否全部完成,全部完成事件发送后置为零,否则非零,逐Recipe执行后发送完成事件。标准还定义了两类默认事件:Namespace Change(Namespace的创建、删除、重命名)与Recipe Change(Recipe的创建、删除、复制、重命名、编辑)。在比对能力上,标准支持不同版本之间、以及与基准Recipe(Golden Recipe)之间的结构化比较,以呈现参数差异。

图4  Recipe Available 状态模型

(图源:SEMI E42-0704)

状态模型最能看出设备厂对E42的实现程度。有不少Recipe管理只做了文件上传下载,再给对象加几个布尔标志,没有把状态做完整。E42用 Harel状态图把一个已存在Recipe的可用状态(Recipe Available)刻画为五个并行(AND)子状态,分别对应验证、审批、保护、链接、认证五个维度,各由相应属性承载,五个维度同时成立、缺一不可。验证维度由Verified标识,Verify操作由Recipe Executor读取Recipe内容、确认其语法正确,并识别需要对外公开的元素;与之不同,Validate发生在执行前,检查参数类型与取值范围对当前设备配置是否有效。审批维度由ApprovalLevel标识授权用户赋予的审批级别。保护维度没有独立的写保护开关。ApprovalLevel与Namespace属性 RecipeReadOnlyLevel 共同决定保护状态:审批级别达到RecipeReadOnlyLevel时,Recipe进入只读状态,不能再改动。链接维度由Linked标识,main recipe经link操作收集全部外部引用、形成linked recipe set后置为已链接。认证维度由Certified标识,认证针对特定执行Agent。Certified定义在Agent-Specific Dataset中,记录该 Recipe 在特定设备上的认证级别,修改设备相关参数约束或解除链接都会使认证失效。

图片

上海鼎格信息科技有限公司(简称:鼎格工业软件)成立于2013年,是国家高新技术企业、上海市“专精特新”企业,总部位于上海市浦东新区张江国家高科技园区。

鼎格工业软件致力于中国工业自动化与智能化的融合,专注为高端装备制造业提供设备控制软件以及围绕设计、装配、试验、维保等关键业务领域的智能化解决方案。经过多年积淀,鼎格工业软件形成了三大平台:半导体设备控制软件平台、基于数字孪生技术的智能制造平台、以及基于3D可视化技术的内容管理平台。三个平台自底到顶,在半导体、航空航天、汽车、新能源等多个领域构筑起智能制造所需较为完整的工业软件产品体系。

图片

【声明】内容源于网络
0
0
鼎格工业软件
鼎格,以工业软件卓著贡献于中国工业自动化和智能化。
内容 90
粉丝 0
鼎格工业软件 鼎格,以工业软件卓著贡献于中国工业自动化和智能化。
总阅读347
粉丝0
内容90