ModBus TCP/RTU互转(主)(从)|| Modbus主动轮询下发的工业应用 || 基于智能网关的串口服务器进行Modbus数据收发的工业应用

news2025/3/20 13:51:00

目录

前言    

一、ModBus TCP/RTU互转(从)及应用||

1.1 举栗子

二、ModBus TCP/RTU互转(主)

       2.1 举栗子

三、ModBus 主动轮询

3.1 Modbus主动轮询原理

3.2 Modbus格式上传与下发

3.2.1.设置Modbus主动轮询指令

3.2.2 设置网络通道N1的参数

3.2.3 设置串口通道U1的参数

3.2.4 设置网络通道N2、N3的参数

3.2.5 打开两个Modbus Slave软件

3.2.6 打开一个网络调试助手

3.2.7.打开一个Modbus Poll

3.3 JSON格式上传与下发

3.3.1 数据上传

3.3.2 JSON格式的数据下发协议


前言    

        本文主要通过一款智能网关的串口服务器来进行工业modbus数据收发的应用

一、ModBus TCP/RTU互转(从)及应用||

        1.用户的串口设备是Modbus RTU从站,网络端的设备或组态软件是Modbus TCP主站, 则可以使用ModBus TCP/RTU互转(从)模式。 设备内部具有智能的消息排队机制,因此在该模式下,支持多个Modbus TCP主站同时 轮询Modbus RTU 从站设备。

        以设备的第一路串口PORT1(U1)为例,来说明ModBus TCP/RTU互转(从)模式的配 置步骤。设备支持自定义数据通道,本测试选择的数据通道为U1↔N1。

1.1 举栗子

        打开一个modbus Slave 软件,模拟用户的的Modbus RTU从站设备;打开4个或更多的 Modbus Poll 软件(配置参数完全一样),模拟用户Modbus TCP主站。实现多个主站同时轮 询一个从站的目的。

        配置完成之后,通信成功后的截图如所示。

二、ModBus TCP/RTU互转(主)

        若用户的串口设备是Modbus RTU主站,网络端的设备或组态软件是Modbus TCP从站 站,则可以使用ModBus TCP/RTU互转(主)模式。

        以设备的第一路串口PORT1(U1)为例,来说明ModBus TCP/RTU互转(主)模式的配 置步骤。设备支持自定义数据通道,本测试选择的数据通道为U1↔N1。

       2.1 举栗子

        打开一个modbus Poll 软件,模拟用户的的Modbus RTU主站设备;打开一个Modbus Slave 软件,模拟用户Modbus TCP从站。实现Modbus RTU主站查询Modbus TCP从站数据 的目的。

        配置完成之后,通信成功后的截图如所示。

三、ModBus 主动轮询

3.1 Modbus主动轮询原理

        启用Modbus主动轮询功能功能后,用户服务器只需要接收数据,不需要再下发查询指 令,可极大的缓解服务器的压力。 阿里云ALINK 启用该功能后,设备会按照用户事先设置的ModBus指令轮询串口设备,设备会将不同 指令返回的数据保存到缓存里。定时主动将缓存中的所有数据一次性上传到设置好的网络通道上。

轮询接口:轮询接口可以选择设备的8个串口通道PORT1~PORT2(U1~U8)、24 个网 络通道(N1~N24),每个轮询接口之间相互独立。可以轮询Modbus RTU 协议,也可以轮 询Modbus TCP 协议。

数据类型:支持BYTE、整型(16bit)、整形(32bit高在前)、整形(32bit高在后)、 浮点型(高在前)、浮点型(高在后)。用户根据实际情况选择合适的数据类型。

JSON名:JSON名支持自定义,最大支持32个字符。 kx+b:设备可对轮询的数据进行简单的线性计算。比如k设置为0.01,b设置为0,则 将数据缩小100倍后,上传到服务器。

紧急数据:对于非常重要且实时性要求比较高的寄存器数据,用户可将该数据设置为紧 急数据,并将变化上传条件设置为紧急数据变化上传,则该数据一旦变化,就会立即上传, 轮询间隔时间对此无效。设置0,则该数据为非紧急数据,设置1,则该数据为紧急数据。

