陈永禄,张 莉

(中国飞行试验研究院,陕西 西安 710089)

0 引 言

在工业控制过程中,例如航空、航天、石油等领域对温度有着较高的要求。在实际测量和控制中,如何保证快速实时地对温度进行采样,确保数据的正确传输,并能对所测温度场依据实际需要进行较精确的控制,是当前温控系统需要迫切关注并给予解决的重要问题之一。本文研究的传感器结合单片机嵌入式控制、采集一体化技术,具有能耗低、便携、高精度的特点,克服了传统温度检测系统的校准复杂、精度低等缺点,能够实现多通道、高精度以及大容量的要求。

1 系统工作原理及架构

温度控制与采集系统主要是针对制定区域或空间进行温度实时的监测,实时地采集记录温度信息,并实现对温度的自动化智能控制、调节,以确保温度一直保持在预计的范围内。系统设计模块包括温控范围的设定模块、温度检测模块、加温控制模块、温度信息采集模块、记录模块、温度信息显示模块及超温报警模块。系统设计架构图见图1所示。

由图1可知,被控对象区域的温度可通过一线制数字温度传感器感应获得,再由AT89S51单片机将数字温度传感器输出的电压信号通过串口传送至便携式计算机,便携式计算机上位机软件将电压信号转换为温度信号,打上时间标记,实时显示并存储。同时,上位机软件依据设定的温度范围及控制算法,自动判断当前被控对象区域温度是否在预计的温控范围内,通过串口向AT89S51单片机发送控制指令,单片机依据控制指令自动调节继电器控制指令,以决定是否通过加热炉对被控对象区域加温,最终实现对被控对象区域温度的全自动闭环控制。若被控对象区域温度在规定的时间段内没有达到预计温度,则上位机软件会自动向AT89S51单片机发送告警指令,由单片机控制蜂鸣器实现报警功能[1]。

图1 系统设计架构图

2 硬件电路设计

2.1 串口通信电路设计

AT89S51单片机具有串口RXD和TXD,而PC机上也具有RXD和TXD两个端口。通过串口通信可实现单片机与PC机之间的控制和采集功能。由于单片机的TTL逻辑中的2~5 V和0~0.8 V与PC机的RS 232标准定义的高低电平-3~-25 V和3~25 V不匹配,需通过MAX232接口芯片实现二者之间的通信链路连接[2]。单片机与PC机串口通信电路设计原理图见图2所示。AT89S51单片机的TXD与MAX232的第2组电平转换器的输入端T2IN(10管脚)相连,经过MAX232转换后,输出端T2OUT(7管脚)输出的信号进入计算机串口的RXD。同样地,计算机串口的TXD与MAX232的R2IN(8管脚)相连,经过电平转换后,由R2OUT(9管脚)输出到单片机的RXD上。

2.2 温度信号调理电路设计

温度信号调理电路主要是根据K型热电偶的特点进行设计的。由于K型热电偶使用温度范围为使用温度范围为-200~1 200℃,其输出电压信号为mV级,因此,信号调理电路包括信号放大电路、滤波电路以及冷端补偿电路。针对热电偶测试的冷端补偿,本文采用软件补偿的方式。

温度信号调理电路原理图如图3所示。

3 系统软件设计

3.1 单片机软件设计

单片机的主要功能(数据采集、通信、控制)分别在不同的程序模块中实现,依据实现功能,单片机的软件设计可分为采集控制模块和串口通信模块。

根据测控系统的特点,针对进行调理、A/D转换后送来的温度信号,在单片机主程序中采取查询法进行循环采集。在程序编写过程中,针对温度信号,结合K型热电偶的温度范围,采用上、下限判断的方法进行二次软件滤波,消除干扰,确保数据采集的可靠性及真实性。同时,判断串口通信模块送来的加温控制信号,实时通过继电器控制加热炉工作,以确保被控区域温度在规定的范围内。

图2 串口通信电路设计原理图

