网上看到有成熟的程序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