PLC通信校驗程序 BBC校驗 LRC校驗 CRC校驗程序


BBC、LRC、CRC校驗

 庫介紹:

        使用軟件和硬件環境:

        STEP 7-Micro/WIN SMART V2.2及以上

        S7-200 SMART固件V2.2及以上

 特點:

       伴隨着新版本的STEP 7-Micro/WIN SMART和S7-200 SMART CPU的發布,S7-200 SMART CPU性能越來越強大。由於串口通信設計較為困難,基於此筆者設計了BBC(異或校驗)、LRC(縱向冗余檢驗)、CRC(循環冗余校驗),便於初學者快速用於Modbus RTU/ASCII協議及相關支持BBC、LCR和CRC協議的設計,為后續工作打下堅實的基礎。

 

使用注意事項:

1)計算 BBC 校驗值

       說明: 

                本程序使用異或的方法計算信息幀的BBC 值。

       輸入參數:

                 Ris_Edge       使能信號 : 上升沿信號有效觸發轉換

                 P_Dint               緩沖區頭指針,由第一個字節給出信息長度

                 Num              校驗數據數量

       輸出參數:

                 Out_Value     BBC 計算結果

       通信報文:30 35 38 45 34 32,注意此通信報文為ASCII格式的16進制表示

       需要帶求的校驗碼:37 45  對應的ASCII格式為'7' 'E'

BBC校驗 

2)計算 LRC 校驗值

       說明: 

                本程序使用位或的方法計算信息幀的 LRC 值。

       輸入參數:

                 First_on        使能信號 : 上升沿信號有效觸發轉換

                 Pint               緩沖區頭指針,由第一個字節給出信息長度

                 Num              校驗數據數量

       輸出參數:

                 Out_Value    LRC 計算結果

        本例程以Modbus Ascii通信的報文為依據求取相應的校驗碼

       通信報文:30 31 30 33 30 30 30 30 30 30 30 31,注意此通信報文為ASCII格式的16進制表示需要轉換為

       真實的16進制

       需要帶求的校驗碼:46 42  對應的ASCII格式為'F' 'B'

  

LRC校驗 

3)計算 CRC16 校驗值

      說明: 

               本程序使用位或的方法計算信息幀的 CRC 值。

               使用緩沖區的第一個字節作為待計算的數據長度,信息字節串緊隨其后

      注意:

               本程序用到累加器 AC0,但並不自動保存/恢復它

               因本庫中調用它的程序會保存累加器,所以這里不需要保存

               但如在本庫以外的地方調用此程序,則需要用戶自己做保存/恢復工作

      輸入參數:

               pBuf        緩沖區頭指針,由第一個字節給出信息長度

               bExchg        是否交換計算結果的高低字節 : 1=交換、0=不交換

               bPutBack    結果寫回緩沖區數據尾部 : 1=寫入、0=不寫入

               本庫其實不需要這兩個參數,僅僅是為了增加在本庫以外的地方使用本程序的兼容性

     輸出參數:

               wCrc    CRC 計算結果

               結果同時被放回到緩沖區緊隨數據之后

    本例程以Modbus RTU通信的報文為依據求取相應的校驗碼

    初始化校驗數據:01 03 00 00 00 01其中VB0=6代表數據字節個數

    CRC16數據01 03 00 00 00 01 輸出結果16#84 0A  10#33802

 

CRC校驗

源代碼鏈接:https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-19247315394.37.68455c83dQG7t7&id=578581253719


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM