ModbusTCP报文详解

news2024/9/20 8:34:22

Modbus TCP与Modbus Rtu(ASCI)数据帧的区别

总结:Modbus TCP就是在Modbus Rtu(ASCI)基础上去掉CRC,再加上六个0一个6

Modbus TCP MBAP报文头

长度描述客户机服务器
事务处理标识符2字节Modbus请求/响应事务处理的识别客户机启动服务器从接收的请求中重新复制
协议标识符2字节0=Modbus协议客户机启动服务器从接收的请求中重新复制
长度2字节随后字节的数量客户机启动(请求)服务器(响应)启动
单元标识符1字节串行链路或其它总线上连接的远程从站的识别客户机启动服务器从接收的请求中重新复制

功能码01H

读取输入线圈  功能码:01H

主站询问报文格式:

事务/协议(4个字节)字节长度单元标识符功能码起始地址(高位)起始地址(低位)线圈地址(高位)线圈数量(低位)
0x000000000x00060x110x010x000x130x000x1B

含义: 读服务器单元标识符(0x11)输出线圈,起始地址 =0013H=19,对应地址 00020;

线圈数 =001BH=27; 结束地址 =00020+27-1=00046,即读服务器输出线圈 00020-00046,共 27个线圈状态。

从站应答报文格式:

含义:返回服务器单元标识符(0x11)输出线圈 00020-00046,共 27个线圈状态,分别为CD 6B B2 05
CD=1100 1101 对应00020-00027                             B2=1011 0010 对应00036-00043
6B=0110 1011  对应00028-00035                             05=0000 0101 对应00044-00046

功能码02H

读取输入线圈  功能码:02H

主站询问报文格式:

事务/协议(4个字节)字节长度单元标识符功能码起始地址(高位)起始地址(低位)线圈地址(高位)线圈数量(低位)
0x000000000x00060x110x020x000x130x000x1B

含义: 读服务器单元标识符(0x11)输出线圈,起始地址 =0013H=19,对应地址 00020;

线圈数 =001BH=27; 结束地址 =10020+27-1=10046,即读服务器输出线圈 10020-10046,共 27个线圈状态。

从站应答报文格式:

含义:返回服务器单元标识符(0x11)输出线圈 10020-10046,共 27个线圈状态,分别为CD 6B B2 05
CD=1100 1101 对应10020-10027                             B2=1011 0010 对应10036-10043
6B=0110 1011  对应10028-10035                             05=0000 0101 对应10044-10046

功能码03H

读取保持寄存器  功能码:03H

主站询问报文格式:

事务/协议(4个字节)

字节长度单元标识符功能码起始寄存器(高位)起始寄存器(低位)寄存器数量(高位)寄存器数量(低位)
0x000000000x00060x110x030x000x6B0x000x02

含义:读服务器单元标识符(0x11)保持寄存器,起始地址=006BH=107,对应地址 40108;

寄存器数=0002H=2;结束地址=40108+2-1=40109,即读服务器保存寄存器40108-40109,共2个寄存器的值。

从站应答报文格式:


含义:返回服务器单元标识符(0x11)保存寄存器40108-40109 ,共 2个寄存器的值,分别为02 2B 01 06
因此40108寄存器对应值为022BH                40109寄存器对应值为0106H

功能码04H

读取输入寄存器  功能码:04H

主站询问报文格式:

事务/协议(4个字节)

字节长度单元标识符功能码起始寄存器(高位)起始寄存器(低位)寄存器数量(高位)寄存器数量(低位)
0x000000000x00060x110x040x000x6B0x000x02

含义:读服务器单元标识符(0x11)输入寄存器,起始地址=006BH=107,对应地址 30108;

寄存器数=0002H=2;结束地址=30108+2-1=30109,即读服务器输入寄存器30108-30109,共2个寄存器的值。

从站应答报文格式:

含义:返回服务器单元标识符(0x11)输入寄存器30108-30109,共 2个寄存器的值,分别为02 2B 01 06

因此30108寄存器对应值为022BH                                30109寄存器对应值为0106H

ModbusTCP报文详解

功能码05H

强制单个线圈  功能码:05H

主站询问报文格式:

事务/协议(4个字节)字节长度单元标识符功能码线圈地址(高位)线圈地址(低位)断通标志断通标志
0x000000000x00060x110x050x000xAC0xFF0x00

含义:强制服务器单元标识符(0x11)某个线圈的值,线圈地址=00ACH=172,对应地址 00173;

断通标志为FF00H表示置位,断通标志为0000H表示复位,即置位服务器输出线圈00173。

从站应答报文格式:

