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 '则低位字