部分廠家推出了基于RS485接口的AIBUS通訊協(xié)議的數(shù)顯表,采用AIBUS協(xié)議的數(shù)顯表數(shù)據(jù)傳輸速度遠(yuǎn)高于MODBUS協(xié)議的儀表。昌暉儀表以某品牌數(shù)顯表為例介紹基于RS485接口的AIBUS通信校驗碼計算。
校驗碼采用16位求和校驗方式。
①讀指令的校驗碼計算方法
要讀參數(shù)的代號x256+82+ADDR。
例如:ADDR為1,要讀的參數(shù)代號為00,則:00x256+82+1=83(16進制為0053H)。然后調(diào)整為低字節(jié)在前,高字節(jié)在后,即為5300。
②寫指令的校驗碼計算方法
以下公式做16位二進制加法計算得出的余數(shù)(溢出部分不處理):要寫的參數(shù)代號x256+67+要寫的參數(shù)值+ADDR。
例如:ADDR為1,要讀的參數(shù)代號為00,要寫的參數(shù)值為1000。則:00x256+67+1000+1=1068(16進制為042CH)。然后調(diào)整為低字節(jié)在前,高字節(jié)在后,即為2C 04。
注意:以上公式中ADDR為儀表地址參數(shù)值,范圍是0-80(注意不要加上80H)。校驗碼為以上公式做二進制16位整數(shù)加法后得到的余數(shù),余數(shù)為2個字節(jié),其低字節(jié)在前,高字節(jié)在后。要寫的參數(shù)值用16位二進制整數(shù)表示。
③返回校驗碼
為PV+SV+(報警狀態(tài)x256+MV)+參數(shù)值+ADDR,按整數(shù)加法相加后得到的余數(shù)。計算校驗碼時,每2個8位字節(jié)組成1個16位二進制整數(shù)進行加法運算,溢出數(shù)忽略,余數(shù)作為校驗碼。
例如:E3 00 FA 00 64 60 FA 00 3C 63。PV=227,SV=250,報警狀態(tài)=96,MV=100,參數(shù)值=250,ADDR=1,則:227+250+(96x256+100)+250+1=25404(16進制為633CH),然后調(diào)整為低字節(jié)在前,高字節(jié)在后,即為3C63。
相關(guān)閱讀
RS485和MODBUS的區(qū)別與聯(lián)系
RS485最大通訊距離和RS485接口定義