在开始我们的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接口仍旧记得所有订阅的设置。

GEM使用哪些消息?

下面是与收集事件相关的每个主要消息的摘要。注意,“S”表示“流”,“F”表示“函数”。流和函数号一起惟一地标识一个消息。

消息编号

方向

描述

S2F37

主机->设备

启用或禁用一组收集事件的报告。

空列表将启用或禁用所有收集事件的报告。在描述GEM接口时,启用所有收集事件报告非常有用。在启用所需收集事件的报告之前,禁用所有收集事件是非常有用的。

S2F33

主机->设备

定义一个或多个报告。

空列表将删除所有报告以及指向收集事件的报告链接。当试图重置订阅或首次连接到GEM接口并覆盖默认订阅时,删除所有报告功能非常有用。

S2F35

主机->设备

将一个或多个报告链接到一组收集事件。

如果报表已链接到一个收集事件,则必须移除链接,然后在一条消息中链接所有收集事件。空列表将从收集事件中删除报表链接。

S1F23

主机->设备

请求获取可用收集事件列表以及每个收集事件的可用数据列表。

S6F11

设备->主机

收集事件消息。

如果没有链接任何报告,则消息将只包含收集事件的ID。如果一个或多个报告链接到集合事件,则消息中将包含每个链接报告的报告数据。

关乎收集事件的常见问题

收集事件需要多少带宽?

这取决于几个因素。

1. 主机启用的收集事件的数量。

2. 连接到收集事件的数据报告的大小。

3.设备触发启用的收集事件的频率。这取决于收集事件的含义。

收集事件触发的速度有多快?

GEM标准使用标准通信硬件,并不限制收集事件的频率。换句话说,通过改进硬件,可以加快收集事件的速度。

GEM支持两种协议:SECS-I和HSMS。SECS-I基于RS-232串行通信,因此目前很少使用。这样的实现无法非常快地触发收集事件。

HSMS基于网络通信。由于串行通信很慢,所以目前大多数GEM实现都使用HSMS。GEM可以非常有效地使用TCP/IP。收集事件的可能频率取决于网络硬件的速度、设备计算机性能和主机性能。与大多数协议一样,使用消息通常比生成消息需要更多的计算机资源。

生成收集事件的速度还取决于链接到收集事件的数据报告。例如,如果数据报告很大,比如10mb,这将影响性能。

为什么我无法收到收集事件消息?

主机无法收到收集事件消息的可能原因有几个。

1. 主机和设备必须使用成功的S1F13/S1F14交换建立GEM通信。

2. GEM控制状态必须在线。它不能处于主机-脱机或设备-脱机状态。

3. GEM Spooling 必须是非活跃的。在Spooling已经活跃时时禁用该功能并不会使Spooling变为活跃。如果不需要Spooling消息,则需要使用消息S6F23清除Spooling内容。如果需要假脱机消息,那么使用S6F23逐个获取它们,直到Spooling机状态变为非活跃状态。

4. 必须启用收集事件。使用S1F3检查“EventsEnabled”状态变量以确认收集事件已启用。使用消息S2F37启用收集事件。

5. 需要发生收集事件活动。例如,如果材料没有实际到达,那么当材料到达时将永远不会发生收集事件报告。如果活动发生且满足上述条件,则设备GEM接口存在缺陷。

如果设备的GEM接口没有发布我需要的收集事件,该怎么办?

请设备供应商添加所需的收集事件。设备供应商很难准确预测工厂需要的所有收集事件。设备供应商需要升级其在工厂中的GEM接口软件。

当链接到收集事件时,数据报告的大小是多少?

GEM允许单个数据变量值或状态变量的值为任意数据类型的数组或结构体,包括浮点数、字符串或整数。单个数组的大小限制为16.777215 MB,消息的总大小限制为4.294967295 GB。

