&H6C, &HAC, &HAD, &H6D, &HAF, &H6F, &H6E, &HAE, _
&HAA, &H6A, &H6B, &HAB, &H69, &HA9, &HA8, &H68, _
&H78, &HB8, &HB9, &H79, &HBB, &H7B, &H7A, &HBA, _
&HBE, &H7E, &H7F, &HBF, &H7D, &HBD, &HBC, &H7C, _
&HB4, &H74, &H75, &HB5, &H77, &HB7, &HB6, &H76, _
&H72, &HB2, &HB3, &H73, &HB1, &H71, &H70, &HB0, _
&H50, &H90, &H91, &H51, &H93, &H53, &H52, &H92, _
&H96, &H56, &H57, &H97, &H55, &H95, &H94, &H54, _
&H9C, &H5C, &H5D, &H9D, &H5F, &H9F, &H9E, &H5E, _
&H5A, &H9A, &H9B, &H5B, &H99, &H59, &H58, &H98, _
&H88, &H48, &H49, &H89, &H4B, &H8B, &H8A, &H4A, _
&H4E, &H8E, &H8F, &H4F, &H8D, &H4D, &H4C, &H8C, _
&H44, &H84, &H85, &H45, &H87, &H47, &H46, &H86, _
&H82, &H42, &H43, &H83, &H41, &H81, &H80, &H40}
Public Function crc_16(ByVal
Integer
Dim
i
As Integer
Dim
index
As Integer
Dim
crc_Low
Dim
crc_High
For
i = 0
To
index = (crc_High
crc_High = (crc_Low
crc_Low = CByte(crc_table(index + 256)
Next
Return
((crc_High * 256) + crc_Low)
End Function
Public Sub
main()
'paquete a enviar
Dim
d1()
As Byte
'Añadir CRC
Dim
crc
As Integer
ReDim Preserve
d1(UBound(d1) - 1) = crc \ 256
d1(UBound(d1)) = crc
End Sub
End Module
modbusframe()
As Integer
= &HFF
As Integer
= &HFF
length - 1
Xor
CByte(modbusframe(i)
Xor
CByte(crc_table(index)
= crc_16(d1, d1.Length)
d1(UBound(d1) + 2)
Mod
256
MANUAL MODBUS iBDAM
As
Byte,
ByVal
length
And
255))
And
255))
And
255)
16 – Feb – 2018 rev 1,00
As
Integer)
As
Pág 59 de 60