类别

版本

您正在查看9.9 -版的RapidMiner Studio文档点击这里查看最新版本

使用传感器链接扩展

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

传感器链路利用PI Web API并且与API版本2017 R2及更新版本兼容。

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

安装Sensor Link扩展

要安装扩展,请转到扩展菜单,打开RapidMiner市场(更新和扩展),并搜索传感器连接.有关更多详细信息,请参见添加扩展

连接到PI Web API

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

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

HTTP基本认证

下面的连接是使用HTTP基本认证.它将RapidMiner连接到OSIsoft的公开测试系统

Windows身份验证

要连接到需要Windows身份验证(Kerberos)的实例,请选择Windows单点登录(Kerberos/NTLM)作为认证方法:

使用此认证方法时,Sensor Link将使用当前Windows用户进行认证。

SSL设置和故障排除

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

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

或者,您可以将连接配置为信任任何自签名证书(安全性较差)。此外,背景验证主机可以停用以信任主机名不匹配的证书。

例子

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

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

计算数据

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

查询得到的数据表如下所示:

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

样本数据

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

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

查询得到的数据表如下:

压缩数据

压缩数据操作符可用于检索原始记录数据。PI数据存档可能会随着时间压缩记录的数据,例如,它会删除对插值不太重要的数据点。因此,操作符的名称。其接口与其他操作符类似:

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

当前值

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

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

具有性能方程的时间滤波

连接器不实现一次过滤从PI数据链已知的功能。但是,可以计算性能方程计算的时间量真正的在性能方程本身中使用等效表达式。

上面的示例对表达式求值TimeLt(“BA: TEMP。1', '*-1h', '*', 10)每一小时一次。表达式本身计算记录温度的时间量芭:TEMP.1在最后一小时(以秒计)低于10度:

筛选器表达式

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

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