本博客最初发布于cimetrix.com。
在启动我们的SECS/GEM系列之前,让我们先从解释GEM标准的关键特性之一——采集事件(Collection Events)开始。我们将首先阐述其工作原理,然后探讨为何它们在采集制造设备数据时如此高效。
什么是收藏活动?
名称中的“收集活动”两个词具有描述性。
正如“事件”一词所示,采集事件是一种通知。其目的是在设备发生值得关注的情况时通知主机。 所谓"主机",即连接设备GEM接口的工厂客户端软件。例如:收集事件可报告物料到达、耗材即将耗尽、硬件故障发生、摄像头完成物料检测、物料准备移出、腔室达到目标真空压力、加工完成等状态。设备可通过收集事件功能报告任何值得关注的事件。 GEM接口的制造商决定了主机可接收的具体采集事件类型,因此不同设备类型的可用采集事件集各不相同。
正如"采集"一词所示,采集事件同样能够在采集事件消息中发布数据。这是一种高效的数据采集形式,能在信息可用时异步提供数据。例如,报告物料到达时间的采集事件,也可同时报告该物料的条形码和位置信息。 GEM接口包含三类数据:采集事件信息(称为数据变量)、状态信息(称为状态变量)以及设备设置(称为设备常量)。GEM接口的创建者将决定每个采集事件可获取的确切信息。因此不同设备类型的采集事件所能获取的信息集各不相同。且只有当主机配置了相应报告时,可用数据才会被发送。
综上所述,采集事件不仅能告知主机何时发生事件,还能提供更详细的事件详情及设备状态信息。
一个小小的比喻
打个比方,把工厂看作老板,他们购买的设备就是员工。管理方式多种多样,正如工厂类型各异,经营方式也千差万别。你不会想被迫像别人那样经营工厂,而是希望按照自己的方式来管理。
此外,每位员工都是独特的个体,需要不同的关注程度。每位员工从事的工作也各不相同。 总体而言,所有管理者都希望掌握员工的基本信息及其工作动态。他们需要了解员工启动项目的时间和完成项目的时间。有些员工即使在最低限度的监督和汇报下也能高效工作,而另一些员工则需要全面的监督和详细的汇报。GEM系统使工厂能够针对每台设备采取个性化管理。具体而言,GEM数据采集功能为设备提供了反馈工作状态的途径。
主机必须设置报告规则并进行适当调整。例如,有时管理者并不关心员工何时去洗手间,但对于特定员工,管理者可能需要知晓。在GEM界面中,主机可自主选择哪些通知需要触发,哪些则无需触发。
有时管理者只需了解员工的到岗、离岗、休息开始与结束等基本动态。而另一些时候,管理者需要更详细的信息,例如员工完成了哪些项目、耗时多久、项目关键成果等。同样地,GEM不仅能让主管追踪事件发生的时间节点,更能提供活动详情。GEM报告正是高效满足这一需求的解决方案。
为什么需要这个功能?
简而言之,采集事件使您能够实时追踪设备运行状态。无论工厂追求何种程度的智能制造,抑或单纯希望提升生产效率,首要需求便是具备设备运行状态追踪能力——而采集事件正是为此而生。 您可追踪设备利用率、物料流转、加工里程碑、预测性维护的活动计数周期、耗材使用情况,以及任何与已发布的采集事件相关的数据。此类信息的应用场景可谓无穷无尽。
有时采集事件也用于实现设备需要从主机获取信息或获得许可才能继续操作的场景。采集事件会告知主机设备何时已准备好接收主机指令或许可。
如何操作集合事件通知?
设备的GEM接口可发布多种不同的采集事件。主机通常不希望同时接收所有事件通知,且无需如此。采集事件采用发布/订阅设计模式,具体体现为以下两种方式:
基础发布/订阅通知
主机订阅特定采集事件,以便在事件发生时接收通知。通过订阅,主机可启用或禁用GEM界面中每个可用采集事件的报告功能。设备会在采集事件发生时实时发布相关信息。
事件报告发布/订阅数据收集
默认情况下,采集事件消息不会包含任何数据。订阅机制还允许主机决定在每个启用的采集事件消息中包含哪些数据。主机定义报告并将报告与采集事件关联,从而实现数据订阅。每个采集事件可关联不同的报告,报告也可在多个采集事件间共享。 报告可包含与采集事件关联的任意数据变量、状态变量及设备常量。设备将发布包含请求数据的采集事件。
识别
设备发布的每个采集事件均具有唯一的ID编号用于识别。主机软件在启用或禁用采集事件时使用该ID编号。设备在发送采集事件消息时使用该ID编号。每个可用数据变量、状态变量和设备常量也具有唯一的ID编号。当主机定义报告时,会为该报告分配唯一的ID编号。
经纪人
处理所有采集事件发布/订阅的中介程序内置于设备的GEM接口中,属于设备系统组成部分。主机(客户端)与GEM接口之间的通信采用标准化SECS/GEM通信协议。 GEM接口与设备其余硬件及软件(即采集事件与数据的源头)之间的通信可采用任何适宜的技术方案,只要GEM接口能正常运行且性能满足要求即可。
这意味着消息仅在主机订阅时才会从设备发送至主机。将消息代理作为设备和GEM接口的一部分,使得GEM接口效率极高,其占用的带宽远低于采用外部消息代理的协议——后者要求所有消息和数据必须持续发送至消息代理。

