modbus协议 Mthings模拟器使用
进制转换
HEX 16进制 (0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F表示0-15)
dec 10进制
n(16进制) -> 10
abcd.efg(n) = d*n^0 + c*n^1 + b*n^2 + a*n^3 + e*n^-1 + f*n^-2 + g*n^-3(10)
10 -> n(16进制)

Modbus基础概念



高位为NUM_H,低位为NUM_L
2F 3D
S7协议对接遇到的问题:
平台s7协议轮训取数据,连接不上设备,一直断开链接。
原因:有模拟软件连接着设备,故平台连接不上。关闭模拟软件等几分钟即可。
1.Modbus按照一般维度分为Modbus Rtu、Modbus ASCII、Modbus TCP三种模式。从接口类型维度来说,Modbus Rtu和ASCII基于串行链路(串行传输),属于串行通讯口(serial port)[ 各种介质,如有线RS-232-/422/485等串口连接线,接DTU设备(将RS485数据转为tcp数据双向)进行无线传输 ],Mobus tcp基于TCP/IP协议,属于网络(以太网)通讯口[以太网网线、无线4G传输等]。 高速令牌传输网络,相应的通信模式是Modbus PLUS。
协议分为硬件协议和软件协议。而通讯协议属于软件协议,它包含报头包围的格式,MODBUS是应用层的通讯协议,主要用于传送和接收文件包的格式。而RS232,RS485是物理层的串行接口,它可以支持几十种通讯协议,MODBUS只是其中的一种。RS232、RS485是一个工业常用的物理接口,是物理层的硬件设备(串口)。
Modbus通讯物理接口可以选用串口(包括RS232和RS485),也可以选择以太网口
2.串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。所以485的使用范围广,通用性强。典型的串行通讯标准是RS232和RS485。
3.DTU串口服务器
(1)DTU是一种现代物联网行业广泛使用的无线数据终端设备,DTU 支持数据的双向转换,支持将 RS232、RS485、RS422 等常见的串口数据与 TCP/IP 数据进行相互转换,并通过无线通信网络进行传输。dtu串口服务器可实现跨网段传输
对于不方便拉宽带线或则无法随时拉宽带联网却要实现连网远程监控控制就需要到了同时具备工业4G路由器联网和串口转4G/WIFI模块的DTU
工业4G路由器实现串口转4G/WiFi/以太网过程中需要到一种网络通信传输协议叫TCP/IP.( TCP 握手 UDP 不握手 )
4.常见有线通信协议
(1)USB
![]()
(2)串口连接线(RS485/RS232):

(3)以太网网线

5.MODBUS是一种标准的工业控制数据交换协议,可以通过RTU和ASCII交换协议数据。RTU通过二进制数据直接传输数据,而TCP通过将每个字节的二进制数据转换成固定的二位十六进制字符串,然后依次串联,以TCP代码的形式传输数据。RTU通常使用最多比较简单。
Modbus协议属于应用层(OSI模型第7层)协议,TCP/UDP协议属于传输层(OSI模型第4层)协议
Modbus TCP协议则是在RTU协议上加一个MBAP报文头,
由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码,用一句比较通俗的话说就是:Modbus TCP协议就是Modbus RTU协议在前面加上五个0以及一个6,然后去掉两个CRC校验码字节就OK.虽然这句话说得不是特别准确,但是也基本上把RTU与TCP之间的区别说得比较清楚了
iot.modbus.client 数据采集服务,传输层通过tcp传输,顶层应用层协议是modbus。(tcp双向连接协议。udp单向无连接协议)
如果你这个硬件设备支持modbus tcp可以不用dtu,用dtu主要就是把485信号转成tcp的
1.MODBUS RTU
Modbus设备一般通过dtu,连接modbus采集服务(将485信号转为tcp),配置dtu服务器的目标ip和目标端口为10.1.1.115、60001(dtu作为tcp客户端连接到115的60001)。 此方式由于dtu串口服务器可实现跨网段传输,故可在内网使用,也可以在外网通过域名使用。
dtu作为tcp客户端通过tcp与modbus采集服务通讯,进行数据传输。

