基于工控机的多点温度检测系统设计
2011-03-15卫道柱曾亿山
卫道柱, 曾亿山, 杨 沁, 高 雷
(合肥工业大学机械与汽车工程学院,安徽合肥 230009)
温度是生产和生活中常见的和最基本的参数之一。在现代社会中,温度控制不仅应用于生产方面,也应用于生活的各个方面[1]。
本文针对酒店、宾馆房间的温度进行检测和监控,使得酒店各个房间的温度既可以在控制室进行集中控制,也可以在各个房间单独控制,得到一个合适、舒服的温度。
1 系统的硬件组成
系统运用主从分布式思想,由一台工控机作上位机,多台单片机作下位机,组成2级分布式多点温度测量的巡回检测系统[2]。硬件结构如图1所示。
1.1 工控机
系统中,工控机作为上位机,进行现场可视化检测,负责与下位机进行通讯,控制多台单片机进行现场温度采集,对传送回工控机的温度值进行数据处理、显示。
1.2 单片机
单片机选用A TM EL的 8位单片机AT89S52产品,可在工控机控制下工作,也可以单独工作,实时显示当前各点的温度值,对各点进行实时温度控制,并具有超温声光报警功能[3]。
图1 系统结构示意图
1.3 温度传感器
温度传感器采用 DALLAS公司生产的DS18B20温度芯片。DS18B20是一线式数字温度传感器,测量温度范围为-55~125℃,测温分辨率可达0.062 5℃,被测温度用符号扩展的16位数字量方式串行输出[4,5]。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
如图2所示,DS18B20支持“一线总线”接口[6,7],利用单总线的特点可以方便地实现多点温度的测量,轻松地组建传感器网络,且系统的抗干扰性好、设计灵活、方便,适合于在恶劣的环境下进行现场温度测量。
图2 DS18B20的单总线结构
本系统为多点温度测试。DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但在实际应用中发现,如果挂接25个以上的 DS18B20仍然有可能产生功耗问题。
另外单总线长度也不宜超过80 M,否则也会影响到数据的传输[8,9],在这种情况下可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用[10]。
2 硬件电路设计
2.1 温度控制系统电路
图3所示为一路温度控制电路,信号通过7重达林顿反相驱动器ULN2003A控制直流继电器,由直流继电器再去控制给空调供电的220 V交流电源的开关。
图3 温度控制电路
2.2 串口通讯电路
串口通讯电路如图4所示。A T89S52有一个全`双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,采用了专用芯片MAX 232进行转换,虽然也可以用几个三极管进行模拟转换,但还是用专用芯片更简单可靠[11]。
图4 串口通讯电路
3 软件设计
3.1 单片机程序
3.1.1 单片机主程序
单片机主程序流程如图5所示。主程序是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。
主程序调用了9个子程序,分别是温度转换开始子程序、读出温度值子程序、根据温度进行控制子程序、温度显示模式设定子程序、温度数据计算处理子程序、显示数据BCD码刷新子程序、数码管显示子程序、键盘扫描与按键处理程序以及单片机与工控机串口通讯程序,这9个子程序完成了整个系统的温度控制。
图5 主程序流程图
3.1.2 部分模块子程序设计
(1)读出温度值、报警值子程序 READTEMP的设计。从多路DS18B20温度传感器中分别读出相应的温度值和温度报警值,其程序流程图如图6所示。
图6 读温度值流程图
(2)温度控制子程序TEMP-CONTROL的设计根据各个温度传感器设定的上下限报警值和实时温度值来控制各个继电器的通断,并进行声光报警。
其程序流程如图7所示[12]。
3.2 工控机程序
采用VB环境下工控机与单片机之间实现串行通讯的软硬件方案。VB是M icrosoft公司推出的W indow s应用程序开发工具,因其具有界面友好、编程简便等优点而受到广泛的使用。工控机程序结构如图8所示。
图7 温度控制流程图
图8 工控机主程序结构图
4 结束语
经过测试运行,单片机多路温度报警控制系统能够及时采集温度,并通过数码管进行温度显示;能够准确可靠地进行温度控制,并具有超温声光报警功能;能够实现自动巡回检测温度,也可以指定监测点检测其温度,同时通过单片机键盘可以方便地设定各温度传感器上下限温度报警值。
工控机通过串行通讯能够直观显示实时温度和上下限报警温度,并通过红绿灯变化直观显示是否超温;通过图形界面可以非常方便地设定各温度传感器的上下限温度报警值。
[1] 刘永亮,赵 磊,甄 鹏.分布式多点温度测量系统的设计与实现[J].微计算机信息,2008,24(9):145-146.
[2] 董慧敏,朱智民.多点温度检测系统电路设计[J].漯河职业技术学院学报,2007,6(3):167-168.
[3] 董小艳,朱瑞祥,吴宪莉.多仓位分布式粮库温度自动巡检系统设计[J].粮食加工,2008,33(2):74-75.
[4] 王俊杰,曹卫锋.DS18B20在粮仓测温系统上的应用[J].郑州轻工业学院学报:自然科学版,2007,22(5):83-84.
[5] 史 军,赵国荣.多点温度传感无线采集系统的研究[J].宁夏大学学报:自然科学版,2008,29(1):48-50.
[6] 赵佩华.DS1820在单片机温度测控中的应用[J].上海电机学院学报,2008,11(4):301-302.
[7] 袁海斌,李文斌.大功率电力电子装置的分布式温度检测系统[J].电力电子,2007,(4):33-34.
[8] 王瑞更.高精度多点温度数据采集系统[J].河北工业科技,2008,25(5):312-313.
[9] 张玉健.基于DS18B20的温度检测系统[J].计算机与信息技术,2007,(11):311-312.
[10] 曹海平基于单片机和DS18B20的分布式多点温度检测系统的设计[J].自动化技术与应用,2008,27(11):91-92.
[11] 朱奕丹,倪浩如.基于单片机控制的高精度多点温度检测显示系统[J].自动化仪表,2008,29(8):60-61.
[12] 王冬云,刘福才,张 寅.基于M SP430与Modem的光伏电站远程监控系统设计[J].合肥工业大学学报:自然科学版,2009,32(7):986-988.