那首先我們來看CRC校驗的步驟,嚴格按照步驟來寫程序即可:
1、設置CRC存儲器為16#FFFF。
2、把第一個參與校驗的8位數與CRC的低八位進行異或運算結果仍存與CRC。
3、把CRC右移一位,Zui高位補0,檢查Zui低位b0位。
4、若b0=0,CRC不變,若b0=1, CRC與16#A001進行異或運算,結果仍存與CRC。
5、重復3、4兩步,直到右移8次,這樣第一個八位數就進行處理了結果仍然存于CRC。
6、重復2-5步,處理第二個八位數。
西門子S7-200SMART系列PLC的程序結構分為主程序、子程序、中斷程序。此程序用“MAIN”程序調用“CRC校驗程序”子程序
定義子程序變量表:如圖1-0
子程序變量表定義圖1-0
(1)“CRC校驗程序”子程序,初始化存儲器,并把16#FFFF裝載到CRC寄存器中(定義AC0為CRC寄存器)。并利用FOR語句循環,循環的次數由LW4決定。程序如圖1-1所示
圖1-1初始化存儲器
(2)取第一個地址與CRC寄存器做異或運算。并利用FOR語句循環,循環的次數為8,因為一個字節的數據是8個位。程序如圖1-2所示
圖1-2異或運算
(3)執行移位操作,并判斷移出為的狀態,若移出位為1,則在與16#A001做異或運算。程序如圖1-3所示
圖1-3執行移位操作
(4)利用指針,指針加1,指向下一個地址,取出下一個地址之后再進行重復以上步驟效驗,直到數據都效驗完,程序退出FOR循環。程序如圖1-4所示
圖1-4指針加1
(5)對計算結果進行高低字節交換,把結果輸出。程序如圖1-5所示
圖1-5高低字節交換
(6)在“MAIN”程序中通過按鈕的觸發調用“CRC校驗程序”子程序。
驗證一:寫入數據到VB0至VB5中,CRC效驗值存儲在VW100中
CRC效驗計算小助手(與程序中計算相符):
驗證二:寫入數據到VB0至VB5中,CRC效驗值存儲在VW100中
CRC效驗計算小助手計算(與程序中計算相符):
- 西門子S7-200SMART PLC與海浦蒙特變頻器MODBUS RTU通訊與威綸通觸摸屏控制 2024-11-22
- 西門子S7-200SMART與臺達變頻器的ASCII通信 2024-11-22
- 西門子S7-1200PLC與威綸通觸摸屏以太網通信 2024-11-22
- 西門子變頻器常用的13個參數,設置錯了會導致變頻器不能正常工作 2024-11-22
- 西門子變頻器控制電機頻率調多少合適? 2024-11-22
- 西門子變頻器50Hz以上的應用情況 2024-11-22
- 當西門子電機的旋轉速度(頻率)改變時,其輸出轉矩會怎樣? 2024-11-22
- 西門子變頻器如何控制電機?兩者如何接線? 2024-11-22
- 西門子變頻器控制方式都有哪些? 2024-11-22
- 為什么要用變頻器控制電機? 2024-11-22
- 西門子變頻器如何控制電機 2024-11-22
- 如何搞定西門子S7-1200 PID Compact V2 組態? 2024-11-22
- 如何顯示西門子觸摸屏當前實時時間 2024-11-22
- 西門子S7-200SMART PLC時鐘庫指令讀寫時間與MCGS顯示 2024-11-22
- 如何利用西門子觸摸屏實現多設備控制的彈出窗口模板? 2024-11-22
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415