轮询间隔:每个数据通道所有设置的指令,全部轮询完之后,等待该轮询间隔时间后, 才会进行下一轮的指令轮询。轮询间隔时间设置的越小,数据的实时性也就越高。 超时时间:当轮询指令发出后,从站设备没有应答,网关设备需要等待该超时时间后, 才会轮询下一条指令。

超时处理:当轮询指令发出后,没有收到从站设备的应答,此时上报的数据可以设置为 上一次轮询的数据(超时无变化)、设置为FF(超时清FF)、设置为00(超时清00)。

指令延时:同一个数据通道中,每条轮询指令之间的时间间隔。不同的数据通道之间是 独立的,可以并发轮询。 映射地址:将所有数据通道的轮询的从站地址,设置为该映射地址,默认128。当上传 格式选择Modbus RTU或Modbus TCP格式上传时,则会按映射地址上传。服务器下发设置 指令,也是按照映射地址下发。

缓存地址:缓存地址可以理解为用户串口设备的Modbus寄存器地址的映射地址。当上 传格式选择Modbus RTU或Modbus TCP格式上传时,该缓存地址即为上传的寄存器地址。 用户解析上传的数据时,可根据该缓存地址,来确定该数据来自那一条指令。

定时上传:数据上传服务器的时间间隔,单位毫秒,设置为0,则不上传。如设置5000ms, 则设备会每隔5秒将数据上传到指定的服务器。

变化上传:若某个轮询数据对用户比较重要,可将该数据设置为紧急数据,并启用变化 上传,这样网关设备会将本次轮询的数据与上一次的数据做比较,若有变化,则立即上传服 务器,不需等待定时上传设置的时间间隔。

上传格式:数据上传格式支持Modbus RTU、Modbus TCP、JSON带设备ID、JSON自定 义、阿里云ALINK等。

JSON 自定义格式说明: "id":%id:设备的唯一标识符,可在配置软件中的设备信息中查看,适用于基于设备识 别的应用。 "imei":%imei:设备内的4G 模块的唯一识别码。 "iccid":%iccid :SIM 卡的唯一识别码,适用于基于SIM卡识别的应用。 "time":%t:时间戳。 %d:轮询的数据。

如设置为:{"id":%id,"imei":%imei,"iccid":%iccid,"time":%t,%d} 则上报的数据为: {"id":e461211757372e32,"imei":,"iccid":,"time":2022-03-0317:13:15,"k0":0,"k1":0}

        数据上传到:可将数据上传到多个网络通道或串口通道,通过配置软件勾选即可。

3.2 Modbus格式上传与下发

        用modbus Slave 模拟从站设备,网络调试助手和Modbus Poll模拟主站或服务器。 本次实验实现效果:网关设备主动轮询modbus从站数据(U1通道和N1通道),并将数据 上传到主站或服务器(N2通道和N3通道)。同时主站或服务器也可向从站写数据。

        轮询数据通道选择N1:向设备的网络通道N1发送Modbus TCP轮询指令; 映射地址:默认128,将U1、N1通道上的从站地址全部映射为128。 数据上传到:勾选N2、N3,将轮询应答数据上传到网络通道N2、N3。

3.2.1.设置Modbus主动轮询指令

        轮询数据通道选择U1:向设备的第一路串口PORT1发送Modbus RTU轮询指令;

        轮询数据通道选择N1:向设备的网络通道N1发送Modbus TCP轮询指令;

        映射地址:默认128,将U1、N1通道上的从站地址全部映射为128。

        数据上传到:勾选N2、N3,将轮询应答数据上传到网络通道N2、N3。


       

3.2.2 设置网络通道N1的参数

        与网络通道N1相连接的设备作为Modbus TCP从站,因此网关设备的工作模式设置为 TCP CLIENT,目标 IP 及端口号即为从站设备的IP及本地端口号。

