国内首个开源物联网边缘工业协议网关软件Neuron v2.0解读。

首页 » 物联网 » 国内首个开源物联网边缘工业协议网关软件Neuron v2.0解读。

不久前,我们宣布物联网边缘工业协议网关软件Neuron正式开源。随着Neuron v2.0正式发布,现在可以在GitHub仓库(https://github.com/emqx/neuron)找到这个开源项目,并根据自己的需求进行定制和修改。

与之前的v1.x相比,Neuron v2.0在产品功能定位和架构设计上有了很大的改变。在今天的文章中,我会给你详细的讲解,帮助你更好的理解和使用神经元v2.0。

项目介绍

Neuron是运行在各类物联网边缘网关硬件上的工业协议网关软件,旨在解决工业4.0背景下设备数据统一访问困难的问题。通过将来自各种工业设备的不同协议类型的数据转换成统一标准的MQTT消息,可以实现设备与工业物联网系统之间、设备之间的互联互通,进行远程直接控制和信息采集,为智能制造提供数据支持。

Neuron支持同时对多种不同通信协议和数十种工业协议的设备进行一站式访问和MQTT协议转换,只占用超低资源,即可以以原生或容器的方式部署在X86、ARM等架构的各类边缘硬件中。同时,用户可以通过基于Web的管理控制台实现在线网关配置管理。

发展历史

神经元产品的雏形始于2018年,当时工业物联网IIoT还处于起步阶段。当时IIoT场景中的很多数据采集都是通过SCADA完成的,简单来说就是在SCADA中给IIoT平台增加上报数据的功能,实现设备操作人员操作的数据同步实时上报。

所以我们先把Neuron定位为SCADA软件+MQTT协议数据上报功能。在功能上,我们选择单一的连接设备,因为一般的SCADA软件只会连接一个PLC或设备,但是可以代替各种协议与不同品牌的PLC或设备交换数据。一般来说,SCADA必须具备一定的基础数据处理能力,包括报警系统、业务规则处理和历史数据。这些功能都在Neuron v1.x中实现。

Neuron v1.0发布后,我们继续维护升级,根据很多用户的反馈增加了很多功能,包括仪表盘页面重组优化、API中的JWT认证、新的驱动、DTU服务器模式连接、字符串支持、与其他EMQ产品的集成等等。Neuron开始广泛应用于油田服务、半导体生产等工业项目中,起到设备数据采集的作用。

随着用户数量和应用场景的不断增加,我们逐渐发现最初的多协议单连接设计已经不能满足各种场景的需求。以油田服务数据采集为例,要在同一个服务器上采集所有油井数据,Neuron需要同时提供多个连接到不同区域的油井。这是一种面向过程的工业生产,与离散工业使用SCADA进行批量生产的情况有很大不同。为了满足这些场景的需求,提供多连接功能,在设计上需要重构整个神经元的架构。

同时,越来越多的用户希望在Neuron的基础上重新开发私有协议和个性化功能。但是现有的Neuron v1.x是一个闭源项目,没有把驱动的数据交换做成统一的接口,少量的驱动代码放在核心层。

除了多连接、定制化开发的要求,我们还注意到Neurov1.x中与SCADA相关的功能(如工业报警系统、业务规则等)还没有被用户充分使用。Neuron更广泛用于与EMQ生态系统中的其他产品(如云原生分布式MQTT消息中间件EMQX和轻量级物联网边缘分析/流软件eKuiper)集成,构建一套完整的数据采集、边缘计算和云边缘协作解决方案。因此,我们也开始思考是否有必要精简Neuron的一些功能,使其更轻便,更专注于数据采集。

基于以上考虑,我们决定从v2.0开始重新设计Neuron的架构,同时对其进行开源,以满足更多用户的多样化需求。

全新的设计理念和建筑

随着技术的演进,现代硬件大多采用多核CPU架构。即使是嵌入式系统中使用的比较低端的ARM和Risc-V架构的CPU,也有多核芯片。因此,我们可以利用这些多核CPU能力来处理并发任务,我们在Neuron v2.0架构的设计中也充分考虑了支持多核多线程。为此,我们使用了基础消息库NNG,它是多线程IO处理和消息处理的异步并发库,可以充分利用CPU的多个内核。

我们采用星型总线的组织形式:有一个消息路由中心,基于NNG提供高效的消息转发。消息的发送和接收是线程间通信,使用共享缓冲区和智能指针,没有任何内存拷贝,效率非常高。在这个路由中心周围,有各种特定功能的节点,由适配器和插件组成。这些节点可以是内置的,比如轻量级Web服务器;;也可以动态添加,比如各种设备驱动、MQTT客户端、eKuiper接口等。这种设计隔离了各设备驱动与北向应用功能模块之间的耦合,采用订阅-发布机制实现数据流的分发和聚合,使得Neuron v2.0具有很大的灵活性。用户可以根据现场工况动态增减设备驱动节点,具有良好的可配置性。此外,当运行Neuron v2.0的硬件CPU性能好、核多、内存大时,Neuron v2.0可以支持更多的设备驱动节点、海量数据点、更大的数据吞吐量和更低的响应时间,具有良好的系统可扩展性。

Neuron v2.0采用插件机制来支持不同用户的功能需求。用户可以根据应用场景的功能需求,动态加载不同功能的插件,得到不同功能的节点。当设备驱动出现Bug需要修复或者需要升级新功能时,可以通过动态更新插件来解决问题,升级新功能。每个节点的操作是独立的。当一个节点的插件升级后,其他节点的运行不会受到影响,Neuron 2.0也不需要重启。

国内首个开源物联网边缘工业协议网关软件Neuron v2.0解读。

神经元v2.0的亮点特征
支持多种工业设备协议

南向支持从各品牌PLC厂商到全球技术标准委员会的数十种协议,包括西门子、罗克韦尔自动化、欧姆龙、三菱、Modbus、OPC、西门子、三菱、欧姆龙、IEC、EtherNet/IP等。北向支持互联网协议,如MQTT、HTTP、HTTPS等。

支持多台设备同时连接。

它支持南北方向同时访问多个协议相同或不同的设备,无需购买大量硬件网关,只需要部署一套神经元服务器来管理海量设备。同时支持运行中更新设备驱动,可以随时动态更换应用和驱动,方便及时响应业务需求调整。

超低内存占用

Neuron的内存占用非常少,CPU占用也非常低。它既可以运行在低端嵌入式Linux设备上,也可以运行在大内存的Linux主机上,以支持大规模的连接设备和海量数据点。同时具有良好的可扩展性,可以满足不同操作资源的需求。

插件服务扩展

通过加载更多的插件模块,如北行数据处理引擎、南行PLC驱动程序等,扩展更多的功能服务。支持神经元运行时更新设备驱动插件。

提供SDK二级插件

开源后,用户还可以基于神经元插件框架进行二次开发,定制自己的私有协议。这满足了用户在不同项目中扩展私有协议和其他工业厂商协议的需求。

基于Web的人机界面

通过友好的Web用户界面,提供可视化的网关配置和采集数据查看功能。用户可以使用浏览器方便地直接在局域网中查看设备的状态和数据,并可以通过Web UI控制和配置Neuron。

Restful API控制和配置

内置轻量级Web服务器,可以通过浏览器配置、控制和监控设备,也可以通过API服务控制工业设备或更改参数或标签配置。

内置流处理引擎

流SQL脚本建立在集成的eKuiper引擎中,从各种连接源收集的所有工业数据都可以通过AI/ML、控制逻辑、公式和事务进行处理。

高度集成的EMQ产品生态

Neuron可以与EMQ的其他产品高度集成,包括EMQX、NanoMQ、eKuiper(由EMQ发起,现由LF Edge基金会维护运营)等。无缝产品集成体验,统一管理控制台,在线多节点管理和产品配置,安全控制,统一用户认证和操作权限控制。

未来规划

未来,Neuron v2.0将独立于v1.x运行和维护,EMQ仍将为现有的商业版Neuron v1.x提供缺陷修复和维护,但不再提供基于1.x版本的功能更新..

在后续的2.1版本中,我们将实现ekuiiper流媒体引擎与Neuron的集成,ekuiiper的功能将无缝集成在Neuron的仪表盘页面上。

与eKuiper整合后,Neuron将成为一个强大且非常轻量级的边缘数据流处理服务器。用户可以在eKuiper中为自己的控制逻辑、公式和事务创建一些SQL规则。EKuiper流处理引擎会每秒多次扫描Neuron采集的每一个数据流,实现用户自定义的业务逻辑,输出值可以送回PLC进行反向控制。这些SQL脚本支持机器运行时的即时修改,业务处理和计算已经在本地边缘基本完成,并存储回本地eKuiper连接数据库。用户也可以选择将数据发送到IIoT平台,并在发送前对其进行预处理。

在2.2版本中,我们计划提供一个统一的驱动接口包SDK,用户可以通过它为专有协议开发驱动插件,或者为某些行业和功能开发应用插件。

写在最后

Neuron是我们开发团队十多年行业经验的结晶。我们的目标是让Neuron更加可靠、灵活、易用、可扩展、易迁移,尽可能适应各种自动化系统和工业设备,从而帮助解决工业物联网中海量异构设备的连接问题。同时,它将与EMQ生态系统中的其他产品一起,形成坚实的数据基础设施,构建现代工业物联网平台,推动工业物联网产业的发展。

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

原文链接:https://www.emqx.com/zh/blog/neuron-v-2-0-product-introduction

本文章来源于互联网,如有侵权,请联系删除!