SECS/GEM 确定了半导体、电子和光伏行业常用的通信接口类型,该接口已由非营利性行业协会 SEMI 标准化。此篇文章会传达对 SECS/GEM 的基本功能和范围的理解,而不提供基本协议和数据格式的详细信息。
SECS 是半导体设备通信标准的首字母缩略词。GEM 是指 SEMI E30 标准,它使用 SEMI E5标准中定义的消息类型的子集来描述设备行为和通信的通用模型。SECS/GEM 接口的部署通常会使用 SEMI 标准 E37 和 E37.1 指定的 TCP/IP 网络,但标准 E4 中也可使用 RS-232 串行连接。后者在较旧设备中更为常见。SEMI 标准具有速记名称及其官方标识符,因此 E4、E5 和 E37 也分别称为 SECS-I、SECS-II 和 HSMS。
平台独立性
SECS/GEM 描述了通过独立于任何操作系统或编程语言的网络或串行电缆连接进行双向通信。通常连接的主机侧在工厂提供的计算机系统上执行,连接的设备侧在设备制造商提供的控制器计算机上运行。这些计算机系统及其安装的软件是完全独立的 - 他们可能使用不同的操作系统,这是通常的情况,每个系统上的SECS/GEM软件是由不同的各方编写的。这是标准的价值和真正的互操作性 - 工厂不限于使用专有操作系统或购买设备供应商提供的专有接口包。
连接
SECS 使用单个连接描述主机与设备之间的通信。HSMS 是指使用 TCP/IP 的网络连接。SECS-I 是指使用 RS-232 串行端口的连接。在原始概念中,并且仍然是最常见的方案,设备提供单个 SECS 接口,供单个主机独家使用。SECS 定义的消息类型是部分不对称的 - 某些消息类型仅定义为主机使用,其他消息类型仅针对设备定义,但许多消息类型定义为任何一方的相同使用。由于 SECS 可以是将子设备集成到制造单元中的有效手段,因此也存在设备以主机角色连接到子设备,并且向工厂主机提供集成设备接口的情况。使用 HSMS 的网络连接设备通常为炉管等独立模块提供独立的 SECS 连接。但是,SECS 标准中规定通过调节每个邮件中的设备识别值来共享连接。不建议在新的部署中采用连接共享的做法,通常仅使用较旧的 RS-232 系统。一旦建立连接,主机和设备之间就会双向交换消息。通常,连接会长时间保持,只有在设备或主机重新启动时才会中断。与繁忙的 Web 服务器相比,通常的 SECS 连接对网络带宽的使用相当轻。在典型的台式计算机上运行数十个 SECS 接口连接是可行的。
SECS-II 协议
E5 标准描述了 SECS 的核心消息类型以及交换数据的格式。SECS 使用数据项目的紧凑、自描述的二进制表示。邮件由头数据和可选消息数据项目组成。在头数据中,有一个称为流的整数代码和另一个称为函数的整数代码。流和功能一起表示消息的类型或含义。SECS 消息类型按流分类,例如流 1 处理设备状态,流 6 处理设备事件的数据收集和监控。
可以发送消息,无论是否预期回复消息。对于消息对话中使用的函数值存在约定。独立或异步启动用于发送的消息具有奇怪的函数值,称为"主消息"。作为对收到邮件的回复发送的消息称为次要消息,函数值是一个偶数,比主邮件中收到的函数值多一个。
发件人设置的消息头中有一个唯一的 4 字组整数,用于将次要回复消息与正在回复的主要消息关联。这样,无需等待每个回复即可发送任何流和功能的多个消息,并且仍然能够关联异步接收或无序接收的回复消息。现代 SECS 软件有望连续处理接收多种类型的消息,即使每条邮件可能需要接收方未发送的单独回复。此外,回复邮件的发送顺序可能与收到的顺序不同。此功能称为支持并发式公开交易。较旧的 RS-232 软件可能限制对同时进行公开交易的支持,在这种情况下,发件人可能需要等待回复,然后再发送另一个需要回复的主要消息。
SECS-II 消息类型
E5 标准是一个长文档,定义的消息类型和数据项目比任何接口工具都多得多。此外,对于给定消息类型,也具有不同格式的复杂性,数据项目的不同数据类型表示也是可能的。其他 SEMI 标准用于特殊用途的附加 SECS-II 消息类型。创业板标准E30的创建旨在为E5子集的部署提供指导,重点是一组核心消息类型,减少消息和数据项目格式的变化。创业板标准还描述了将 SECS 消息与设备操作、控制和行为标准化的情景和状态模型。新兴的光伏行业标准 #4557 草案正在发挥类似于创业板的作用,为留下 RS-232 支持等 SECS 的过时功能提供了重要指导,并引导人们远离光伏行业不需要的复杂消息类型。
标准中定义的消息类型涵盖广泛的功能,大多数消息类型被定义为特定用途,但有些则更为一般。特别是,在标准中将用于向具有可选参数的设备发送命令调用的邮件类型定义为远程命令。在另一个方向上,设备可以出于任何特定原因发布数据收集事件,并在事件报告中提供任意的数据项目和值。这些相当通用的机制可以通过各种方式与标准已经指定的基本消息类型一起发挥作用。SECS 还提供了一系列流和功能值,这些值可用于在不需要使用预定义消息类型时自定义使用的情况。
SECS/GEM概念模型
标准接口的好处之一是,不同的设备以相同的一般方式融入工厂,具有相同的概念模型。以下是通过交换 SECS 消息看到的设备的概念视图。
变量
SECS 识别三类可变数据项目。这些数据项目的值以特定消息类型传递,如数据收集事件报告。
状态变量是传达给主机的仅读数值,如传感器读数或时钟值。状态变量还可以包括描述设备的数据,例如当前启用用于报告的数据收集事件列表。
数据值变量类似于状态变量,只是可读取其值可以传达给主机的数据项目。区别在于数据值变量并不总是具有有效值。例如,根据标准,有一个名为"报警ID"的数据值变量。此变量具有最新报警条件的标识符,但可能未发生报警状态。以下是数据值变量瞬时性上的一个很好的点。假设您几乎同时感觉到了两种不同的报警条件,并且两种情况都由主机配置为事件报告。需要仔细设计报警处理和事件报告逻辑,以传达每个报警报告中报警变量的正确值。第二点是,主机不应为后续邮件中的任何瞬态事件请求额外的上下文信息,因为较新的条件可能已替换了较早的上下文。主机应充分利用支持动态事件报告定义的 SECS/GEM 功能,并在单个事件报告消息中获取事件的所有所需上下文数据值。
第三类可变项目称为设备常数值。此术语用词不当,因为这些值不是恒定的 - 这些值是主机能够在设备指定的范围内更改的值。设备常数仅指定为单个值,而不是值或值阵列列表。这种差异旨在促进简单和正确的使用,因为它们在设备控制中的作用。
SECS 标准提供不同的消息类型,这些消息类型不等同于主机处理这些可变类型。可以发现已部署的状态变量和设备常量值并查询其值,但没有发现数据值变量的标准消息。休谟提供的设备软件实现了状态变量,以便提供此信息。
事件报告
事件报告消息使设备能够通知主机事件的通过,例如处理完成或状态更改。较旧的设备通常提供包含一组固定可变值的预定义事件报告。现代方法是设备支持动态事件报告,使主机能够配置与事件报告通信的集中包含哪些可变数据项目。事件报告机制是通用和强大的。例如,在下载过程程序后,它可以用作将流程程序的验证结果作为异步事件进行通信。最常见的事件表示创业板标准中详细描述的过程状态变化和控制状态变化。
报警报告
警报不同于事件,因为它表示具有一组和清晰状态的不良条件。例如,如果输入气压低于所需量,则依赖压缩空气输入的工艺工具可能会发出警报。如果气压恢复,将发送警报清晰条件信息。创业板要求将警报集和报警清晰过渡报告为数据收集事件。这是一个理想的功能,因为它允许主机使用相同的动态事件报告机制和软件逻辑来捕获报警条件和上下文数据。
控制状态模型
GEM指定了一种控制状态模型,该模型对于以安全的方式将操作员操作与自动化集成是有意义的。主机不能对设备进行远程控制,除非设备允许。SECS 接口是离线或在线的概念还规定了常见场景,例如执行维护或流程资格认证活动,而通常的主机通信被绕过。
作业计划
支持远程处理控制的简单设备可以使用一组设备常数来定义处理设置点。更先进的设备可以使用流程程序或食谱。这些术语在行业中经常可互换使用,但在 SECS 标准中确实具有独特的含义。流程计划是具有标识符并指定材料处理的设备特定数据集。流 7 中定义了用于发现设备上的流程程序、将流程程序传输到主机(上传)或设备(下载)或删除设备中的流程程序的作业类型。过程程序通常纵为二进制序列,而主机不了解其设备特定格式。但是,对于按标准指定的"格式化过程"程序程序,有定义的邮件。T 他术语"Recipe"用于使用流 15 消息操作并在标准 E42 中描述的更复杂的数据集,或用于使用流 19 消息操作并在标准 E139 中描述的复杂数据集。这些类型的食谱旨在满足更复杂的设备的需求,这些设备可能具有可调处理参数,或者可能具有多个具有独立控制处理的流程室。此外,这些标准还提供了属性信息,如描述和作者价值,以便当只有标识符知道时,就可以更容易地确定食谱的使用情况。
远程命令
设备上的 SECS/GEM 接口可能使主机能够通过发送远程命令来控制设备操作,例如处理。从概念上讲,远程命令类似于编程程序调用 - 指示了一个动作,并且能够将数据项目传递为指示操作的参数值。示例可能是开始执行指定的流程程序。作为一般声明,自动化工厂希望能够使用 SECS/GEM 接口执行工具用户界面上提供的任何操作,并且远程命令具有实现此功能所需的灵活性。设备提供商花费的时间和精力支持远程命令,深受工厂用户的赞赏。
追踪报告
追踪报告是一项功能,提供选定可变值的定期报告。通常,人们对此功能的价值的期望值高于所要求的值,因为它可以支持令人印象深刻的演示。SECS 界面不能依赖实时、确定性性能,因此缺乏将此功能用于精确端点检测或类似实时控制的能力。跟踪报告的局限性部分是由于设备系统内计算机、控制器、智能仪器和软件流程的激增。一个控制程序在单台计算机上运行,并立即同步访问所有相关信息的心理画面过于简单化和错误。需要从一开始就在控制系统中规划和设计数据收集过程中的各种传感器读数之间的精度,以及数据收集与过程启动的同步,以支持准确、精确的报告。一般来说,通过 SECS追踪报告报告的传感器数据不能期望其质量和价值通过附加仪器获得。
终端服务
SECS 还包括支持显示和确认短消息的消息类型。这是另一个通常支持演示和示例程序的功能,但在生产中使用较少。一家在自动化方面进行了投资并积极使用 SECS 接口的工厂正在尽最大努力摆脱依赖显示消息和操作员确认的生产场景。此外,在通常的工厂设置中,有许多不同类型的生产工具,查看和确认终端消息的菜单导航可能不同,并造成培训问题,即使每个人都使用相同的语言。因此,如果需要操作员交互,它几乎总是使用工厂部署的操作员站软件进行,而不是每个设备供应商。
诊断功能
SECS 和自动化应用程序的复杂性总体上足以支持该领域的问题并不罕见。有时,问题只是理解的问题之一,但可能会有问题与非标准或越野车实施,特别是与旧设备或当一个成熟的工具组尚未使用。因此,SECS/GEM 接口软件无法正确工作 - 还必须有功能来捕获不同级别的通信交互,以便进行诊断。休谟软件产品具有诊断的示范功能。在 SECS 界面上交换的数据可以在按日期组织的日志文件中自动捕获,并保存在压缩的存档文件中。这允许在事后很久进行审查或调查。对于交互式使用,现场人员可以实时显示正在交换的 SECS 消息数据,并完全控制显示的细节和数据解释级别。显示的数据可以轻松保存到文件中,以便稍后查看。还可以通过局域网远程访问诊断功能。远程使用诊断功能对于可能从办公室访问工厂系统的主机侧用户来说是一种更常见的情况。通常,工厂是防火墙,供应商无法远程访问设备,即使 VPN 和类似的网络安全产品可以提供安全访问。
软件集成架构
设备供应商通过设计其控制系统软件来规划 SECS/GEM 集成,以便实际工具控制在逻辑上与用户界面分离。这为使用自动化接口共享设备控制提供了所需的灵活性。
在主机方面,用于监督控制和监控的工厂架构通常会定义设备集成的"驱动"级别。驱动程序级别软件封装设备变体,以便向上层软件提供统一的命令界面。来自设备的警报和事件报告消息可以在将其传递到一般监控软件之前进行映射或过滤。事件报告的数据可由驱动程序与上下文信息相结合收集,并发送到恒定数据库以供以后分析和报告。休谟主机库为驾驶员提供了一个高级的起点,其内置功能用于处理事件报告和为事件和变量分配虚拟名称。此外,包含休谟 DMH 消息队列系统可能是一个关键功能。您不能关闭并重新启动整个工厂以部署新的或更新的驱动程序,如果驱动程序不在线,则需要优雅地处理故障。出于这些原因和其他原因,在将驱动程序集成到分布式工厂系统中时,首选消息队列界面。