新的OPC-UA连接发布

David_ADavid_A 管理员、版主、员工、RMResearcher、会员职位:294RM研究
2021年11月编辑 帮助

总结

OPC统一架构(OPC-UA是一种非常流行的机器对机器通信协议。它将工业设备和物联网(IoT)设备与数据收集服务器连接起来,并可以深入了解车间级数据物联网设备可以连接到各种设备类型,例如化工厂油箱中的温度和压力传感器以及包装厂中的传送带速度传感器。新的RapidMinerOPC-UA连接器扩展与RapidMiner Studio 9.10版本同时发布,分析师和数据科学家可以利用这个庞大的工业工厂数据池。该扩展提供了创建和管理与OPC-UA服务器的连接的功能,以及帮助工程师发现和将有用的数据源集成到RapidMiner进程中的新操作符。

技术概述

OPC-UA扩展使用Eclipse Foundation项目的开源堆栈米洛与OPC-UA服务器建立连接。服务器端点URL存储在一个新的连接对象中,可以对连接进行测试,以确保服务器能够与本地Studio客户机建立连接。

浏览Nodes操作符遍历服务器上所有连接的节点,并返回它们的列表,包括它们的数据类型,如果被选中,还会返回一个样例值。有几件事需要考虑:
  • 节点结构相当复杂;它具有对同一节点的多个引用的分层布局。这就是为什么在大型服务器上爬行可能需要很长时间并返回重复条目的原因。
  • 并非所有节点都是人类可解释的,特别是在名称空间0中,并且仅用于诊断和内部设置。

读OPC-UA操作员连接到一个特定的节点并收集新的传入数据。它将在指定的时间间隔和持续时间内请求值。注意:操作符将等待时间完成后才返回任何结果。因此,我们建议在短时间内频繁运行此操作符(例如使用AI集线器调度器),而不是长时间等待一个大结果。

R领导OPC-UA历史Y操作符允许用户从节点检索存储的历史事件。给定一个特定的时间窗口,操作员将收集指定数量的数据点。注意:OPC-UA以反向时间顺序读取数据,因此它从开始日期“向后”直到结束日期)。如果用户检索频率高或变化缓慢的数据,我们建议跳过一些值,例如每隔一个数据点读取一次。为了确保获得特定时间段内的所有值,只需提供足够多的数据点,因为当没有更多可用数据时,运算符将停止。
注意:并非所有节点都具有存储历史数据的功能,例如:HistoryRead”。如果您尝试从没有此属性的节点读取存储的数据,您将看到如下错误消息:


图1:尝试从不存储数据的节点读取历史数据时的错误消息。


实际演示

让我们看看如何使用OPC-UA连接器的实用方法。
首先,我们创建一个到公开可用的演示服务器的连接:

opc.tcp: / / opcuademo.sterfive.com: 26543

然后检查连接是否可以建立:


图2:到公共OPC-UA服务器的成功连接测试


我们可以选择开始扫描所有可用的节点,但是我们采取了一个捷径,只关注生产名称空间1上nodeID为1001的节点。这是服务器的演示资产:带有一些传感器的压力罐。
从节点读取数据的Browse Nodes操作符(ns = 1,我= 1184)节点看起来像这样:



图3:浏览节点的结果,显示链接到该资产的所有子节点。

对我们来说,最有趣的属性是Pressure (ns=1;i=1185),它提供了储罐中当前压力的数值。
我们现在使用Read OPC-UA操作符开始收集新的传入传感器读数,并立即在RapidMiner中使用它们。我们配置操作员在10秒的时间内收集20个测量值:


图4:压力传感器的实时数据值。


现在,在对数据有了一些了解之后,我们决定分析更多的数据点,但不等待新的数据。使用Read OPC-UA历史操作符,我们可以从过去的事件中收集存储的数据。同样,并非所有服务器和节点都支持此功能,但在本例中,压力节点具有过去几分钟的历史数据(记住,这是一个公共服务器,仅存储短时间的事件;在实时系统中,数据可以追溯到几个月或几年前)。
我们选择当前时间(写文章的时候)作为开始时间,并在几个小时前选择结束时间。我们还选择每10次测量才检索一次,这样仍然可以获得2秒的时间分辨率:


图5:同一压力传感器较长时间内采集的历史数据。

例如,有了历史数据,我们现在可以建立一个异常检测模型,将新事件与过去的数据进行比较,看看它们是否在预期的分布范围内。我们训练了一个单变量异常检测模型(来自Operator Toolbox扩展[链接]),并将该模型存储在RapidMiner存储库中,用于下一步部署,以查看新的传感器值是否与先前观察到的值表现不同。
所以现在我们在很短的时间内收集新数据,比如10秒,并计算它们各自的异常值:



图6:基于建立在历史数据上的模型,新收集的实时数据,带有异常值评分。

我们看到这段时间的压力值被认为是正常的,但我们可以计算出一个最大的异常值,然后实时监控这些分数,如果分数超过这个阈值就发出警报。为了实现这一点,我们可以将操作人员置于循环中,并让流程在本地运行,或者使用AI Hub以获得更具可扩展性和可靠性的解决方案。我们可以将评分过程安排为定期运行,或者将其放置在实时评分代理(RTSA)中,以实现低延迟、按需部署。


术语

OPC-UA服务器
管理OPC-UA基础设施的实例。它托管所有管理组件并存储相关资产收集的数据。确切的体系结构和可用的功能可能各不相同,特别是许多商业供应商销售他们自己的专有版本。
端点URL
指向特定OPC-UA服务器的URL。url通常以“opc”开头。tcp://"作为协议,后跟IP或别名,加上端口号和其他标识符。
例子:
•opc.tcp: / / localhost: 26543 / UA / MyLittleServer
•opc.tcp: / / opcuademo.sterfive.com: 26543

名称空间标识
以整数形式表示的服务器的Top Level ID
名称空间0通常用于服务器的系统级别(状态级别、诊断级别、引用级别),而级别1、2、…是用户定义的用于注册资产(如机器)的名称空间。

节点ID
节点ID是命名空间中资产的唯一标识符。
节点id有以下几种类型:
  • 数字
  • 字符串
  • GUID
  • 字节字符串
数字和字符串类型是最常用的。

节点ID命名模式
常用的节点id命名模式如下:
ns = 0;我= 1158ns = 1 = VesselPressure
第一部分是名称空间地址”ns =,后跟命名空间的整数值。第二部分是节点ID及其前缀类型:
  • I =数字
  • S =字符串
  • g = GUID
  • 字节串
在RapidMiner中,可以输入名称空间和节点id作为单独的整数值,也可以直接输入完整的id作为字符串。

MartinLiebig lionelderkrikor amitkumar_bidsp

答案

  • David_ADavid_A 管理员、版主、员工、RMResearcher、会员职位:294RM研究
    2021年8月编辑
    快速的更新:

    演示服务器的数据结构似乎发生了变化。

    只需对这两个新节点采用节点id:
    • 压力容器:ns=1;i=1184
    • 压力:ns=1;i=1185

  • David_ADavid_A 管理员、版主、员工、RMResearcher、会员职位:294RM研究
    新版本发布


    Read History现在支持延续点来检索大量存储的数据。
    从用户的角度来看,没有任何变化,但是结果不再受到每个请求的服务器响应限制的限制。
登录注册置评。