一站式工业边缘数据采集处理与设备反控实践

简介: 本文将详细介绍如何在Neuron中利用eKuiper将采集的设备端生产数据进行计算后发送到云端,以及eKuiper接收云端指令后通过Neuron反控设备的流程。

对接繁杂多样的工业协议、对海量设备产生的生产数据进行采集和处理一直是工业领域智能化推进的难点。EMQ 通过提供边缘工业协议网关软件 Neuron 和边缘流式处理引擎 eKuiper,分别解决了边缘侧设备数据的采集与处理。

之前,要想实现两个产品的协同工作,需要额外部署 MQTT broker 进行中转,对于用户来说步骤较为繁琐。自 eKuiper 1.5.0 和 Neuron 2.0 版本开始,两者实现了集成整合,用户可在 Neuron 中直接添加对应的北向应用节点与 eKuiper 进行通信。此前我们曾介绍过如何在 eKuiper 1.5.0 中借助 Neuron source 和 sink,在无需配置的情况下接入 Neuron 采集到的数据并进行计算

随着 Neuron 2.1 和 2.2 版本的相继发布,用户体验变得更加便捷:通过内置的 data-stream-processing 节点,用户甚至无需手动添加 eKuiper 节点,直接订阅 group 即可实现通信;通过代理 eKuiper 的 API,Docker 运行 Neuron 2.2 时不再需要映射 9081 端口。这些都将帮助大家更快速轻松地享受 Neuron+eKuiper 的工业协议接入与流式数据分析处理能力,实现生产数据的互联互通,挖掘边缘数据价值。

本文将以最新的 2.2 版本为例,详细介绍如何在 Neuron 中利用 eKuiper 将采集的设备端生产数据进行计算后发送到云端,以及 eKuiper 接收云端指令后通过 Neuron 反控设备的流程。

Neuron 与 eKuiper 通信机制

当前 Neuron 的 ekuiper 插件的实现使用了 NNG 库的 pair0 协议,通过 IPC 传输层与 eKuiper 通信,其中data-stream-processing北向节点作为服务器,eKuiper 作为客户端。由于 NNG 的 pair0 协议是一种点对点的协议,ekuiper 插件只允许实例化单个北向节点,并且因为使用的是 NNG 的 IPC 传输层,所以 eKuiper 需要与 Neuron 部署在同一机器中。

Neuron 上报数据到 eKuiper

在 Neuron 中通过data-stream-processing北向节点订阅南向设备节点,被订阅设备的点位数据经 NNG 的 IPC 传输层上报给 eKuiper。上报的数据为固定的 JSON 格式,如下所示:

{
  "timestamp": 1646125996000,
  "node_name": "node1", 
  "group_name": "group1",
  "values": {
    "tag_name1": 11.22,
    "tag_name2": "string"
  },
  "errors": {
    "tag_name3": 122
  }
}

其中,"node_name"域和"group_name"域分别是数据所属的节点名和组名。读取成功的点位数据以字典形式放在"values"域,点位名为键,点位数据为值。读取失败的点位数据以字典形式放在"errors"域中,点位名为键,错误码为值。

eKuiper 反控 Neuron

eKuiper 可以在数据处理后对 Neuron 进行反控。Neuron data-stream-processing北向节点收到数据后将其写入南向节点。

eKuiper 发往 Neuron 的数据需为符合以下格式的 JSON 数据:

{
    "node_name": "node1",
    "group_name": "group1",
    "tag_name": "tag_name1",
    "value": 1234
}

其中,"node_name"域和"group_name"域分别是数据所属的节点名和组名,"tag_name"域为点位名,"value"域为要写入的点位数据。

使用 eKuiper 对 Neuron 采集的数据进行处理

本节将通过一个简单的例子介绍如何使用 eKuiper 对 Neuron 采集的数据进行处理。

在这个例子中,我们会通过 Neuron 界面配置两个点位tag1tag2,配置一条 eKuiper 规则:当tag1的值超过42时,将tag2的值置 1。对应到实际场景中,tag1可以是对应着一个传感器(如温度传感器),tag2可以是对应着一个驱动器(如开关)。

部署 Neuron

Neuron 2.1 出于便利性考虑,在所支持的二进制安装包和 Docker 镜像中集成了 eKuiper 并为其添加了一个默认流neuronStream。Neuron 前端界面也增加了相应功能以支持和 eKuiper 交互,进行规则的添加、更新、删除等常规操作。因此用户无需另外安装 eKuiper,并且可以直接使用流neuronStream。Neuron 2.2 版本代理了 eKuiper 的 API,因此 Docker 运行时无需再映射 9081 端口。本节样例采用 Docker 容器部署方案。

运行如下命令启动 Neuron:

$ docker run -d                \
             -p 7000:7000      \
             -p 7001:7001      \
             --name neuron     \
             --privileged=true \
             emqx/neuron:2.2.8

以上命令暴露了几个端口,70007001是 Neuron 的 RESTFul API 端口。

添加南向节点

Neuron 启动之后,我们需要为 Neuron 添加一个 Modbus 南向设备,然后启动模拟器进行模拟数据采集。

南向设备和模拟器配置,请参考 Neuron 快速教程 ,完成到《运行和使用》中的“第九步,管理组的数据标签”之后,便可获得本例使用的两个点位配置,如下图所示:

添加南向节点 图1.png

启动数据流处理应用节点

北向应用管理界面中将有一个默认的data-stream-processing节点卡片,如下图所示。

北向应用管理 图2.png

点击 data-stream-processing 应用节点开始按钮,启动该节点。

订阅南向标签组

点击 data-stream-processing 应用节点任意空白处,进入订阅 Group 的界面,如下图所示。

订阅南向标签组 图3.png

