MOVW 16#FFFF, AC0 //初始化CRC寄存器
BTI *LD0, LW4 //数据缓冲区第一个字节为数据长度
MOVD LD0, LD6
INCD LD6 //指针指向第一个待处理字节
Network 2
LD SM0.0
FOR AC2, +1, LW4 //开始循环处理每一个字节
Network 3
LD SM0.0
XORB *LD6, AC0 //字节首先与CRC寄存器低位进行异或
Network 4
LD SM0.0
FOR AC1, +1, +8 //移位处理循环,处理一个字节的8位
Network 5
LD SM0.0
SRW AC0, 1 //CRC寄存器右移一位
Network 6
LD SM1.1 //如果移出位为0,则进入下一次循环
XORW 16#A001, AC0 //如果移出位为1,CRC寄存器与多项式16#A001异或
Network 7
NEXT
Network 8
LD SM0.0
INCD LD6 //指针加1指向下一个字节
Network 9
NEXT
Network 10
LD SM0.0
本文关键字:子程序 PLC入门,plc技术 - PLC入门