Modbus vb源程序(可以读写寄存器)

Modbus vb源程序(可以读写寄存器)

ID:47432024

大小:56.88 KB

页数:8页

时间:2020-01-11

Modbus vb源程序(可以读写寄存器)_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《Modbus vb源程序(可以读写寄存器)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、modbusvb源程序可以读写寄存器自己的项目做完了,最近比较闲,就帮别人用VB写了一个很简单的modbus程序,可以实现实时数据采集显示,以及能对寄存器进行设置。程序很简单,想用的可以完善,现在只能实时采集显示一个地址的数据,只要修改一下,就可以实时采集多个地址的数据。现在也只能一次对一个寄存器进行设置,也可以更加完善。想用的朋友就自己改改吧。下面是运行界面,采集的模块的地址为75,是一个温湿度采集模块。有3个寄存器,显示的数据上是温度,湿度,露点温度。modbusPrivateSubCommand1_C

2、lick()'设置按钮Dimbisend()AsByteDimcrcDimbtLoCRCAsByte,btHiCRCAsByteDimDataAsIntegerIfMSComm1.PortOpen=TrueThenIfCombo5.ListIndex=0ThenReDimbisend(7)'重新定义数组长度bisend(0)="&h"+Hex(Val(Text1.Text))'地址码bisend(1)="&h"+Hex(3)'功能码读寄存器bisend(2)="&h"+Hex(0)'起始地址高位bisend

3、(3)="&h"+Hex(0)'起始地址低位bisend(4)="&h"+Hex(0)'寄存器个数高位bisend(5)="&h"+Hex(Combo6.ListIndex+1)'寄存器个数低位crc=CRC16(bisend,6,btLoCRC,btHiCRC)bisend(6)="&h"+Hex(btLoCRC)'CRC高位bisend(7)="&h"+Hex(btHiCRC)'CRC低位'发送数据MSComm1.Output=bisendElseReDimbisend(10)'一次只能写一个寄存器bi

4、send(0)="&h"+Hex(Val(Text1.Text))'地址码bisend(1)="&h"+Hex(16)'功能码写寄存器bisend(2)="&h"+Hex(0)'起始地址高位bisend(3)="&h"+Hex(0)'起始地址低位bisend(4)="&h"+Hex(0)'寄存器个数高位bisend(5)="&h"+Hex(1)'寄存器个数低位bisend(6)="&h"+Hex(2)'字节数Data=Val(Trim(Text3.Text))bisend(7)="&h"+Hex(Data

5、256)'要写入寄存器的值的高字节bisend(8)="&h"+Hex(DataMod256)'要写入寄存器的值的低字节crc=CRC16(bisend,9,btLoCRC,btHiCRC)bisend(9)="&h"+Hex(btLoCRC)'CRC高位bisend(10)="&h"+Hex(btHiCRC)'CRC低位MSComm1.Output=bisendEndIfElseMsgBox"串口没有打开"EndIfEndSubPrivateSubCommand2_Click()'实时采集按钮Timer1

6、.Enabled=NotTimer1.Enabled'进行状态切换EndSubPrivateSubCommand3_Click()'初始化,并打开串口WithMSComm1If.PortOpen=FalseThen.CommPort=Combo7.ListIndex+1'打开串口1.Settings=Combo1.Text+","+Combo2.Text+","+Combo3.Text+Combo4.Text.InputMode=1.InputLen=50'一次性从接收缓冲区中读取所有数据(8个字节为一组!

7、!).InBufferCount=0'清空接收缓冲区.OutBufferCount=0'清空发送缓冲区.RThreshold=5+(Combo6.ListIndex+1)*2.InBufferSize=1024.OutBufferSize=1024.PortOpen=TrueElseMsgBox"串口已经打开"EndIfEndWithEndSubPrivateSubCommand4_Click()'关闭串口按钮IfMSComm1.PortOpen=TrueThenMSComm1.PortOpen=False

8、EndIfEndSubPrivateSubForm_Load()DimiAsInteger'波特率设置Combo1.AddItem"4800",0Combo1.AddItem"9600",1Combo1.AddItem"115200",2'校验位设置Combo2.AddItem"N",0Combo2.AddItem"E",1Combo2.AddItem"O",2'数据位设置Combo3.AddItem"7",0C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。