事务/协议(4个字节)字节长度单元标识符功能码线圈地址(高位)线圈地址(低位)断通标志断通标志
0x000000000x00060x110x050x000xAC0xFF0x00

含义:强制服务器单元标识符(0x11)输出线圈00173为ON后原文返回。

功能码06H

预置单个寄存器  功能码:06H

主站询问报文格式:

事务/协议(4个字节)字节长度单元标识符功能码寄存器地址(高位)寄存器地址(低位)写入值(高位)写入值(低位)
0x000000000x00060x110x060x000x870x030x9E

含义: 预置服务器单元标识符(0x11)某个寄存器的值,寄存器地址=0087H=135,对应地址 40136;写入值为0x039E,即预置服务器保存寄存器40136值为0x039E。

从站应答报文格式:

事务/协议(4个字节)字节长度单元标识符功能码寄存器地址(高位)寄存器地址(低位)写入值(高位)写入值(低位)
0x000000000x00060x110x060x000x870x030x9E

含义:预置服务器单元标识符(0x11)保存寄存器40136值为0x039E后原文返回。

功能码0FH

强制单个线圈  功能码:0FH

主站询问报文格式:

事务/协议(4个字节)字节长度单元标识符功能码起始线圈(高位)起始线圈(低位)字节统计字节1字节2
0x000000000x00060x110x0F0x000x0A0x020xCD0X00

含义:预置服务器单元标识符(0x11)多个线圈的值,线圈起始地址=0013H=19,对应地址 00020;线圈数=0x000A=10,结束地址为00020+10-1=00029,写入值为0xCD00,即预置服务器从站线圈:

        00020-00027=0xCD=1100 1101                        00028-00029=0x00=0000  0000

事务/协议(4个字节)字节长度单元标识符功能码起始线圈(高位)起始线圈(低位)线圈数(高位)线圈数(低位)
0x000000000x00060x110x0F0x000x130x000x0A

含义:预置服务器单元标识符(0x11)线圈:

00020-00027=0xCD=1100 1101
00028-00029=0x00= 0000 0000

功能码10H

预置多个寄存器  功能码:10H

主站询问报文格式:

事务/协议(4个字节)字节长度单元标识符功能码起始地址(高位)起始地址(低位)数量(高位)数量(低位)字节统计字节1字节2字节3字节4
0x000000000x000B0x110x100x000x870x000x020x040x010x050x0A0X10

含义:预置服务器单元标识符(0x11)多个寄存器的值,寄存器起始地址=0087H=135,对应地址 40136;寄存器数=0x0002=2,结束地址为40136+2-1=40137,写入值为0x0105,0x0A10,即预置服务器寄存器:40136=0x0105             40137=0x0A10

从站应答报文格式:

事务/协议(4个字节)字节长度单元标识符功能码起始(高位)起始(低位)数量(高位)数量(低位)
0x000000000x000B0x110x100x000x870x000x02

含义:预置服务器单元标识符(0x11)寄存器:

40136=0x0105
40137=0x0A10

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

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

相关文章

vue3中如何拿到vue2中的this

vue3中常用api vue3中常用响应式数据类型:

【计算机网络】详解TCP/IP分层模型局域网和跨网络通信的原理

一、网络协议 两个概念:交换机:实现位于同一个子网中的主机数据交换。路由器:实现数据包的跨网络转发。 两台主机的距离变远了,会引发出一系列问题: 1、如何使用数据的问题 2、数据的可靠性问题 3、主机定位问题 4、…

<<编码>> 第 14 章 反馈与触发器(2)--或非门反馈 示例电路

或非门反馈电路 info::操作说明 先闭合上面的开关(置位 Set), 此时输出高电平 再断开上面的开关, 因反馈的存在, 输出保持为高电平 闭合下面的开关(复位 Reset), 输出重新回到低电平 断开下面的开关, 输出继续保持低电平 primary::在线交互操作链接 https://cc.xiaogd.net/…

产品经理有必要学习大模型技术吗?

第一,大模型正在成为各类产品的核心组件,颠覆了传统产品和应用生态,进入AI大模型应用的新阶段。 例如,NewBing、Perplexity等AI搜索产品已经颠覆了传统搜索引擎的搜索模式,用户不用搜索后再点开排序靠前的网页链接&am…

Linux常见查看文件命令

目录 一、cat 1.1. 查看文件内容 1.2. 创建文件 1.3. 追加内容到文件 1.4. 连接文件 1.5. 显示多个文件的内容 1.6. 使用管道 1.7. 查看文件的最后几行 1.8. 使用 -n 选项显示行号 1.9. 使用 -b 选项仅显示非空行的行号 二、tac 三、less 四、more 五、head 六、…

