39RTMCAN 16207-61/10

更新时间: 2023-01-20

CRC校验子程序(SBR0)  英威腾CHV系列矢量变频器内置的MODBUS协议采用RTU传输格式,该格式使用CRC校验方式对每次发出或接收的数据帧进行校验。因此,该子程序使用了多个局部变量,以方便其它子程序调用。  在西门子STEP 7-Micro/Win 编程环境下(如图一),需要在该子程序的局部变量表中预先设定以下局部变量:  

  

  (1)输入型局部变量(VAR_INPUT)  1d_0:DWORD; // 待发送数据地址指针变量  lw_4:WORD; // 待发送数据字节个数变量  (2)输出型局部变量(VAR_OUTPUT)  lb_6:BYTE; // CRC校验值高位变量  lb_7:BYTE; // CRC校验值低位变量  (3)临时局部变量(VAR)  lw_8:WORD; // 待发送数据字节个数计数变量  lw_10:WORD; // 待发送数据每字节8位二进制数计数变量  Network 1  LD SM0.0  MOVW 16#FFFF, LW6 //将16位CRC校验寄存器LW6全置为1  Network 2  LD SM0.0  FOR LW8, +1, LW4 //对待发送数据字节个数(LW4)计数(LW8)循环  Network 3  LD SM0.0  XORB *LD0, LB7 //使待发送数据的**个字节(*LD0)与   //CRC校验寄存器低位字节(LB7)进行异或运算  Network 4  LD SM0.0  INCD LD0 //ld_0指向待发送数据的下一个地址  Network 5  LD SM0.0  FOR LW10, +1, +8 //对每字节8位二进制数计数(LW10)循环  Network 6  LD SM0.0  SRW LW6, 1 //CRC校验寄存器LW6右移一位  Network 7  LD SM1.1 //若移位后的溢出值SM1.1为1  XORW 16#A001, LW6 //则使值16#A001与LW6进行异或运算  Network 8  NEXT //结束每字节8位二进制数计数循环  Network 9  NEXT //结束每数据帧字节个数计数循环


上一篇:381-643065-2模块

下一篇:39ACM24BEN 16139-215/1