Modbus 是一种通用的工业标准,不同厂商生产的控制设备可以通过 Modbus 连成工业网络,进行集中监控。

Modbus TCP 与 Modbus RTU 是 Modbus 两种常用的传输方式, Modbus RTU 是串口通信,Modbus TCP 是 TCP 通信,两者在协议上非常相似,但是由于 TCP 协议的可靠性,Modbus TCP 协议中不需要校验,并且比 Modbus RTU 协议多一个应用报文头。

作为一款支持数十种工业协议转换的物联网边缘工业协议网关软件,Neuron 也已经实现了基于 Modbus RTU 协议 TCP 传输的功能。同时,在 Modbus 协议里,Neuron 根据配置的点位进行了策略优化,可实现自动批量采集设备数据的功能。

本文将在 Ubuntu 20.04.3、X86_64 的环境下,介绍如何使用 Neuron 接入 Modbus TCP 及 Modbus RTU。

Neuron 简介

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

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

配置环境说明

  • 请在官网 https://neugates.io/zh/downloads 下载 Neuron 软件并执行以下指令安装 Neuron 软件。

     sudo apt install ./neuron-2.0.1-linux-amd64.deb
    

    然后使用以下指令检查 Neuron 状态

     sudo systemctl status neuron
    
  • 请在 PeakHMI 官网 中下载 Modbus 模拟器并进行安装,之后打开 Modbus TCP slave Ex。

Neuron 使用入门请参照:Neuron 快速教程。

操作流程

在 Neuron 中将使用到 modbus-plus-tcp 和 modbus-rtu 两个插件,下面将介绍如何连接 Modbus TCP。

连接 Modbus TCP 示例

第一步,创建节点卡片

  1. 点击 添加设备
  2. 填写设备名称,例如 modbus-plus-tcp-1;
  3. 下拉框选择 modbus-plus-tcp 插件。

第二步,设备配置

在节点卡片中点击设备配置 按键,进入设备配置界面。

  1. 填写启动 Modbus 模拟器 所在的 IP 地址;

    1. 启动的 neuron 与 modbus 模拟器要在同一网段下;
    2. Modbus 模拟器所在的 windows 尽量关闭防火墙,否则有可能连不上 Neuron。
  2. 填写 Modbus 模拟器的端口号,一般默认是 502;
  3. 设置 Neuron 连接设备超时时间;
  4. 选择连接方式,Neuron 现在支持作为 Client 和 Server 两种连接模式,默认选择 Client 连接方式;
  5. 点击提交 完成设备配置,将卡片工作状态打开。

第三步,创建 Group 组

点击节点卡片任意空白处进入 Group* 列表界面。

  1. 点击创建
  2. 在弹框中填写 Group 名称,例如 group-1;
  3. 在弹窗中填写 Neuron 从设备读取数据和上传数据的时间间隔,例如,3000;
  4. 点击 创建 完成创建 Group;

*注:Group 可以理解为传感器的一类,例如一台设备下连接多台温度传感器和多台湿度传感器,就可以设置一个「温度」的 Group,将所有的温度传感器统一到一个组中。数据上报以及读取以 Group 为单位,用户可根据业务需求对点位进行分组。

注:

Neuron 上配置不同站点的 Modbus 点位时,建议同一个 Group 下只包含一个站点的点位,或只包含一个站点下同一个数据区域的点位,以获得更高的配置采集效率。

第四步,创建 Tag

在 Group 中点击 Tag 列表创建 ,手动添加 tags。

  1. 填写 Tag 名称,例如 tag1;
  2. 填写 Tag 地址,例如 1!40001(详细地址配置规则请参考后面的延伸知识);
  3. 下拉选择属性,例如 Read,Write;
  4. 下拉选择数据类型,例如选择 INT16;
  5. 点击创建 ,添加一个 Tag;
  6. 也可以点击 添加 ,一次添加多个 Tags 后 再点击 创建

创建完成后,Tag 列表将展示已创建的 Tag 信息,之后返回南向设备管理界面,等待 15s 左右,查看 Modbus 节点卡片的连接状态是否显示已连接 ,如下图所示。

若长时间未连接,请进行以下排查:

  • 对照模拟器,检查设备配置的 host 和 port 是否填写错误,可在运行 Neuron 服务器的终端执行 telnet 指令查看是否能访问远程服务器及端口;

  • 在运行 Neuron 服务器的终端,检查 502 端口是否被占用;

  • 检查模拟器的端口号是否是 502,在 file → settings 中查看 Port Number,如下图所示。

第五步,数据监控查看数据

成功连接到 Modbus 模拟器之后,可以打开数据监控界面查看 Neuron 从 Modbus 模拟器上采集到的数据。

连接 Modbus RTU 示例

步骤如 Modbus TCP ,但由于 Modbus RTU 是串口通信,所以设备配置 不同于 Modbus TCP。

  • Device,串口连接的路径;
  • Stop,停止位;
  • Parity,校验位;
  • Baud,比特率;
  • Data,数据位;

Neuron 已经支持基于 Modbus RTU 的 TCP 传输功能,应用配置如下图所示。

知识延伸

Neuron 中 Modbus 点位地址一般的配置格式是 SLAVE!ADDRESS,其中:

  • SLAVE 代表的是 Slave ID;
  • ADDRESS 指的是 PLC 地址:
区块 Modbus 区块编号
线圈 (coils) 0
输入寄存器 (input registers) 3
离散量输 (Input) 1
保持寄存器 (hold registers) 4

