723512949
级别: 探索解密
精华主题: 0
发帖数量: 47 个
工控威望: 140 点
下载积分: 510 分
在线时间: 21(小时)
注册时间: 2019-05-20
最后登录: 2024-09-04
查看723512949的 主题 / 回贴
楼主  发表于: 2020-04-25 11:45
图片:
图片:
这是我通过三菱PLC发送的MODBUS RTU的报文
01 05 00 00 FF 00 8C 3A 00
01 0F 00 01 00 17 03 FF FF 7F 34 95 00
01 0F 00 00 00 17 03 00 00 00 14 75 00
01 06 00 00 33 33 DD 2F 00
01 10 00 01 00 10 20 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 07 28 1B 23 00
单个线圈我能理解
批量写入我就不能理解了
例如:01 05 00 00 FF 00 8C 3A 00
站号。功能码。数据高位。数据低位。ON。CRC效验。00
但是:01 0F 00 01 00 17 03 FF FF 7F 34 95 00
站号。功能码。起始地址高位。起始地址低位。写入点位。字节数。写入数据。CRC效验
这里的写入数据我写的是FFFF为什么会多出来个7F


经过实验,数据超过8个字节后面就会出现这个,第一位表示数据的最后一位的个数,第二位表示最后一个数据
例如:7777后面就是77,7D2D后面就是1D,AEEE后面就是3E,3235后面就是05
[ 此帖被723512949在2020-04-28 10:48重新编辑 ]
723512949
级别: 探索解密
精华主题: 0
发帖数量: 47 个
工控威望: 140 点
下载积分: 510 分
在线时间: 21(小时)
注册时间: 2019-05-20
最后登录: 2024-09-04
查看723512949的 主题 / 回贴
1楼  发表于: 2020-04-25 11:47
求大佬解释
受不了了
级别: 家园常客
精华主题: 0
发帖数量: 598 个
工控威望: 727 点
下载积分: 1673 分
在线时间: 404(小时)
注册时间: 2015-06-17
最后登录: 2024-12-05
查看受不了了的 主题 / 回贴
2楼  发表于: 2020-04-25 12:52
MODBUS的校验码8位?我咋记得是16位呢,而且你这校验码每次都是00,这完全就是中彩票的手气呀
723512949
级别: 探索解密
精华主题: 0
发帖数量: 47 个
工控威望: 140 点
下载积分: 510 分
在线时间: 21(小时)
注册时间: 2019-05-20
最后登录: 2024-09-04
查看723512949的 主题 / 回贴
3楼  发表于: 2020-04-25 13:43
最后两个00不是效验码啊,是00前面4个
mistyke
打工仔
级别: 论坛先锋
精华主题: 0
发帖数量: 143 个
工控威望: 1066 点
下载积分: 6021 分
在线时间: 355(小时)
注册时间: 2018-01-02
最后登录: 2024-12-19
查看mistyke的 主题 / 回贴
4楼  发表于: 2020-04-25 15:00
看这样子,应该是你最后H0FFFF才16位,你实际是需要有17位要置位