3.2.3 设置串口通道U1的参数

        确定串口通道U1即为设备的第一路串口PORT1,通过USB转RS485或RS232线连接电脑。 U1 参数默认即可(9600,8,N,1)。

3.2.4 设置网络通道N2、N3的参数

        网络通道N2、N3作为轮询数据的上传通道,本次举例采用设备默认参数: 网络通道N2:TCP SERVER模式,IP为192.168.1.253,端口号为1031 网络通道N3:TCP SERVER模式,IP为192.168.1.253,端口号为1032

3.2.5 打开两个Modbus Slave软件

        打开两个Modbus Slave软件,分别模拟Modbus RTU从站(与串口通道U1通信)、Modbus TCP 从站(与网络通道N1通信)。

3.2.6 打开一个网络调试助手

         模拟modbus TCP从站设备 打开一个网络调试助手,连接设备的网络通道N2,在网络调试助手中就可以接收到主 动轮询的数据。

3.2.7.打开一个Modbus Poll

        打开一个Modbus Poll,模拟Modbus TCP 主站,连接设备的网络通道N3(192.168.1.253: 1032)。连接之后即可接收主动轮询的数据。

        通过以上配置之后,Modbus主站设备就可以对从站进行读写操作了。

3.3 JSON格式上传与下发

3.3.1 数据上传

        在3.2的基础上,将设备modbus主动轮询的上报格式设置为JSON格式上传。网络 调试助手不要16进制显示,这样U1、N1通道的Modbus从站数据就会转成JSON格式向网 络通道N2、N3上发送。

3.3.2 JSON格式的数据下发协议

        若用户需要对用户的串口设备进行写操作,如写线圈、写寄存器等,用户的服务器可按 照网关设备的JSON格式的数据下发协议格式,向网关设备下发数据,网关设备收到服务器 的下发数据后,会将解析后的数据发送到串口上;串口设备的应答数据,网关设备会转换成 JSON 格式上传给服务器。

        JSON 格式的数据下发协议如下: 服务器下发格式: {"mb":"010600000008","sn":1,"ack":0,"crc":0,"uart":0} 网关设备应答数据格式: {"retmb":"010600000008880c","sn":1,"status":"ok"}

说明:

mb: 010600000008,是十六进制ascii格式,比如ff 就是255。网关设备收到服务器的 下发数据后,会将此处的ascii格式的数据转换为对应的十六进制数据,然后转发到串口上。

sn: 数据包的顺序,整数。网关设备收到服务器的下发数据中的 sn 值是多少,网关设 备应答给服务器的数据包中的sn值就是多少。用户可用该参数来识别网关设备的应答数据 与服务器请求数据的对应关系。

ack: 是否需要网关设备应答数据,0:不将应答数据上传到服务器;1:将应答数据上 传到服务器。非必须,若没有则按ack 等于1 处理。

crc: “mb”字段中的数据是否包含crc校验。1:mb字段不包含crc校验值,网关设备 会自动计算crc值;0:mb字段包含crc校验值,网关设备则不再会计算crc值。非必须。若没有则按crc等于0 处理。

uart:指定往哪一路串口(PORT)上发,0~23分别代表第1~24路串口(PORT)。非必 须,若没有则按uart 等于0 处理,即向第一路串口上下发。

若想向网络通道上发数据,则 可以用net替代uart即可,如:{"mb":"010300000001","sn":1,"ack":0,"crc":0,"net":0}。 retmb: 010300000001,是十六进制ascii 格式,比如ff 就是255。网关设备收到串口设 备的应答数据后,会将串口设备应答的十六进制格式的数据转换为对应的ascii格式的数据, 然后转发到服务器上。 status: timeout:超时;ok:正常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2318399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【HarmonyOS Next之旅】DevEco Studio使用指南(三)

目录 1 -> 一体化工程迁移 1.1 -> 自动迁移 1.2 -> 手动迁移 1.2.1 -> API 10及以上历史工程迁移 1.2.2 -> API 9历史工程迁移 1 -> 一体化工程迁移 DevEco Studio从 NEXT Developer Beta1版本开始,提供开箱即用的开发体验,将SD…

