女人叫床声_动漫美女被艹视频_国产精品短篇二区_理发店女人一级毛片

yxc111
級別: 略有小成
精華主題: 0
發帖數量: 204 個
工控威望: 292 點
下載積分: 1669 分
在線時間: 86(小時)
注冊時間: 2010-03-12
最后登錄: 2020-04-15
查看yxc111的 主題 / 回貼
樓主  發表于: 2010-07-10 21:39
用RTU模式通訊  里面有個CRC的值怎么計算啊  最好有詳細的書或視屏傳個
sjm213
有小知識,無大學問。
級別: 論壇版主

精華主題: 7 篇
發帖數量: 5215 個
工控威望: 7439 點
下載積分: 159124 分
在線時間: 3174(小時)
注冊時間: 2007-11-21
最后登錄: 2025-01-01
查看sjm213的 主題 / 回貼
1樓  發表于: 2010-07-11 10:00
前一陣也有好幾個關于CRC的問題,樓上已經逐個給出了解答。

在網上流行的CRC碼的計算方法如下:

1、 預置1個16位的寄存器為十六進制FFFF(即全為1);稱此寄存器為CRC寄存器;

2、 把第一個8位二進制數據(既通訊信息幀的第一個字節)與16位的CRC寄存器的低 8位相異或,把結果放于CRC寄存器;

3、 把CRC寄存器的內容右移一位(朝低位)用0填補最高位,并檢查移出位;

4、 如果移出位為0:重復第3步(再次右移一位); 如果移出位為1:CRC寄存器與多項式A001(1010 0000 0000 0001)進行異或;

5、 重復步驟3和4,直到右移8次,這樣整個8位數據全部進行了處理;

6、 重復步驟2到步驟5,進行通訊信息幀下一個字節的處理;

7、 將該通訊信息幀所有字節按上述步驟計算完成后,得到的16位CRC寄存器;

8、 最后得到的CRC寄存器的高、低字節進行交換即為:CRC碼。


據此,給出一個H05的CRC-16演算過程,
H05的CRC碼:
HFFFF:1111 1111 1111 1111
H05  :0000 0000 0000 0101
X0R  :1111 1111 1111 1010
--------------------------
N1-->  0111 1111 1111 1101
--------------------------
N2-->  0011 1111 1111 1110
HA001: 1010 0000 0000 0001
XOR : 1001 1111 1111 1111
--------------------------
N3-->  0100 1111 1111 1111
HA001: 1010 0000 0000 0001
XOR : 1110 1111 1111 1110
--------------------------
N4-->  0111 0111 1111 1111
--------------------------
N5-->  0011 1011 1111 1111
HA001: 1010 0000 0000 0001
XOR : 1001 1011 1111 1110
--------------------------
N6-->  0100 1101 1111 1111
--------------------------
N7-->  0010 0110 1111 1111
HA001: 1010 0000 0000 0001
XOR : 1000 0110 1111 1110
--------------------------
N8-->  0100 0011 0111 1111
||  H  4    3    7    F

大體就是這樣進行8次移位,希望您沒有暈。

所以最好是通過軟件,讓程序來做這樣的麻煩事。
以三菱為例,你可以這樣做:


在D10~D15輸入進行校驗的數,在D20就能得到結果。
本帖最近評分記錄:
  • 下載積分:+5(xqx666) 優秀文章
  • 下載積分:+5(lcl0904) 感謝分享
    sjm213
    有小知識,無大學問。
    級別: 論壇版主

    精華主題: 7 篇
    發帖數量: 5215 個
    工控威望: 7439 點
    下載積分: 159124 分
    在線時間: 3174(小時)
    注冊時間: 2007-11-21
    最后登錄: 2025-01-01
    查看sjm213的 主題 / 回貼
    2樓  發表于: 2010-07-11 23:37
    1.程序上傳不上傳,我很糾結;
    2.判斷末位是0與否看的是移出位,即移位之前的那個末位,但做XOR的卻是移位后的數,所以文字闡述可能造成誤解,但看程序就能推敲出來;
    3.這個程序里16位不行,至于為什么您自己推敲!當然您可以用別的辦法,避免使用32位!