tft每日頭條

 > 生活

 > 校驗碼的3種計算方法

校驗碼的3種計算方法

生活 更新时间:2024-08-26 10:19:15

FX2N不能使用CRC校驗碼指令,我們如何讓FX2N計算校驗碼呢?

上一章節我們用MOV指令傳送代碼:01 06 20 00 00 12,這6個代碼分别傳送到D50-D55存儲器中,從指令MOV K6 D0到MOV D111 D57,這4條指令是計算校驗碼的程序。

校驗碼的3種計算方法(FX2N校驗碼怎麼計算)1

畫框的是計算校驗碼程序

MOV K6 D0是一條普通的傳送指令,将十進制數6傳送入D0,作用是設置計算校驗碼的字節個數,從代碼:01 06 20 00 00 12可知計算校驗碼的字節個數是6個,因此先将6這個數傳送給D0。

CALL P1是調用子程序指令,P1是子程序編号,指令執行後CALL P1下面的程序被暫停轉而去執行P1的程序。

校驗碼的3種計算方法(FX2N校驗碼怎麼計算)2

P1子程序

我們不必完全理解這個P1子程序的指令,隻要3步就能運用它:

第一步:MOV K6 D0這條指令我們在上面已執行,對應的是P1中的第3條指令FOR D0,6這個數字就是傳送到FOR D0中,用來指定計算校驗碼的字節個數 D100。

第二步:P1中的第4條指令,WAND H0FF D50V0 D101,WAND是“與”運算,不了解沒關系,我們隻關注D50V0中的D50,它與前面應用的無協議指令RS D50 K8 D70 K0,這個D50就是發送數據存儲器中的第一個,我們就是要指定這第一個存儲器,假設你的無協議指令是RS D10 K8 D70 K0,那麼就将D50V0中的D50改成D10。

校驗碼的3種計算方法(FX2N校驗碼怎麼計算)3

關注D50V0

第三步:找到倒數第5條指令WAND H0FF D100 D110,存儲器D110中的數據是計算校驗碼結果的低8位,WAND H0FF00 D100 D111,D111中的數據是計算校驗碼結果的高8位。回到第一幅圖的方框,使用指令MOV D110 D56,就是将校驗碼的低8位傳送到D56,另使用MOV D111 D57,就是将校驗碼的高8位傳送到D57,這兩條傳送指令等于是寫入校驗碼。

校驗碼的3種計算方法(FX2N校驗碼怎麼計算)4

計算出校驗碼存D110 D111

那就完成了變頻器正轉運行的代碼:01 06 20 00 00 12 XX XX,XX代表P1自動計算出來的校驗碼,然後寫入SET M8122發送通訊請求指令,當X001按下時變頻器就會收到這一組代碼,它就會得到正轉運行的指示,但它還需要知道頻率是多少才能運轉起來。

注意:P1子程序中占用的存儲器V0,D100 ,D101, D111,在子程序的外面不能再向這些存儲器寫入數據,否則校驗碼計算會出錯。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved