资源受限的边缘网关、嵌入式 ARM、要跑大量工业协议、追求极致性能——Neuron 是首选(8.5分),1000变量CPU<5%、内存<50MB;.NET 团队、要 Web 界面开箱即用,选 ThingsGateway;要灵活低代码做数据处理流程,选 Node-RED。
01 软件定位与适用场景
Neuron是什么:EMQ(映云科技)旗下的开源工业协议网关,用C语言开发,性能极强、资源占用极低。支持30+工业协议(Modbus/OPC UA/西门子S7/三菱MC/欧姆龙Fins/AB Ethernet/IP/IEC104/BACnet等),南向连接PLC/仪表/传感器采集数据,北向通过MQTT/WebSocket/REST API/Kafka转发到云端或本地平台。与EMQX消息 broker无缝集成(同一家公司),是工业互联网云边协同架构的边缘层首选。企业版NeuronEX增加了AI异常检测、流计算(eKuiper)、集群管理、远程运维等高级功能。
核心设计哲学:①"极致性能"——C语言开发,零依赖,内存占用<50MB,CPU占用<5%,1000+变量采集毫无压力;②"极低资源占用"——可以运行在嵌入式ARM网关、树莓派、甚至资源受限的工业网关上;③"云边协同"——边缘采集+云端管理,NeuronEX支持远程配置下发、设备管理、数据缓存、断点续传;④"协议转换"——把各种工业私有协议转换成标准的MQTT/Sparkplug B,云端不用关心底层协议;⑤"容器化原生"——Docker/K8s友好,适合云原生部署和弹性伸缩。
- 超大规模设备采集(>1000设备,>5000变量)
- 嵌入式/资源受限环境(ARM/树莓派/<256MB内存网关)
- 需要极致采集性能(毫秒级响应,低CPU占用)
- EMQ技术栈(配合EMQX/EMQX Enterprise,无缝集成)
- 容器化部署(Docker/K8s,云原生架构)
- 需要企业版支持(NeuronEX有官方SLA和高级功能)
- Linux环境部署(Neuron Linux优化最好)
- 云边协同架构(边缘采集+云端管理+远程运维)
- Windows环境生产部署——Neuron Linux优化更好,Windows功能不全
- 需要Web化友好配置——Neuron配置相对复杂,需理解南向/北向概念
- 需要自定义驱动开发——C语言开发门槛高,不如.NET/JS简单
- 中小规模且预算有限(<50设备)——ThingsGateway更合适,配置更简单
- 需要复杂业务逻辑(流程编排/条件分支/数据清洗)——用Node-RED
- 非技术人员操作——需要Linux/Docker/MQTT技术背景,不适合纯小白
- 需要AI/流计算/集群管理但不想付费——这些在NeuronEX企业版,开源版没有
- 需要完整BI/报表功能——Neuron是采集层,配合EMQX+TDengine+Grafana使用
02 丁丁的实战体验
用了多久:12个月(2025年10月开始,从Neuron 2.4升级到2.5/2.6,经历了2.5大版本重构)
用在哪些项目:
- 设备远程运维(200+设备):20个工厂,每个工厂10-15台设备(PLC+仪表),Neuron部署在每个工厂的边缘网关上,采集设备数据,通过MQTT转发到中心EMQX,TDengine存数据,Grafana做远程监控大屏。这是Neuron的典型应用场景——云边协同
- 嵌入式ARM网关项目:一个ARM Cortex-A53网关(512MB内存),部署Neuron采集10台Modbus设备,数据本地存SQLite+MQTT上云。验证了Neuron在资源受限环境下的表现
整体感受:Neuron的性能确实极强——C语言开发,1000变量1秒采集CPU<5%,内存<50MB,是ThingsGateway的1/5。在嵌入式ARM网关上运行也非常流畅,512MB内存绰绰有余。协议支持丰富(30+),与EMQX无缝集成(同一家公司,MQTT北向配置简单,性能最优)。Docker部署非常方便,官方镜像一条命令启动,适合容器化和K8s编排。REST API完整,所有配置都可以通过API操作,方便集成到自己的管理平台。
但也有明显短板:Web管理界面不如ThingsGateway友好(配置相对复杂,需要理解南向/北向概念)、点位配置繁琐(1000+点位手动配置工作量大)、自定义驱动开发门槛高(C语言,需要懂Neuron插件框架)、开源版缺少高级功能(AI/流计算/集群管理/远程运维都在NeuronEX企业版)、Windows支持有限、社区规模不如Node-RED。我的经验是:Neuron适合做"高性能采集层",不适合做"万能网关"——超大规模/嵌入式/云边协同场景选Neuron,中小规模/需要友好配置/自己写驱动选ThingsGateway,复杂业务逻辑选Node-RED,三者可以组合使用(Neuron采集→EMQX消息→Node-RED处理→TDengine存储→Grafana展示)。
👍 优点
- 性能极强——C语言开发,1000变量1秒采集CPU<5%,内存<50MB,是ThingsGateway的1/5
- 资源占用极低——空闲内存仅10MB,适合嵌入式/ARM/资源受限网关部署
- 30+工业协议支持——Modbus/OPC UA/西门子/三菱/欧姆龙/AB/IEC104/BACnet等
- 与EMQX无缝集成——同一家公司,MQTT北向默认对接EMQX,配置简单,性能最优
- Docker部署友好——官方镜像,一条命令启动,适合容器化和K8s编排
- 云边协同架构——NeuronEX企业版支持远程管理、配置下发、数据缓存、断点续传
- 启动速度快——冷启动<2秒,适合频繁重启的边缘场景
- REST API完整——所有配置都可以通过API操作,方便集成到自己的管理平台
👎 缺点
- Web管理界面不如ThingsGateway友好——配置相对复杂,需要理解南向/北向概念
- 点位配置繁琐——每个点位都要手动配置地址/类型/功能码,1000+点位工作量大
- 自定义驱动开发门槛高——C语言开发,需要懂Neuron的插件框架,不如.NET简单
- 开源版缺少高级功能——AI/流计算/集群管理/远程运维都在NeuronEX企业版(收费)
- Windows支持有限——Neuron Linux优化更好,Windows版本功能不全,生产建议Linux
- 社区规模不如Node-RED——教程和案例相对少,遇到问题需要看官方文档和GitHub Issue
- 部分协议驱动稳定性不如ThingsGateway——小众协议驱动有bug,需要充分测试
- 非技术人员上手难——需要一定的Linux/Docker/MQTT技术背景,不适合纯小白
03 核心功能演示
# 常用协议驱动
Modbus RTU/TCP # 最常用,仪表/变频器/PLC
OPC UA Client/Server # 西门子1500/倍福/基恩士
西门子S7 (S7Net) # S7-1200/1500/300/400/200Smart
三菱MC (Melsec) # Q/L/R系列PLC
欧姆龙Fins # CP/CJ/CS/NJ系列
AB Ethernet/IP # 罗克韦尔PLC
IEC 60870-5-104 # 电力行业远动协议
DLT645 # 电表/水表/气表
BACnet # 楼宇自动化
Profinet # 部分支持
Mitsubishi EZSocket # 三菱FX系列编程口 # 南向设备(South Device)
- 连接PLC/仪表/传感器
- 配置连接参数(IP/端口/从站地址)
- 配置点位(Tag):地址/类型/属性/周期
- 批量导入点位(Excel/CSV)
- 实时数据监控
# 北向应用(North App)
- MQTT(默认,对接EMQX)
- WebSocket
- REST API
- Kafka
- Sparkplug B(工业物联网标准)
# 订阅关系(Subscription)
- 一个北向应用可订阅多个南向设备
- 一个南向设备可被多个北向应用订阅
- 按点位组订阅,灵活选择转发范围 # 边缘侧(Neuron)
- 本地采集设备数据
- 本地缓存(网络中断时缓存数据)
- 断点续传(网络恢复后补发缓存数据)
- 本地告警(简单规则)
- MQTT连接云端EMQX
# 云端(NeuronEX + EMQX)
- 远程管理多台Neuron网关
- 配置统一下发(批量配置设备/点位)
- 设备状态监控(在线/离线/数据质量)
- 远程诊断(远程查看日志/调试)
- 远程升级(OTA升级边缘网关)
- AI异常检测(云端AI模型)
# 典型架构
设备 → Neuron(边缘) → EMQX(云端) → TDengine → Grafana
↓ ↓
本地缓存/告警 远程管理/AI # Docker快速启动
docker run -d --name neuron \
-p 7000:7000 \
-p 8081:8081 \
-v neuron-data:/opt/neuron \
--restart=always \
neugates/neuron:2.6
# docker-compose部署
version: '3.8'
services:
neuron:
image: neugates/neuron:2.6
ports:
- "7000:7000" # Web管理
- "8081:8081" # REST API
volumes:
- neuron-data:/opt/neuron
restart: always
environment:
- TZ=Asia/Shanghai
# K8s部署(StatefulSet)
- 持久化存储(PVC)
- 健康检查(livenessProbe)
- 配置管理(ConfigMap)
- 水平扩展(HPA,按CPU/连接数) 04 5个真实踩坑(每个都花了时间和钱)
05 性能实测数据(设备远程运维项目,4核8G服务器)
- 服务器:4核8G,Ubuntu 22.04,Docker部署Neuron 2.6,EMQX 5.x同机部署
- 设备:50台Modbus TCP设备(模拟),每台20点位,共1000点位,1秒采集周期
- 转发配置:MQTT转发到同机EMQX(5000点/秒),QoS 0,变化上传
- 嵌入式测试:ARM Cortex-A53,512MB内存,10台Modbus设备,200点位,运行流畅
- 测试时长:连续运行7天,取平均值和峰值
- 结论:Neuron的性能确实极强——1000变量1秒采集CPU仅<5%,内存<50MB,是ThingsGateway的1/5。在嵌入式ARM网关上也运行流畅。如果设备超过500台或变量超过5000,建议分多实例部署或用NeuronEX集群版。
06 vs ThingsGateway / Node-RED 深度对比(10个维度)
| 对比维度 | Neuron | ThingsGateway | Node-RED | 胜出 |
|---|---|---|---|---|
| 开发语言 | C语言(性能极强) | C#/.NET(开发友好) | Node.js/JavaScript(灵活) | Neuron |
| 采集性能 | 极高(1000点CPU<5%) | 中(600点CPU<15%) | 低(单线程瓶颈) | Neuron |
| 内存占用 | 10-50MB(极轻量) | 150-400MB | 100-300MB | Neuron |
| 协议数量 | 30+(较全) | 20+(较全) | 3000+节点(最广) | Node-RED |
| Web配置 | 一般(需理解南/北向) | 友好(开箱即用) | 友好(流编程) | ThingsGateway |
| 自定义驱动 | 难(C语言门槛高) | 易(.NET插件) | 易(JS函数节点) | ThingsGateway |
| 容器化 | 极好(官方Docker镜像) | 中(可Docker但Windows更好) | 好(官方镜像) | Neuron |
| 企业版 | NeuronEX(功能完整) | 无(开源版即完整版) | FlowFuse(团队协作) | Neuron |
| 云边协同 | 强(NeuronEX支持) | 弱(需自己开发) | 中(可配合远程部署) | Neuron |
| 社区规模 | 中(GitHub 5000+) | 中(Gitee 5000+) | 极大(GitHub 20000+) | Node-RED |
📊 对比总结
Neuron胜出的维度(5项):开发语言性能、采集性能、内存占用、容器化、云边协同
ThingsGateway胜出的维度(2项):Web配置友好度、自定义驱动开发难度
Node-RED胜出的维度(3项):协议/节点生态、社区规模、灵活性
丁丁的结论:这三者不是替代关系,而是互补关系,可以组合使用构建完整的工业数据采集架构:Neuron做高性能采集层(超大规模/嵌入式/云边协同),EMQX做消息传输层(MQTT broker,消息路由/缓存/桥接),Node-RED做业务流程层(数据清洗/逻辑编排/报警通知),TDengine做数据存储层(时序数据库,高性能存储/查询),Grafana做展示层(可视化大屏/仪表盘)。如果是中小规模(<50设备)且需要简单配置,用ThingsGateway替代Neuron(更简单);如果是超大规模/嵌入式/云边协同,用Neuron(性能更强)。不要用一个工具打天下,分层架构才是最佳实践。
07 选型建议(什么场景选什么)
- 超大规模部署(>1000设备,>5000变量)
- 嵌入式/资源受限环境(ARM/<256MB内存)
- 需要极致采集性能(毫秒级,低CPU占用)
- EMQ技术栈(配合EMQX/EMQX Enterprise)
- 容器化/Docker/K8s部署(云原生架构)
- 需要企业版支持(NeuronEX官方SLA)
- Linux环境部署(Neuron Linux优化最好)
- 云边协同架构(边缘采集+云端管理)
- 中小规模部署(<500设备,<2000变量)
- .NET技术栈团队(C#开发者可自己写驱动)
- 需要Web化友好配置(非技术人员也能上手)
- Windows环境部署(驱动兼容性最好)
- 需要自己写驱动插件(.NET开发简单)
- 国产协议支持(Modbus/西门子/三菱/电表等)
- 预算有限(开源版即完整版,无企业版收费)
- 需要边缘计算(表达式/报警/过滤,开箱即用)
- 需要灵活流程编排(条件分支/循环/数据清洗)
- 低代码开发(非程序员也能写流程)
- 复杂业务逻辑(采集网关做不了的逻辑)
- 需要快速原型验证(拖拽式,几分钟搭一个流程)
- 需要丰富的节点生态(3000+节点,什么都有)
- 需要HTTP API/WebSocket/REST等互联网协议
- 需要与AI/LLM集成(Node-RED有AI节点)
- 团队有JavaScript/Node.js开发能力
08 部署要点(6步上手指南)
安装Neuron
Docker部署(推荐):docker run -d --name neuron -p 7000:7000 -p 8081:8081 -v neuron-data:/opt/neuron --restart=always neugates/neuron:2.6。端口7000是Web管理界面,8081是REST API。二进制部署:从GitHub Release下载对应平台的安装包(Linux x86_64/ARM64),解压后运行./neuron命令。APT安装(Ubuntu/Debian):添加EMQ的APT源,apt-get install neuron。默认Web管理端口7000,默认账号admin/0000(首次登录强制改密码)。生产环境强烈建议Docker部署
基础配置
Web管理界面(http://服务器IP:7000)登录后:①修改管理员密码(Configuration→User);②配置日志级别(System→Log,生产环境建议Info,调试用Debug);③配置系统参数(System→Setting,如最大连接数、缓冲区大小等,默认即可);④导出配置备份(System→Export,导出JSON文件,定期备份);⑤配置REST API认证(默认开启,用用户名密码获取Token,API路径http://服务器IP:8081/api/v2);⑥配置防火墙——只开放7000(Web管理)和8081(API)端口给管理网段,不要对公网开放
配置南向设备(采集)
①南向设备→添加设备→选择协议插件(Modbus TCP/OPC UA/S7等)→填写设备名称→确定;②点击设备→配置连接参数(IP地址/端口/从站地址/超时时间/重试次数等)→保存→测试连接(点"连接"按钮,状态变绿色表示连上了);③在设备下添加点位(Tag)→配置点位名称/地址/数据类型/属性(只读/读写)/采集周期→保存;④批量导入点位——准备Excel/CSV文件(列:name/address/type/attribute/interval),在设备页面点"导入"批量上传;⑤查看实时数据——数据监控→选择设备→查看所有点位的实时值和质量,确认数据采集正确;⑥开启批量读取——Modbus设备配置里开启"批量读取",设置最大批量长度(建议100),提升采集性能
配置北向应用(转发)
①北向应用→添加应用→选择MQTT插件→填写应用名称→确定;②点击应用→配置MQTT连接参数(broker地址/端口/ClientID/用户名/密码/TLS证书/Topic前缀/QoS级别)→保存→测试连接(状态变绿色表示连上了);③配置订阅(Subscription)→点击应用→订阅→添加订阅→选择南向设备→选择要转发的点位(可以全选或按组选)→设置转发模式(变化上传/定时上传)→保存;④配置Topic格式——默认是/neuron/{node_name}/{group}/{tag},可以自定义,建议按设备层级组织(如/factory/line1/device1/tag1);⑤配置QoS——关键数据用QoS 1(至少一次),普通数据用QoS 0(最多一次,性能更好);⑥配置遗嘱消息(LWT)——设备异常断开时EMQX会收到遗嘱消息,可以用来做设备离线告警
数据处理与监控
①点位缩放——点位配置里设置"缩放因子"(multiplier)和"偏移量"(bias),如电压寄存器是0.1V单位,缩放因子设0.1;②表达式计算——Neuron 2.6+支持点位表达式(如tag1 + tag2 * 0.5),在点位配置里设置;③数据过滤——北向应用订阅时设置"死区"(deadband),只有变化超过死区才上传,避免模拟量微小波动频繁上传;④变化上传vs定时上传——状态类数据用变化上传(省带宽),累计量类数据用定时上传(如每5秒一次);⑤数据监控——Web界面→数据监控,可以实时查看所有点位的值、质量、时间戳,方便调试;⑥日志查看——Web界面→日志,可以查看系统日志、设备连接日志、错误日志,排查问题时先看日志
生产部署与运维
①性能监控——Neuron的Web界面有系统监控(CPU/内存/连接数/消息数),也可以通过REST API获取监控指标,接入Prometheus/Grafana做可视化;②高可用——关键场景可以部署双实例(主备),用VIP或负载均衡切换,但Neuron本身没有内置集群功能(NeuronEX企业版有),需要自己做主备切换;③备份恢复——定期导出配置JSON(System→Export),需要恢复时导入配置(System→Import),Docker部署直接备份数据卷(docker run --rm -v neuron-data:/data -v $(pwd):/backup alpine tar czf /backup/neuron-backup.tar.gz -C /data .);④升级——大版本升级前先备份配置和数据卷,拉新镜像启动,检查配置兼容性(Neuron配置向后兼容,但大版本可能有变化),Docker Compose部署直接改镜像版本docker-compose up -d即可;⑤安全——Web管理界面不要对公网开放,用VPN或堡垒机访问;MQTT连接用TLS加密;定期修改管理员密码;REST API用Token认证;⑥监控告警——用EMQX的Webhook或Neuron的REST API做设备离线告警、数据异常告警,接入钉钉/邮件通知
09 用到Neuron的真实方案
常见问题 FAQ(工程师最常问)
Q:Neuron 是什么?
A:EMQ(映云科技)开源的工业协议边缘网关,C 语言开发,部署在现场把 PLC/设备数据采集后通过 MQTT 等协议转发到云端。
Q:Neuron 免费吗?
A:开源,Apache 2.0,核心采集和协议都免费;NeuronEX 企业版增加边缘计算、云边协同、数据缓存等功能,需付费。
Q:Neuron 和 ThingsGateway 怎么选?
A:追求极致性能、资源受限、ARM 嵌入式,选 Neuron(内存约为 ThingsGateway 的 1/5);.NET 技术栈、要友好 Web 界面、自己写 C# 驱动,选 ThingsGateway。
Q:Neuron 支持哪些协议?
A:30 多种,南向 Modbus、OPC UA、西门子、三菱、欧姆龙、AB、IEC104、BACnet,北向 MQTT、HTTP、WebSocket、OPC UA 等。
Q:Neuron 资源占用多少?
A:空闲内存约 10MB,1000 变量 1 秒采集 CPU 低于 5%、内存低于 50MB,适合低配网关。
Q:Neuron 和 EMQX 是什么关系?
A:同属 EMQ 公司,Neuron 采集、EMQX 消息,北向 MQTT 默认对接 EMQX,是官方推荐的边缘+云端组合。
Q:Neuron 断网会丢数据吗?
A:开源版主要靠实时转发,数据缓存/断点续传是 NeuronEX 企业版功能;关键场景可在本地加消息队列或用企业版。
Q:Neuron 能做边缘计算吗?
A:开源版以采集转发为主,复杂的边缘计算(规则、函数)主要在 NeuronEX 企业版;要灵活可编程可用 Node-RED。
需要Neuron部署/云边协同架构/性能优化咨询?
丁丁有12个月Neuron实战经验,2个项目验证(200+设备远程运维/嵌入式ARM网关)。可以帮你做边缘采集方案设计、Neuron+EMQX+TDengine+Grafana全栈架构、云边协同部署、性能优化全流程服务。
联系丁丁咨询 →