部分廠家推出了基于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。