技术文章

当前页面: 首页 >技术文章 >一种实用的计算机温度采集系统

一种实用的计算机温度采集系统

2003/11/24 0:00:00

0 人气:12179

一、前言
随着计算机技术的发?#36141;统?#29087;,计算机的应用也越来越广泛。在自动化领域,计算机已经成为控制系统的首选平台,应用计算机对生产和试验进行实时、远程监控是现代自动化发展的主要方向。将计算机应用于工业实时控制的前提是现场数据的实时获取。在生产和科学实验中,常常要测控很多参数,诸如温度、压力、转速等,通常的方法是使用专用的仪表人为观测、记录处理数据、做出判断,这就会带来人为的误差,而且应用范围也会受到现场条件、响应速度等因素的限制。而自动的实时监控系统能很好的解决这些问题。本文以一种简单实用的温度实时采集系统为实例,讨论了一种利用计算机进行远程测控的框架结构和实现方法。

二、硬件构成



系统结构如图1所示,其中:
COMPUTER为普通PC机,要求能够运行Windows98操作系统和开发环境VB6.0,具有标准的RS232串口或RS485口,主要功能为数据采集处理和系统控制,是人机交互平台。实验中使用的是PIII800的计算机。
ADAM4521为研华科技公司的接口转换模块,能将RS485或RS422信号转换为RS232信号。由于普通PC只具有RS232接口,而一般工业测试信号符合RS485或RS422标准,所以在这里要进行一下转化。研华科技公司的ADAM4521模块有以下特点:可寻址;内置微处理器;传输速度115.2Kbps;1000VDC高压隔离;RS485浪涌电压保护;输入输出可置不同的波特率;无需握?#20013;?#21495;。
ADAM4013为研华科技公司的热敏电阻输入模块,能将热敏电阻的模拟信号转换为RS485数?#20013;?#21495;。ADAM4013模块利用内置的微处理器控制A/D转换器把电流、电压或热敏电阻的模拟信号转换为数?#20013;?#21495;,模块提供信号调整、A/D转换、测量范围调整、RS485通讯等功能,良好的光隔能?#34892;?#30340;保护设备的安全。模块的主要特点有:内置看门狗;3000VDC高压隔离;采样率10次/秒;误差小于0.05%。这些参数能满足绝大多数场合的应用。
温度传感器选用铂电阻Pt100测量-100℃到+100℃的温度,ADAM4013模块测温系数a设为0.00385。可根据测量范围和测量精度的要求选择不同的温度传感器,在软件设计时进行相应的参数配置即可。
试验中的介质是两种液体的化学反应。铂电阻Pt100将化学反应温度转化为模拟电信号传到ADAM4013模块,经过采样处理转化为RS485数?#20013;?#21495;,在经过ADAM4521模块的转换,变成计算机可以?#37038;?#30340;RS232信号,计算机收到数据后,实时显示,绘制温度曲线,同时进行后台处理、存储,以备他用。

三、软件实现
系统软件主要是用VB6.0对RS232串口编程,实现硬件之间的通讯。软件框图如图2所示。


1、MSComm控件简介
VB6.0对RS232串口编程主要通过MSComm控件来实现。下面简单介绍一下MSComm控件:
MSComm控件为应用程序提供串行通讯功能。控件提供下列两种处理通讯的方式: 事件驱动通讯是处理串行端口交互作用的一种非常?#34892;?#30340;方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件,无论何时当 CommEvent 属性的?#24403;?#21270;?#20445;?#23601;产生 OnComm 事件,标志发生了一个通讯事件或一个错误。另一种方法是通过检查 CommEvent 属性的值?#24202;?#35810;事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的,它只对某一特定的事件响应。
每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。MSComm 控件主要属性:
CommPort:设置并返回通讯端口号;
Settings: 以字符串的?#38382;?#35774;置并返回波特率、奇偶校验、数据位、停止位;
PortOpen: 设置并返回通讯端口的状态。也可以打开和关闭端口;
Input: 从?#37038;?#32531;冲区返回和?#22659;?#23383;符;
Output: 向传输缓冲区写一个字符串。
更详细的信息请参阅Microsoft的联机文档MSDN。
2、ADAM模块常用命令介绍
ADAM模块时通过特殊的?#32423;?#23383;符来实现相应的操作的,常用的有:
"%0101210600":设置端口,0-100度,科学单位;
"#01" : 读串口1数据;
"#02" : 读串口2数据;
"$010" : 模块自动校准;
"$011" : 偏移量校准;
"$012" : 读端口信息;
"$01M": 读模块名。
3、主界面?#23433;?#20998;代码
VB6.0具有强大的界面编辑功能,是一种完全面向对象的编程语言,用它实现的人机界面直观友好、易操作易实现,下面就是试验中所作的界面(图3):


从界面可以看出,系统能实现温度采集的设置、数据显示处理功能。
关键代码如下:
Const CMDconfig = "%0101210600" 设置端口命令字符,0-100度,科学单位
Const CMDdataIn1 = "#01" 读串口1数据命令字符
Const CMDdataIn2 = "#02" 读串口2数据命令字符
Const CMDspanCalibration = "$010" 校准命令字符
Const CMDoffsetCalibration = "$011" 偏移量校准命令字符
Const CMDconfigStatus = "$012" 读端口信息命令字符
Const CMDmoduleName = "$01M" 读模块名命令字符
Private Sub CmdStart_OnClick() 开始命令子程序
MSComm1.CommPort = COMnum 设置串口号
If MSComm1.PortOpen = False Then 打开串口
MSComm1.PortOpen = True
End If
If COMnum = 1 Then
CMDdataIn = CMDdataIn1
Else
CMDdataIn = CMDdataIn2
End If
MSComm1.Output = CStr(CMDdataIn) & vbCr 发出读数命令
TimeDelay 500 ?#37038;?00ms
Picture1.CurrentX = 0 绘制曲线坐标起点
Picture1.CurrentY = temperature
Timer1.Enabled = True 开始计时
End Sub
Private Sub MSComm1_OnComm() 事件响应子程序
Select Case MSComm1.CommEvent 判断MSComm1通讯事件
Case comEvReceive 收到Rthreshold个?#32440;?#20135;生的?#37038;?#20107;件
MSComm1.RThreshold = 0 关闭OnComm事件?#37038;?br/> TimeDelay 20 ?#37038;?0ms
temperatureShow = Right(MSComm1.Input, 7) 读取第一个数据?#32440;冢˙CD码高位?#32440;冢?br/> temperature = Val(temperatureShow) 数值组合,标定小数点
MSComm1.Output = CStr(CMDdataIn) & vbCr 发送读命令
MSComm1.InBufferCount = 0 清空缓存
MSComm1.RThreshold = 1 关闭OnComm事件?#37038;?br/> Case comEventBreak 收到 Break。

Case Else
End Select
End Sub

程序中一般会用到系统时钟来计?#20445;?#36825;是要用到系统动态连接库kernel32.dll。有一点需要注意,由于串口速度有限,系统运行速度也有限,所以设置采样间隔一般不能小于15毫秒,否则会出现?#37038;?#38169;误。

四、结论
本系统最大的特点就是容易实现,不需要数据采集卡,不需要硬件驱动程序,硬件连接方便,软件编制也比较容易掌握,有一点儿VB的基础,再了解一下串口控件应用就可以了,特别适合较小的测温系统。由于ADAM模块是可寻址的,所以可以用多个模块实现多个参量的测量采集。整个系统的开发周期较短,调试方便,运行可靠,可根据需要制作相应的操作界面。系统只占用PC机的一个串口,占用资源少,对硬件要求不高,各模块在不同的场合可灵活应用。

参考文献:
[1]李锋,曾德良,基于VB6.0的串口通讯程序设计,现代电子技术,2002.10,54-57;
[2]郑春生,于贇等,计算机连续实时温度采集系统的研究,铸造技术,2003.024(003),193-194;
[3]周六?#24120;?#22522;于VB编程的微机温度采集系统设计,化工设计通讯,2002.028(003),47-48;
[4]李时惠,计算机多点温度采集系统的设计与现实,计算技术与自动化,2001.020(001),71-74;
[5]ADAM采集模块使用手册,研华科技股份有限公司;
[6]Microsoft Corporation 微软(中国)有限公司,Microsoft Visual Basic 6.0中文版程序员?#25913;希?#21271;京希望电脑公司 1998.01;
[7]范逸之,陈立元,Visual Basic与RS-232串行通讯控制(最新版),中国青年出版社,2002.01.

作者简介:
1乔治宏,北京工业大学电控学院检测专业2001级硕士研?#21487;?#30740;究方向,信号处理;
2吴晴,北京工业大学电控学院检测专业副教授,研?#21487;?#23548;师,研究方向,信号检测与处理

手机扫描二维码分享本页

工控网APP下载安装

工控速派APP下载安装

 

我来评价

评价:
一般
浦和红钻vs北京国安分析
北京时时综合走势图 安徽扶贫app最新版 快乐双彩今天开什么号 安徽时时计划软件手机版式 河北十一选五开奖结果查询 96棋牌游戏官方手机版 最新时时教程 体彩湖北十一选五规则 广东南粤风彩最新开奖 赛车现场开奖直播 福建体彩现场直播室 韩国pc28是官方开奖吗 香港49选7现场开奖结果 时时彩群号 22选5好运三技巧 四川麻将