电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

VB编写的ModbusRTU协议通讯源程序VIP免费

VB编写的ModbusRTU协议通讯源程序_第1页
1/7
VB编写的ModbusRTU协议通讯源程序_第2页
2/7
VB编写的ModbusRTU协议通讯源程序_第3页
3/7
modbus rtu 协议可以算是一种事实上的工业标准协议,为许多仪表、PLC 等所支持。以前有几个用户问如何使用 VB 编程来与我们的KND-K3 系列 PLC 通讯,于是整了一个 demo程序。这次把这个 demo 共享,希望能给大家一点帮助。 1) 模块文件:modCRC,其中包含了 CRC 校验的函数。 'data 待校验的数组名称 'no 数组中元素个数 'btLoCRC 算出的CRC 高字节 'btHiCRC 算出的CRC 低字节 Public Function CalCRC16Fast(data() As Byte, no As Integer, btLoCRC As Byte, btHiCRC As Byte) As String Dim CL As Byte, CH As Byte '多项式码&HA001 Dim SaveHi As Byte, SaveLo As Byte Dim i As Integer Dim Flag As Integer btHiCRC = &HFF btLoCRC = &HFF CL = &H1 CH = &HA0 For i = 0 To (no - 1) btHiCRC = btHiCRC Xor data(i) '每一个数据与 CRC 寄存器进行异或 For Flag = 0 To 7 SaveHi = btLoCRC SaveLo = btHiCRC btLoCRC = btLoCRC \ 2 '高位右移一位 btHiCRC = btHiCRC \ 2 '低位右移一位 If ((SaveHi And &H1) = &H1) Then '如果高位字节最后一位为1 btHiCRC = btHiCRC Or &H80 '则低位字节右移后前面补 1 End If '否则自动补 0 If ((SaveLo And &H1) = &H1) Then '如果 LSB 为1,则与多项式码进行异或 btLoCRC = btLoCRC Xor CH btHiCRC = btHiCRC Xor CL End If Next Flag Next i Dim ReturnData(1) As Byte ReturnData(0) = btHiCRC 'CRC 高位 ReturnData(1) = btLoCRC 'CRC 低位 CalCRC16Fast = ReturnData End Function Public Function CalCRC16Tbl(data() As Byte, no As Integer, btLoCRC As Byte, btHiCRC As Byte) As String Dim btLoCRC As Byte Dim btHiCRC As Byte btLoCRC = &HFF btHiCRC = &HFF Dim i As Integer Dim iIndex As Long For i = 0 To (no - 1) iIndex = btHiCRC Xor data(i) btHiCRC = btLoCRC Xor GetCRCLo(iIndex) '低位处理 btLoCRC = GetCRCHi(iIndex) '高位处理 Next i Dim ReturnData(1) As Byte ReturnData(0) = btHiCRC 'CRC 高位 ReturnData(1) = btLoCRC 'CRC 低位 CalCRC16Tbl = ReturnData End Function 'CRC 低位字节...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

VB编写的ModbusRTU协议通讯源程序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部