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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值