当前位置: 首页 > news >正文

Modbus RTU和Modbus TCP的区别 深入篇

目录

1 传输方式不同

2 硬件接口不同

3 校验码不同

4 指令内容不同

4.1 Modbus RTU

4.1.1 功能码为03,表示读寄存器

4.1.2 功能码为10,表示写多个寄存器

4.2 Modbus TCP

4.2.1 功能码为03,表示读寄存器

4.2.2 回复异常报文

 5 传输速度不同

6 补充说明

7 术语解读


 

1 传输方式不同

RTU协议需要将控制器设置成RTU模式,用二进制数据的传输方式就可以直接传送数据。
遵循3.5T时间间隔。集体可以查看modbus rtu通讯-T1.5以及T3.5时间间隔。
TCP协议在以太网的物理层上工作,是传输层第四层的协议,它先将每字节进行二进制传输再转换为十六进制的两个字节,依次这样操作将转换好的字节串联在一起。

2 硬件接口不同

RTU协议使用的是233、422、485的串行接口(serial port)。
串行接口整个操作过程比较方便,通过两个引脚就可以通迅,这两个引脚分别为Rx和Tx,它们的用途是用来传送和接收数据。
串行接口默认的波特率为9600、奇偶校验为否、数据位为8、 停止位为1。
从表现形式和结构来看,RTU协议的使用度比TCP协议更广泛。
TCP协议使用的是以太网接口,能直接连接网络,连接后它可以自行与其他的网络设备联系并确定一种目前最简便的工作方式。
以太网接口的工作模式分为全双工模式和半双工模式。
以太网接口根据类型可以分为传统接口和快速接口,具体有SC光纤的接口、RJ45的接口、AUI的接口、FDDI的接口、BNC的接口和Console的接口。

3 校验码不同

RTU协议中为了检验整个数据的内容要用到16位的CRC校验,这个校验分别计算传输端的和接收端的帧内容,两个CRC值比较出来是相符合的就接收数据,若不相符就拒收这个数据并报告到上级设备。
TCP协议在连接时有着“确认对方信息”、“排序数据”、“控制数据流量”、“避免阻塞”的四个步骤,这样的连接协议相对来说会比较可靠,所以不需要再用额外的校验码去检验数据的帧内容。

4 指令内容不同


RTU协议的指令内容有五个字节,分别为从站地址、功能码、数据起始地址、数据数量量和CRC检验。
例如01、03、00 00、00 02、C4 0B。
TCP协议的指令内容在RTU指令内容的基础上增加了一个MBAP报文头,删除了CRC校验。
例如00 00 00 00 00 06 ff 03 00 00 00 02,其中00 00 00 00 00 06 ff七个字节为MBAP报文头。

详细介绍如下

4.1 Modbus RTU

简介:RTU协议中的指令由地址码(1字节),功能码(1字节),起始地址(2字节),数据(N个字节),校验码(2字节)五个部分组成

4.1.1 功能码为03,表示读寄存器

1、发送指令:01 03 76 83 00 0C AE 6F
解析:
01为从机地址(地址码),
03 为功能码(03表示:读),
76 83 为寄存器地址[起始地址][真实的寄存器地址-1],
00 0C 为读取寄存器的个数,
AE 6F 为CRC校验。

2、接收指令:01 03 18 00 55 00 AA FF FF FF FF 01 2D FF FF FF FF FF FF 00 55 FF FF FF FF FF FF BA 58
解析:
01 为从机地址(地址码),
03 为功能码,
18 为数据长度[表示24(转换为十进制)],24个字节的数据正文(即12个寄存器,每个寄存器占两个字节),
00 55 00 AA FF FF FF FF 01 2D FF FF FF FF FF FF 00 55 FF FF FF FF FF FF 为每个寄存器数据,
BA 58 为校验码。

4.1.2 功能码为10,表示写多个寄存器

1、发送指令:01 10 8C BD 00 08 10 53 47 39 4B 54 4C 2D 4D 00 00 00 00 00 00 00 00 39 2F
解析:
01 为从机地址(地址码),
10 为功能码(10表示:写),
8C BD 为寄存器地址[起始地址],
00 08 为写入寄存器的个数,
10 为数据长度,表示数据长度为16个字节,数据长度是寄存器个数的2倍,
53 47 39 4B 54 4C 2D 4D 00 00 00 00 00 00 00 00 为写入寄存器的数据[16个字节],
39 2F 为校验码

2、接收指令:01 10 8C BD 00 08 7B 7B FF FF FF FF FF FF FF FF
解析:
01 为从机地址,
10 为功能码,
8C BD 为寄存器地址,
00 08 为数据长度,
7B 7B FF FF FF FF FF FF 为寄存器数据,
FF FF 为校验


4.2 Modbus TCP

