基于RS485接口的AIBUS通信校验码计算

2020/6/10 13:03:33 人评论 次浏览 分类:二次仪表  文章地址:http://yunrun.com.cn/tech/3123.html

部分厂家推出了基于RS485接口的AIBUS通讯协议的数显表,采用AIBUS协议的数显表数据传输速度远高于MODBUS协议的仪表。昌晖仪表以某品牌数显表为例介绍基于RS485接口的AIBUS通信校验码计算。

校验码采用16位求和校验方式。

①读指令的校验码计算方法
要读参数的代号x256+82+ADDR。
例如:ADDR为1,要读的参数代号为00,则:00x256+82+1=83(16进制为0053H)。然后调整为低字节在前,高字节在后,即为5300。

②写指令的校验码计算方法

以下公式做16位二进制加法计算得出的余数(溢出部分不处理):要写的参数代号x256+67+要写的参数值+ADDR。
例如:ADDR为1,要读的参数代号为00,要写的参数值为1000。则:00x256+67+1000+1=1068(16进制为042CH)。然后调整为低字节在前,高字节在后,即为2C 04。
注意:以上公式中ADDR为仪表地址参数值,范围是0-80(注意不要加上80H)。校验码为以上公式做二进制16位整数加法后得到的余数,余数为2个字节,其低字节在前,高字节在后。要写的参数值用16位二进制整数表示。

③返回校验码

为PV+SV+(报警状态x256+MV)+参数值+ADDR,按整数加法相加后得到的余数。计算校验码时,每2个8位字节组成1个16位二进制整数进行加法运算,溢出数忽略,余数作为校验码。
例如:E3 00 FA 00 64 60 FA 00 3C 63。PV=227,SV=250,报警状态=96,MV=100,参数值=250,ADDR=1,则:227+250+(96x256+100)+250+1=25404(16进制为633CH),然后调整为低字节在前,高字节在后,即为3C63。


相关阅读

RS485和MODBUS的区别与联系
RS485最大通讯距离和RS485接口定义

共有访客发表了评论 网友评论

  客户姓名:
邮箱或QQ:
验证码: 看不清楚?