坚韧
集合事件订阅通过GEM接口进行持久化存储。因此,当主机断开连接后重新连接,或设备重启时,GEM接口将记住所有订阅的配置设置。
使用哪些消息?
以下是与采集事件相关的主要消息的摘要。请注意,“S”代表“流”,“F”代表“功能”。流号与功能号共同构成消息的唯一标识符。
| 消息ID | 方向 | 描述 |
| S2F37 | 主机 -> 设备 | 启用或禁用一组收集事件的报告功能。
空列表将启用或禁用所有采集事件的报告功能。在表征GEM接口时,启用所有采集事件报告非常有用。在启用所需采集事件报告之前,禁用所有采集事件则更为实用。 |
| S2F33 | 主机 -> 设备 | 定义一个或多个报告。
空列表将删除所有报告以及报告与收集事件的关联链接。删除所有报告在重置订阅时非常有用,或在首次连接到GEM接口时覆盖默认订阅。 |
| S2F35 | 主机 -> 设备 | 将一个或多个报告链接到一组收集事件。
若报告已关联至某个收集事件,则需先解除关联,再将所有收集事件合并至一条消息中。空列表操作将移除收集事件中的报告关联。 |
| S1F23 | 主机 -> 设备 | 请求获取可用的采集事件列表以及每个采集事件的可用数据。 |
| 第六季第十一集 | 设备 -> 主机 | 集合事件消息。
若未关联任何报告,消息仅包含采集事件ID号。若采集事件关联一个或多个报告,则消息中将包含每个关联报告的报告数据。 |
关于催收活动的常见问题解答
收集事件需要多少带宽?
这取决于多个因素。
- 主机启用的收集事件数量。
- 与收集事件关联的数据报告的大小。
- 设备触发已启用收集事件的频率。这取决于收集事件的含义。
收集事件能以多快的速度被触发?
GEM标准未限制采集事件的频率,且采用标准通信硬件。换言之,通过改进硬件配置,可实现更快的采集事件处理速度。
GEM支持两种协议:SECS-I和HSMS。SECS-I基于RS-232串行通信,因此如今已很少使用。此类实现无法快速触发采集事件。
HSMS基于网络通信。由于串行通信速度较慢,目前绝大多数GEM实现都采用HSMS。GEM能高效利用TCP/IP协议。数据采集事件的可能频率取决于网络硬件速度、设备计算机性能及主机计算机性能。与多数协议类似,通常处理消息所需的计算机资源往往多于生成消息所需的资源。
生成收集事件的速度也取决于与收集事件关联的数据报告。例如,如果数据报告较大(如10MB),这将影响性能。
为什么我没有收到收集事件消息?
主机可能无法接收收集事件消息的原因有以下几点:
- 主机和设备必须通过成功的S1F13/S1F14交换建立GEM通信。
- GEM控制状态必须处于在线状态。它不能处于主机离线或设备离线状态。
- GEM 缓冲必须处于非活动状态。在缓冲处于活动状态时禁用缓冲不会使其转为非活动状态。若不需要缓冲的消息,请使用消息 S6F23 清除缓冲。若需要缓冲的消息,请使用 S6F23 反复请求直至缓冲状态转为非活动状态。
- 必须启用采集事件。使用S1F3检查“EventsEnabled”状态变量,以确认采集事件是否启用。使用消息S2F37启用采集事件。
- 收集事件活动必须发生。例如,若物料未实际到达,则报告物料到达的收集事件将永远不会触发。若该活动发生且满足上述条件,则表明设备的GEM接口存在缺陷。
如果设备的GEM接口未发布我需要的采集事件,该怎么办?
请设备供应商添加所需的采集事件。设备供应商很难准确预测工厂所需的所有采集事件。设备供应商需要在工厂升级其GEM接口软件。
关联到收集事件时,数据报告的最大规模是多少?
GEM允许单个数据变量值或状态变量值采用任何数据类型的数组或结构形式,包括浮点数、字符串或整数。单个数组大小限制为16.777215 MB。总消息大小限制为4.294967295 GB。