康老师

485通讯校验码计算举例说明

2019-04-15 00:00:03
相关推荐

①读指令的校验码计算方法

要读参数的代号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。

485通讯校验码计算举例说明

这个校验码计算方式是:选择最后一位使得,一行全部转为2进制,1的个数是偶数。 你可以验证几行。第一行有20个1,第二行有18个,等等。

阅读剩余内容
网友评论
相关阅读
小编推荐