冯・诺依曼架构深度解析

一、历史溯源:计算机科学的革命性突破 1.1 前冯・诺依曼时代 在 1940 年代之前,计算机领域呈现 "百家争鸣" 的格局: 哈佛 Mark I(1944):采用分离的指令存储与数据存储ENIAC(1946&a…

C++ 语法之函数和函数指针

在上一章中 C 语法之 指针的一些应用说明-CSDN博客 我们了解了指针变量&#xff0c;int *p;取变量a的地址这些。 那么函数同样也有个地址&#xff0c;直接输出函数名就可以得到地址&#xff0c;如下&#xff1a; #include<iostream> using namespace std; void fun() …

网络协议抓取与分析(SSL Pinning突破)

1. 网络协议逆向基础 1.1 网络协议分析流程 graph TD A[抓包环境配置] --> B[流量捕获] B --> C{协议类型} C -->|HTTP| D[明文解析] C -->|HTTPS| E[SSL Pinning突破] D --> F[参数逆向] E --> F F --> G[协议重放与模拟] 1.1.1 关键分析目标…

蓝桥杯真题——洛谷Day13 找规律(修建灌木)、字符串(乘法表)、队列(球票)

目录 找规律 P8781 [蓝桥杯 2022 省 B] 修剪灌木 字符串 P8723 [蓝桥杯 2020 省 AB3] 乘法表 队列 P8641 [蓝桥杯 2016 国 C] 赢球票 找规律 P8781 [蓝桥杯 2022 省 B] 修剪灌木 思路&#xff1a;对某个特定的点来说有向前和向后的情况&#xff0c;即有向前再返回到该位置…

【2025】基于Springboot + vue实现的毕业设计选题系统

项目描述 本系统包含管理员、学生、教师三个角色。 管理员角色&#xff1a; 用户管理&#xff1a;管理系统中所有用户的信息&#xff0c;包括添加、删除和修改用户。 配置管理&#xff1a;管理系统配置参数&#xff0c;如上传图片的路径等。 权限管理&#xff1a;分配和管理…

JAVA并发编程 --- 补充内容

1 线程状态 1.1 状态介绍 当线程被创建并启动以后&#xff0c;它既不是一启动就进入了执行状态&#xff0c;也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢&#xff1f;Java中的线程 状态被定义在了java.lang.Thread.State枚…

【ArduPilot】Windows下使用Optitrack通过MAVProxy连接无人机实现定位与导航

Windows下使用Optitrack通过MAVProxy连接无人机实现定位与导航 配置动捕系统无人机贴动捕球配置无人机参数使用MAVProxy连接Optitrack1、连接无人机3、设置跟踪刚体ID4、校正坐标系5、配置IP地址&#xff08;非Loopback模式&#xff09;6、启动动捕数据推流 结语 在GPS信号弱或…

qt 图像后处理的软件一

这是一个图像后处理软件刚刚&#xff0c;目前功能比较单一&#xff0c;后续会丰富常用的功能。 目前实现的功能有 1.导入图像 2图像可中心缩放&#xff08;右上角放大缩小&#xff0c;按钮及滚轮双重可控&#xff09;。 3.图像重置功能 软件界面如下。 代码放在我的资源里…

Ardunio 连接OLED触摸屏(SSD1106驱动 4针 IIC通信)

一、准备工作 1、硬件 UNO R3 &#xff1a;1套 OLED触摸屏&#xff1a;1套 导线诺干 2、软件 arduino 二、接线 UNO R3OLED5VVCCGNDGNDA5SCLA4SDA 脚位如下图所示&#xff1a; Uno R3脚位图 触摸屏脚位图 查阅显示屏的驱动规格&#xff1a;通常显示屏驱动芯片有SSD1306,SH110…

深度学习 第4章 数值计算和 Deepseek 的实践

第4章 数值计算和 Deepseek 的实践 章节概述 本章主要探讨了数值计算中的关键问题&#xff0c;这些问题在深度学习和机器学习中尤为重要。数值计算的核心挑战在于如何在有限的计算资源和精度限制下&#xff0c;高效且稳定地处理连续数学问题。本章首先讨论了溢出和下溢问题&a…

【数据分享】2000—2024年我国省市县三级逐年归一化植被指数(NDVI)数据(年最大值/Shp/Excel格式)

之前我们分享过2000-2024年我国逐年的归一化植被指数&#xff08;NDVI&#xff09;栅格数据&#xff0c;该逐年数据是取的当年月归一化植被指数&#xff08;NDVI&#xff09;的年最大值。&#xff08;可查看之前的文章获悉详情&#xff09;&#xff01;该数据来源于NASA定期发布…

HW华为流程管理体系精髓提炼华为流程运营体系(124页PPT)(文末有下载方式)

资料解读&#xff1a;HW华为流程管理体系精髓提炼华为流程运营体系&#xff08;124页PPT&#xff09; 详细资料请看本解读文章的最后内容。 华为作为全球领先的科技公司&#xff0c;其流程管理体系的构建与运营是其成功的关键之一。本文将从华为流程管理体系的核心理念、构建…

【系统架构设计师】操作系统 - 特殊操作系统 ③ ( 微内核操作系统 | 单体内核 操作系统 | 内核态 | 用户态 | 单体内核 与 微内核 对比 )

文章目录 一、微内核操作系统1、单体内核 操作系统2、微内核操作系统 引入3、微内核操作系统 概念4、微内核操作系统 案例 二、单体内核 与 微内核 对比1、功能对比2、单体内核 优缺点3、微内核 优缺点 一、微内核操作系统 1、单体内核 操作系统 单体内核 操作系统 工作状态 : …

【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?

RabbitMQ基于AMQP协议实现&#xff0c;由多个核心组件组成&#xff0c;确保消息的可靠传递。 Rabbit的架构图&#xff1a; 1.RabbitMQ的基本架构&#xff1a; 1.核心组件&#xff1a; 1.Producer(生产者)&#xff1a; 发送消息到RabbitMQ。 2.Exchange(交换机)&#xff1a;接…

Octave3D 关卡设计插件

课程参考链接 这位大佬有在视频合集中有详细的讲解&#xff0c;个人体验过&#xff0c;感觉功能很强大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab资源管理 第一步 在场景中创建一个空物体…

【视频】文本挖掘专题:Python、R用LSTM情感语义分析实例合集|上市银行年报、微博评论、红楼梦、汽车口碑数据采集词云可视化

原文链接&#xff1a;https://tecdat.cn/?p41149 分析师&#xff1a;Zhenzhen Liu&#xff0c;Shuai Fung 作为数据科学家&#xff0c;我们始终关注如何从非结构化数据中提取高价值信息。本专题合集聚焦企业年报的文本分析技术&#xff0c;通过Python与R语言实战案例&#xff…

英伟达“AI 超级碗”开幕

Nvidia的AI和机器人技术进展 2025年03月19日 | AI日报 ![](https://i-blog.csdnimg.cn/direct/e7838b88f17f40c9a435f6dc48d26c59.jpeg#pic_center) 欢迎各位人工智能爱好者。 Nvidia的CEO Jensen Huang刚刚拉开了他的“AI超级碗”&#xff0c;并发表了关于该公司最新芯片、…

DeepSeek扫盲篇: V3 vs R1全面对比架构差异与蒸馏模型演进史

I. 引言&#xff1a;DeepSeek系列的技术革命 在全球大模型军备竞赛白热化的2023年&#xff0c;DeepSeek系列通过V3与R1两款里程碑产品&#xff0c;构建了中文大模型领域的"双塔奇观"。这两个看似矛盾的版本——前者以1280亿参数的MoE架构突破算力边界&#xff0c;后…

UE5材质法线强度控制节点FlattenNormal

连法 FlattenNormal内部是这样的 FlattenNormal的作用是用来调整法线强度 连上FlattenNormal后 拉高数值