设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
MODBUS RTU 报文示例
返回列表
发新帖
[三菱]
MODBUS RTU 报文示例
[复制链接]
80842
|
0
|
2024-4-14 23:41:58
|
显示全部楼层
|
阅读模式
通讯故障,分析报文是查找问题一种直接有效的方法。特别如MODBUS这种问答式的通讯协议,本文列出MODBUS RTU各种类型报文示例,以供大家参考。
示例参数:从站设备地址1
1
读取线圈 0x
请求报文:
Tx:01 01 00 00 00 0A BC 0D
01:从站地址
01:功能码
00 00:读取线圈的起始地址0x0000
00 0A:线圈的个数,为10个
BC 0D:CRC校验值
正常响应报文:
Rx:01 01 02 03 01 78 CC
01:从站地址
01:功能码
02:后面线圈数据字节数,线圈为单个比特量,其数据仍按字节进行传输。如果数量不是8的倍数,则用零填充数据字节中剩余的位。
03 01:10个线圈的值,第一个字节03(2#0000 0011)对应线圈0x0000~0x0007的值,0x0000=1、0x0001=1,其他为0,第二个字节01(2#0000 0001)对应线圈0x0008~0x0009的值,0x0008=1
78 CC:CRC校验值
异常响应报文:
Rx:01 81 02 C1 91
01:从站地址
81:异常响应功能码(为请求功能码+0x80)
02:异常码,表示非法的数据地址
C1 91:CRC校验值
2
写入单个线圈 0x
请求报文:
Tx:01 05 00 00 FF 00 8C 3A
01:从站地址
05:功能码
00 00:线圈的地址0x0000
FF 00:置位线圈写入FF,复位线圈写入00
8C 3A:CRC校验值
正常响应报文:
Rx:01 05 00 00 FF 00 8C 3A
从站返回相同报文
异常响应报文:
Rx:01 85 02 C3 51
01:从站地址
85:异常响应功能码
02:异常码,表示非法的数据地址
C3 51:CRC校验值
3
写入多个线圈 0x
请求报文:
Tx:01 0F 00 00 00 0A 02 41 02 54 A9
01:从站地址
0F:功能码
00 00:线圈的起始地址0x0000
00 0A:写入线圈的个数,为10个
02:后面写入的值的字节数
41 02:写入的值,第一个字节41(2#0100 0001)对应线圈0x0000~0x0007的值,0x0000=1、0x0006=1,其他为0,第二个字节02(2#0000 0010)对应线圈0x0008~0x0009的值,0x0009=1
54 A9:CRC校验值
正常响应报文:
Rx:01 0F 00 00 00 0A D5 CC
01:从站地址
0F:功能码
00 00:线圈的起始地址
00 0A:写入线圈的个数,为10个
D5 CC:CRC校验值
异常响应报文:
Rx:01 8F 02 C5 F1
01:从站地址
8F:异常响应功能码
02:异常码,表示非法的数据地址
C5 F1:CRC校验值
4
读输入离散量 1x
请求报文:
Tx:01 02 00 00 00 05 B8 09
01:从站地址
02:功能码
00 00:输入离散量的起始地址1x0000
00 05:读取输入离散量的个数,为5个
B8 09:CRC校验值
正常响应报文:
Rx:01 02 01 05 61 8B
01:从站地址
02:功能码
01:后面输入离散量数据字节数,输入离散量为单个比特量,其数据仍按字节进行传输。如果数量不是8的倍数,则用零填充数据字节中剩余的位。
05:5个输入离散量数据的值,对应1x0000~1x0004的值,0x0000=1、0x0002=1,其他为0
61 8B:CRC校验值
异常响应报文:
Rx:01 82 02 C1 61
01:从站地址
82:异常响应功能码
02:异常码,表示非法的数据地址
C1 61:CRC校验值
5
读输入寄存器 3x
请求报文:
Tx:01 04 00 00 00 02 71 CB
01:从站地址
04:功能码
00 00:输入寄存器的起始地址3x0000
00 02:读取输入寄存器的个数,为2个
71 CB:CRC校验值
正常响应报文:
Rx:01 04 04 00 7B 01 C8 8B 9B
01:从站地址
04:功能码
04:后面输入寄存器数据字节数,一个输入寄存器为2个字节
00 7B 01 C8:2个输入寄存器数据的值,对应3x0000~3x0001的值,0x0000=16#007B、0x0001=16#01C8
8B 9B:CRC校验值
异常响应报文:
Rx:01 84 02 C2 C1
01:从站地址
84:异常响应功能码
02:异常码,表示非法的数据地址
C2 C1:CRC校验值
6
读保持寄存器 4x
请求报文:
Tx:01 03 00 02 00 02 65 CB
01:从站地址
03:功能码
00 02:保持寄存器的起始地址4x0002
00 02:读取保持寄存器的个数,为2个
65 CB:CRC校验值
正常响应报文:
Rx:01 03 04 00 6F 00 DE 4A 76
01:从站地址
03:功能码
04:后面保持寄存器数据字节数,一个保持寄存器为2个字节
00 6F 00 DE:2个保持寄存器数据的值,对应4x0002~4x0003的值,4x0002=16#006F、4x0003=16#00DE
4A 76:CRC校验值
异常响应报文:
Rx:01 83 02 C0 F1
01:从站地址
83:异常响应功能码
02:异常码,表示非法的数据地址
C0 F1:CRC校验值
7
写入单个保持寄存器 4x
请求报文:
Tx:01 06 00 00 FF 00 8C 3A
01:从站地址
06:功能码
00 00:保持寄存器的地址0x0000
00 7B:写入的值,2个字节
C9 E9:CRC校验值
正常响应报文:
Rx:01 06 00 00 FF 00 8C 3A
从站返回相同报文
异常响应报文:
Rx:01 86 02 C3 A1
01:从站地址
86:异常响应功能码
02:异常码,表示非法的数据地址
C3 A1:CRC校验值
8
写入多个保持寄存器 4x
请求报文:
Tx:01 10 03 E7 00 02 04 00 7B 01 C8 D8 EE
01:从站地址
10:功能码
03 E7:多个保持寄存器的起始地址4x0999
00 02:写入保持寄存器的个数,为2个
04:后面写入的值的字节数
00 7B 01 C8:写入的值,第一个保持寄存器4x0999写入16#007B,第二个保持寄存器4x1000写入16#01C8
D8 EE:CRC校验值
正常响应报文:
Rx:01 10 03 E7 00 02 F1 BB
01:从站地址
10:功能码
03 E7:多个保持寄存器的起始地址
00 02:写入保持寄存器的个数,为2个
F1 BB:CRC校验值
异常响应报文:
Rx:01 90 02 CD C1
01:从站地址
90:异常响应功能码
02:异常码,表示非法的数据地址
CD C1:CRC校验值
异常响应中其他常见的异常码:
01:非法的功能码,表示接收到的功能码从机不支持
03:非法的数据值,表示接收到主机发送的数据值超出从机相应地址的数据范围
04:读取数据失败,表示从机执行请求的操作时,产生不可重新获得的差错
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
duxbsz
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』