串口通信模块主要是与上位机进行数据及控制命令的通信传输。上位机每隔50 ms发一个命令字,要求单片机上传数据。当要修改温度控制范围等参数时,上位机先发一个命令字,再发数据,串口通信模块根据命令字和数据首先判断修改的温度范围数据是否合理,如果数据错误,则向上位机反馈错误信息,如果合理,则完成相应的控制采集操作。

图3 温度信号调理电路设计原理图

单片机软件设计流程图见图4所示。

图4 单片机软件设计流程图

3.2 上位机软件设计

根据系统设计的功能,上位机软件主要包括串口通信模块、数据存储模块、实时数据显示模块及信号控制模块。系统采用VC++6.0平台编写,采用了多线程技术,在软件界面运行的同时开启串口通信、数据存储工作线程,代码如下:

void Start()

{

CWinThread*pThread;

//开启串口通信、数据存储线程

pThread=AfxBeginThread(Thread,this);

}

//串口通信、数据存储线程

UINT Thread()

{

//采用分时工作方式

ThreadFun1(); //串口通信函数

ThreadFun2(); //数据存储函数

return 0;

}

3.2.1 串口通信模块设计

数据通信程序使用PC机Com1口与单片机通信,在Visual C++6.0中利用Windows API接口函数编程实现[3]。根据通信协议,上位机软件使用WriteFile()函数将控制命令传送给单片机,单片机在后续进行循环采集、发送,将数据送至PC机串口缓冲区,上位机软件以缓冲区中有数据到来为判断条件,采用中断方式,使用ReadFile()函数,实时将缓冲区中的数据取出,进而进行实时保存及显示。同时,串口通信模块循环监测信号控制模块送来的控制命令,以确保实时将控制命令传送至单片机。

3.2.2 数据存储模块设计

数据存储模块主要是使用SQL数据库数据库实现,将从串口缓冲区中获取的数据实时保存至数据库中。主要使用VC++中的ADO Data控件和DataGrid控件实现与数据库的连接及数据的调阅显示,同时需要配置ODBC数据源,以确保数据库连接成功[4]。ADO Data控件主要用来连接和配置数据源,DataGrid控件用于调阅、查看数据库中的数据信息。

3.2.3 实时数据显示模块设计

实时数据显示模块主要是用于实时监测温度信息,以便工程人员实时掌握被控区域的温度变化趋势,根据实际情况需要实时进行温度调整或分析。实时数据显示程序设计界面见图5所示。

图5 实时数据显示程序界面

3.2.4 信号控制模块设计

信号控制模块设计主要是在显示界面上设置温度控制的上、下限和极限报警时间。当被控区域的温度超出下限时,由信号控制模块自动通过串口通信模块向单片机发送加温控制信号,以控制加温炉向被控区域加温,同时实时监测由串口通信模块接收到的温度信息,当温度达到预定值时,再次通过串口通信模块向单片机发送控制信号,停止向被控区域加温。当被控区域的温度长时间超出预定的温度上、下限时,信号控制模块向单片机发送报警控制信号,以供工程技术人员进行现场检查和确认。信号控制模块的设计流程图见图6所示。

图6 信号控制模块设计流程图

4 结语

本文设计的温度控制与采集系统可实现对被控区域温度的有效实时监测,能够根据预定的温度上、下限范围实现温度的自动化调节、控制,并能够对温度信息进行存储和二次处理分析。该系统具有研制成本低、精度高、可靠性强、操作灵活、可扩展性强的特点,可以广泛应用于工业控制领域。

[1]胡干斌,李光斌,李玲,等.单片微型计算机原理与应用[M].2版.武汉:华中科技大学出版社,2006.

[2]蒋辉平,周国雄.单片机原理与应用设计[M].北京:北京航空航天大学出版社,2007.

[3]李景峰,潘恒.Visual C++串口通信技术详解[M].2版.北京:机械工业出版社,2013.

[4]明日科技.SQL Server从入门到精通[M].北京:清华大学出版社,2012.

[5]王军琴.广义预测控制算法在加热炉温度控制中的应用[J].现代电子技术,2010,33(10):18⁃20.

[6]王惠平.基于多线程温度控制专家系统[J].现代电子技术,2012,35(2):115⁃117.