Modbus TCPDaten报文结构详解

免费免费技术资料

这篇内容可直接阅读,适合用于基础学习和搜索引流。

Modbus TCPDaten报文结构详解缩略图
🌐 Diese Seite ist noch nicht auf Deutsch verfügbar. Die chinesische Version wird angezeigt. Zurück zur chinesischen Seite.
本文目录
  1. 1. 读取输出线圈
  2. 2. 读取输入线圈
  3. 3. 读取保持寄存器
  4. 4. 读取输入寄存器
  5. 5. 预置单线圈
  6. 6. 预置单寄存器
  7. 7. 预置多线圈
  8. 8. 预置多寄存器

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

Modbus TCPDaten报文结构详解插图

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

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

下面针对具体报文进行分析,Modbus协议在以太网链路上的报文格式如下所示:

事务处理标识符Protokoll-Bezeichner长度EinheitenidentifikatorFunktionscodeDaten
2 bytes2 bytes2 bytes1 byte1 byteN bytes

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

读取输出线圈

发送报文格式如下:

Modbus TCPDaten报文结构详解插图1

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

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

返回报文格式如下:

Modbus TCPDaten报文结构详解插图2

返回报文含义:返回服务器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

读取输入线圈

发送报文格式如下:

Modbus TCPDaten报文结构详解插图3

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

返回报文格式如下:

Modbus TCPDaten报文结构详解插图4

返回报文含义:返回服务器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

读取保持寄存器

发送报文格式如下:

Modbus TCPDaten报文结构详解插图5

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

返回报文格式如下:

Modbus TCPDaten报文结构详解插图6

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

读取输入寄存器

发送报文格式如下:

Modbus TCPDaten报文结构详解插图7

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

返回报文格式如下:

Modbus TCPDaten报文结构详解插图8

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

预置单线圈

发送报文格式如下:

Modbus TCPDaten报文结构详解插图9

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

返回报文格式如下:

Modbus TCPDaten报文结构详解插图10

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

预置单寄存器

发送报文格式如下:

Modbus TCPDaten报文结构详解插图11

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

返回报文格式如下:

Modbus TCPDaten报文结构详解插图12

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

预置多线圈

发送报文格式如下:

Modbus TCPDaten报文结构详解插图13

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

返回报文格式如下:

Modbus TCPDaten报文结构详解插图14

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

预置多寄存器

发送报文格式如下:

Modbus TCPDaten报文结构详解插图15

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

返回报文格式如下:

Modbus TCPDaten报文结构详解插图16

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

技术术语(共 6 个)—— 点击展开
Modbus RTU基于串行链路的Modbus协议,使用二进制编码和CRC校验
Modbus TCP基于以太网的Modbus协议变体,使用TCP/IP传输
FunktionscodeModbusFunktionscode指定读/写操作类型,如01读线圈、03读保持寄存器
寄存器Modbus 寄存器存储Daten单元,分线圈/离散输入/保持/输入寄存器四类
线圈Modbus位可读写Daten,Adresse从00001开始
保持寄存器Modbus 16位可读写Daten,Adresse从40001开始
来源/工具信息 —— 点击展开
来源 Modbus中文网(modbus.cn) —— 国内领先的Modbus通信协议技术社区 分类 Modbus Vereinbarungskriterien 字数 2290 字 · 阅读约 6 分钟 更新 2026-06-30 永久链接 https://www.modbus.cn/27847.html
推荐工具:ModbusTests助手 微信小程序
Modbus中文网官方推出的ModbusDebugging-Tools,支持 Modbus RTU/TCP 实时通信Tests、寄存器读写、线圈控制、Daten监控和报文分析。 无需安装,微信搜索「ModbusTests助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC-Prüfung和设备Tests,或Anforderungen einreichen获取选型与接入建议。

工程师会员

把这篇文章变成可执行的Tests资料

开通后可使用高级报文解析、资料包下载、Beispiel Code、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口

发表回复

您的邮箱Adresse不会被公开。 必填项已用 * 标注