yanglingson
級(jí)別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊(cè)時(shí)間: *
最后登錄: *
查看yanglingson的 主題 / 回貼
樓主  發(fā)表于: 2008-05-16 11:16
      三菱PLC與變頻器通訊時(shí),校驗(yàn)碼怎樣去設(shè)定還不清楚,請(qǐng)各位資深人士給點(diǎn)提示,我知道是給相應(yīng)的參數(shù)代碼,就傳輸相應(yīng)的參數(shù),還有采用那種協(xié)議格式進(jìn)行,我也不太清楚,我手上的資料沒有明講采用那種協(xié)議進(jìn)行通訊.
fgc536
DCS、PLC
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 559 個(gè)
工控威望: 1103 點(diǎn)
下載積分: 1429 分
在線時(shí)間: 36(小時(shí))
注冊(cè)時(shí)間: 2007-01-12
最后登錄: 2017-12-23
查看fgc536的 主題 / 回貼
1樓  發(fā)表于: 2008-05-16 13:41
生成一個(gè)CRC的流程為:
1、預(yù)置一個(gè)16位寄存器為0FFFFH(全1),稱之為CRC寄存器。
2、 把數(shù)據(jù)幀中的第一個(gè)字節(jié)的8位與CRC寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回CRC寄存器。
3、將CRC寄存器向右移一位,最高位填以0,最低位移出并檢測(cè)。
4、如果最低位為0:重復(fù)第三步(下一次移位);如果最低位為1:將CRC寄存器與一個(gè)預(yù)設(shè)的固定值(0A001H)進(jìn)行異或運(yùn)算。
5、重復(fù)第三步和第四步直到8次移位。這樣處理完了一個(gè)完整的八位。
    6、重復(fù)第2步到第5步來處理下一個(gè)八位,直到所有的字節(jié)處理結(jié)束。
7、最終CRC寄存器的值就是CRC的值。
此外還有一種利用預(yù)設(shè)的表格計(jì)算CRC的方法,它的主要特點(diǎn)是計(jì)算速度快,但是表格需要較大的存儲(chǔ)空間,該方法此處不再贅述,請(qǐng)參閱相關(guān)資料。
要贏別人,先贏自己!