类别

版本

使用传感器链接扩展

传感器连接扩展连接RapidMiner到OSIsoftπ体系,允许轻松提取操作数据和使用RapidMiner进程更新数据点。

Sensor Link利用πWeb API兼容API版本2017 R2及更新版本。

请注意,OSIsoft需要PI系统访问(PSA)许可证才能使用编程API,如PI Web API。特别是,API的可用性,例如,作为PI Vision安装的一部分,并不保证PSA许可证可用。

安装传感器链接扩展

安装扩展,去扩展菜单,打开RapidMiner市场(更新和扩展),并搜寻传感器连接.有关更多细节,请参见添加扩展

连接到PI Web API

Sensor Link利用了RapidMiner的连接框架。这允许集中管理连接并重用操作符之间的连接。扩展同时支持HTTP基本身份验证(用户名和密码)和Windows身份验证使用当前Windows用户(Kerberos、NTLM)。创建新的连接连接菜单:

对于任何连接,您都需要指定PI web API端点默认的根路径使用。根路径应该是数据服务器的名称。如果需要,可以在操作符参数中覆盖它。

HTTP基本身份验证

下面的连接是使用HTTP基本身份验证.它将RapidMiner连接到OSIsoft的公共测试系统

Windows身份验证

要连接到需要Windows身份验证(Kerberos)的实例,请选择Windows SSO (Kerberos / NTLM)身份验证方法:

当使用这种身份验证方法时,Sensor Link将使用当前Windows用户进行身份验证。

SSL设置和故障排除

默认情况下,如果RapidMiner识别端点使用的证书,并且证书是为端点的主机名颁发的,Sensor Link只信任安全的连接。

如果连接到内部系统时出现SSL错误,则很可能是由于这两个要求之一没有得到满足。在这种情况下,我们强烈建议首先将证书添加到RapidMiner Studio。有关更多细节,请参见请信任自签名SSL证书

或者,您可以将连接配置为信任任何自签名证书(不太安全)。此外,设置验证主机可以取消激活以信任主机名不匹配的证书。

例子

你可以找到运算符压缩数据当前值样本数据计算数据,发布的数据通过搜索π在操作面板中:

对于所有操作符,您可以通过连接输入端口或在相应的参数中选择连接来指定连接(只有在没有连接输入时才可见)。对于大多数运算符,唯一的其他强制参数是第一个数据项或表达式(性能方程)。默认情况下,PI Web API将回答最近24小时的数据。

计算数据

以下示例查询平均5分钟对于数据点芭:CONC.1而且芭:TEMP.1(指定额外的数据项).开始和结束时间参数使用相对表达式Y而且T昨天而且今天分别。有关支持的开始时间和结束时间的时间字符串的概述,请参阅Web API文档

这个查询的结果是一个类似这样的数据表:

请注意,Calculate Data只对非数字数据点提供有限的支持。只有计算方法而且良好的百分比可以与这样的点结合使用。

样本数据

本示例对数据点进行抽样芭:CONC.1芭:TEMP.1,芭:ACTIVE.1(指定额外的数据项)每隔10分钟。通过在最近的两个记录值之间进行插值来获取样本。这一次,我们使用绝对开始和结束时间:

样本数据既支持数字数据点,也支持非数字数据点。操作符将自动查找正确的类型,并将其映射到相应的RapidMiner属性类型(实数、整数和多项式)。

查询结果如下表所示:

压缩数据

压缩数据操作符可用于检索原始记录数据。圆周率数据存档可能会随着时间的推移压缩记录的数据,例如,它删除了对插值没有什么重要性的数据点。因此,操作符的名称。它的界面类似于其他操作符:

然而,它的输出不同于时间戳不一定是等距的。此外,在检索多个数据点的数据时,不能保证为不同的点返回相同的时间戳。操作符通过对时间戳执行外部连接来处理此问题,并将缺失的单元格保留为空(显示为”?”):

当前值

Current Values操作符类似于Compressed Data操作符,因为它返回原始记录数据。但顾名思义,它只返回每个数据点的最新值:

然而,当同时查询多个数据点时,由于时间戳不匹配,我们可能仍然会得到多个行:

用性能方程进行时间滤波

连接器不实现一次过滤PI数据链函数。但是,可以计算性能方程的计算时间真正的使用性能方程本身的等价表达式。

上面的例子计算表达式TimeLt(“BA: TEMP。1', '*-1h', '*', 10)每整整一小时一次。表达式本身计算记录温度的时间芭:TEMP.1过去一小时气温低于10度(以秒计):

筛选器表达式

所有数据检索操作符都支持筛选表达式。让我们回顾一下样本数据的例子操作符。如果我们只想检索其中行的数据芭:ACTIVE.1指示活动状态,我们可以通过使用过滤器来实现这一点英航:活跃。1”=“活跃”

请注意,过滤后返回的数据不再保证等距。例如,在第2行和第3行之间有20分钟的间隔,因为我们在中间删除了一个不活动的行(请参阅样本数据的例子):