2.MODBUS TCP
通过tcp协议通道,iot.modbus.client 采集服务作为tcp客户端,配置目标ip和端口,连接到modbus设备主机上(此时其作为tcp服务器端)。
注意:此方式只能用于内网使用。

PS:路由器一般都提供内网透传功能:比如tp-link 可以将内网端口映射到外网端口上,可以通过外网端口进行访问。
配置tp-link:传输控制-NAT设置-虚拟服务器。增加iot.modbus.client映射60001,ecmaster 8088映射,mqtt 8083(ws) 1883(mqtt)映射。并配置环回地址:10.0.0.0/8
Modbus通信协议原理具备如下的特征:
一次只有一个主机(Master)连接到网络
只有主设备(Master)可以启动通信并向从设备(Slave)发送请求
主设备(Master)可以使用其特定地址单独寻址每个从设备(Slave),也可以使用地址0(广播)同时寻址所有从设备(Slave)
从设备(Slave)只能向主设备(Master)发送回复
从设备(Slave)无法启动与主设备(Master)或其他从设备(Slave)的通信
Modbus通信协议 RTU通讯案例
以温湿度变送器(485型)为例
1 通讯基本参数
| 编 码 | 8位二进制 |
| 数据位 | 8位 |
| 奇偶校验位 | 无 |
| 停止位 | 1位 |
| 错误校验 | CRC(冗余循环码) |
| 波特率 | 2400bit/s、4800bit/s、9600 bit/s可设,出厂默认为4800bit/s |
2 通讯基本参数
采用Modbus-RTU通讯规约,格式如下:
初始结构 ≥4 字节的时间
地址码 = 1 字节
功能码 = 1 字节
数据区 = N 字节
错误校验 = 16 位CRC 码
结束结构 ≥4 字节的时间
地址码:为变送器的地址,在通讯网络中是唯一的(出厂默认0x01)。
功能码:主机所发指令功能指示,本变送器只用到功能码0x03(读取寄存器数据)。
数据区:数据区是具体通讯数据,注意16bits数据高字节在前!
CRC码:二字节的校验码。
主机问询帧结构:
| 地址码 | 功能码 | 寄存器起始地址 | 寄存器长度 | 校验码低位 | 校验码高位 |
| 1字节 | 1字节 | 2字节 | 2字节 | 1字节 | 1字节 |
从机应答帧结构:
| 地址码 | 功能码 | 有效字节数 | 数据一区 | 第二数据区 | 第N数据区 | 校验码 |
| 1字节 | 1字节 | 1字节 | 2字节 | 2字节 | 2字节 | 2字节 |
3 寄存器地址
| 寄存器地址(16进制) | PLC或组态地址 | 内容 | 操作 |
| 0000H | 40001 | 湿度(实际值10倍) | 只读 |
| 0001H | 40002 | 温度(实际值10倍) | 只读 |
| 0050H | 40081 | 温度校准(实际值10倍) | 读写 |
| 0051H | 40082 | 湿度校准(实际值10倍) | 读写 |
| 07D0H | 42001 | 设备地址 | 读写 |
| 07D1H | 42002 | 设备波特率 | 读写 |
4 通讯协议实例以及解释
举例:读取设备地址0x01(十进制地址为1)的温湿度值
问询帧(十六进制):
| 地址码 | 功能码 | 起始地址 | 数据长度 | 校验码低位 | 校验码高位 |
| 0x01 | 0x03 | 0x00 0x00 | 0x00 0x02 | 0xC4 | 0x0B |
应答帧(十六进制): (例如读到湿度为65.8%RH,温度为15.5℃)
| 地址码 | 功能码 | 返回有效字节数 | 湿度值 | 温度值 | 校验码低位 | 校验码高位 |
| 0x01 | 0x03 | 0x04 | 0x02 0x92 | 0x00 0x9B | 0x5A | 0x3D |
温度计算:
温度:009BH(十六进制)=155=>温度=15.5℃
湿度计算:
湿度:292H(十六进制)=658=>湿度=65.8%RH
关于通信速率问题
MODBUS 协议本身没有规定最大通信速率。甚至也没有规定电气协议,一般使用 RS232
或者 RS485 的电气协议。
RS485 协议的通讯速率可以达到 10M 以上的,所以理论上,注意是理论上,MODBUS 的
通讯速率是可以做到十几兆的。
由于 MODBUS 属于总线协议,总线上的所有站点要求有相同的通信速率(及相同的奇偶校
验设置),最大的通信速率自然由总线上最慢的站点决定。
使用Mthings模拟器 进行modbus数据模拟测试
mthings官网下载安装即可
1.通道配置