在指令中使用的是功能码和寄存器寻址地址,寄存器寻址地址是从 0 开始,不同的功能码对应不同的区块,PLC 地址是区块编号 + 寄存器寻址地址 + 1。例如,用的是 0x03 功能码,寻址地址是 0,对应 neuron 中的 ADDERESS 应为 40001。

结语

至此,我们完成了使用 Neuron 接入 Modbus TCP 和 Modbus RTU 协议设备的全部流程。作为一个为工业物联网的「连接」而生的边缘工业协议网关软件,Neuron 还支持 OPC UA、Siemens 等其他多种工业协议的接入,助力建设高效的工业物联网平台。

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

原文链接:https://www.emqx.com/zh/blog/connecting-modbus-tcp-and-modbus-rtu-protocol-devices-with-neuron

使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备相关推荐

  1. C# 使用MODBUS TCP和MODBUS RTU与设备通讯

    #记录与学习 测试工具:Modbus Slave MODBUS TCP例 MODBUS RUT例 #共用方法 调用方式 下载地址: 链接:https://pan.baidu.com/s/1JqxQ37 ...

  2. modbus RTU协议设备使用无线代替有线注意事项

    1.设备有线连接 Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议.ModBus网络是一个工业通信系统,由带智能终端的可编程序控 ...

  3. MODBUS ASCII协议和RTU协议的比较 -----和利时PLC采用Modbus RTU

    通过比较可以看到,ASCII协议和RTU协议相比拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的ASCII字符,所以进行调试时就更加的直观,另外它的LRC校验也比较容易.但 ...

  4. 详细解读Modbus RTU、Modbus ASCII、Modbus TCP的区别

    Modbus 是Modicon公司于1979年开发的串行通信协议.它最初设计用于公司的可编程逻辑控制器(PLC). Modbus是一种开放式协议,支持使用RS232/RS485/RS422协议的串行设 ...

  5. Modbus和Modbus Rtu和Modbus tcp

    Modbus rtu和Modbus tcp两个协议的本质都是MODBUS协议,都是靠MODBUS寄存器地址来交换数据:但所用的硬件接口不一样,Modbus RTU一般采用串口RS232C或RS485/ ...

  6. AIRIOT物联网低代码平台如何配置Modbus RTU协议?

    MBRTU即MODBUS RTU的简称,MODBUS是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信.平台的MBRTU协议是建立在TCP协议之上的 ...

  7. Modbus协议栈应用实例之三:Modbus TCP客户端应用

    自从开源了我们自己开发的Modbus协议栈之后,有很多朋友建议我针对性的做几个示例.所以我们就基于平时我们的应用整理了几个简单但可以说明基本的应用方法的示例,这一篇中我们将解说如何使用协议栈实现一个M ...

  8. c#modbus tcp通讯助手开源_RS485和Modbus知识点汇总

    RS485 RS485 特点: 1.逻辑"1"以两线间的电压差为+(2-6)V表示:逻辑"0"以两线间的电压差为-(2-6)V表示.接口信号电平比RS232降低 ...

  9. Modbus转Modbus TCP的几种姿势

    导读 Modbus协议是工业现场串口设备之间常用的连接方式,并基于不同连接存在多种变种的协议:其中最常见的就是串口Modbus(RTU/ASCII)和以太网Modbus TCP两种. 在实际工业现场, ...

  10. 【嵌入式】Modbus TCP协议详解

    00. 目录 文章目录 00. 目录 01. Modbus TCP概述 02. Modbus TCP数据帧 2.1 报文头MBAP 2.2 帧结构PDU 03. PDU详细结构 04. Modbus ...

最新文章

  1. linux系统最大支持多大硬盘容量,LINUX操作系统对硬件支持有上限么?最大多少内存?多大硬盘容量?...
  2. Flex,Fms3相关文章索引(2009-3-25更新)
  3. NGUI从入门到实战1.2NGUI的主要特性
  4. win7专业版64位,台式机睡眠和休眠后立即被唤醒
  5. mysql currentuser_MySQL中DATABASE()和CURRENT_USER()函数的示例详解
  6. MS-Sqlserver2008建立维护计划执行备份任务
  7. java调用打印机打印excel linux_手把手教你嵌入式Linux系统驱动hp1020打印机
  8. NBMA网络帧中继交换机配置
  9. solving order
  10. 分享:破解还原精灵的几个小技巧(转)
  11. python爬虫基本概述
  12. php或js判断网站访问者来自手机或者pc机
  13. 离散数学——哈斯图,最大最小值,极大极小值,上界和下界
  14. C# Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
  15. matlab2018a字体乱码怎么办,解决Matlab 2018a源代码的中文支持问题
  16. 前端小白写了个网页版五子棋游戏,使用原生 JS + Canvas 实现绘制棋子、棋盘
  17. 使用二维数组和函数解决八皇后问题(c++)
  18. Latex使用本地字体
  19. 安装程序配置服务器失败。参考服务器错误日志和C:/WINDOWS/sqlstp.log
  20. Reversing.kr Replace

热门文章

  1. c语言高级代码编程图,c语言图形编程代码(C language programming code).doc
  2. linux 模板 制作工具,OpenTBS 1.8.0 发布,生成 Office 的模板工具
  3. win10前置耳机插孔没声音_win10头戴式耳机麦克风没声音怎么办
  4. 象棋人机对战中所用的极大极小值-alpha-beta剪枝算法介绍
  5. Ubuntu20.04 安装matlab2017b
  6. Dotween Yoyo
  7. Python 实现 Discuz论坛附件下载权限绕过漏洞
  8. Vue周日历展示大学课程
  9. 2、金字塔原理:思考的逻辑(6-7)-阅读笔记
  10. 李永乐复习全书线性代数 第三章 向量