简介:Modbus TCP协议是在RTU协议前面添加MBAP报文头,由于TCP是基于可靠连接的服务,RTU协议中的CRC校验码就不再需要,所以在Modbus TCP协议中是没有CRC校验码

4.2.1 功能码为03,表示读寄存器

1、发送指令:68 68 00 00 00 06 01 03 33 65 00 04
解析:
68 68 为报文序列号,
00 00 为协议标识(00 00表示ModbusTCP协议),
00 06 为后续字节数(数据长度,单位为字节),
01 为从机地址,
03 为功能码,
33 65 为寄存器地址[起始地址],
00 04 为寄存器个数。

2、接收指令:68 68 00 00 00 0B 01 03 08 00 01 00 AA 00 00 00 AA
解析:
68 68 为报文序列号,
00 00 为协议标识,
00 0B 为后续字节数,
01 为从机地址,
03 为功能码,
08 为数据长度,
00 01 00 AA 00 00 00 AA 为寄存器数据

4.2.2 回复异常报文

68 68 00 00 00 03 F7 90 02


解析:
68 68 为报文序列号,
00 00 为协议标识,
00 03 为后续字节数,
F7 为从机地址,
90 为功能码,
02 为异常码

 5 传输速度不同

使用RTU协议因使用的是232、422、485这样的串行接口,因此在传输速度上会比较慢,
使用TCP协议时的传输速度较快,如果想要更快的速度可以连接PLC总线的方式去扩展以太网模块的范围,但对于许多设备来说并不需要这么快的速度,速度过快,设备向上级设备报告数据的次数就会变多间接增加了设备的工作量。

6 补充说明

Modbus 协议是一种应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型,协议本身并没有定义物理层,只是定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。
Modbus 协议使用串口传输时可以选择RTU或ASCII模式,并规定了消息、数据结构、命令和应答方式并需要对数据进行校验。ASCII 模式采用LRC校验,RTU模式采用16 位CRC校验。通过以太网传输时使用TCP,这种模式不使用校验,因为TCP协议是一个面向连接的可靠协议。

7 术语解读

校验码:校验码通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数据的正确性。代码作为数据在向计算机或其它设备进行输入时,容易产生输入错误,为了减少这种输入错误,编码专家发明了各种校验检错方法,并依据这些方法设置了校验码。常用的校验有:累加和校验SUM、字节异或校验XOR、纵向冗余校验LRC、循环冗余校验CRC。

相关文章:

Modbus RTU和Modbus TCP的区别 深入篇

目录 1 传输方式不同 2 硬件接口不同 3 校验码不同 4 指令内容不同 4.1 Modbus RTU 4.1.1 功能码为03,表示读寄存器 4.1.2 功能码为10,表示写多个寄存器 4.2 Modbus TCP 4.2.1 功能码为03,表示读寄存器 4.2.2 回复异常报文 5 传输速…...

【大数据】Doris 的集群规划和环境准备

Doris 的集群规划和环境准备 1.1 环境要求1.1 Linux 操作系统版本需求1.2 软件需求 1.2 硬件要求1.3 节点规划1.4 通信端口1.5 IP 地址绑定 Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势…...

connect: Network is unreachable问题解决

第一步:查看ifcfg-ens33配置文件 cd /etc/sysconfig/network-scripts/ cat ifcfg-ens33 发现问题:GATEWAY写错成GATWAY 第二步:修改 vim ifcfg-ens33 第三步:检测是否成功 ping baidu.com 成功!...

三层交换与DHCP

目录 一、三层交换 (一)基本概念 (二)转发原理 (三)ensp项目实验 二、DHCP (一)DHCP工作原理 1.DHCP的特点 2.工作原理 (二)DHCP项目实验 一、三层交…...

02markdown-学习笔记

一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 换行符<br>标签 写入一段测试用的正文第二段测试文本,如果要对文本进行换行可以使用<br>标签 文本修饰符 字体为斜体的修饰&#xff0c;一对星号包含 字符为粗体&#xff0c;两对星号包含 字体为…...

UE5 动画 Sequencer-学习笔记

P2. 课程介绍 资料&#xff1a;https://www.bilibili.com/video/BV1Ag411873f?p2&vd_source707ec8983cc32e6e065d5496a7f79ee6 Sequencer不仅可以做互动动画&#xff0c;还可以导出视频与序列帧 P3-4. 界面介绍 https://www.bilibili.com/video/BV1Ag411873f?p3&spm_…...

visual studio code 好用的插件

vscode-icons Better comments 该插件对不同类型的注释会附加了不同的颜色&#xff0c;更加方便区分&#xff0c;帮助我们在代码中创建更人性化的注释。 Error Lens Error Lens插件是一款可以检测你编写的代码的语法错误&#xff0c;并且会显示出对语法错误的诊断信息…...