2.从机设备创建

注意:此步骤中批量添加的数据,要与下图中配置的批量数据读取数量一致。

相关文章:
modbus协议 Mthings模拟器使用
进制转换 HEX 16进制 (0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F表示0-15) dec 10进制 n(16进制) -> 10 abcd.efg(n) d*n^0 c*n^1 b*n^2 a*n^3 e*n^-1 f*n^-2 g*n^-3(10) 10 -> n(16进制) Modbus基础概念 高位为NUM_H&…...
内网安全-代理技术-socket协议
小迪安全网络架构图: 背景:当前获取window7 出网主机的shell。 1.使用msf上线,查看路由 run autoroute -p 添加路由: run post/multi/manage/autoroute 使用socks模块开启节点,作为流量跳板 msf6 exploit(multi/ha…...
选择排序(C语言)
一、步骤 选择排序的基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。 1.首先,我们先建立一个乱序数组,如࿱…...
✍Qt自定义带图标按钮
✍Qt自定义带图标按钮 📝问题引入 近段时间的工作中,有遇到这样一个需求 📝: 一个按钮,有normal、hover、pressed三种状态的样式,并且normal和hover样式下,字体颜色和按钮图标不一样。 分析…...
【Git】如何在 Git 项目中引用另一个 Git 项目:子模块与子树合并
如何在 Git 项目中引用另一个 Git 项目:子模块与子树合并 在进行软件开发时,我们经常会遇到需要将一个 Git 项目(B 项目)引用到另一个 Git 项目(A 项目)的情况。这种需求通常出现在以下场景: …...
webstorm 打开prettier的项目代码后面会出现红色的波浪线
效果如图所有代码后面都有红色的波浪线。 解决File-Settings 找到Editor下面的inspections ...按照图示取消勾选ESLint再点Apply ok...
用 Python 从零开始创建神经网络(二):第一个神经元的进阶
第一个神经元的进阶 引言1. Tensors, Arrays and Vectors:2. Dot Product and Vector Additiona. Dot Product (点积)b. Vector Addition (向量加法) 3. A Single Neuron with NumPy4. A Layer of Neurons with NumPy5…...
一、文心一言问答系统为什么要分对话,是否回学习上下文?二、文心一言是知识检索还是大模型检索?三、文心一言的词向量、词语种类及多头数量
目录 一、文心一言问答系统为什么要分对话,是否回学习上下文? 二、文心一言是知识检索还是大模型检索? 三、文心一言的词向量、词语种类及多头数量 一、文心一言问答系统为什么要分对话,是否回学习上下文? 文心一言问答系统分对话的原因在于其设计初衷就是提供一个交互…...
C++ 的协程
现代C中的协程(coroutines)是C20引入的一项重大语言特性,它们允许函数在执行过程中可以暂停并稍后从暂停点恢复执行。协程提供了一种控制流机制,使得函数可以包含多个入口点和出口点,这与传统的单入口、单出口的函数模…...
D3的竞品有哪些,D3的优势,D3和echarts的对比
D3 的竞品 ECharts: 简介: ECharts 是由百度公司开发的一款开源的 JavaScript 图表库,提供了丰富的图表类型和高度定制化的配置选项。特点: 易于使用,文档详尽,社区活跃,支持多种图表类型(如折线图、柱状图、饼图、散点…...
大厂计算机网络高频八股文面试题及参考答案(面试必问,持续更新)
目录 请简述 TCP 和 UDP 的区别? TCP 和 UDP 分别对应的常见应用层协议有哪些? UDP 的优缺点是什么?它适用于哪些场景? UDP 如何实现可靠传输? 请简述 HTTP 和 HTTPS 的区别? HTTP 协议的工作原理是什么? HTTP 状态码有哪些常见的类型及其含义? HTTP 哪些常用的…...
【bayes-Transformer-GRU多维时序预测】多变量输入模型。matlab代码,2023b及其以上
% 1. 数据准备 X_train 训练数据输入; Y_train 训练数据输出; X_test 测试数据输入; % 2. 模型构建 inputSize size(X_train, 2); numHiddenUnits 100; numResponses 1; layers [ … sequenceInputLayer(inputSize) biLSTMLayer(numHiddenUnits, ‘OutputMode’, ‘se…...
动手学深度学习69 BERT预训练
1. BERT 3亿参数 30亿个词 在输入和loss上有创新 两个句子拼起来放到encoder–句子对 cls-class分类 sep-seperate 分隔符 分开每个句子 告诉是哪个句子 两个句子给不同的向量 位置编码不用sin cos, 让网络自己学习 bert–通用任务 encoder 是双向的,…...
【2024软考架构案例题】你知道 Es 的几种分词器吗?Standard、Simple、WhiteSpace、Keyword 四种分词器你知道吗?
👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…...
Elman 神经网络 MATLAB 函数详解
Elman 神经网络 MATLAB 函数详解 一、引言 Elman 神经网络是一种在时间序列分析和动态系统建模领域广泛应用的递归神经网络(RNN)。MATLAB 提供了一系列强大的函数来创建、训练和应用 Elman 神经网络,使得用户能够方便地利用其处理具有时间序…...
vue el-date-picker 日期选择器禁用失效问题
当value-format"yyyy-MM-dd"的格式不要改为"yyyyMMdd",否则会导致日期选择器禁用失效问题,因为该组件默认的格式就是yyyy-MM-dd。 <el-col v-for"(item, index) in formData" :key"index" ><el-date-…...
搭建Python2和Python3虚拟环境
搭建Python3虚拟环境 1. 更新pip2. 搭建Python3虚拟环境第一步:安装python虚拟化工具第二步: 创建虚拟环境 3. 搭建Python2虚拟环境第一步:安装虚拟环境模块第二步:创建虚拟环境 4. workon命令管理虚拟机第一步:安装扩…...
【HarmonyOS NEXT】一次开发多端部署(以轮播图、Tab栏、列表为例,配合栅格布局与媒体查询,进行 UI 的一多开发)
关键词:一多、响应式、媒体查询、栅格布局、断点、UI 随着设备形态的逐渐增多,应用界面适配也面临着很大问题,在以往的安卓应用开发过程中,往往需要重新开发一套适用于大屏展示的应用,耗时又耗力,而鸿蒙提供…...
ubontu--cuDNN安装
1. 下载 cuDNN https://developer.nvidia.com/cudnn 2. 拷贝到服务器/home/<username>文件夹下 解压缩到当前文件夹: tar -xvf cudnn-linux-x86_64-9.5.1.17_cuda11-archive.tar.xz复制头文件和库文件到cuda安装目录/usr/local/cuda/ sudo cp /home/usern…...
高项 - 项目范围管理
个人总结,仅供参考,欢迎加好友一起讨论 博文更新参考时间点:2024-12 高项 - 章节与知识点汇总:点击跳转 文章目录 高项 - 项目范围管理范围管理ITO规划监控 管理基础产品范围与项目范围管理新实践 5大过程组与范围管理过程概述裁…...
导师推荐!2026年最值得用的专业AI论文写作工具
2026年AI论文写作工具已从“单点辅助”升级为智能化学术研究系统,核心评价维度涵盖文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规等关键指标。本次测评覆盖6款主流工具,测试场景包括中文与英文论文、全流程与专项功能、免费与付费版本&#x…...
深入Xilinx 7系列FPGA的PHY层:手把手拆解MIG如何驱动DDR3的地址/命令总线
深入Xilinx 7系列FPGA的PHY层:手把手拆解MIG如何驱动DDR3的地址/命令总线 在高速数字系统设计中,DDR3内存接口的稳定性和性能往往成为整个系统的瓶颈。对于使用Xilinx 7系列FPGA的工程师来说,MIG(Memory Interface Generator&…...
告别Windows AI困扰:RemoveWindowsAI工具全方位解决方案
告别Windows AI困扰:RemoveWindowsAI工具全方位解决方案 【免费下载链接】RemoveWindowsAI Force Remove Copilot and Recall in Windows 项目地址: https://gitcode.com/GitHub_Trending/re/RemoveWindowsAI 在数字时代的隐私保卫战中,Windows系…...
AltStore终极指南:非越狱iOS设备安装第三方应用的完整方案
AltStore终极指南:非越狱iOS设备安装第三方应用的完整方案 【免费下载链接】AltStore AltStore is an alternative app store for non-jailbroken iOS devices. 项目地址: https://gitcode.com/gh_mirrors/al/AltStore 还在为苹果App Store的限制而烦恼吗&am…...
告别VirtualBox默认20G!保姆级教程:从创建到动态扩容,打造你的专属开发环境
从零规划VirtualBox磁盘空间:开发环境搭建的黄金法则 刚接触VirtualBox的新手开发者们,是否曾在项目进行到一半时突然发现磁盘空间不足?那种被迫中断工作流程去处理存储问题的体验,足以毁掉一天的开发效率。本文将带你从源头规避这…...
SenseVoice-Small模型在运维监控中的语音告警应用
SenseVoice-Small模型在运维监控中的语音告警应用 1. 运维人员每天都在和告警“搏斗” 你有没有经历过这样的场景:凌晨三点,手机突然震动,一条告警短信跳出来——“数据库连接池使用率98%”。你立刻爬起来打开电脑,连上跳板机&a…...
Android崩溃分析进阶:结合addr2line与IDA Pro精准定位SO文件崩溃点
1. 从崩溃日志到问题定位:为什么SO文件这么难缠? 每次看到Android应用崩溃日志里出现"signal 11 (SIGSEGV)"这种字样,我就知道今晚又要加班了。特别是当崩溃发生在SO文件中时,那种无力感就像在漆黑的房间里找一根掉落的…...
解决QGIS 3.22.4编译后启动报错:从‘dll未加载’到‘plugins缺失’的实战排错记录
QGIS 3.22.4编译后启动报错的深度排查与解决方案 当你终于完成了QGIS 3.22.4的源码编译,满怀期待地双击qgis.exe时,却遭遇了"qgis_app.dll无法加载"的报错。这就像跑完马拉松却在终点线前摔倒一样令人沮丧。但别担心,这些问题其实都…...
FlowState Lab新手避坑指南:快速上手时间序列预测的5个技巧
FlowState Lab新手避坑指南:快速上手时间序列预测的5个技巧 1. 环境准备与快速部署 1.1 系统要求与安装步骤 FlowState Lab作为基于IBM Granite架构的时间序列分析工具,对运行环境有以下要求: 操作系统:Linux (推荐Ubuntu 20.…...
通达信顶底背离副图指标源码解析与实战应用
1. 通达信顶底背离副图指标入门指南 第一次接触顶底背离指标时,我也被那些复杂的线条和公式搞得一头雾水。后来才发现,这其实是技术分析中最实用的趋势反转信号工具之一。简单来说,顶底背离就是当价格创新高或新低时,指标却没有同…...
