百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

ccwgpt 2024-10-11 11:20 40 浏览 0 评论

作者|Joey,Neuron产品总监

不久前,我们宣布了物联网边缘工业协议网关软件Neuron正式开源的消息。随着Neuron v2.0的正式发布,大家现在已经可以在GitHub仓库中找到这一开源项目,根据自己的需求进行定制和修改。

与v1.x相比,Neuron v2.0无论是在产品功能定位还是架构设计上都进行了较大的改动。今天这篇文章将为大家进行详细解读,帮助大家更好地理解和使用Neuron v2.0。

项目简介

Neuron是运行在各类物联网边缘网关硬件上的工业协议网关软件,旨在解决工业4.0背景下设备数据统一接入难的问题。

通过将来自繁杂多样工业设备的不同协议类型数据转换为统一标准的物联网MQTT消息,实现设备与工业物联网系统之间、设备彼此之间的互联互通,进行远程的直接控制和信息获取,为智能生产制造提供数据支撑。

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

发展历程

Neuron的产品雏形始于工业物联网IIoT尚在起步阶段的2018年,那时IIoT场景中的数据采集很多都是通过SCADA去完成,简单说就是在SCADA中增加将数据上报到IIoT平台的功能,从而实现设备操作员操作设备的数据同步实时上报。

所以我们最早将Neuron定位成SCADA软件+MQTT协议数据上报功能。在功能上,我们选择了单连接设备,因为一般SCADA软件都只会连接一台PLC或设备,但可替换各种协议,以便对接不同品牌PLC或设备,进行数据交换。

一般情况下,SCADA必须具有一定基本数据处理能力,包括警报系统、业务规则处理及历史数据。这些功能在Neuron v1.x中均得到实现。

Neuron v1.0发布后,我们持续进行着维护与升级,也根据很多用户的需求反馈陆续增加了不少功能,包括Dashboard页面重整优化、API增加JWT鉴权认证、新的驱动、DTU Server模式连接、字符串支持、与EMQ其他产品集成等等。

Neuron开始被广泛应用到油田服务、半导体生产等工业项目中,发挥了设备数据采集的作用。

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

同时,有越来越多的用户希望在Neuron的基础上进行私有协议、个性化功能等的二次开发,而现有的Neuron v1.x为闭源项目,没有将驱动程序的数据交换做成统一接口,小部分驱动程序代码放在核心层内。

除了多连接和定制开发需求,我们还注意到Neuron v1.x中的SCADA相关功能(如工业级警报系统、业务规则)并未得到用户很充分的使用。Neuron更多地被应用于与EMQ生态内其他产品(如云原生分布式MQTT消息中间件EMQX和轻量级物联网边缘分析/流式处理软件eKuiper)集成,构建一套完整的数据采集、边缘计算与云边协同方案。因此我们也开始思考是否需要对Neuron的部分功能进行精简,使其更轻巧、更专注于数据采集功能。

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

全新设计理念与架构

随着技术的演进,现代的硬件大都采用是多核CPU架构,即便是用在嵌入式系统中比较低端的ARM和Risc-V架构的CPU,也都拥有多核心的芯片。因此,我们能够利用这些多核心CPU能力去处理并发任务。

在Neuron v2.0架构设计中我们也充分考虑支持多核多线程。为此,我们使用了NNG这个基础消息库,这是一个多线程的IO处理和消息处理的异步并发库,能够充分利用CPU的多个核心。

我们采用了星型总线这一组织形式:有一个消息路由中心,该消息路由基于NNG提供高效率的消息转发。消息的发送和接收是线程间通讯,使用共享Buffer和智能指针,没有任何的内存拷贝,具有非常高的效率。围绕着这个路由中心,是各个具体功能的节点,由Adapter和Plugin组成。这些节点既可以是内置固有的,如轻量级的WebServer;也可以是动态增加的,如各种设备驱动、MQTT客户端、eKuiper接口等。

这样的设计隔离了各个设备驱动和北向应用的功能模块之间的耦合,另外采用订阅-发布机制来实现数据流的分发和聚合,使得Neuron v2.0有着极大的灵活性。用户可以根据现场的工作情况动态增加和减少设备驱动的节点,具有良好的可配置性

另外,当运行Neuron v2.0的硬件CPU性能好、核心多、内存大时,Neuron v2.0能支持更多的设备驱动节点、海量的数据点位、更大的数据吞吐量、更低的响应时间,具有良好的系统可伸缩性

Neuron v2.0采用了插件机制来支持多样化的用户功能需求,用户可以根据应用场景的功能需求动态的加载不同功能的插件,得到有不同功能的节点。

当设备驱动有Bug需要修复,或者有新的功能需要升级时,可以通过动态更新插件来解决问题,升级新功能。每个节点的运行是独立的,当升级一个节点的插件时,不会影响其他节点的运行,也不需要重新启动Neuron 2.0。

Neuron v2.0亮点特性

  • 支持多种工业设备协议

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

  • 支持同时连接多个设备

支持南北向同时接入多个相同或不同协议的设备,无需购买大量硬件网关,只需部署一套Neuron服务器即可对海量设备进行管理。同时支持运行期更新设备驱动,可随时动态更改应用和驱动,便于及时响应业务需求调整。

  • 超低内存占用

Neuron具有极少的内存占用和极低的CPU占用,既可以在低端嵌入式Linux设备中运行,也可以运行在有较大内存的Linux主机中,以支持大规模的连接设备和海量的数据点位。同时具有良好的可伸缩性,可满足不同运行资源条件下的需求。

  • 插件服务拓展

通过加载更多的插件模块来扩展更多的功能服务,例如北向数据处理引擎和南向PLC驱动程序。支持Neuron运行期更新设备驱动插件。

  • 提供SDK二次插件

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

  • 基于Web的人机界面

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

  • Restful API控制和配置

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

  • 集成流处理引擎

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

  • 高度融合EMQ产品生态

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

