技术论坛

 Modbus CRC校验如何测试呢?

返回主题列表
作者 主题
陆上行舟
奇侠

经验值:5723
发帖数:1243
精华帖:7
楼主    2018-02-05 15:35:08
主题:Modbus CRC校验如何测试呢? 精华帖 

 网上看到有成熟的程序Modbus CRC校验的程序。

1,问一下如何测试这一段程序呢?

2,CP340里面怎么应用成Modbus 通讯呢?

VAR_INPUT

  DB_NO : INT ; 

  DBB_Start : INT

  DBB_Counts : INT

 END_VAR

 VAR_OUTPUT

  CRC_H : BYTE

  CRC_L : BYTE

 END_VAR

 VAR_TEMP

  CRC_REG : WORD

  DB_NO_TEMP : INT

  BytesChecked : INT

  BitsChecked : INT

 END_VAR

 BEGIN

 NETWORK

 TITLE =

 

    L   W#16#FFFF; 

    T   #CRC_REG; //预置CRC寄存器

    L   #DB_NO; 

    T   #DB_NO_TEMP; 

    OPN  DB
[#DB_NO_TEMP]; 

    L   #DBB_Start; //读入校验起始字节

    SLD  3; 

    LAR1
 ; 

 

    L   #DBB_Counts; //读入校验字节数量

 _A:  T   #BytesChecked; //字节处理循环

    L   DBB [AR1,P#0.0]; 

    L   LB
  1; 

    XOW  ; 

    T   LB
  1; 

 

    L   8; 

 _B:  T   #BitsChecked; //位处理循环

    L   #CRC_REG; 

    SRW  1; 

    T   #CRC_REG; 

    JZ   _C; //检验移出位是否为1

    L   #CRC_REG; 

    L   W#16#A001; 

    XOW  ; 

    T   #CRC_REG; 

 

 _C:  L   #BitsChecked; //校验下个位

    LOOP
 _B; 

 

    +AR1  P#1.0;
//校验下个字节

    L   #BytesChecked; 

    LOOP
 _A; 

 

    L   LB
  1; //输出校验码

    T   #CRC_H; 

    L   LB
  0; 

    T   #CRC_L; 

 END_FUNCTION

keep moving !
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。