<sup id="x7dny"><rp id="x7dny"><big id="x7dny"></big></rp></sup>
    • <label id="x7dny"><tt id="x7dny"><tfoot id="x7dny"></tfoot></tt></label>
      <dfn id="x7dny"></dfn>
      <small id="x7dny"><rp id="x7dny"><rt id="x7dny"></rt></rp></small>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      CRC校驗程序的編寫
      發布時間: 2024-06-15 10:30 更新時間: 2024-12-02 08:00
      圖片【程序結構描述】

      西門子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效驗計算小助手計算(與程序中計算相符):

      圖片

      循環冗余校驗碼(CRC),簡稱循環碼,是一種常用的、具有檢錯、糾錯能力的校驗碼,在早期的通信中運用廣泛。循環冗余校驗碼常用于外存儲器和計算機同步通信的數據校驗。奇偶校驗碼和海明校驗碼都是采用奇偶檢測為手段檢錯和糾錯的(奇偶校驗碼不具有糾錯能力),而循環冗余校驗則是通過某種數學運算來建立數據位和校驗位的約定關系的。


      循環冗余校驗碼(cyclic redundancy check)簡稱CRC(循環碼),是一種能力相當強的檢錯、糾錯碼,并且實現編碼和檢碼的電路比較簡單,常用于串行傳送(二進制位串沿一條信號線逐位傳送)的輔助存儲器與主機的數據通信和計算機網絡中。


      循環碼是指通過某種數學運算實現有效信息與校驗位之間的循環校驗(而海明碼是一種多重校驗)。


      這種編碼基本思想是將要傳送的信息M(X)表示為一個多項式L,用L除以一個預先確定的多項式G(X),得到的余式就是所需的循環冗余校驗碼。


      這種校驗又稱多項式校驗。


      理論上可以證明循環冗余校驗碼的檢錯能力有以下特點:①可檢測出所有奇數位錯;②可檢測出所有雙比特的錯;③可檢測出所有小于、等于校驗位長度的突發錯。 


      聯系方式

      • 電  話:13922889745
      • 經理:向小姐
      • 手  機:18475208684
      • 微  信:18475208684