1、加入CRC校验的发送帧
P.L.C.技.术.网——可编程控制器技术门户
***********************************
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
Private Sub Timer1_Timer() '发送数据
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
Dim longCRC As Long '定义校验变量
plcjs.技.术_网
Dim aa(7) As Byte '定义动态数组
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
aa(0) = &H1 '地址
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
aa(1) = &H3 '功能码 读
P.L.C.技.术.网——可编程控制器技术门户
aa(2) = &H0 '起始地址
WWW.PLCJS.COM——可编程控制器技术门户
aa(3) = &HA
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
aa(4) = &H0 '数据点数
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
aa(5) = &H8
WWW_P※LCJS_COM-PLC-)技.术_网
longCRC = CRC16(aa) 'CRC校验
WWW_PLC※JS_COM-PmLC-技.术_网
aa(UBound(aa) - 1) = longCRC Mod 256
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
aa(UBound(aa)) = longCRC \ 256
WW.W_PLC※JS_C,OM-PL,C-技.术_网
MSComm1.OutBufferCount = 0 '清空输出寄存器
WWW_PLCJS@_COM%-PLC-技.术_网
MSComm1.Output = aa '发送
WWW_P※LCJS_CO※M-PLC-技-.术_网
End Sub
WWcW_PLCJS_COM-PLC-技.术_网
***********************************
WWW_P※LCJS_CO※M-PLC-技-.术_网
2,CRC校验程序
W1WW_P4LCJS_COM-PLC-技.术_网
***********************************
WWW_P※LCJS_COM-PLC-)技.术_网
Function CRC16(Coun() As Byte) As Long
plcjs.技.术_网
Dim intBit, intTemp As Integer
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
Dim lonCRC As Long
WWW_P※LCJS_CO※M-PLC-技-.术_网
lonCRC = &HFFFF&WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)