未来规划

未来Neuron v2.0将与v1.x分别独立运营维护,EMQ对现有的商业版Neuron v1.x仍提供缺陷修复与维护,但后续将不再基于1.x版本提供功能更新。

在后续的2.1版本中,我们将实现eKuiper流式处理引擎与Neuron的集成,eKuiper的功能将会统一无缝集成在Neuron的Dashboard页面

和eKuiper集成后,Neuron将成为一个功能强大且非常轻巧的边缘数据流处理服务器。用户可以为自己的控制逻辑、公式和事务在eKuiper内创建一些SQL规则。

eKuiper流处理引擎会对每个由Neuron采集到的数据流进行每秒数个循环扫描,实现用户定义的业务逻辑,输出的数值可以发回PLC进行反控。这些SQL脚本支持在机器运行时进行即时修改,业务处理和计算基本上已在本地边缘侧完成并且存入回本地eKuiper连接数据库。用户亦可以选择将数据发送到IIoT平台,并在发送前进行预处理。

在2.2版本,我们则计划提供统一驱动接口包SDK,用户可通过其自行为私有协议开发驱动插件,或针对某些特定行业、功能去开发应用插件。

写在最后

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

相关推荐

自己动手写Android数据库框架_android开发数据库搭建

http://blog.csdn.net/feiduclear_up/article/details/50557590推荐理由关于Android数据库操作,由于每次都要自己写数据库操作,每次还得去...

谷歌开源大模型评测工具LMEval,打通谷歌、OpenAI、Anthropic

智东西编译|金碧辉编辑|程茜智东西5月28日消息,据科技媒体TheDecoder5月26日报道,当天,谷歌正式发布开源大模型评测框架LMEval,支持对GPT-4o、Claude3.7...

工信部:着力推动大模型算法、框架等基础性原创性的技术突破

工信部新闻发言人今日在发布会上表示,下一步,我们将坚持突出重点领域,大力推动制造业数字化转型,推动人工智能创新应用。主要从以下四个方面着力。一是夯实人工智能技术底座。通过科技创新重大项目,着力推动大模...

乒乓反复纠结“框架不稳定”的三个小误区

很多球友由于对框架的认知不清晰,往往会把“框架不稳定”当成一种心理负担,从而影响学球进度,其典型状态就是训练中有模有样,一旦进入实战,就像被捆住了手脚。通过训练和学习,结合“基本功打卡群”球友们交流发...

前AMD、英特尔显卡架构师Raja再战GPU,号称要全面重构堆栈

IT之家8月5日消息,知名GPU架构师拉贾科杜里(RajaKoduri)此前曾先后在AMD和英特尔的显卡部门担任要职。而在今日,由Raja创立的GPU软件与IP初创企...

三种必须掌握的嵌入式开发程序架构

前言在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发。我相...

怪不得别人3秒就知道软考案例怎么做能50+

软考高级统一合格标准必须三科都达到45分,案例分析也一直是考生头疼的一门,但是掌握到得分点,案例能不能50+还不是你们说了算吗?今天就结合架构案例考点,分享实用的备考攻略~一、吃透考点,搭建知识框架从...

UML统一建模常用图有哪些,各自的作用是什么?一篇文章彻底讲透

10万+爆款解析:9大UML图实战案例,小白也能秒懂!为什么需要UML?UML(统一建模语言)是软件开发的“蓝图”,用图形化语言描述系统结构、行为和交互,让复杂需求一目了然。它能:降低沟通成本避...

勒索软件转向云原生架构,直指备份基础设施

勒索软件组织和其他网络犯罪分子正越来越多地将目标对准基于云的备份系统,对久已确立的灾难恢复方法构成了挑战。谷歌安全研究人员在一份关于云安全威胁演变的报告中警告称,随着攻击者不断改进数据窃取、身份泄露和...

ConceptDraw DIAGRAM:释放创意,绘就高效办公新未来

在当今数字化时代,可视化工具已成为提升工作效率和激发创意的关键。ConceptDrawDIAGRAM,作为一款世界顶级的商业绘图软件,凭借其强大的功能和用户友好的界面,正逐渐成为众多专业人士的首选绘...

APP 制作界面设计教程:一步到位_app界面设计模板一套

想让APP界面设计高效落地,无需繁琐流程,掌握“框架搭建—细节填充—体验优化”三步法,即可一步到位完成专业级设计。黄金框架搭建是基础。采用“三三制布局”:将屏幕横向三等分,纵向保留三...

MCP 的工作原理:关键组件_mcp部件

以下是MCP架构的关键组件:MCP主机:像ClaudeDesktop、GitHubCopilot或旅行助手这样的AI智能体,它们希望通过MCP协议访问工具、资源等。MCP主机会...

软件架构_软件架构师工资一般多少

软件架构师自身需要是程序员,并且必须一直坚持做一线程序员。软件架构应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。软件系统的架...

不知不觉将手机字体调大!老花眼是因为“老了吗”?

现在不管是联系、交友,还是购物,都离不开手机。中老年人使用手机的时间也在逐渐加长,刷抖音、看短视频、发朋友圈……看手机的同时,人们也不得不面对“视力危机”——老花眼,习惯眯眼看、凑近看、瞪眼看,不少人...

8000通用汉字学习系列讲座(第046讲)

[表声母字]加(续)[从声汉字]伽茄泇迦枷痂袈笳嘉驾架咖贺瘸(计14字)嘉[正音]标准音读jiā。[辨形]上下结构,十四画。会意形声字,从壴从加,加也表声。注:从壴,字义与鼓乐有关;从加,字义与...

取消回复欢迎 发表评论: