微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于VB的计算机温度采集系统设计与实现

基于VB的计算机温度采集系统设计与实现

时间:11-04 来源:互联网 点击:
4 软件设计

系统软件主要是用VB6.0对RS232串口编程。实现硬件之间的通讯。MSComm是Microsoft公司提供的主要用于串行通信编程的ActiveX控件。ActiveX控件包括一系列的属性、方法和事件,应用程序通过ActiveX控件提供的接口来访问控件的功能。通信控件把许多复杂的操作都留给了VB和Windows处理,编程人员编程时只需设置其中的一些属性。

系统的关键代码如下:

Coast CMDconfig = "%0101210600" ’设置端口命令字符,0--100度,科学单位
Coast CMDdataInl = "#O1" ‘读串口1数据命令字符
Coast CMDdataIn2 = "#02" ‘读串口2数据命令字符
Coast CMDSPANCalibration = "$010" ‘校准命令字符
Coast CMDoffsetCalibration = "$011" ‘偏移量校准命令字符
Coast CMDconfigStatus = "$012"‘读端口信息命令字符
Coast CMDmoduleName = "$OlM"‘读模块名命令字符
Private Sub CmdStart_onClick( )‘开始命令子程序
MSComml.CommPor = COMnum‘设置申口号
If MSComml.PortOpen = False Then‘打开串口
MSComml.PorOpen = True
End If
If COMnum = 1 Then
CMDdataln = CMIMataInl
Else
CMDdataln = CMDdataIn2
End If
MSComml.Outpu t= CStr(CMDdataIn)&vbCr‘发出读数命令
TimeDelay 500‘延时500 ms
Picturel.CurrentX = 0‘绘制曲线坐标起点
Picturel. CurrentY = temperature
Timer1.Enabled = True‘开始计时
End Sub
Private Sub MSComml_OnComm( ) ‘事件响应子程序
Select Case MSComml.CommEvent‘判断MSComml通讯事件
Case comEvReceive‘收到Rthreshold个字节产生的接收事件
MSComml.RThreshold = 0‘关闭OnComm事件接收
TimeDelay 20‘延时20ms
temperatureShow = Right(MSComml.Input.7) ‘读取第一个数据字节(BCD码高位字节)
temperature = VaI(temperature5how ) ‘数值组合,标定小数点
MSComml.Output = CStr(CMDdataIn)&vbCr‘发送读命令
MSComml.InBufferCount = 0‘清空缓存
MSComml.RThreshold = 1‘关闭OnComm事件接收
Case comEventBreak‘收到Break

Case Else
End Select
End Sub

系统时钟最小可以设为1ms,在使用中需要注意,由于串口速度有限,系统运行速度有限,ADAM4013模块的采样率也有限,所以设置串口采样间隔一般不能小于50ms,否则会出现延时错误。其实对于温度采集来说,20次/s的采样率已经够用,大的采样率并无太大意义。

5 结束语

系统中没有对温度超过测温范围时情况的处理,可在系统改进中增加一个报警电路。将单片机的一个口与一个发光二极管相接,所测温度超过规定温度时,发光二极管点亮,提醒用户。本系统由于进行了实时显示和数据存储的设计,便于直观地观察温度变化和数据处理。本系统最大的特点就是容易实现,不需要数据采集卡,不需要硬件驱动程序,硬件连接方便,软件编制也比较容易掌握,特别适合短期的测温系统开发。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top