pihailin
活到老学到老
级别: 家园常客
精华主题: 0
发帖数量: 352 个
工控威望: 575 点
下载积分: 1120 分
在线时间: 314(小时)
注册时间: 2008-02-23
最后登录: 2024-11-18
查看pihailin的 主题 / 回贴
楼主  发表于: 2009-06-01 21:02
那位大侠知道  014307Y0010 4B  校验码 4B 是怎么算出来的?我用过几种算法都不一样  什么是  纵式余数查核法 ?永宏FBS PLC通讯协议 014307Y0010 4B    将Y10-Y16抑能  通讯正常不知道它的校验码是怎么算出来的?纳闷啊! 如果我想 将Y0-Y1抑能  发送 014302Y0000  那么校验码 该怎么算呢?有人知道吗 出来分享下嘛
meiyouleya
天黑路滑,社会复杂!!!
级别: 略有小成
精华主题: 0
发帖数量: 385 个
工控威望: 422 点
下载积分: 1377 分
在线时间: 119(小时)
注册时间: 2006-11-01
最后登录: 2021-08-13
查看meiyouleya的 主题 / 回贴
1楼  发表于: 2009-08-16 16:09
MODBUS 协议,,校验码计算说起来有点复杂,,不过搞懂了程序还是很简单的,,几步就搞定了.
就是1\先用第一个字节与FFFF异或,
2\结果右移一位
3\判断移出位,如果为1就与A001异或,为0就继续右移一位
4\重复3(右移八次)
这样一个字节就算出来了,,要算几个就一直重复下去,,
下个例子程序看下更明白,,,有些PLC只要是标准MODBUS 协议是不用写效验的