全球旧事资料 分类
VB编写的ModbusRTU协议通讯源程序r
su
wu建议删除该贴收藏回复r
修改r
20051209123709楼主modbusrtu协议可以算是一种事实上的工业标准协议,为许多仪表、PLC等所支持。以前有几个用户问如何使用VB编程来与我们的KNDK3系列PLC通讯,于是整了一个demo程序。这次把这个demo共享,希望能给大家一点帮助。r
r
1)模块文件:modCRC,其中包含了CRC校验的函数。r
r
data待校验的数组名称r
o数组中元素个数r
btLoCRC算出的CRC高字节r
btHiCRC算出的CRC低字节r
r
PublicFu
ctio
CalCRC16FastdataAsByte
oAsI
tegerbtLoCRCAsBytebtHiCRCAsByteAsStri
gr
r
DimCLAsByteCHAsByte多项式码HA001r
DimSaveHiAsByteSaveLoAsByter
DimiAsI
tegerr
DimFlagAsI
tegerr
r
btHiCRCHFFr
btLoCRCHFFr
CLH1r
CHHA0r
r
Fori0To
o1r
r
btHiCRCbtHiCRCXordatai每一个数据与CRC寄存器进行异或r
r
ForFlag0To7r
r
SaveHibtLoCRCr
SaveLobtHiCRCr
btLoCRCbtLoCRC2高位右移一位r
btHiCRCbtHiCRC2低位右移一位r
r
IfSaveHiA
dH1H1The
如果高位字节最后一位为1r
btHiCRCbtHiCRCOrH80则低位字节右移后前面补1r
E
dIf否则自动补0r
r
IfSaveLoA
dH1H1The
如果LSB为1,则与多项式码进行异或r
btLoCRCbtLoCRCXorCHr
btHiCRCbtHiCRCXorCLr
E
dIfr
r
NextFlagr
r
Nextir
r
DimRetur
Data1AsByter
Retur
Data0btHiCRCCRC高位r
Retur
Data1btLoCRCCRC低位r
r
CalCRC16FastRetur
Datar
r
E
dFu
ctio
r
r
PublicFu
ctio
CalCRC16TbldataAsByte
oAsI
tegerbtLoCRCAsBytebtHiCRCAsByteAsStri
gr
r
DimbtLoCRCAsByter
DimbtHiCRCAsByter
r
btLoCRCHFFr
btHiCRCHFFr
r
DimiAsI
tegerr
DimiI
dexAsLo
gr
r
Fori0To
o1r
r
iI
dexbtHiCRCXordatair
btHiCRCbtLoCRCXorGetCRCLoiI
dex低位处理r
btLoCRCGetCRCHiiI
dex高位处理r
r
Nextir
r
DimRetur
Data1AsByter
r
Retur
Data0btHiCRCCRC高位r
Retur
Data1btLoCRCCRC低位r
r
CalCRC16TblRetur
Datar
r
E
dFu
ctio
r
r
r
CRC低位字节值表r
Fu
ctio
GetCRCLoI
dAsLo
gAsByter
r
GetCRCLoChooseI
d1_r
H0HC1H81H40H1HC0H80H41H1HC0_r
H80H41H0HC1H81H40H1HC0H80H41_r
H0HC1H81H40H0HC1H81H40H1r
好听全球资料 返回顶部