ModBus Poll中的ASCII协议的LRC校验计算方法

网上找了半天,刚开始也不太理解,后来到处看发现了,其实是LRC经常是与VRC一起使用,这样就会为每个字符校验码,在工业领域Modbus协议Ascii模式采用该算法。

计算方法是 每一位得出10进制的数,加起来然后取余256,然后取反加1

例子:

3A 30 31 30 36 30 30 30 35 30 30 30 35 45 46 0D 0A 

3A 30 31 30 33 30 30 30 30 30 30 30 41 46 32 0D 0A 

3A 30 35 30 33 30 30 46 46 30 30 30 31 30 30 30 34 46 34 0D 0A 

第一个例子

第一位3A不理,然后最后四位去掉 45 46是校验位换算成字符串就是EF,0D 0A是换行回车不管

30 31 30 36 30 30 30 35 30 30 30 35 换算成数字就是010600050005,加起来是17也就是0x11,取反是0xEE,加一是0xEF,换算成ASCII就是45 46

第二个例子同理

30 31 30 33 30 30 30 30 30 30 30 41 换算成数字就是01030000000A,加起来就是14,也就是0x0E,取反是0xF1,加一是0xF2,换算成ASCII就是46 32

第三个例子

050300FF00010004,全部加起来取余之后就是F4

正常的LRC校验是ASCII的时候就全部异或,具体怎么算我也不太清楚,不过这个是一搜就能找到的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值