CRC效驗程序的編寫
饒等
發(fā)布于2021-04-14 11:55
5
1
標簽:新手入門,案例分享,CRC效驗程序
【免費下載】電工全套資料_電工仿真軟件_電工學習手冊_電工電子書
【免費學習】PLC熱門課程_PLC初級_PLC基礎_PLC中高級_軟件安裝
【免費下載】 PLC軟件下載_PLC軟件安裝教程_PLC手冊下載_PLC案例下載
【免費學習】 變頻器精品課程_西門子PLC精品教程_三菱PLC精品教程
導讀:在工作現場,經常會用到通訊與其它設備交互信息,而通訊必然會需要效驗。而初學者學習MODBUS RTU的時候往往會糾結這個CRC效驗程序如何編寫?CRC效驗程序相對來說比較繁瑣,但是大家可以收藏好這個程序(使用200SMART PLC),加以理解,需要的時候調用此程序即可。
那首先我們來看CRC效驗的步驟,嚴格按照步驟來寫程序即可:
1、 設置CRC存儲器為16#FFFF。
2、 把第一個參與校驗的8位數與CRC的低八位進行異或運算結果仍存與CRC。
3、 把CRC右移一位,最高位補0,檢查最低位b0位。
4、 若b0=0,CRC不變,若b0=1, CRC與16#A001進行異或運算,結果仍存與CRC。
5、 重復3、4兩步,直到右移8次,這樣第一個八位數就進行處理了結果仍然存于CRC。
6、 重復2-5步,處理第二個八位數。
【程序結構描述】
1、 西門子S7-200SMART系列PLC的程序結構分為主程序、子程序、中斷程序。此程序用“MAIN”程序調用“CRC效驗程序”子程序
定義子程序變量表:如圖1-0
子程序變量表定義圖1-0
(1)“CRC效驗程序”子程序,初始化存儲器,并把16#FFFF裝載到CRC寄存器中(定義AC0為CRC寄存器)。并利用FOR語句循環(huán),循環(huán)的次數由LW4決定。程序如圖1-1所示
圖1-1初始化存儲器
(2)取第一個地址與CRC寄存器做異或運算。并利用FOR語句循環(huán),循環(huán)的次數為8,因為一個字節(jié)的數據是8個位。程序如圖1-2所示
圖1-2異或運算
(3)執(zhí)行移位操作,并判斷移出為的狀態(tài),若移出位為1,則在與16#A001做異或運算。程序如圖1-3所示
圖1-3執(zhí)行移位操作
(4)利用指針,指針加1,指向下一個地址,取出下一個地址之后再進行重復以上步驟效驗,直到數據都效驗完,程序退出FOR循環(huán)。程序如圖1-4所示
圖1-4指針加1
(5)對計算結果進行高低字節(jié)交換,把結果輸出。程序如圖1-5所示
圖1-5高低字節(jié)交換
(6)在“MAIN”程序中通過按鈕的觸發(fā)調用“CRC效驗程序”子程序。
驗證一:寫入數據到VB0至VB5中,CRC效驗值存儲在VW100中
CRC效驗計算小助手(與程序中計算相符):
驗證二:寫入數據到VB0至VB5中,CRC效驗值存儲在VW100中
CRC效驗計算小助手計算(與程序中計算相符):
(技成培訓網原創(chuàng),作者:郭彪,未經授權不得轉載,違者必究)

電工精品教程
立即掃碼免費學習
|

電工題庫寶典
立即掃碼免費下載
|

超全PLC學習資料包
立即掃碼免費下載
|