首页 - 关于研博 - 技术笔记 - Neuron在工业物联网统一接入系统中的使用
Neuron在工业物联网统一接入系统中的使用
2024.10.21

  什么是neuron

 

  Neuron 是一款开源的、轻量级工业协议网关软件,支持数十种工业协议的一站式设备连接、数据接入、MQTT 协议转换,为工业设备赋予工业 4.0 时代关键的物联网连接能力。

  

 

  为什么选择neuron

  1. 开放源码-核心框架和 Modbus 驱动的代码在 LGPL 下授权。

  2. 多种协议-支持访问 20 多种工业协议,包括 Modbus、OPC-UA,以及更多。

  3. 边缘原生-实时运行以利用边缘的超低延迟的工业数据处理。

  4. 高性能-连接数百个工业设备,轻易地处理超过 10,000 个数据点。

  5. 超轻量级-具有较低的内存佔用,小于 10M,在低配置的硬件上运行。

  6. 便携式部署-可在 X86、ARM、RISC-V 和其他架构的边缘硬件上进行部署。

  

  产品架构

  Neuron 是基于现代消息总线架构设计的,具有高性能、可扩展性和可延伸性。

 

  快速上手

  Nruron服务器的部署

  1. 下载

  Neuron: 开源工业协议网关软件 (neugates.io),从官方网站上点击下载

 

  选择符合对应服务器的安装包或选择docker部署

 

  2. 安装

  此次演示通过二进制安装包安装.

  (1) 首先将下载的安装包上传到服务器上,然后选择合适位置创建文件夹方便统一管理

  (2) 解压压缩包- tar -zxvf neuron-2.6.7-linux-amd64.tar.gz

 

  (3)然后通过./neuron –d 启动neuron.

  (4)启动neuron之后可以通过http://x.x.x.x:7000登录到neuron的管理控制台,初始用户名密码为admin 0000

 

  (5) 登陆进入后可以通过右上角切换中文

 

  此次演示选用modbus tcp作为北向设备连接协议,使用Modbus Slave模拟器模拟设备连接

  1. 启动modbus模拟器,配置存储区为4区,可支持读写操作

 

  2. 选择地址框输入模拟数据

 

  3. 配置完成后回到管理页面选择南向连接,选择添加设备,插件选择modbus tcp

 

  4. 然后配置设备连接

 

  配置完成后在工作状态栏会显示运行中

 

  5. 点击设备名进入组列表

 

  6. 点击创建创建分组

 

  7. 创建完成后点击组名进入点位列表点击创建创建点位

 

  8. 其中感叹号前面1代表设备id后面40001代表地址位

  

  

 

  9. 配置完成之后便可以在主页数据监控除查看设备上报数据

 

  注意: 需要先选择设备及分组

  建立北向连接

  本次演示通过mqttx客户端来进行建立连接

  1. 选择北向应用菜单,选择添加应用

 

  2. 然后配置mqtt服务器地址及端口用以建立mqtt连接收发消息

 

  3. 选择应用添加订阅将设备上报消息发送值emqx服务器,再通过mqttx监听对应topic接收消息

 

  订阅topic接收消息

 

  通过mqttx客户端连接emqx消息队列,监听在创建北向应用中创建分组时指定的topic,便可以接收到设备上报的消息

 

  接收到的消息会在mqttx的页面显示

  

  可通过查看消息内容确定是否与模拟器上设置的值相同.

  通过mqttx向neuron发送读写请求从而操作设备

  读请求

  通过往固定的topic”/neuron/{node_name}/read/req”发送消息,来读取指定的设备,指定点位的数据

  消息格式:

  {

  "uuid": "bca54fe7-a2b1-43e2-a4b4-1da715d28eab",

  "node": "modbus",

  "group": "grp"

  }

  node: 某个南向节点名字。

  group: 南向节点的某个组的名字。

  uuid: 唯一的标志,会在响应中原样返回用以区分对应的请求。

  注意:

  topic中的node_name是北向应用的名称,消息中的node和group为南向设备的名称和其中的分组,因为可能某些设备不支持读取单个点位,所以neuron优化了读取,每次读取一组点位.

  读响应

  固定的topic

  ”/neuron/{node_name}/read/resp”

  消息格式:

  {

  "uuid": "bca54fe7-a2b1-43e2-a4b4-1da715d28eab",

  "tags": [

  {

  "name": "tag0",

  "value": 4,

  },

  {

  "name": "tag1",

  "error": 2014

  }

  ]

  }

  其中tags便是这一组点位数据的集合,里面包含请求中指定组的所有点位一次完整的读请求响应流程

 

  写请求

  Topic: 写请求的topic是可以在创建北向应用时自定义设置的

 

  无固定的topic.

  消息体:

  {

  "uuid": "cd32be1b-c8b1-3257-94af-77f847b1ed3e",

  "node": "modbus",

  "group": "grp",

  "tag": "tag0",

  "value": 1234

  }

  Uuid: 唯一的标志,会在响应中原样返回用以区分对应的请求。

  Node: 某个南向节点名字。

  Group: 南向节点的某个组的名字。

  Tag: 要写入的点位名字。

  Value: 要写入的值

  写响应

  Topic: 与请求topic相同都是自定义

  消息体:

  {

  "uuid": "cd32be1b-c8b1-3257-94af-77f847b1ed3e",

  "error": 0

  }

  uuid:与对应请求的uuid相同,

  error: 错误码,为0则代表,写入成功

  一次完整的流程,再发送完写请求之后可以通过模拟器查看值是否被更改了

 

  一次写多个

  Topic与写请求相同,只是消息体有所不同

  消息体:

  {

  "uuid": "cd32be1b-c8b1-3257-94af-77f847b1ed3e",

  "node": "modbus",

  "group": "grp",

  "tags": [

  {

  "tag": "tag0",

  "value": 1234

  },

  {

  "tag": "tag1",

  "value": 5678

  }

  ]

  }

  将单独一个tag放入到了一个tags集合从而实现一次请求写多个点位.

  完整流程如下:

 

  以上便是对于neuron的一些入门操作,如有不足望大家指正.

获取相关资料
下载地址将会发送至您填写的邮箱
相关新闻
skywalking快速入门
2024-10-22
MQTT协议及5.0版本特性
2024-10-22
MQTT协议介绍及Java教程
2024-10-22
  • 在线客服
  • 电话咨询
  • 微信
  • 短视频