ModbusTCP报文详解

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.xdnf.cn/news/144246.html

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

相关文章

开放式耳机好不好用?六条绝妙选购要点避免踩坑

​开放式耳机目前非常流行,它们以时尚、美观和舒适著称,迅速赢得了众多用户的喜爱,成为了耳机市场的新宠。与传统的入耳式耳机相比,开放式耳机佩戴更稳固,对耳朵也更为温和。尽管有些人认为它们价格不菲,甚…

机器人的动力学——牛顿欧拉,拉格朗日,凯恩

机器人的动力学推导方法有很多,常用得有牛顿,拉格朗日,凯恩等方法,接下来,简单说说他们之间的使用。注:这里不考虑怎么来的,只说怎么应用。 参考1:4-14动力学分析方法-牛顿—欧拉方…

第J8周:Inception v1算法实战与解析

本文为365天深度学习训练营 中的学习记录博客原作者:K同学啊 任务: 1.了解并学习下图 a《卷积计算过程中》的卷积层运算量的计算过程(储备知识->卷积层运算量的计算) 2.了解并学习卷积层的并行结构与1x1卷积核部分内容&#xf…

基于STM32的光敏电阻检测及OLED显示仿真(库函数)

本专栏所有源资料都免费获取,无任何隐形消费。 注意事项:STM32仿真会存在各种各样BUG,且尽量按照同样仿真版本使用。本专栏所有的仿真都采用PROTEUS8.15。 本文已经配置好STM32F103C8T6系列,在PROTUES仿真里,32单片机一般只用一种型号,如需其他型号,可改名。 本次功能…

【C盘清理】Pycharm远程调试重度使用者C盘清理

文章目录 1 remote source 1 remote source 找到本地的这个路径C:\Users\verse\AppData\Local\JetBrains\PyCharm2022.3\remote_sources 这个文件夹是 PyCharm 在进行远程调试时使用的,它包含了远程服务器上的源代码副本。当你在 PyCharm 中设置远程调试并启动调试会…

如何测试和验证API的性能和稳定性?

在开发过程中,测试和验证API的性能和稳定性是确保软件质量的关键步骤。以下是一些有效的方法和最佳实践: 功能测试:首先,确保API的所有功能按预期工作。这包括对请求参数、方法、路径和预期响应的理解,以及对正常流程和…

飞机表面缺陷检测系统源码分享

飞机表面缺陷检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

R高级绘图 | 不用 Cytoscape 也能绘制精美的蛋白互作(PPI)网络图啦!| STRING 网站 + R 代码

在进行 PPI 网络图绘制时,我们通常会将 STRING 网站与 Cytoscape 软件结合使用。但是经常有小伙伴们苦恼,不太会用 Cytoscape 软件进行处理可咋整呐!之前我也吭哧吭哧学了点 Cytoscape,后来偶然的一个机会,我发现可以直…

python 识别省市、区县并组建三级信息数据库

一、网址: 全国行政区划信息查询平台 二、分析并搭建框架 检查网页源码: 检查网页源码可以发现: 所有省级信息全部在javaScript下的json中,会在页面加载时加载json数据,填充到页面的option中。 1、第一步&#xff1a…

MATLAB系列08:输入/输入函数

MATLAB系列08:输入/输入函数 8. 输入/输入函数8.1 函数textread8.2 关于load和save命令的进一步说明8.3 MATLAB文件过程简介8.4 文件的打开和关闭8.4.1 fopen函数8.4.2 fclose函数 8.5 二进制 I/O 函数8.5.1 fwrite 函数8.5.2 fread函数 8.6 格式化 I/O 函数8.6.1 f…

C语言 | Leetcode C语言题解之第414题第三大的数

题目&#xff1a; 题解&#xff1a; int cmp(const void *a, const void *b) {return *(int*)a < *(int*)b; }int thirdMax(int* nums, int numsSize){qsort(nums, numsSize, sizeof(nums[0]), cmp);int diff 0;for (int i 1; i < numsSize; i) {if (nums[i] ! nums[i…

(黑马点评) 五、探店达人系列功能实现

5.1 发布和查看探店笔记 5.1.1 发布探店笔记 这块代码黑马已经完成了&#xff0c;在发布探店笔记界面&#xff0c;有两块内容是需要上传的。一是笔记内容&#xff0c;二是笔记配图。其中笔记配图部分黑马使用的是上传到本地前端服务器上面的。我我觉得可以将图片文件发布在阿里…

【靶点Talk】免疫检查点争夺战:TIGIT能否超越PD-1?

曾经的TIGIT靶点顶着“下一个PD-1”的名号横空出世&#xff0c;三年的“征程”中TIGIT走过一次又一次的失败&#xff0c;然而面对质疑和压力仍有一批公司选择前行。今天给大家分享TIGIT靶点的相关内容&#xff0c;更多靶点科普视频请关注义翘神州B站和知乎官方账号。 TIGIT的“…

如何使用Java代码实现日期的比较以及如何在列表中按照日期进行排序

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 在Java编程中&#xff0c;经常需要处理日期和时间相关的操作。本文将向您展示如何使用Java代码实现日期的比较以及如何在列表中按照日期进行排序。将通过以下几个步骤来实现这个目标&#xff1a; 理解日期比较&…

【2025】基于微信小程序的网上点餐系统设计与实现、基于微信小程序的智能网上点餐系统、微信小程序点餐系统设计、智能点餐系统开发、微信小程序网上点餐平台设计

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

C语言深入理解指针(二)

目录 指针运算指针-整数指针-指针指针的关系运算 野指针野指针成因指针未初始化指针越界访问指针指向的空间释放 如何规避野指针指针初始化注意指针越界指针不使用时就用NULL避免返回局部变量的地址 assert断言指针的使用和传址调用传址调用例子&#xff08;strlen函数的实现&a…

Euro 2024 足球中的IMU技术突破

在体育技术领域&#xff0c;IMU&#xff08;惯性测量单元&#xff09;技术正以前所未有的方式重塑足球比赛。Adidas Fussballliebe Finale足球&#xff0c;作为首个在欧洲锦标赛中采用公司“连接球技术”的官方比赛用球&#xff0c;展示了IMU技术在现代足球中的应用。以下是这款…

gitlab/极狐-离线包下载地址

如果想要使用Gitlab/极狐进行数据的恢复&#xff0c;只能使用相同版本或者相近版本的安装包&#xff0c;因此有时候需要到它的官网上下载对应版本的安装包&#xff0c;以下是我收集到的对应地址的下载路径&#xff1a; Gitlab Gitlab离线库&#xff0c; https://packages.gitl…

美国站群服务器优化技巧解析

美国站群服务器&#xff0c;作为专为管理多个网站而设计的托管解决方案&#xff0c;其优化对于提升网站性能和用户体验至关重要。以下是一些关键的优化技巧&#xff1a; 首先&#xff0c;硬件配置是基础。选择高性能的CPU、大容量的内存以及高速的硬盘(如SSD)是提升服务器运算速…

使用电容式感应原理设计的4键触摸检测IC-CT8224C

CT8224C是一款使用电容式感应原理设计的触摸IC&#xff0c;此款IC内建稳压电路给触摸感测器使用&#xff0c;稳定的感应方式可以应用到各种不同电子类产品。面板介质可以是完全绝源的材料&#xff0c;专为取代传统的机械结构开关或普通按键而设计&#xff0c;提供4个触摸输入端…