欢迎来到电力微机保护网!
专注微机保护专注电力行业致力成为电力行业标杆企业
联系电话
技术文章
当前位置:首页 > 技术文章 > 详情

ModbusTCP协议报文详细分析

更新时间:2022.01.12     作者:管理员      浏览次数:172

(一)ModbusTCP协议分析

ModbusTCP与ModbusUDP的报文格式是一样的,它们之间的区别其实就是TCP与UDP的区别,因此下面就针对ModbusTCP的协议进行分析,ModbusTCP与ModbusRtu(ModbusASCII)之间的区别如下图:

从上图可以看出,ModbusTCP在Modbus串行通信的基础上,去除了校验(由于TCP本身就带有校验和)和设备地址(ModbusTCP弱化了设备地址,用IP地址来取代),再加上MBAP报文头(占7 bytes),下面针对MBAP进行分析说明:(下表可左右滑动)

长度说明客户机服务器
事务处理标识符2字节Modbus请求/响应事务处理的标识客户机启动复制响应
协议标识符2字节0=Modbus协议客户机启动复制响应
长度2字节长度之后的字节总数客户机启动服务器启动
单元标识符1字节串行链路或其它总线的从站识别客户端启动复制响应

下面针对具体报文进行分析,Modbus协议在以太网链路上的报文格式如下所示:(下表可左右滑动)

事务处理标识符协议标识符长度单元标识符功能码数据
2 bytes2 bytes2 bytes1 byte1 byteN bytes

有了以上理论基础之后,下面针对各个功能码进行详细分析:

(二)读取输出线圈

发送报文格式如下:

发送报文含义:读取服务器1号从站输出线圈,起始地址为0x13=19,对应地址为00020,线圈数量为0x1B=27,即读取1号从站输出线圈,地址从00020-00046,共27个线圈的状态值。

这里值得注意一下,协议中的起始地址指的是索引,后面的地址指的是具体地址,对于任意一个存储区,索引都是从0开始的,但是对应的具体地址,与存储区是相关的,比如输出线圈,0对应00001;输入线圈,0对应10001;输入寄存器,0对应30001;保持寄存器,0对应40001。

返回报文格式如下:

返回报文含义:返回服务器1号从站输出线圈00020-00046,共27个线圈的状态值,返回字节数为4个,分别为CD 6B B2 05。

CD=1100 1101 对应 00020-00027

6B=0110 1011 对应 00028-00035

B2=1011 0010 对应 00036-00043

05=0000 0101 对应 00044-00046

(三)读取输入线圈

发送报文格式如下:

发送报文含义:读取服务器1号从站输入线圈,起始地址为0xC4=196,对应地址为10197,线圈数量为0x1D=29,即读取1号从站输入线圈,地址从10197-10225,共29个线圈的状态值。

返回报文格式如下:

返回报文含义:返回服务器1号从站输入线圈10197-10225,共29个线圈的状态值,返回字节数为4个,分别为CD 6B B2 05。

CD=1100 1101 对应 10197-10204

6B=0110 1011 对应 10205-10212

B2=1011 0010 对应 10213-10220

05=0000 0101 对应 10221-10225

(四)读取保持寄存器

发送报文格式如下:

发送报文含义:读取服务器1号从站保持寄存器,起始地址为0x6B=107,对应地址为40108,寄存器数量为0x02=2,即读取1号从站保持寄存器,地址从40108-40109,共2个寄存器的数值。

返回报文格式如下:

返回报文含义:返回服务器1号从站保持寄存器40108-40109,共2个寄存器的数值,返回字节数为4个,分别为02 2B 01 06,40108对应数值为0x022B,40109对应数值为0x0106。

(五)读取输入寄存器

发送报文格式如下:

发送报文含义:读取服务器1号从站输入寄存器,起始地址为0x6B=107,对应地址为30108,寄存器数量为0x02=2,即读取1号从站保持寄存器,地址从30108-30109,共2个寄存器的数值。

返回报文格式如下:

返回报文含义:返回服务器1号从站输入寄存器30108-30109,共2个寄存器的数值,返回字节数为4个,分别为02 2B 01 06,30108对应数值为0x022B,30109对应数值为0x0106。

(六)预置单线圈

发送报文格式如下:

发送报文含义:预置服务器1号从站单个线圈的值,线圈地址为0x00AC=172,对应地址为00173,断通标志0xFF00表示置位,0x000表示复位,即置位1号从站输出线圈00173。

返回报文格式如下:

返回报文含义:预置单输出线圈原报文返回。

(七)预置单寄存器

发送报文格式如下:

发送报文含义:预置服务器1号从站单个保持寄存器的值,寄存器地址为0x0087=135,对应地址为40136,写入值为0x039E,即预置1号从站保持寄存器40136值为0x039E。

返回报文格式如下:

返回报文含义:预置单保持寄存器原报文返回。

(八)预置多线圈

发送报文格式如下:

发送报文含义:预置服务器1号从站多个线圈的值,线圈地址为0x0013=19,对应地址为00020,线圈数为0x0A=10,写入值为0xCD00,即预置1号从站线圈00020-00027=0xCD=1100 1101,00028-00029=0x00=0000 0000。

返回报文格式如下:

返回报文含义:预置多输出线圈返回报文是在原报文基础上除去字节数及具体字节后返回。

(九)预置多寄存器

发送报文格式如下:

发送报文含义:预置服务器1号从站多个寄存器的值,寄存器地址为0x0087=135,起始地址为40136,寄存器数量为0x02=2,结束地址为40137,写入值为0xCD00和0x0A10,即预置1号从站寄存器40136=0x0105,40137=0x0A10。

返回报文格式如下:

返回报文含义:预置多保持寄存器返回报文是在原报文基础上除去字节数及具体字节后返回。

文章来自电力微机保护网

相关推荐

如何选择主变变压器保护装置,如何选择2024.05.15

配置主变变压器差动保护装置需要遵循一定的步骤和原则,以下是一些基本步骤:选择合适的保护装置:根据变压器的额定容量、电压等级和线路形式,选择合适的保护装置,如微机型电流互感器等。配置保护回路:将差动保护的保护回路配置在变压器两侧,形成环路,使两侧电流形成回路,从而进行

发电机励磁屏介绍2023.03.29

  发电机励磁系统是与发电机运行息息相关的,现场多以励磁屏配套使用。关于励磁屏,下面简单的介绍一下其作用。  励磁系统的功能是为同步电机的励磁绕组提供直流电源,对同步电机的功能有以下几个方面:(1)通过调整励磁,使系统的电压保持在一个较高的水平。(2)实现了无

微机保护装置怎么选型2020.05.10

微机保护装置、微机综保、微机综合保护

发电机一般要装哪些保护装置2020-09

发电机保护装置、发电机保护、发电机转子接线保护

经验之谈-谈谈防孤岛保护装置的特点2020-08

微机保护装置、微机综保、继电保护

如何选择微机五防系统及其价格指南2025-01

微机五防系统是现代化建筑和工业安全管理的重要组成部分,它能够有效地防止火灾、洪水、盗窃等事故,因此其选择和安装变得尤为重要。本文将深入探讨如何选择合适的微机五防系统,并给出一般的价格范围供参考。...
产品推荐