基于LabVIEW的多通道温度监测系统设计

孙毅刚+何进+李岐



摘 要: 针对多点温度测量的需求,设计一款基于LabVIEW的多通道温度监测系统。当下位机串口关闭时,即是一个由AT89C51单片机、DS18B20温度传感器以及LM041L显示器组成的嵌入式多通道温度采集系统。当串口打开时,下位机便可将各通道温度数据上传至上位机LabVIEW温度监测系统,实现PC端的多通道温度在线监测。仿真实验表明,系统设计方案切实可行,能够方便有效地实现多点温度实时监测。
关键词: 多点温度测量; AT89C51; DS18B20; LabVIEW; 温度监测
中图分类号: TN31+.3?34; TP212.9 文献标识码: A 文章编号: 1004?373X(2017)08?0183?04
Design of multi?channel temperature monitoring system based on LabVIEW
SUN Yigang1, HE Jin2, LI Qi2
(1. College of Aeronautical Engineering, Civil Aviation University of China, Tianjin 300300, China;
2. College of Electronic Information and Automation, Civil Aviation University of China, Tianjin 300300, China)
Abstract: To satisfy the demand of the multi?point temperature measurement, a multi?channel temperature monitoring system based on LabVIEW was designed. When the serial port of lower computer is closed, the multi?channel temperature monitoring system is an embedded one composed of the SCM AT89C51, temperature sensor DS18B20 and displayer LM041L. When the serial port is opened, the lower computer uploads the temperature data of each channel to the LabVIEW?based temperature monitoring system of the upper computer to achieve online monitoring of the multi?channel temperature at the PC side. The simulation experiment results show that the system design scheme is feasible, and can expediently and effectively monitor the multipoint temperature in real time.
Keywords: multi?point temperature measurement; AT89C51; DS18B20; LabVIEW; temperature monitoring
温度在日常生活、工业生产和科学研究中都是一个极其普遍又非常重要的物理量,许多设备运行、工农生产和科学实验都必须保证在一定的温度条件下进行,因此需要对温度进行监测的場合十分广泛[1]。传统的测温仪器功能比较单一,大多只能测量某一点的温度值[2],可视性不好,不能长久保存温度数据以进行后续统计和分析。为满足现代工业多点温度监测的需求,设计了一种基于LabVIEW的多通道温度监测系统,能够实现在-55~99 ℃范围内6通道的温度实时监测,具有多点温度同步采集、显示、报警、绘图及数据保存等功能,可用于智能楼宇、温室大棚、汽车空调、仓库储存等场合[3]。
1 系统总体结构设计
本文设计的基于LabVIEW的多通道温度监测系统由下位机多通道温度采集系统和上位机LabVIEW温度监测系统两部分构成。系统整体结构框图如图1所示。
下位机采用AT89C51单片机为主控芯片,将6路DS18B20温度传感器测量的数据处理后,计算出各通道的实际温度值,并按要求在LM041L液晶屏上同步显示。当串口开关处于开启状态时,若检测到上位机要求发送温度数据的请求,下位机立即依次将6通道温度数据的高位和低位通过串口发送至上位机。LabVIEW温度监测系统随即读取串口缓冲区的内容,经过数据提取、处理、计算等操作,解析各通道的实际温度后,首先在监测系统前面板上实时显示,然后将得到的温度数据与各通道设置的的温度上下限值进行比较,若当前温度超过设定的温度下限或者上限,则对应的蓝色或红色温度超限报警灯点亮。最后,系统将各通道温度数据送入波形图表,绘制六通道温度变化曲线,并将所有采集的温度数据写入TXT文档保存。系统整体程序流程图如图2所示。
2 多通道温度采集系统设计
多通道温度采集系统主要包括温度测量模块、温度显示模块以及串口通信模块等部分。
2.1 温度测量模块
温度测量模块采用6个数字温度传感器DS18B20作为测温元件,组成温度传感器网络。DS18B20具有精度高、体积小、抗干扰能力强等优点,其测温范围为-55~125 ℃,在-10~85 ℃范围内测温精度[4]达
±0.5 ℃。因为每一个DS18B20温度传感器内部都配有一个惟一的64位ROM编号,因此可将多个DS18B20挂在同一根总线上,实现多点分布式温度测量。经DS18B20序列号读取程序测得,本设计仿真时所用六路DS18B20温度传感器的ROM编号如表1所示。
由于DS18B20一线式结构的特点,它与微处理器之间只能采用串行数据传输。因此,在对DS18B20进行读写编程时,除了匹配每通道温度传感器的序列号,确保操作正确指向对应传感器,还必须严格地保证读写的时序,否则将无法读取测温结果。本系统中DS18B20温度测量模块程序流程图如图3所示。
2.2 温度显示模块
温度显示模块选用的是LM041L字符型LCD液晶显示器,该模块由64个字符点阵组成。LM041L的工作原理及使用方法与常用的LCD1602显示器类似,但需要注意的是,LM041L为4行×16列显示,每行显示的字符个数与LCD1602一致,但显示的行数是LCD1602的2倍。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志位为低电平,表示不忙,否则该指令失效。要显示字符时,首先需要输入显示字符的地址,因为LM041L写入显示地址时要求最高位D7恒为高电平1,所以实际写入的数据应该是:地址码+80H。表2是LM041L的内部显示地址码。
多通道温度采集系统运行时,LM041L第1行第5列(地址码为0x84)开始显示标题字符——6通道温度数据采集系统英文首字母缩写“6CH TDCS”;第2~4行的第1列(地址码分别为0x40,0x10,0x50)分别开始显示第1~3通道的温度数据;第2~4行的第10列(地址码分别为0x49,0x19,0x59)开始显示第4~6通道的温度数据,具体显示格式参见图4。
2.3 串口通信模块
AT89C51单片机设有串口通信端口,只需一个专用芯片MAX232进行电平转换即可方便地实现下位机与上位机的串口通信[5?6]。当上位机通过LabVIEW温度监测程序向串口发送请求温度数据字符串AA时,下位机检测到中断请求,立即将发送标志置1,然后依次发送温度数据的高位和低位;发送完毕后,自动清除中断标志并返回,等待下次发送的请求指令。串口通信模块具体程序流程图如图5所示。
3 LabVIEW温度监测系统设计
LabVIEW是美国NI公司开发的一款功能强大的图形化编程语言软件,在测试测量、仪器控制、教学仿真等领域获得了广泛应用[7]。LabVIEW作为虚拟仪器软件开发工具,在数据采集和人机交互方面有着十分明显的优势[8?10]。利用LabVIEW自带的VISA驱动函数,能够方面地实现与下位机的串口通信;而且其前面板丰富美观的控件,很适合设计界面友好、操作简单的上位机监控系统界面。因此,本设计采用LabVIEW开发平台编写上位机温度监测系统程序,主要包括温度数据的提取与计算、温度超限报警、温度变化曲线与数据保存等部分。
3.1 温度数据的提取与计算
LabVIEW温度监测程序运行时,首先配置串口参数,使之与下位机保持一致,然后通过VISA写入函数向单片机发送请求字符串AA,下位机检测到发送请求后随即通过串口发送程序向上位机依次发送六通道温度数据的高8位和低8位。当开始采集按钮打开时,VISA读取函数立刻读取串口缓冲区的所有内容,并通过字符串至字节数字转换函数将所有串口数据转换为字节数组,然后由索引数组提取各通道温度数据的高位和低位,送至温度计算子VI计算实际温度值。
温度计算子VI首先将温度数据高位和低位拼接,然后进行温度符号判断:当最高位为1时,说明温度为负,4位十六进制的温度数据取补码并乘以0.062 5再取反得到负的温度值;若最高位为0,表示温度为正,则将拼接的温度数据直接乘以0.062 5得到正的温度值。
3.2 温度超限报警
为了更好地实现实时监测功能,系统加入了超限报警机制。各通道温度数据经提取和计算得到最终实际温度值后,与各通道设定的温度上限值和下限值分别进行比较。当某通道当前温度超过设定的温度上限时,对应通道的红色高温报警指示灯亮起;当某通道当前温度低于设定的温度下限时,该通道对应的蓝色低温报警指示灯点亮。各通道温度上下限值设置界面如图6所示。
3.3 温度变化曲线与数据保存
LabVIEW温度监测系统主要功能之一就是绘制各通道的的温度变化曲线,使观测者能够方便地对每一时刻各通道温度值进行比较的同时,还可以对各通道的温度变化情况一目了然。LabVIEW温度监测系统除了可以实时监测各通道温度变化情况以外,还可以将每一时刻的所有温度数据同步写入TXT文档保存,方便进行后续的统计和分析。温度数据以当前日期命名保存在程序当前所在路径,其存储格式为:第1列为数据采集序号,第2列为当前时间,第3~8列依次为第1~6通道的温度值,各列相隔一个制表符(具体格式见图7)。温度数据保存部分的程序框图如图8所示。
4 系统仿真实验
完成下位机多通道温度采集系统与上位机LabVIEW温度监测系统的设计后,用虚拟串口软件Virtual Serial Port Drive虚拟出一对相连的串口COM2和COM3,代替连接单片机与PC机的串口线。配置好串口参数及各通道温度上下限值后,设置采样周期为1 000 ms。依次运行下位机和上位机系统,打开串口开关,按下数据采集按钮,多通道温度采集系统和LabVIEW温度监测系统程序运行结果分别如图4和图7所示,保存的部分温度数据如图9所示。
分析仿真实验结果可知,系统运行整体符合设计预期。下位机能同时采集各通道实际温度并按格式要求正确显示;上位机监测界面中各通道温度数值、温度变化曲线、超限报警指示、数据采集量、开始与运行时间均准确无误;保存的温度数据与设置的采样周期及设计的格式要求均相符。
5 结 语
本文设计的基于LabVIEW的多通道温度监测系统能够方便有效地测量6点的温度数据,并实现在PC端的实时监测。当下位机串口关闭时,即是一个嵌入式多通道温度采集系统;串口打开时,便可与上位机通信,实现在PC机上的多通道温度实时监测。系统下位机结构简单、成本低廉,上位机监测界面清晰直观、一目了然,很好地满足了多点温度监测的目的,具有较强的实用性。
参考文献
[1] 薛清华.高精度多通道温度测量技术研究[D].武汉:华中科技大学,2007.
[2] 付立华,张晓玫,潘龙飞.基于LabVIEW的多通道温度实时监测系统[J].仪表技术,2012(12):38?40.
[3] 汤锴杰,栗灿,王迪,等.基于DS18B20的数字式温度采集报警系统设计[J].传感器与微系统,2014,33(3):99?102.
[4] 张拓.无线多点温度采集系统的设计[D].武汉:武汉理工大学,2009.
[5] 任志华,李永红.基于DS18B20的多路温度检测系统设计[J].电子测试,2012(7):39?42.
[6] 潘方.RS 232串口通信在PC机与单片机通信中的应用[J].现代电子技术,2012,35(13):69?71.
[7] 李菲,江世明.基于LabVIEW的温度测量系统设计[J].现代电子技术,2014,37(6):114?116.
[8] 杨高科.LabVIEW虚拟仪器项目开发与管理[M].北京:机械工业出版社,2012.
[9] 阮奇桢.我和LabVIEW[M].北京:北京航空航天大学出版社,2012.
[10] 姜崇.基于LabVIEW的多通道實时在线监测系统研究[D].上海:华东理工大学,2011.