首页 用VB进行串口实时数据采集

用VB进行串口实时数据采集

举报
开通vip

用VB进行串口实时数据采集用VB进行串口实时数据采集xx交通学院信息与计算科学系(410077)xxxx本文介绍VB6.0利用MSComm通信控件,开发微机通过串口对工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。__一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232弗口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控...

用VB进行串口实时数据采集
用VB进行串口实时数据采集xx交通学院信息与计算科学系(410077)xxxx本文介绍VB6.0利用MSComm通信控件,开发微机通过串口对工业仪 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。__一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232弗口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控。---该仪表的串口数据通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 是:数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。仪表每秒发送50帧检测数据,每帧数据由4个字节组成。第一个字节定义为二进制常数0F0H,是每帧数据开始的标志字节;后面连续2个字节为数据字节,采用压缩的BCD码编码方式,高位在前,低位在后,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第四个字节为符号字节,该字节第八位为1,即:---则为负数;第八位为0,即:---则为正数。---例如:0F0H26H87H80H0F0H34H62H00H示一26.8734.62。----通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms发送一个字节,连续读取串口数据时要在程序中添加循环等待程序。----为了实现实时监测功能,接收数据的读取要尽可能的快速,则设置MSComml的属性如下:RThreshold=1接收缓冲区收到一个字节产生OnComm事件InputLen=1每次读取一个字节----仪表每秒发送50帧数据,微机收到一帧完整数据至少需要20ms时间,然后再进行数据处理。如果微机在下一帧数据接收前即20ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>4字节),这时完全可以实现实时监测或实时控制;如果微机在20ms内不能将数据计算处理完毕,接收缓冲区设置得又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监测和实时控制很不利,这种情况下接收缓冲区的大小就会影响实时监测效果,所以接收缓冲区设置不能过大,以保证数据处理的实时性。__VB中有Byte类型变量,但没有字节的位处理语句,符号字节的位处理要判断符号字节的值是否大于127,大于127则为负数;压缩的BCD码存入Byte类型变量,VB系统只按十进制数处理,这要通过一个简单算法换算,解压BCD码才能还原成十进制表示数值。假如a是Byte类型变量,D是Single类型变量,将一个压缩的BCD码存入a中,则算法是:D=(a\16)*10+a—(a\16)*16贝UD=a-(a\16)*6----程序清单:----在通用声明中定义程序所用变量:Dimab(4)AsByte字节数据类型数组,用来存储接收到的一组字节数据DimavAsVariant用来从接收缓冲区读取数据DimiAsIntegerDimjAsIntegerDimwAsInteger接收数据个数计数器Dimb1AsSingleDimb2AsSingleDimWWAsSingle十进制检测值DimMaxWAsSingled大值DimMinWAsSingle最小值----在窗体中添加名为Command1的[开始]按钮和名为MSComm1的MSComm控件。----[开始]按钮的Click事件处理程序主要是对MSComm1控制的参数初始化设置,程序中大部分参数在 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 时可在MSComm1控制的属性窗口中设置:PrivateSubCommand1_Click()开始按钮WithMSComml.CommPort=2使用COM2.Setting="9600,N,设置通信口参数.InBufferSize=40设置MSComml接收缓冲区为40字节.OutBufferSize=2设置MSComm1发送缓冲区为2字节设置接收数据模式为二进制形式.InputLen=1设置Input一次从接收缓冲读取字节数为1.SThreshold=1设置Output一次从发送缓冲读取字节数为1.InBufferCount=0清除接收缓冲区.OutBufferCount=0清除发送缓冲区MaxW=-99最大值赋初值MinW=99最小值赋初值w=0数据个数计数器清零.RThreshold=1设置接收一个字节产生OnComm事件If.PortOpen=FalseThen判断通信口是否打开.PortOpen=True打开通信口IfErrThen错误处理MsgBox串口通信无效"ExitSubEndIfEndIfEndWithEndSubMSComm事件----为了达到实时数据采集目的,实时数据采集处理程序采用驱动方式。PrivateSubMSComm1_OnComm()WithMSComm1SelectCase.CommEvent判断MSComm1通信事件收到Rthreshold个字节产生的接收事件av=.Input读取一个接收字节ab=av(0)转换保存到字节数据类型数组Ifab=&HF0Then判断是否为数据开始标志RThreshold=0关闭OnComm事件接收DoDoEventsLoopUntil.InBufferCount>=3循环等待MSComm1接收缓冲区>=3个字节w=w+1计数器累加计数av=.Input读取第二个数据字节(BCD码高位字节)ab⑵=av(0)转换保存到字节数据类型数组av=.Input读取第三个数据字节(BCD码低位字节)ab⑶=av(0)转换保存到字节数据类型数组av=.Input读取第四个数据字节(符号位字节)ab=av(0)转换保存到字节数据类型数组bl=ab—6*(ab(2)\16)高位字节压缩BCD码转换为实数b2=ab—6*(ab(3)\16)低位字节压缩BCD码转换为实数WW=b1+数值组合,标定小数点Ifab>127ThenWW=WW判断数据符号位Labell(0)=Format(WW,“0.00")显示毫米单位数值,2位小数Label1=Format(WW/25.4,“0.000")显示英寸单位数值,3位小数IfWW>MaxWAndWW<51Then----判断最大值,仪表在刚开始工作时有干扰,会传导一些乱码,位移传感器有参数偏差,最大值一般都略大于50毫米,所以取51为极限最大值,取-51为极限最小值。MaxW=WWLabel1=Format(MaxW,“0.00")显示毫米单位最大值,2位小数Label1=Format(MaxW/25.4,0.000")显示英寸单位最大值,3位小数EndIfIfWW-51Then判断最小值MinW=WWLabel1⑷=Format(MinW,“0.00")显示毫米单位最小值,2位小数Label1⑸=Format(MinW/25.4,“0.000")显示英寸单位最小值,3位小数EndIf.RThreshold=1打开MSComm1事件接收EndIfCaseElseEndSelectEndWithEndSub
本文档为【用VB进行串口实时数据采集】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
陨辰
暂无简介~
格式:doc
大小:12KB
软件:Word
页数:9
分类:
上传时间:2022-01-08
浏览量:5