找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,訪問微社區

搜索
開啟左側

CRC校驗原理以及西門子1200PLC梯形圖的實現

馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?立即注冊

x
CRC校驗原理以及西門子1200PLC梯形圖的實現
計算法:
CRC校驗生成步驟:
1、預置一個16位CRC寄存器為16進制FFFF,即所有數均為1.
2、該16位寄存器的低8位字節與信息幀的第一位字節的8位進行異或運算,運算結果放入16位寄存器。
3、把這個16位寄存器向右移一位,用0補充高位。
4、若向右移出的是1,則生成多項式A001和這個寄存器進行異或運算若移出數為0則返回第三步。
5、重復3和4 直至移出8位。
6、重復2步到第5步進行下一個8位數據的處理。
7、最后得到的CRC寄存器即為CRC碼。
梯形圖實現CRC校驗:
  由上述步驟可知要實現CRC校驗要用到雙重循環,而在西門子S7-1200中沒有像S7-300中那樣的loop虛幻指令,所以我們只能用普通指令進行編寫循環。
首先,建立第五步的內部循環,首先建立函數塊命名為“校驗”,在“校驗”函數塊中定義
輸出參數:準備驚醒校驗的“校驗數”、校驗時要移動的位數“校驗次數”
首次驚醒異或的“校驗值_1”
輸出參數:校驗后的結果“校驗值”


然后,建立第6步的函數塊,命名“為CRC校驗塊”在函數塊中定義輸入輸出參數。
輸入參數:要校驗的數組“數組”、開始校驗的位置“起始下標”、校驗的數“元素值”、要校驗的個數“字節數”
輸出參數:校驗完成后的地校驗值“校驗結果”
在函數中會用到調用上一步中所建立的函數塊“校驗”
最后在函數中調用“CRC校驗塊”即可實現CRC校驗,用此校驗方法在校驗中猶豫用到的校驗方法為一位法,所以在循環時所需的時間比較長。可以采用查表的方法來降低計算所需要的時間。

江西自動化網|江西工控論壇感謝您的訪問
分享到:  QQ好友和群QQ好友和群 微信微信
收藏0
轉播
分享
淘帖0
支持0
反對0
苦逼的一天啊
喜乐福彩