Modbus串行通讯的CRC16校验和计算方法

源代码在线查看: crc.bas

软件大小: 3 K
上传用户: w277426078
关键词: Modbus CRC 16 串行通讯
下载地址: 免注册下载 普通下载 VIP

相关代码

				Attribute VB_Name = "CRC"
				  Option Explicit
				 
				  Public auchCRCHi(255) As Byte
				  Public auchCRCLo(255) As Byte
				
				
				Sub CRCinit()
				    
				    auchCRCHi(0) = &H0
				    auchCRCHi(1) = &HC1
				    auchCRCHi(2) = &H81
				    auchCRCHi(3) = &H40
				    auchCRCHi(4) = &H1
				    auchCRCHi(5) = &HC0
				    auchCRCHi(6) = &H80
				    auchCRCHi(7) = &H41
				    auchCRCHi(8) = &H1
				    auchCRCHi(9) = &HC0
				    auchCRCHi(10) = &H80
				    auchCRCHi(11) = &H41
				    auchCRCHi(12) = &H0
				    auchCRCHi(13) = &HC1
				    auchCRCHi(14) = &H81
				    
				    auchCRCHi(15) = &H40
				    auchCRCHi(16) = &H1
				    auchCRCHi(17) = &HC0
				    auchCRCHi(18) = &H80
				    auchCRCHi(19) = &H41
				    auchCRCHi(20) = &H0
				    auchCRCHi(21) = &HC1
				    auchCRCHi(22) = &H81
				    auchCRCHi(23) = &H40
				    auchCRCHi(24) = &H0
				    auchCRCHi(25) = &HC1
				    auchCRCHi(26) = &H81
				    auchCRCHi(27) = &H40
				    auchCRCHi(28) = &H1
				    auchCRCHi(29) = &HC0
				    
				    auchCRCHi(30) = &H80
				    auchCRCHi(31) = &H41
				    auchCRCHi(32) = &H1
				    auchCRCHi(33) = &HC0
				    auchCRCHi(34) = &H80
				    auchCRCHi(35) = &H41
				    auchCRCHi(36) = &H0
				    auchCRCHi(37) = &HC1
				    auchCRCHi(38) = &H81
				    auchCRCHi(39) = &H40
				    auchCRCHi(40) = &H0
				    auchCRCHi(41) = &HC1
				    auchCRCHi(42) = &H81
				    auchCRCHi(43) = &H40
				    auchCRCHi(44) = &H1
				    
				    auchCRCHi(45) = &HC0
				    auchCRCHi(46) = &H80
				    auchCRCHi(47) = &H41
				    auchCRCHi(48) = &H0
				    auchCRCHi(49) = &HC1
				    auchCRCHi(50) = &H81
				    auchCRCHi(51) = &H40
				    auchCRCHi(52) = &H1
				    auchCRCHi(53) = &HC0
				    auchCRCHi(54) = &H80
				    auchCRCHi(55) = &H41
				    auchCRCHi(56) = &H1
				    auchCRCHi(57) = &HC0
				    auchCRCHi(58) = &H80
				    auchCRCHi(59) = &H41
				    
				    auchCRCHi(60) = &H0
				    auchCRCHi(61) = &HC1
				    auchCRCHi(62) = &H81
				    auchCRCHi(63) = &H40
				    auchCRCHi(64) = &H1
				    auchCRCHi(65) = &HC0
				    auchCRCHi(66) = &H80
				    auchCRCHi(67) = &H41
				    auchCRCHi(68) = &H0
				    auchCRCHi(69) = &HC1
				    auchCRCHi(70) = &H81
				    auchCRCHi(71) = &H40
				    auchCRCHi(72) = &H0
				    auchCRCHi(73) = &HC1
				    auchCRCHi(74) = &H81
				    
				    auchCRCHi(75) = &H40
				    auchCRCHi(76) = &H1
				    auchCRCHi(77) = &HC0
				    auchCRCHi(78) = &H80
				    auchCRCHi(79) = &H41
				    auchCRCHi(80) = &H0
				    auchCRCHi(81) = &HC1
				    auchCRCHi(82) = &H81
				    auchCRCHi(83) = &H40
				    auchCRCHi(84) = &H1
				    auchCRCHi(85) = &HC0
				    auchCRCHi(86) = &H80
				    auchCRCHi(87) = &H41
				    auchCRCHi(88) = &H1
				    auchCRCHi(89) = &HC0
				    
				    auchCRCHi(90) = &H80
				    auchCRCHi(91) = &H41
				    auchCRCHi(92) = &H0
				    auchCRCHi(93) = &HC1
				    auchCRCHi(94) = &H81
				    auchCRCHi(95) = &H40
				    auchCRCHi(96) = &H0
				    auchCRCHi(97) = &HC1
				    auchCRCHi(98) = &H81
				    auchCRCHi(99) = &H40
				    auchCRCHi(100) = &H1
				    auchCRCHi(101) = &HC0
				    auchCRCHi(102) = &H80
				    auchCRCHi(103) = &H41
				    auchCRCHi(104) = &H1
				    
				    auchCRCHi(105) = &HC0
				    auchCRCHi(106) = &H80
				    auchCRCHi(107) = &H41
				    auchCRCHi(108) = &H0
				    auchCRCHi(109) = &HC1
				    auchCRCHi(110) = &H81
				    auchCRCHi(111) = &H40
				    auchCRCHi(112) = &H1
				    auchCRCHi(113) = &HC0
				    auchCRCHi(114) = &H80
				    auchCRCHi(115) = &H41
				    auchCRCHi(116) = &H0
				    auchCRCHi(117) = &HC1
				    auchCRCHi(118) = &H81
				    auchCRCHi(119) = &H40
				    
				    auchCRCHi(120) = &H0
				    auchCRCHi(121) = &HC1
				    auchCRCHi(122) = &H81
				    auchCRCHi(123) = &H40
				    auchCRCHi(124) = &H1
				    auchCRCHi(125) = &HC0
				    auchCRCHi(126) = &H80
				    auchCRCHi(127) = &H41
				    auchCRCHi(128) = &H1
				    auchCRCHi(129) = &HC0
				    auchCRCHi(130) = &H80
				    auchCRCHi(131) = &H41
				    auchCRCHi(132) = &H0
				    auchCRCHi(133) = &HC1
				    auchCRCHi(134) = &H81
				    
				    auchCRCHi(135) = &H40
				    auchCRCHi(136) = &H0
				    auchCRCHi(137) = &HC1
				    auchCRCHi(138) = &H81
				    auchCRCHi(139) = &H40
				    auchCRCHi(140) = &H1
				    auchCRCHi(141) = &HC0
				    auchCRCHi(142) = &H80
				    auchCRCHi(143) = &H41
				    auchCRCHi(144) = &H0
				    auchCRCHi(145) = &HC1
				    auchCRCHi(146) = &H81
				    auchCRCHi(147) = &H40
				    auchCRCHi(148) = &H1
				    auchCRCHi(149) = &HC0
				    
				    auchCRCHi(150) = &H80
				    auchCRCHi(151) = &H41
				    auchCRCHi(152) = &H1
				    auchCRCHi(153) = &HC0
				    auchCRCHi(154) = &H80
				    auchCRCHi(155) = &H41
				    auchCRCHi(156) = &H0
				    auchCRCHi(157) = &HC1
				    auchCRCHi(158) = &H81
				    auchCRCHi(159) = &H40
				    auchCRCHi(160) = &H0
				    auchCRCHi(161) = &HC1
				    auchCRCHi(162) = &H81
				    auchCRCHi(163) = &H40
				    auchCRCHi(164) = &H1
				    
				    auchCRCHi(165) = &HC0
				    auchCRCHi(166) = &H80
				    auchCRCHi(167) = &H41
				    auchCRCHi(168) = &H1
				    auchCRCHi(169) = &HC0
				    auchCRCHi(170) = &H80
				    auchCRCHi(171) = &H41
				    auchCRCHi(172) = &H0
				    auchCRCHi(173) = &HC1
				    auchCRCHi(174) = &H81
				    auchCRCHi(175) = &H40
				    auchCRCHi(176) = &H1
				    auchCRCHi(177) = &HC0
				    auchCRCHi(178) = &H80
				    auchCRCHi(179) = &H41
				    
				    auchCRCHi(180) = &H0
				    auchCRCHi(181) = &HC1
				    auchCRCHi(182) = &H81
				    auchCRCHi(183) = &H40
				    auchCRCHi(184) = &H0
				    auchCRCHi(185) = &HC1
				    auchCRCHi(186) = &H81
				    auchCRCHi(187) = &H40
				    auchCRCHi(188) = &H1
				    auchCRCHi(189) = &HC0
				    auchCRCHi(190) = &H80
				    auchCRCHi(191) = &H41
				    auchCRCHi(192) = &H0
				    auchCRCHi(193) = &HC1
				    auchCRCHi(194) = &H81
				    
				    auchCRCHi(195) = &H40
				    auchCRCHi(196) = &H1
				    auchCRCHi(197) = &HC0
				    auchCRCHi(198) = &H80
				    auchCRCHi(199) = &H41
				    auchCRCHi(200) = &H1
				    auchCRCHi(201) = &HC0
				    auchCRCHi(202) = &H80
				    auchCRCHi(203) = &H41
				    auchCRCHi(204) = &H0
				    auchCRCHi(205) = &HC1
				    auchCRCHi(206) = &H81
				    auchCRCHi(207) = &H40
				    auchCRCHi(208) = &H1
				    auchCRCHi(209) = &HC0
				    
				    auchCRCHi(210) = &H80
				    auchCRCHi(211) = &H41
				    auchCRCHi(212) = &H0
				    auchCRCHi(213) = &HC1
				    auchCRCHi(214) = &H81
				    auchCRCHi(215) = &H40
				    auchCRCHi(216) = &H0
				    auchCRCHi(217) = &HC1
				    auchCRCHi(218) = &H81
				    auchCRCHi(219) = &H40
				    auchCRCHi(220) = &H1
				    auchCRCHi(221) = &HC0
				    auchCRCHi(222) = &H80
				    auchCRCHi(223) = &H41
				    auchCRCHi(224) = &H1
				    
				    auchCRCHi(225) = &HC0
				    auchCRCHi(226) = &H80
				    auchCRCHi(227) = &H41
				    auchCRCHi(228) = &H0
				    auchCRCHi(229) = &HC1
				    auchCRCHi(230) = &H81
				    auchCRCHi(231) = &H40
				    auchCRCHi(232) = &H0
				    auchCRCHi(233) = &HC1
				    auchCRCHi(234) = &H81
				    auchCRCHi(235) = &H40
				    auchCRCHi(236) = &H1
				    auchCRCHi(237) = &HC0
				    auchCRCHi(238) = &H80
				    auchCRCHi(239) = &H41
				    
				    auchCRCHi(240) = &H0
				    auchCRCHi(241) = &HC1
				    auchCRCHi(242) = &H81
				    auchCRCHi(243) = &H40
				    auchCRCHi(244) = &H1
				    auchCRCHi(245) = &HC0
				    auchCRCHi(246) = &H80
				    auchCRCHi(247) = &H41
				    auchCRCHi(248) = &H1
				    auchCRCHi(249) = &HC0
				    auchCRCHi(250) = &H80
				    auchCRCHi(251) = &H41
				    auchCRCHi(252) = &H0
				    auchCRCHi(253) = &HC1
				    auchCRCHi(254) = &H81
				    
				    auchCRCHi(255) = &H40
				    
				    
				    auchCRCLo(0) = &H0
				    auchCRCLo(1) = &HC0
				    auchCRCLo(2) = &HC1
				    auchCRCLo(3) = &H1
				    auchCRCLo(4) = &HC3
				    auchCRCLo(5) = &H3
				    auchCRCLo(6) = &H2
				    auchCRCLo(7) = &HC2
				    auchCRCLo(8) = &HC6
				    auchCRCLo(9) = &H6
				    auchCRCLo(10) = &H7
				    auchCRCLo(11) = &HC7
				    auchCRCLo(12) = &H5
				    auchCRCLo(13) = &HC5
				    auchCRCLo(14) = &HC4
				    
				    auchCRCLo(15) = &H4
				    auchCRCLo(16) = &HCC
				    auchCRCLo(17) = &HC
				    auchCRCLo(18) = &HD
				    auchCRCLo(19) = &HCD
				    auchCRCLo(20) = &HF
				    auchCRCLo(21) = &HCF
				    auchCRCLo(22) = &HCE
				    auchCRCLo(23) = &HE
				    auchCRCLo(24) = &HA
				    auchCRCLo(25) = &HCA
				    auchCRCLo(26) = &HCB
				    auchCRCLo(27) = &HB
				    auchCRCLo(28) = &HC9
				    auchCRCLo(29) = &H9
				    
				    auchCRCLo(30) = &H8
				    auchCRCLo(31) = &HC8
				    auchCRCLo(32) = &HD8
				    auchCRCLo(33) = &H18
				    auchCRCLo(34) = &H19
				    auchCRCLo(35) = &HD9
				    auchCRCLo(36) = &H1B
				    auchCRCLo(37) = &HDB
				    auchCRCLo(38) = &HDA
				    auchCRCLo(39) = &H1A
				    auchCRCLo(40) = &H1E
				    auchCRCLo(41) = &HDE
				    auchCRCLo(42) = &HDF
				    auchCRCLo(43) = &H1F
				    auchCRCLo(44) = &HDD
				
				    auchCRCLo(45) = &H1D
				    auchCRCLo(46) = &H1C
				    auchCRCLo(47) = &HDC
				    auchCRCLo(48) = &H14
				    auchCRCLo(49) = &HD4
				    auchCRCLo(50) = &HD5
				    auchCRCLo(51) = &H15
				    auchCRCLo(52) = &HD7
				    auchCRCLo(53) = &H17
				    auchCRCLo(54) = &H16
				    auchCRCLo(55) = &HD6
				    auchCRCLo(56) = &HD2
				    auchCRCLo(57) = &H12
				    auchCRCLo(58) = &H13
				    auchCRCLo(59) = &HD3
				
				    auchCRCLo(60) = &H11
				    auchCRCLo(61) = &HD1
				    auchCRCLo(62) = &HD0
				    auchCRCLo(63) = &H10
				    auchCRCLo(64) = &HF0
				    auchCRCLo(65) = &H30
				    auchCRCLo(66) = &H31
				    auchCRCLo(67) = &HF1
				    auchCRCLo(68) = &H33
				    auchCRCLo(69) = &HF3
				    auchCRCLo(70) = &HF2
				    auchCRCLo(71) = &H32
				    auchCRCLo(72) = &H36
				    auchCRCLo(73) = &HF6
				    auchCRCLo(74) = &HF7
				    
				    auchCRCLo(75) = &H37
				    auchCRCLo(76) = &HF5
				    auchCRCLo(77) = &H35
				    auchCRCLo(78) = &H34
				    auchCRCLo(79) = &HF4
				    auchCRCLo(80) = &H3C
				    auchCRCLo(81) = &HFC
				    auchCRCLo(82) = &HFD
				    auchCRCLo(83) = &H3D
				    auchCRCLo(84) = &HFF
				    auchCRCLo(85) = &H3F
				    auchCRCLo(86) = &H3E
				    auchCRCLo(87) = &HFE
				    auchCRCLo(88) = &HFA
				    auchCRCLo(89) = &H3A
				    
				    auchCRCLo(90) = &H3B
				    auchCRCLo(91) = &HFB
				    auchCRCLo(92) = &H39
				    auchCRCLo(93) = &HF9
				    auchCRCLo(94) = &HF8
				    auchCRCLo(95) = &H38
				    auchCRCLo(96) = &H28
				    auchCRCLo(97) = &HE8
				    auchCRCLo(98) = &HE9
				    auchCRCLo(99) = &H29
				    auchCRCLo(100) = &HEB
				    auchCRCLo(101) = &H2B
				    auchCRCLo(102) = &H2A
				    auchCRCLo(103) = &HEA
				    auchCRCLo(104) = &HEE
				
				    auchCRCLo(105) = &H2E
				    auchCRCLo(106) = &H2F
				    auchCRCLo(107) = &HEF
				    auchCRCLo(108) = &H2D
				    auchCRCLo(109) = &HED
				    auchCRCLo(110) = &HEC
				    auchCRCLo(111) = &H2C
				    auchCRCLo(112) = &HE4
				    auchCRCLo(113) = &H24
				    auchCRCLo(114) = &H25
				    auchCRCLo(115) = &HE5
				    auchCRCLo(116) = &H27
				    auchCRCLo(117) = &HE7
				    auchCRCLo(118) = &HE6
				    auchCRCLo(119) = &H26
				    
				    auchCRCLo(120) = &H22
				    auchCRCLo(121) = &HE2
				    auchCRCLo(122) = &HE3
				    auchCRCLo(123) = &H23
				    auchCRCLo(124) = &HE1
				    auchCRCLo(125) = &H21
				    auchCRCLo(126) = &H20
				    auchCRCLo(127) = &HE0
				    auchCRCLo(128) = &HA0
				    auchCRCLo(129) = &H60
				    auchCRCLo(130) = &H61
				    auchCRCLo(131) = &HA1
				    auchCRCLo(132) = &H63
				    auchCRCLo(133) = &HA3
				    auchCRCLo(134) = &HA2
				    
				    auchCRCLo(135) = &H62
				    auchCRCLo(136) = &H66
				    auchCRCLo(137) = &HA6
				    auchCRCLo(138) = &HA7
				    auchCRCLo(139) = &H67
				    auchCRCLo(140) = &HA5
				    auchCRCLo(141) = &H65
				    auchCRCLo(142) = &H64
				    auchCRCLo(143) = &HA4
				    auchCRCLo(144) = &H6C
				    auchCRCLo(145) = &HAC
				    auchCRCLo(146) = &HAD
				    auchCRCLo(147) = &H6D
				    auchCRCLo(148) = &HAF
				    auchCRCLo(149) = &H6F
				    
				    auchCRCLo(150) = &H6E
				    auchCRCLo(151) = &HAE
				    auchCRCLo(152) = &HAA
				    auchCRCLo(153) = &H6A
				    auchCRCLo(154) = &H6B
				    auchCRCLo(155) = &HAB
				    auchCRCLo(156) = &H69
				    auchCRCLo(157) = &HA9
				    auchCRCLo(158) = &HA8
				    auchCRCLo(159) = &H68
				    auchCRCLo(160) = &H78
				    auchCRCLo(161) = &HB8
				    auchCRCLo(162) = &HB9
				    auchCRCLo(163) = &H79
				    auchCRCLo(164) = &HBB
				    
				    auchCRCLo(165) = &H7B '''
				    auchCRCLo(166) = &H7A
				    auchCRCLo(167) = &HBA
				    auchCRCLo(168) = &HBE
				    auchCRCLo(169) = &H7E
				    auchCRCLo(170) = &H7F
				    auchCRCLo(171) = &HBF
				    auchCRCLo(172) = &H7D
				    auchCRCLo(173) = &HBD
				    auchCRCLo(174) = &HBC
				    auchCRCLo(175) = &H7C
				    auchCRCLo(176) = &HB4
				    auchCRCLo(177) = &H74
				    auchCRCLo(178) = &H75
				    auchCRCLo(179) = &HB5
				    
				    auchCRCLo(180) = &H77
				    auchCRCLo(181) = &HB7
				    auchCRCLo(182) = &HB6
				    auchCRCLo(183) = &H76
				    auchCRCLo(184) = &H72
				    auchCRCLo(185) = &HB2
				    auchCRCLo(186) = &HB3
				    auchCRCLo(187) = &H73
				    auchCRCLo(188) = &HB1
				    auchCRCLo(189) = &H71
				    auchCRCLo(190) = &H70
				    auchCRCLo(191) = &HB0
				    auchCRCLo(192) = &H50
				    auchCRCLo(193) = &H90
				    auchCRCLo(194) = &H91
				    
				    auchCRCLo(195) = &H51
				    auchCRCLo(196) = &H93
				    auchCRCLo(197) = &H53
				    auchCRCLo(198) = &H52
				    auchCRCLo(199) = &H92
				    auchCRCLo(200) = &H96
				    auchCRCLo(201) = &H56
				    auchCRCLo(202) = &H57
				    auchCRCLo(203) = &H97
				    auchCRCLo(204) = &H55
				    auchCRCLo(205) = &H95
				    auchCRCLo(206) = &H94
				    auchCRCLo(207) = &H54
				    auchCRCLo(208) = &H9C
				    auchCRCLo(209) = &H5C
				    
				    auchCRCLo(210) = &H5D
				    auchCRCLo(211) = &H9D
				    auchCRCLo(212) = &H5F
				    auchCRCLo(213) = &H9F
				    auchCRCLo(214) = &H9E
				    auchCRCLo(215) = &H5E
				    auchCRCLo(216) = &H5A
				    auchCRCLo(217) = &H9A
				    auchCRCLo(218) = &H9B
				    auchCRCLo(219) = &H5B
				    auchCRCLo(220) = &H99
				    auchCRCLo(221) = &H59
				    auchCRCLo(222) = &H58
				    auchCRCLo(223) = &H98
				    auchCRCLo(224) = &H88
				    
				    auchCRCLo(225) = &H48
				    auchCRCLo(226) = &H49
				    auchCRCLo(227) = &H89
				    auchCRCLo(228) = &H4B
				    auchCRCLo(229) = &H8B
				    auchCRCLo(230) = &H8A
				    auchCRCLo(231) = &H4A
				    auchCRCLo(232) = &H4E
				    auchCRCLo(233) = &H8E
				    auchCRCLo(234) = &H8F
				    auchCRCLo(235) = &H4F
				    auchCRCLo(236) = &H8D
				    auchCRCLo(237) = &H4D
				    auchCRCLo(238) = &H4C
				    auchCRCLo(239) = &H8C
				    
				    auchCRCLo(240) = &H44
				    auchCRCLo(241) = &H84
				    auchCRCLo(242) = &H85
				    auchCRCLo(243) = &H45
				    auchCRCLo(244) = &H87
				    auchCRCLo(245) = &H47
				    auchCRCLo(246) = &H46
				    auchCRCLo(247) = &H86
				    auchCRCLo(248) = &H82
				    auchCRCLo(249) = &H42
				    auchCRCLo(250) = &H43
				    auchCRCLo(251) = &H83
				    auchCRCLo(252) = &H41
				    auchCRCLo(253) = &H81
				    auchCRCLo(254) = &H80
				    
				    auchCRCLo(255) = &H40
				    
				    End Sub
				
				Sub CRC16(ByRef checkstr() As Byte, ByVal ln As Integer) ', ByRef CRCHi As Byte, ByRef CRCLo As Byte)
				
				    Dim onechr, uchCRCHi, uchCRCLo, uIndex As Byte
				    Dim i As Integer
				    
				    uchCRCHi = &HFF
				    uchCRCLo = &HFF
				    
				    For i = 0 To ln
				        'onechr = Val(Asc(Mid$(checkstr, i, 1)))
				        onechr = checkstr(i)
				        uIndex = uchCRCHi Xor onechr
				        uchCRCHi = uchCRCLo Xor auchCRCHi(uIndex)
				        uchCRCLo = auchCRCLo(uIndex)
				    Next
				    
				    'CRCHi = uchCRCHi
				    'CRCLo = uchCRCLo
				
				    checkstr(ln + 1) = uchCRCHi
				    checkstr(ln + 2) = uchCRCLo
				    
				End Sub
				
							

相关资源