工业设备数据采集平台架构设计

[酷] 包含4大领域:数据采集与治理、数据架构、数据能力、数据应用;15大数据模块:既包含数据采集、数据治理、数据仓库等传统技术模块,又包含云原生、因果推断、预训练等新锐技术模块。

[给力] 如何获得这份《数据智能知识地图》?关注公众号“大话数智”,即可免费下载


导读:本次分享题目为映云科技 EMQ 的工业设备数据采集平台,主要分享数据采集的工具,总结工业设备采集的经验,以及介绍工业应用中的解决方案。

今天的介绍主要围绕“Neuron v2.0 功能及核心模块介绍”展开。全文目录:


分享嘉宾 张奉前 映云科技 工业物联网产品总监

编辑整理 陈妃君 深圳大学

出品社区 DataFun


01

工业设备数据采集经验

1. Data Infrastructure for IoT 开源产品组合

EMQ 公司的产品基于全球领先的 MQTT 消息服务器和流处理数据库,实现从边缘端(Edge)到云端(Cloud)的一站式物联网数据「连接、移动、处理、存储与分析」服务。

2. Neuron 的应用情况及客户反馈

经过一年多 Neuron 1.x 版本的应用,我们分析了其应用情况和客户反馈消息,总结得下以下几个经验:

--

02

工业设备数据采集架构设计

通过以上 Neuron 1.x 版本的简介和应用案例分析,开始思考是否需要对 Neuron 的部分功能进行精简,使其更轻巧、更专注于数据采集功能。综合以上诸多考虑,我们决定从 v2.0 开始对 Neuron 的架构进行重新设计,同时将其开源,以满足更多用户的多样化需求。

1. Neuron 2.x IoT connectivity serve

Neuron 2.0 版本基于 1.x 版本,主要在以下几个方面进行改进

2. EMQ 产品矩阵

相较于 1.x 版本,缩减 EMQ X Edge 产品模块。

3. Neuron 2.0 核心基础功能设计

对于 Neuron 2.0 设计主要从以下四个方面进行:

4. Neuron 2.0 的总线模式的拓扑结构

采用该总线模式的拓扑结构,可以满足一下功能需求:

① NNG 基础消息库

② 功能插件加载机制

③ 各个具体功能的节点

5. NNG 基础消息库

消息传输主要有以上六种传输模式,Neuron 选取了 Pair 传输模式建立星型消息总线,这一组织形式中的消息路由中心是基于 NNG 基础消息库提供了高效率的消息转发。NNG 基础消息库是一个轻量级消息层,可解决重复出现的消息问题,无需 Broker,可具有很好的可扩展性,因此在很多产品中应用该库。

6. Neuron 的层次结构图

基于上诉总线模式、NNG 基础消息库等结构,Neuron 的层次结构大致可分为三层:顶层、中间层和底层。

7. Neuron Manager 的设计

Neuron Manager 是很重要的模块,管理着总线模块和各种 Adapter。其主要有四个模块:

8. 数据标签管理及 Data Tag 设计

DataTag 数据标签是指数据在设备内的位置及属性,属性包括数据名字、类型、起始位置、占用大小及读写功能等。其主要工作流程如下:

9. Neuron 的 Pipe/Adapter 和 Plugin 设计

在 Plugin 中分开两个主要功能:callbacks 和 interface。主要通过以下逻辑实现:

10. Message 数据转换的设计

由于有不同的服务节点,提供应用或驱动服务,但每个节点能处理的数据类型都不同。可以看到不同的服务节点所处理数据类型差异很大,所以必须要有一个内在统一数据类型作为中转之用。在 Modbus 协议规格有定义能支持数据类型,就可以在服务节点内把 Modbus 数据类型转换成 Neuron Unified Data Type。一般北向应用例如 MQTT 或 eKuiper 都会以 JSON 格式去传送消息,而 JSON 的数据类型只有 boolean, string, number 等。Neuron Unified Data Type 最后转换成 JSON 数据类型发送消息。

11. Neuron 的 Plugin 的两种 作模式

Plugin 和 Adapter 之间有两种连接方法。一种是 Plugin 直接和 PLC 进行连线,多在南向中应用;另外一种是通过第三方软件连接在一起,多在北向中应用。

每个适配器 Adapter 都需要独立线程去执行,加载插件也需要另外线程去执行。所以每个服务节点都有两条执行线程。用户将所需要应用或功能插件,加载到适配器就可成为服务节点提供相应服务。一般插件都是以 Linux 动态库(.so 文件)型式加载到适配器。而且这些插件都支持热插方式,即是在运行时可随时加载或卸载。方便灵活。用户可以根据现场的工作情况动态增加和减少设备驱动的节点,具有良好的可配置性。所以在一般情况下,用户只需要将所需服务在插件里实现就可以,每个插件实现一种服务,这样设计隔离了各个节点之间功能的耦合。

