上传一个用VB编的CRC码生成程序; WWW_PLCJS_COM-PLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
源码如下: WWcW_PLCJS_COM-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
CRC校验码生成 WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
Private Function CrcResult(ByVal Data As Long, ByVal Genpoly As Long, ByVal CrcData As Long) As Long W1WW_P4LCJS_COM-PLC-技.术_网
Dim n As Integer WWW_PLCJS_COM-PLC-技.术_网
Data = Data * 2 WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
For n = 8 To 1 Step -1 WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
Data = Fix(Data / 2) WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
If ((Data Xor CrcData) And 1) Then WWW_PL※CJS_COM-PLC-技.术_网
CrcData = Fix(CrcData / 2) Xor Genpoly plcjs.技.术_网
Else WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
CrcData = Fix(CrcData / 2) P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
End If WW.W_PLC※JS_C,OM-PL,C-技.术_网
Next n WWW_P※LCJS_COM-PLC-)技.术_网
CrcResult = CrcData WW.W_PLCJS_COM-PLC-技.术_网
End Function WWW_PLCJS@_COM%-PLC-技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
Private Sub Command1_Click() WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
Dim BL As Byte 数据长度 WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
Dim n As Byte 循环量 WWW_P※LCJS_COM-PLC-)技.术_网
Dim Cmd As String 字符串 W1WW_P4LCJS_COM-PLC-技.术_网
Dim crc As Long CRC寄存器 WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
Dim fx() As Byte 发送的数据 WWW_PLCJS_COM-PLC-技.术_网
Cmd = Text1.Text WWW.PLCJS.COM——可编程控制器技术门户
BL = Len(Cmd) / 2 WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
ReDim fx(BL + 1) 按命令长度重新定义数组 plcjs.技.术_网
crc = &HFFFF& CRC初值 WWW.PLCJS.COM——可编程控制器技术门户
For n = 0 To BL - 1 ——可——编——程——控-制-器-技——术——门——户
fx(n) = CLng("&H" & Mid(Cmd, 2 * n + 1, 2)) 分解命令为字节 WWW_PLC※JS_COM-PmLC-技.术_网
crc = CrcResult(fx(n), &HA001&, crc) CRC校验码生成调用 WWcW_PLCJS_COM-PLC-技.术_网
Next WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
fx(BL) = CByte(crc And &HFF&) 得到的校验高位 ——可——编——程——控-制-器-技——术——门——户
fx(BL + 1) = CByte(Fix(crc / 256) And &HFF&) 得到的校验低位 ——可——编——程——控-制-器-技——术——门——户
WWW_PLC※JS_COM-PmLC-技.术_网
Text2.Text = Hex(fx(BL)) 显示crc WWW_PLCJS@_COM%-PLC-技.术_网