全局代码Public Function ToModbus(ByVal byteData As Byte()) As Byte()
Dim CRC As Byte() = New Byte(1) {}
Dim wCrc As UInt16 = &HFFFF
For i As Integer = 0 To byteData.Length - 1
wCrc = wCrc Xor Convert.ToUInt16(byteData(i))
For j As Integer = 0 To 8 - 1
If (wCrc And &H0001) = 1 Then
wCrc = wCrc >> 1
wCrc = wCrc Xor &HA001
Else
wCrc = wCrc >> 1
End If
Next
Next
CRC(1) = CByte((wCrc And &HFF00) >> 8)
CRC(0) = CByte((wCrc And &H00FF))
Return CRC
End Function
命令窗口
Dim bt() As Byte = {&H08,&H00}
Dim res() As Byte
res = ToModbus(bt)
Output.Show(res(0))
Output.Show(res(1))
Output.Show(&H70)