订阅南向设备的数据组:

  1. 点击右上角添加订阅
  2. 点击下拉框,选择南向设备,本例中选择上一步构建的modbus-tcp-1
  3. 点击下拉框,选择要订阅的 Group,本例中选择上一步构建的 group-1
  4. 点击提交按键完成订阅。

完成这一步后,data-stream-processing 北向节点就能采集到modbus-tcp-1 南向节点的数据,并将其转发到 eKuiper 进行处理。

添加规则

点击新建规则,如下图所示。

新建规则 图4.png

在规则编辑界面,填写规则信息,如下图所示。

填写规则信息 图5.png

  1. 填写 Rule ID
  2. 填写SQLSELECT node_name, group_name, 1 as tag2 FROM neuronStream WHERE values->tag1 > 42
  3. 点击添加 ,为规则添加 sink 动作,每条规则可添加多条 sink 动作,详见下一步;
  4. 点击提交 完成规则的定义。

在添加动作的弹窗里设置 sink 的详细信息, 如下图所示。

设置 sink 的详细信息 图6.png

  1. 下拉选择 Sink;
  2. 填写节点名称;
  3. 填写分组名称;
  4. 填写标签字段;
  5. 选择 提交 完成 sink 动作的添加

启动规则

启动规则,如下图所示。

启动规则 图7.png

触发规则

打开 Neuron 数据监控页面,可以看到从模拟器读到的tag1tag2的初始值均为 0。

触发规则 图8.png

在模拟器中将tag1的值写为43, Neuron 读取到更新的点位值后,data-stream-processing节点将其上报给 eKuiper,而这就会触发之前设置的规则,继而使 eKuiper 发送一条写指令将tag2的值写为1。如下图数据监控页面所示,tag1的值为43tag2的值为1

触发规则 图9.png

结语

本文演示了使用 Neuron 与 eKuiper 进行边缘数据采集与处理的详细流程。通过两者的整合使用,工业领域用户可以实现一站式云边协同的数据采集、清理和反控,为打造工业物联网数据中心奠定基础。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/industrial-edge-data-collection-and-processing

目录
相关文章
|
2月前
|
存储 安全 物联网
|
4月前
|
存储 边缘计算 安全
边缘计算设备的设计与部署技术探索
【8月更文挑战第1天】边缘计算设备的设计与部署是一个复杂而系统的工程,需要综合考虑多个方面的因素。通过制定全面的战略规划、选择合适的技术和设备、设计合理的网络架构、实施有效的安全策略以及定期管理维护等措施,可以确保边缘计算设备的稳定运行和高效应用。随着物联网和云计算技术的不断发展,边缘计算将在更多领域展现出其独特的优势和潜力。
67 10
|
5月前
|
存储 数据采集 边缘计算
物联网设备的边缘计算与数据处理:技术革新与应用展望
【7月更文挑战第8天】物联网设备的边缘计算与数据处理技术是推动物联网技术发展的重要力量。通过将数据处理和决策推向设备边缘,边缘计算实现了低延迟、数据隐私和安全、带宽优化以及可靠性等优势,为物联网应用的实时性、智能化和高效性提供了有力保障。未来,随着技术的不断进步和创新,边缘计算将在物联网领域发挥更加重要的作用,推动物联网技术的进一步发展。
|
5月前
|
数据采集 存储 运维
物联网设备的数据处理与分析技术探讨
【7月更文挑战第2天】探索物联网(IoT)数据处理技术,涵盖数据采集(传感器、无线通信)、存储(分布式系统、NoSQL)、处理(清洗、压缩、转换)和分析(描述性、聚类、分类、异常检测)。未来趋势涉及AI集成、边缘计算、多模态处理和系统自主化。随着技术演进,期待更智能、高效的解决方案。
|
数据采集 传感器 监控
【工业物联网基础】现代企业环境中的DCS(分布式控制系统)和SCADA(站点控制和数据采集)
【工业物联网基础】现代企业环境中的DCS(分布式控制系统)和SCADA(站点控制和数据采集)
|
存储 边缘计算 Kubernetes
边缘物联网数据分析
边缘物联网数据分析
218 0
EMQ
|
存储 缓存 Prometheus
Neuron 2.3.0 发布:更轻松地接入和管理海量工业设备
开源工业协议网关软件Neuron发布2.3.0版本,新增CIP Ethernet/IP、Mitsubishi Melsec 1E frame E71和Fanuc Focas三个协议驱动,帮助更多工业用户实现海量工业设备接入。
EMQ
226 0
Neuron 2.3.0 发布:更轻松地接入和管理海量工业设备
|
机器学习/深度学习 存储 边缘计算
如何将 MLOps 用于物联网和边缘设备(Valohai)
机器学习和智能设备的结合引发了新的自动化浪潮。 从智能冰箱到无收银员结账和自动驾驶汽车,支持机器学习的设备将对我们的日常生活产生深远影响。 随着用例的复杂性和设备数量的增加,我们将不得不采用新的策略来向用户部署这些 ML 功能并对其进行管理。
|
编解码 人工智能 移动开发
|
运维 供应链 监控
阿里云AIoT发布全新工业和农业云端一体机深度产品,全链路数据化实现效率提升
4月21日,阿里云AIoT春季产品发布会发布了工业互联网平台云端一体化升级版和阿里云AIoT数智农场,其中,工业互联网平台云端一体化升级版包含了工业物联应用一体机、钉钉数字工厂、设备协同服务等核心技术,可以帮助企业打造以数据提升效率新方式,而阿里云AIoT数智农场则包含了物联网技术、云钉一体服务,以数字化技术推动农业的精耕细作。
348 14
阿里云AIoT发布全新工业和农业云端一体机深度产品,全链路数据化实现效率提升