- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vb编写的modbus rtu协议通讯源程序(VB written in Modbus RTU protocol source code)
vb编写的modbus rtu协议通讯源程序(VB written in Modbus RTU protocol source code)
VB written in Modbus RTU protocol source code
Sunwu proposed to delete the post!! | collection | reply
| modification
2005-12-09 12:37:09 | landlord Modbus RTU protocol can be regarded as a de facto standard protocol, is supported by many instruments, such as PLC. Previously, several users asked how to use VB programming to communicate with our KND-K3 family of PLC, so they completed a demo program. This time, share this demo, I hope to give you some help.
1) module file: modCRC, which contains the function of CRC checksum.
data the name of the array to be checked
Number of elements in aNo array
btLoCRC calculated CRC high byte
btHiCRC calculated CRC low byte
Public, Function, CalCRC16Fast (data (), As, Byte, no, As, Integer, btLoCRC, As, Byte, btHiCRC, As, Byte) As String
Dim, CL, As, Byte, CH, As, Byte, polynomial codes, 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) , each data is XOR with the CRC register
For Flag = 0, To 7
SaveHi = btLoCRC
SaveLo = btHiCRC
BtLoCRC = btLoCRC \ 2 \ high right shift one
BtHiCRC = btHiCRC \ 2 , move right one low
If ((SaveHi, And, H1) = H1) Then if the upper byte last bit is 1
BtHiCRC = btHiCRC, Or, H80 , then move the low byte to the right, then fill 1 in the front
End If , otherwise auto fill 0
If ((SaveLo, And, H1) = H1) Then if LSB is 1, then it is XOR with polynomial code
BtLoCRC = btLoCRC, Xor, CH
BtHiCRC = btHiCRC, Xor, CL
End If
Next Flag
Next I
Dim ReturnData (1) As Byte
ReturnData (0) = btHiCRC,CRC high
ReturnData (1) = btLoCRCCRC low
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 = b
您可能关注的文档
- c语言延时程序(C language delay program).doc
- c语言小游戏源代码《打砖块》(C language game source code playing bricks.).doc
- c语言播放声音文件的函数(The function of playing sound files in C language).doc
- c语言改错题技巧(C language error correction problem skills).doc
- c语言枚举类型举例(C language enumeration type example).doc
- C语言的布尔类型(_Bool)(The boolean type (_Bool) of the C language).doc
- c语言试卷4(C language test paper 4).doc
- da控制面板说明(DA control panel instructions).doc
- db2 环境 设置技巧篇(DB2 environment settings tips).doc
- dbgrid的实用技巧(Practical skills of DBGrid).doc
文档评论(0)