边缘工业物联网设备的预测性维护
作者:Jason Myers / 用例
2023 年 3 月 22 日
导航至
在边缘工作
在工业运营中,时间就是金钱。流程和机械效率越高,对业务就越有利。然而,为工业机器提供主动监控和维护并非易事。随着这些机器变得越来越复杂和分布式,情况尤其如此。在分布式系统中,不可能为每个资产都配备现场维护人员。
边缘是物理世界与数字世界交汇的地方。随着越来越多的组织将工作负载推向边缘,边缘资源不断增加,如此多的设备分散在各处,使得自动化监控变得必要,以简化运营并优化有限的人力。
边缘监控工具
幸运的是,对于工业物联网 (IIoT) 和运营技术 (OT) 从业者来说,InfluxDB 提供了专门为满足这一需求而设计的工具。Telegraf 是一款基于插件的开源数据收集代理,几乎可以从任何地方收集时间序列数据。InfluxDB 的开源版本是一个轻量级数据库,可以在边缘设备上或附近运行,以存储和分析靠近源头的数据。
这些工具帮助管理边缘数据,但在分布式系统中,通常需要创建所有边缘设备的集中视图,以创建运营的整体视图。
例如,假设有一家太阳能公司,其太阳能电池板设施分布在全国各地。该公司可以使用边缘的 InfluxDB 监控每个单独的装置,然后自动将数据发送到 InfluxDB Cloud 进行集中存储和分析。InfluxDB Cloud,由 IOx 提供支持,使用户能够实时分析数据,以创建可视化、预测性维护模型等。
设置边缘数据复制
边缘数据复制 (EDR) 是 InfluxDB OSS 2.x 中的一项功能,它会在磁盘上创建一个持久队列,并将数据自动发送到 InfluxDB 的云实例。
要开始使用,您需要在边缘设备上或附近安装 InfluxDB。Telegraf 是将数据导入 InfluxDB 的绝佳方式,但一旦您配置 Telegraf 提取数据,您就不需要再对 EDR 进行任何操作。
创建连接
一旦您拥有 InfluxDB 实例,您就需要创建一个远程连接。在这种情况下,本地源在边缘,远程设备是云。远程名称可以是您需要的任何名称。假设我们的太阳能公司正在汇总这些数据以供总部使用,因此我们将远程名称命名为 hq
,以便任何在边缘工作的人都知道数据将最终到达哪里。您需要从您的 Cloud 实例获取组织 ID、URL 和 API 令牌,并将它们插入到以下命令中。
influx remote create
--name hq
--remote-org-id "id"
--remote-url "url"
--remote-api-token "token"
这将返回一个 remote-id
,它代表 InfluxDB 的特定边缘实例与 InfluxDB Cloud 实例之间的连接。您可以在同一边缘实例中的多个存储桶上使用相同的远程连接,因为您将在下一步中指定这些详细信息。
指定数据
仍然在您的 InfluxDB OSS 边缘实例上工作,您需要确定要复制的数据的源和目标。
influx replication create
--name solar_station_sw1
--remote-id "id"
--local-bucket-id sw1_data
--remote-bucket sw_regional
由于有多个太阳能设施,我们将此连接命名为 solar_station_sw1
,因为它位于西南地区。我们需要在 --remote-id
标志中输入我们在创建连接时收到的 remote-id
。最后,我们将确定数据的源和目标存储桶。
在这种情况下,假设来自整个 SW1 站的所有数据都进入 OSS 实例中的单个存储桶,存储桶 ID 为 sw1_data
。由于总部 (HQ) 的分析师从全国多个地区收集数据,他们对其进行分段,以便更轻松地跟踪数据。在 Cloud 实例中有一个 sw_regional
存储桶,我们将数据发送到这里。
激活后,SW1 设施中设备收集的所有原始数据都会自动复制到 Cloud。如果连接中断,OSS 实例会继续收集数据,并在重新建立连接后刷新队列,从而降低我们丢失任何数据的可能性。(队列大小是可配置的。)一旦进入云端,我们就可以利用 InfluxDB IOx 的全部功能从我们的数据中产生价值。
如果我们想管理我们的复制,我们可以使用以下选项。
##Management commands
##Display a list of all replications
influx replication list
##Update replication configurations
influx replication update
##Delete a replication
influx replication delete
优化 EDR 传输
这种设置效果很好,但它也可能通过网络发送大量数据。在边缘拥有所有这些粒度数据在那里很有帮助,但总部 (HQ) 不一定需要如此高粒度的数据。它可以处理粒度较粗的数据。
我们可以利用 降采样 在 OSS InfluxDB 实例上,以保持数据的形状,并传输更少的数据,从而释放吞吐量带宽并节省成本。
InfluxDB OSS 继续支持 Flux 语言,您可以使用简单的 Flux 脚本来聚合您的数据。
我们可以在 InfluxDB 实例中创建一个新的存储桶。我们将其命名为 sw1_data_ds
。
现在我们使用该存储桶作为降采样脚本的目标。假设总部 (HQ) 最关心的是以瓦特表示的总能量产生。
from(bucket: "sw1_data")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => (r["_measurement"] == "energy_prod"))
|> filter(fn: (r) => (r["_field"] == "wattage"))
|> aggregateWindow(every: 60s, fn: mean, createEmpty: false)
|> to(bucket: "sw1_data_ds ")
此脚本从我们的原始存储桶 sw1_data
中获取数据,对其进行过滤以仅包含瓦特值。然后在 1 分钟的时间间隔内对该值求平均值,并将该聚合写入我们的新 sw1_data_ds
存储桶。
随着该脚本的运行,我们现在在 OSS 实例上有两个数据存储桶:一个包含所有原始数据,另一个仅包含瓦特数据,这些数据是在 1 分钟的时间间隔内平均的。
总部 (HQ) 需要在云实例中创建一个名为 sw_regional_ds
的新存储桶,我们将把数据发送到这里。
此时,我们可以删除所有原始数据的复制,并为我们的降采样数据创建一个新的复制。
influx replication create
--name solar_station_sw1_ds
--remote-id "id"
--local-bucket-id "insert-bucket-id"
--remote-bucket sw_regional_ds
分析和可视化
一旦这些数据到达云端,总部 (HQ) 的用户就可以使用由 IOx 提供支持的 InfluxDB Cloud 来运行实时分析并为其创建可视化。他们可以使用这些数据来检测问题、安排技术人员,甚至预测维护,以便他们可以在受控环境中执行主动维护,而不会影响最终用户或造成其他中断。
幸运的是,由于您在边缘配置 EDR,因此将服务于在 TSM 引擎上运行的 InfluxDB Cloud 实例的现有复制更新为在 IOx 引擎上运行的复制非常容易。这里的目标是将您的数据从边缘转移到云端,以便您可以从这些数据中获得更多价值。
因此,请为您的分布式工业系统试用 EDR,并告知我们您的使用情况。我们很乐意听取您的故事。告诉我们您正在使用由 IOx 提供支持的 InfluxDB Cloud 构建什么,您甚至可能会获得一些免费赠品!