mall9002
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 136 個
工控威望: 247 點
下載積分: 919 分
在線時間: 181(小時)
注冊時間: 2017-11-30
最后登錄: 2024-05-29
查看mall9002的 主題 / 回貼
樓主  發(fā)表于: 2019-05-13 17:52
圖片:
寫了一個ST的CRC校驗FB, 高手幫我看看 ,現(xiàn)在值算出來是對的,但是更改D100-D105數(shù)值后,必須要M80斷開再接通,才能準確的算出

CRC值的錯誤正確檢查使用的這個網(wǎng)址 http://cht.nahua.com.tw/index.php?url=http://cht.nahua.com.tw/software/crc16/&key=Modbus,%20RTU,%20CRC16&title=計算%20Modbus%20RTU%20CRC16

另外ASCII模式的LRC校驗計算方法說明書上的太麻煩了,用下面的方法實現(xiàn):1,將站號到數(shù)據(jù)的全部值加起來得到D0;2,D0 MOD K256(求余,本來是求模,但是這個都是整數(shù),可以直接取余) ;3, K256- (D0 MOD K256)得到一個值。這個值就是要計算的LRC值。
LRC 參考網(wǎng)址 http://www.ip33.com/lrc.html

CRC值的計算可以參考網(wǎng)址 http://www.ip33.com/crc.html   參數(shù)模型 NAME選擇 CRC-16/MODBUS
[ 此帖被mall9002在2019-05-13 18:22重新編輯 ]
附件: CRC test.zip (180 K) 下載次數(shù):104
網(wǎng)站提示: 請不要用迅雷下載附件,容易出錯
楓落云端
施主,腳抬一下
級別: 略有小成

精華主題: 0
發(fā)帖數(shù)量: 341 個
工控威望: 465 點
下載積分: 1595 分
在線時間: 409(小時)
注冊時間: 2017-10-10
最后登錄: 2024-08-05
查看楓落云端的 主題 / 回貼
1樓  發(fā)表于: 2019-05-15 09:37

MOVP(TRUE,k0,Z0);
MOVP(TRUE,k1,ii);
MOVP(TRUE,站號地址,站號變址寄存器);  
WXORP( TRUE,K0,HFFFF,CRC寄存器 );
這些指令的脈沖去掉,變成
MOV(TRUE,k0,Z0);
MOV(TRUE,k1,ii);
MOV(TRUE,站號地址,站號變址寄存器);  
WXOR( TRUE,K0,HFFFF,CRC寄存器 );