【翻译】SECS GEM系列之二:GEM 收集事件相关推荐

  1. Android View系列(二):事件分发机制源码解析

    概述 在介绍点击事件规则之前,我们需要知道我们分析的是MotionEvent,即点击事件,所谓的事件分发就是对MotionEvent事件的分发过程,即当一个MotionEvent生成以后,系统需要把这 ...

  2. Highcharts翻译系列十二:gauge测量图

    Highcharts翻译系列十二:gauge测量图 说明 测量图需要highcharts-more.js的支持 属性 参数 描述 默认值 animation 动画 true color 主要颜色或序列 ...

  3. 阿里云RPA(机器人流程自动化)干货系列之二:认识RPA(下)

    2019独角兽企业重金招聘Python工程师标准>>> 导读:本文是阿里云RPA(机器人流程自动化)干货系列之二,主要介绍了RPA的发展齐纳经和主要使用场景有哪些,目前国内外主流的R ...

  4. BizTalk学习笔记系列之二:实例说明如何使用BizTalk

    BizTalk学习笔记系列之二:实例说明如何使用BizTalk --.BizTalk学习笔记系列之二<?XML:NAMESPACE PREFIX = O /> Aaron.Gao,2006 ...

  5. 【链接攻击,差分攻击,去标识化代码实现】差分隐私代码实现系列(二)

    差分隐私代码实现系列(二) 写在前面的话 去识别化(De-identification) 数据处理 去识别化操作 链接攻击 Karrie特别吗? 我们可以重新识别多少人? 聚合(Aggregation ...

  6. perp系列之二:perp源码README

    perp系列之二:perp源码README 版本说明 版本 作者 日期 备注 0.1 ZY 2019.5.29 初稿 目录 文章目录 perp系列之二:perp源码README 版本说明 目录 per ...

  7. QT5系列教程二---基于qcustomplot的QT5 GUI串口收发绘图软件实现

    QT5系列教程二---基于qcustomplot的QT5 GUI串口收发绘图软件实现 结构 UI部分 代码部分 step1:实现串口数据接受 串口接受数据格式 在`.pro`文件中添加`serialp ...

  8. 以太坊构建DApps系列教程(二):构建TNS代币

    在本系列关于使用以太坊构建DApps教程的第1部分中,我们引导大家做了两个版本的本地区块链进行开发:一个Ganache版本和一个完整的私有PoA版本. 在这一部分中,我们将深入研究并构建我们的TNS代 ...

  9. LXD 2.0系列之二:LXD安装和配置

    本文讲的是LXD 2.0系列之二:LXD安装和配置, [编者的话] 第三方调查报告 显示LXD有潜质成为一款受欢迎的第三方容器管理工具.本文是LXD核心维护者.加拿大程序员Stéphane Grabe ...

最新文章

  1. Python相对导入导致SystemError的解决方案(译)
  2. Python中对象是否可以迭代iterable
  3. 转:WinForm程序中两份mdf文件问题的解决方法
  4. C语言之利用,函数的命名及变量的作用域实现两个数之间的交换。
  5. 在Windows上创建CUDA C程序
  6. JavaScript学习笔记(六)
  7. onConfigurationChanged方法的使用
  8. UDP实时图像传输进阶篇——1080P视频传输
  9. python创建一个列表、用于存储同学姓名_python学习日记04,Python
  10. structs2框架学习一(启动过程和各种配置)
  11. DRGs与RBRVS的理解
  12. Summer Project
  13. java doc转图片_使用Java实现word文档转图片 在线预览
  14. [转]OpenSynergy的COQOS Hypervisor SDK-实现仪表和车载信息娱乐系统共享显示
  15. centos8 批量修改文件名字
  16. 2021学前端真的没前途了吗?
  17. D-Link DAP-1860:远程命令执行和认证绕过漏洞
  18. 3D_systems_touch控制Dobot魔术师
  19. element 日期选择器 只能选择今天之前或选择今天之后的日期
  20. 软考之运筹学-伏格尔计算方法

热门文章

  1. idea mybatisplus 插件使用
  2. Codeforces Round #645 (Div. 2) E - Are You Fired? 题解(思维)
  3. html 自动包裹内容,CSS 实现div宽度根据内容自适应
  4. UART UVM验证平台平台搭建总结
  5. APB_SPI Master IP验证平台结构
  6. 自主研发智能扭蛋机,快乐扭蛋获数百万 Pre-A 轮融资
  7. Netty-心跳检测的作用和实现方法
  8. vxe-table的序号连续性
  9. 拆解学习比亚迪汉EV电池包BDU里面的高压部件
  10. Arduino 蜂鸣器