如果所需要的应用是由第三方软件提供,这时候需要第三方代理插件作为第三方软件的桥梁。这个桥梁需要按照第三方通讯接口 API 实现数据交换,同时把挢梁实现在插件里加载到适配器,就可跟第三方软件连接。

12. Neuron 集成 eKuiper 协同 作

eKuiper 是由 EMQ 发起并托管在 LF Edge 基金会(Edge X Foundry),对无限的数据流进行状态分析的软件或者框架。eKuiper 是独立第三方软件,因此 Neuron 和 eKuiper 集成方法可参考代理插件模式。集成 eKuiper 有以下特点:

13. Neuron 的 data buffer 和 data 的元数据关系

这上面是 tagGroup 所需的资料,包括订阅管理、数据标签阵列,主要保存了数据名字、类型、起始位置、占用大小及读写功能等。下面是数据 buffer 的结构,数据是按照 tagGroup 次序排列,每次发送数据消息,都是依据 tagGroup 的排列次序。

14. Neuron 的 Plugin 的两种工作模式

① 客户端发出订阅请求,有 MQTT broker 转发。

② 收到转发数据订阅请求后,将订阅请求的 tag 组注册到设备对应的 configs 列表中,得到这个 tag 组 config 的 id,通过 response 接口通知 adapter 有关请求。

③ 将这些订阅请求 tag 组的 config 的 id 发送到 manager,manager 将这些请求交给 datatag manager 管理,datatag manager 会给这些订阅请求 tag 组加上对应的订阅者的 adapter id 对应的 pipe。

④ Manager 会发送一个订阅请求(包括 tag 组的 config 的 id)给设备关联的adapter,adapter 将这个请求通过 request 接口告诉 driver plugin。

⑤ Driver plugin 由 tag 组的 config 的 id 获取所有要读取的数据 tag,根据数据tag 读取的时间间隔 readInterval 建立一个间隔时间由少到多排列的数据 tag 的 id 队列,根据时间间隔来设定定时器。

⑥ 当定时时间到时,从队列头部取出请求的数据 tag 的 id,通过该 id 从 datatag table 中获取数据 tag 具体的配置信息,从设备读取配置信息制定要读取的数据,放进 neu_variable_t 中。

⑦ Driver plugin 将读取的数据的 neu_variable_t 通过 response 接口返回给adapter。

⑧ Adapter 将其转换为 databuf 放到 data message 中传给 manager。

⑨ Manager 调用 datatag manager 根据 databuf 中包含的 tag 组的 config 的 id 快速匹配到订阅者的 adapter,将 data message 发给所有订阅者的 adapter。

⑩ 订阅者的 adapter 再通过 requests 接口将数据发送给订阅者的 plugin,订阅者的 plugin 将请求的数据发送给订阅者应用。

⑪ 把数据发送回客户端。

15. Neuron 的数据流的汇聚/分散(gather/scatter)

我们主要是通过以上两个方式实现对数据流的汇聚和分散的。

16. Plugin 模式的两种实现方法

用户可以自行编写的 plugin 有两类,一类是半堆叠插件,另一类是全堆叠插件。

--

03

案例分享

1. 案例分享1——某油田生产数据采集方案

为将 Neuron 应用到油田服务中,发挥设备数据采集的作用,我们制定以下方案:

随着用户与应用场景的不断增加,我们逐渐发现最初多协议、单连接的设计开始无法适应多样的场景需求。以油田服务数据采集为例,要将所有油井数据汇聚到同一服务器上,需要 Neuron 同时提供多个连接到不同地区的油井。这是流程型工业生产,和离散型工业利用 SCADA 批量生产的情况有很大不同。

2. 案例分享2——智慧工厂设备数据采集及产品质量溯源

另一流程型生产的案例是半导体芯片的生产控制,面对生产环境的复杂性和对数据采集的高要求,主要需要解决以下几个痛点:

针对以上痛点,EMQ 提出了以下解决方案:

EMQ X Enterprise 将多段 Neuron、eKuiper 采集的数据进行统一汇聚,数据推送到数据库及大数据系统做持久化存储。

今天的分享就到这里,谢谢大家。


分享嘉宾

张奉前

杭州映云科技 工业物联网产品总监

从事15年工业自动化及编写SCADA经验,曾参与国内外大型自动化项目,包括汽车零件电镀生产线、太阳能硅片生产线等等。


DataFun新媒体矩阵


关于DataFun

专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章800+,百万+阅读,15万+精准粉丝。

展开阅读全文

页面更新:2024-05-05

标签:工业   设备   节点   架构   插件   加载   协议   消息   功能   数据   用户   平台

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top