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

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

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

CRC值的計(jì)算可以參考網(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)站提示: 請(qǐng)不要用迅雷下載附件,容易出錯(cuò)
wei0212007
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1112 個(gè)
工控威望: 1165 點(diǎn)
下載積分: 6912 分
在線時(shí)間: 1163(小時(shí))
注冊(cè)時(shí)間: 2007-04-19
最后登錄: 2024-11-09
查看wei0212007的 主題 / 回貼
1樓  發(fā)表于: 2019-05-15 00:07
路過,期待大神。
楓落云端
施主,腳抬一下
級(jí)別: 略有小成

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

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