Redis 过期删除策略、内存回收策略、单线程理解

不知从何开始Redis的内存淘汰策略也开始被人问及&#xff0c;卷&#xff01;真的是太卷了。难不成要我们去阅读Redis源码吗&#xff0c;其实问题的答案&#xff0c;在Redis中的配置文件中全有&#xff0c;不需要你阅读源码、这个东西就是个老八股&#xff0c;估计问这个东西是想…...

oracle 如何把数据库 date 日期格式 的数据 改成 2021-01-27

如果您要将日期"27-12月-29"更改为"2021-01-27"格式&#xff0c;您可以使用Oracle的日期格式化函数和字符串替换函数来实现。 以下是一个示例SQL语句&#xff0c;将日期"27-12月-29"更改为"2021-01-27"格式&#xff1a; sql UPDATE…...

Git 使用教程(超级详细)

目录 一&#xff1a;Git二&#xff1a;SVN与Git的的区别三、安装Git四&#xff1a;常规操作五&#xff1a;远程仓库六&#xff1a;创建与合并分支七&#xff1a;bug分支八&#xff1a;多人协作九&#xff1a;git可视化工具 Git Git 是一种分布式版本控制系统&#xff0c;用于…...

动态规划习题

动态规划的核心思想是利用子问题的解来构建整个问题的解。为此&#xff0c;我们通常使用一个表格或数组来存储子问题的解&#xff0c;以便在需要时进行查找和使用。 1.最大字段和 #include <iostream> using namespace std; #define M 200000int main() {int n, a[M], d…...

安卓免Root做klipper上位机教程

软件说明&#xff1a;虚拟电脑可以在8.0以上没越狱的安卓系统中安装klipper上位机程序实现对已刷入klipper固件的3D打印控制板的控制欢迎下载安装测试&#xff0c;反馈碰到的问题。安装步骤&#xff1a;1). 在手机上打开浏览器&#xff0c;访问这个网址 http://droidvm.com/cn/…...

网络安全学习之信息泄露

一、背景以及泄露途径 通常我们会对数据进行备份&#xff0c;比如我们在发布网站的时候会对将要替换的版本进行备份。我们在对重要文件进行修改的时候我们也需要进行备份&#xff0c;如果我们对备份或缓存的文件或信息为做好管理&#xff0c;很容易就导致我们的敏感信息泄露。…...

Java智慧工地源码,智慧工地管理平台的技术架构和工作原理

智慧工地管理平台是将互联网的理念和技术引入建筑工地&#xff0c;从施工现场源头抓起&#xff0c;最大程度的收集人员、安全、环境、材料等关键业务数据&#xff0c;依托物联网、互联网&#xff0c;建立云端大数据管理平台&#xff0c;形成“端云大数据”的业务体系和新的管理…...

Nginx配合Vue的history模式

加上一行代码就行&#xff1a; try_files $uri $uri/ /index.html;...

持续集成交付CICD:Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布

目录 一、实验 1.蓝绿发布准备 2.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布 二、问题 1.手动构建Jenkins前端项目CI流水线报错 2.如何优化手动构建流水线选项参数 一、实验 1.蓝绿发布准备 &#xff08;1&#xff09;环境 表1 蓝绿发布…...

计算机网络中的通信子网主要有哪些功能?

计算机网络中的通信子网主要具有以下功能&#xff1a; 负责全网的数据通信&#xff1a;通信子网通过使用各种通信协议和传输控制功能&#xff0c;能够确保数据从一台主机安全、准确地传输到另一台主机。这包括数据的封装、解封装、传输控制、差错控制等过程。 完成各种网络数据…...

【大数据-Hadoop】从入门到源码编译-概念篇

【大数据-Hadoop】从入门到源码编译-概念篇 Hadoop与大数据生态&#xff08;一&#xff09;Hadoop是什么&#xff1f;&#xff08;二&#xff09;Hadoop组成1. HDFS1.1 NameNode&#xff08;nn&#xff09;1.2 DataNode&#xff08;dn&#xff09;1.3 Secondary NameNode&#…...

什么是设计模式

一、概述 1、设计模式是解决某些问题的办法 2、设计模式不是凭空想象出来的&#xff0c;是经验的总结和积累 3、设计模式是不断的发展的 4、各个行业都有自己的设计模式 二、设计模式的基本要素 设计模式一般包括模式的名称、问题、目的、解决方案、效果、实例代码和相关…...

Typescript中Omit数据类型的理解

在 TypeScript 中&#xff0c;Omit 是一个内置的工具类型&#xff0c;它用于从对象类型中排除指定的属性&#xff0c;并返回剩余的属性。 Omit 的语法如下所示&#xff1a; type Omit<T, K> Pick<T, Exclude<keyof T, K>>;其中&#xff0c;T 表示原始类型…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...