十八,Spring Boot 整合 MyBatis-Plus 的详细配置

十八,Spring Boot 整合 MyBatis-Plus 的详细配置 文章目录 十八,Spring Boot 整合 MyBatis-Plus 的详细配置1. MyBatis-Plus 的基本介绍2. Spring Boot 整合 MyBatis Plus 的详细配置3. Spring Boot 整合 MyBatis plus 注意事项和细节4. MyBatisx 插件的…

《微处理器系统原理与应用设计第十三讲》通用同/异步收发器USART轮询模式应用设计

USART提供两设备之间的串行双工通信,并支持中断和DMA工作。采用轮询、中断和DMA三种方式进行数据收发。 一、功能需求 实现远程串行通信数据的回传确认。微处理器系统构成的测控设备通过USART(串口)与用户设备(上位机&#xff0…

学习使用SQL Server Management Studio (SSMS)

SQL Server Management Studio (SSMS) 是一个集成环境,用于管理任何SQL基础设施,从SQL Server到Azure SQL数据库。SSMS提供了各种工具来配置、监控和管理SQL Server的实体和组件。以下是一篇详细的使用指南,涵盖了SSMS的主要功能和操作。 1.…

感谢问界M9一打二十,让我们买到这么便宜的BBA

文 | AUTO芯球 作者 | 雷慢 国产豪华车,终于扬眉吐气了, 你敢信吗?在50万以上豪华车中, 现在问界M9一款车的月销量, 是其他前20名销量的总和! 要知道,它的对手是各种宝马、奔驰、雷克萨斯的…

基于python+django+vue的医院预约挂号系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

APP测试基本流程与APP测试要点总结

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 APP测试实际上依然属于软件测试的范畴,是软件测试的一个真子集,所以经典软件测试理论,依然是在APP测试中有效的,只…

RocketMQ实战与集群架构详解

目录 一、MQ简介 MQ的作用主要有以下三个方面 二、RocketMQ产品特点 1、RocketMQ介绍 2、RocketMQ特点 三、RocketMQ实战 1、快速搭建RocketMQ服务 2、快速实现消息收发 1. 命令行快速实现消息收发 2. 搭建Maven客户端项目 3、搭建RocketMQ可视化管理服务 4、升级分…

镀金引线---

一、沉金和镀金 沉金和镀金都是常见的PCB金手指处理方式,它们各有优劣势,选择哪种方式取决于具体的应用需求和预算。 沉金(ENIG)是一种常用的金手指处理方式,它通过在金手指表面沉积一层金层来提高接触性能和耐腐蚀性…

【鸿蒙 HarmonyOS NEXT】popup弹窗

一、背景 给组件绑定popup弹窗,并设置弹窗内容,交互逻辑和显示状态。 常见场景:点击按钮弹出popup弹窗,并对弹窗的内容进行交互逻辑处理,如:弹窗内点击跳转到其他页面 二、给组件绑定Popup弹窗 PopupOp…

【重学 MySQL】三十四、加密与解密函数

【重学 MySQL】三十四、加密与解密函数 在 MySQL 中,加密与解密函数是保护数据安全的重要手段,它们允许开发者在存储和传输敏感数据时保持数据的保密性。 函数名描述返回值类型备注AES_ENCRYPT(str, key_str)使用 AES 算法加密字符串BLOB返回加密后的二…

Quartz框架介绍

一、何为Quartz Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组…

【每日刷题】Day125

【每日刷题】Day125 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 17. 电话号码的字母组合 - 力扣(LeetCode) 2. LCR 080. 组合 - 力扣&#…

数字IC设计\FPGA 职位经典笔试面试整理--语法篇 Verilog System Verilog(部分)

注: 资料都是基于网上一些博客分享和自己学习整理而成的 Verilog 1. 数据类型 Verilog一共有19种数据类型 基础四种数据类型:reg型,wire型,integer型,parameter型 reg型   reg类型是寄存器数据类型的关键字。寄存…

VBS学习1 - 语法、内置函数、内置对象

文章目录 概述执行脚本语法转义字符文本弹框msgbx定义变量dim(普通类型)定义接收对象set字符拼接&用户自定义输入框inputbox以及输入判断ifelse数组(参数表最大索引,非数组容量)有容量无元素基于元素确定容量 循环…

解密.bixi、.baxia勒索病毒:如何安全恢复被加密数据

导言 在数字化时代,数据安全已成为个人和企业面临的重大挑战之一。随着网络攻击手段的不断演进,勒索病毒的出现尤为引人关注。其中,.bixi、.baxia勒索病毒是一种新型的恶意软件,它通过加密用户的重要文件,迫使受害者支…