基于LabVIEW的温度检测系统.docx
《基于LabVIEW的温度检测系统.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的温度检测系统.docx(47页珍藏版)》请在冰点文库上搜索。
![基于LabVIEW的温度检测系统.docx](https://file1.bingdoc.com/fileroot1/2023-7/10/e2820170-5b10-46f0-ad26-5a66e9ecb57f/e2820170-5b10-46f0-ad26-5a66e9ecb57f1.gif)
基于LabVIEW的温度检测系统
基于LabVIEW的温度检测系统
摘要
温度是个基本的物理量,他是工业生产过程中最普遍,最重要的工艺参数之一。
随着工业的不断发展,对温度测量的要求也越来越高,而且测量范围也越来越广。
合理的温度范围和精确地温度的测量队提高产品的质量、产量,降低消耗,实现工业生产自动化,均有积极作用,因此温度检测技术的研究具有重大意义。
本系统是一个基于LabVIEW的温度检测系统,采用多点温度检测,能检测较大区域内的温度变化,主要包括上位机和下位机两个部分。
下位机使用的DS18B20传感器和AT89C51单片机。
上位机和下位机的通讯方式是串口通讯。
上位机使用的是虚拟仪器LabVIEW,主要功能是实时温度的显示,温度曲线时间轴的显示,历史温度曲线的显示以及超限温度报警。
关键字:
Labview温度测量
第1章引言
1.1背景
温度是表征物体冷却程度物理量,在许多工业生产和科学实验过程中,温度参数的检测和控制都非常重要。
随着工业检测技术和自动化程度的不断提高,对温度检测的要求也越来越高。
但是,测温时经常会受到各种干扰而影响检测精度,因而需要对检测量进行滤波等处理。
在工农业生产、科学研究人们的生活等诸多领域中,对温度的严格控制与检测非常重要,特别是在工农业生产环境下对温度的精确度和稳定性要求更高,这样才能充分保证产品的质量,提高企业的生产效率,进而获得更高的效益。
传统测温仪表一般是通过硬件电路实现的,但这种方式存在电路复杂、成本较高、性能不稳定等的问题,同时,仪表的功能开发也是得受到局限,而以虚拟仪器为主的虚拟检测技术则能够较好地解决这些问题。
温度是一个非常重要的物理量,因为它直接影响燃烧、发酵、烘烤、煅烧、蒸馏、化学反应、浓度、结晶、挤压成形以及空气流动等化学和物理过程。
温度的控制失误可能引起产品质量、生产安全、产品产量等的一系列问题,因此对温度检测的意义就越来越大。
温度采集控制系统在工业生产、人们的生活领域和科学研究中,得到了广泛应用。
我们使用自动温度控制系统可以对生产环境的温度来进行自动控制,保证生产的自动化、智能化能够顺利安全进行,从而提高企业的生产效率。
在工业生产过程中,很多的时候都需要对温度进行严格的监控,来使得生产能够顺利进行,产品的质量才能够得到充分的肯定。
在实际生产、生活等的各个领域中,温度是环境因素不可或缺的一部分,对温度及时精确的控制和检测显得尤为重要。
比如,农业中土壤各个层面上的温度将会影响植物的生长;在医院的监护中也用到温度的测量;在工业中,料筒里外上限温度要求不一,以及热处理中工件各个部件的温度对工件形成后的性能至关重要等等。
现代电子工业的飞速发展对自动测试的要求越来越高,采用虚拟仪器对温度进行控制,不仅具有控制方便和组态简单的优点,而且可以提高被控温度的技术指标。
针对以上情况,在控制成本的前提下,通过本设计设计一款能够实时检测控制温度,又具有对系统设定不同的报警温度的温度控制报警系统功能。
此系统能够满足现代生产生活的要求,效率高,具有较强的稳定性和灵活性。
通过本系统提高对于温度控制的认识,在学习实践中提高对理论的认知能力,达到学习实践相结合的目的。
采用先进的科学技术,加以丰富的实际经验和知识,向社会提供各种超值安全设备服务,给用户带来安全和放心。
在许多工业生产和科学实验过程中,温度参数的检测和控制都非常重要。
随着工业检测技术和自动化程度的不断提高,对温度检测的要求也越来越高。
但是,测温时经常会受到各种干扰而影响检测精度,因而需要对检测量进行滤波等处理。
传统测温仪表一般都是通过硬件电路实现的,但这种方式存在电路复杂、成本较高、性能不稳定等问题,同时,仪表的功能开发也得受到局限,而以虚拟仪器为主的虚拟检测技术则能够较好地解决这些问题。
为此本文提出了基于Labview技术为核心,以计算机、数据采集卡等器件为硬件平台的温度检测系统的设计方法。
1.2国内外研究现状
1.2.1温度传感器
电阻温度传感器,这种传感器以电阻作为温度敏感元件。
根据敏感材料不同又可分成热电阻式和热敏电阻式。
热电阻式一般用金属材料制成,如铂、铜、镍等。
热敏电阻是以半导体材料制成的陶瓷器件,如锰、镍、钴等金属的氧化物与其它化合物按不同配比烧结而成。
辐射式温度传感器,众所周知,自然界的所有物体对辐射都具有吸收和反射的能力1辐射式温度传感器就是利用物体的热辐射特性制成的。
被测物体的辐射能被热敏元件(如热电偶、热敏电阻等)吸收时可使其物理参数(如输出电势、电阻值等)发生变化,利用现代测量手段检测出这种变化就可得被测温度。
根据敏感原理不同,辐射式温度传感器可分为全辐射式、红外辐射式、光电亮度式和光电比色式等,并能实现非接触测量,可测温度高达3000℃以上.全辐射式传感器中敏感元件接受被测物体的全部辐射能而使参数发生变化;红外辐射式传感器中敏感元件只接受被测物体辐射能中部分波长的能量;比色式传感器是基于物体温度不同其辐射能的光谱分布不同;而亮度测量法是通过测量物体在一定波长下单色辐射亮度来确定温度,被测温度的微小变化就会引起单色亮度很大变化。
如辐射体温度由1200K上升到1500K时,总辐射能仅增加215倍,而波长为01660LM的红光单色亮度可增加10倍以上,因此此方法是辐射测温中最精确的一种。
DS1922L/T温度记录iButton是坚固耐用的自供电系统,能够测量温度并将测量结果记录在受保护的存储器内。
记录温度的频率由用户定义。
总共可以保存8192个8位数据记录或4096个16位数据记录,这些记录以等间隔采集,时间间隔从1秒至273小时。
另外还有512字节的SRAM,用于存储一些特定的应用信息,以及64字节用于存放校准数据。
一项数据采集任务可以被编程为立即开始,或者在一个用户定义的延迟之后,或者在一次温度告警之后开始。
对于存储器和控制功能的访问可加以口令保护。
DS1922L/T通过串行1-Wire®协议与主机通信,仅需要单条数据引线和返回地。
每个DS1922L/T都由工厂光刻了一个保证唯一64位的注册号,保证每个器件绝对可溯。
坚固的不锈钢封装对于各种恶劣环境具有很高的耐受力,例如玷污、潮湿和冲击等。
配套的各种附件可以使DS1922L/T安装在几乎任何物体上,包括集装箱、货架或袋子等。
采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。
而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
1.2.2上位机
主要考虑两种上位机软件
第一种是VB,VB是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。
它简单易学、效率高,且功能强大可以与Windows专业开发工具SDK相媲美。
在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OL)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。
第二种是虚拟仪器,LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
1.2.3上位机与下位机通讯方式
第一种为传感器和上位机使用串口通信。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
第二种为传感器和上位机通讯使用数据采集卡。
数据采集卡是指从传感器和其它待测设备等模拟和数字被测单元中自动采非电量或者电量信号,送到上位机中进行分析,处理。
数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。
1.3研究内容
本次课题的研究内容是利用labview的串口通信模块,采集来自单片机获得的(多点)温度信号,并在labview上实时绘图显示。
当温度过高或过低时,能够在界面上给出提示。
主要内容有:
完成一个基于labview与传感模块的温度检测系统,要求实现以下功能
1、单片机(多点温度采集)
2、单片机与上位机的串口通信
3、labview显示界面及与下位机的串口通信
4、labviews上温度的实时显示
5、温度超限提示功能
第2章系统设计
本温度检测系统大体分为三个部分,结构如图2-1
上位机
单片机
传感器
下位机
图2-1系统设计图
下面分模块阐述这几部分的设计
2.1下位机设计
下位机的主要功能是进行温度的检测以及将数据进行必要的格式转换,让上位机能方便的接受。
它由温度检测模块和下位机主控模块等模块组成。
2.1.1温度检测模块设计
采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。
部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。
而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。
所以集成芯片的使用将成为电路发展的一种趋势。
本方案应用这一温度芯片,也是顺应这一趋势。
这里我们用到温度芯片DS18B20。
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式。
测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。
其工作电源既可在远端引入,也可采用寄生电源方式产生。
CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
在多点测温系统中,传统的测温方法是将模拟信号远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题。
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
这样,测温系统的结构就比较简单,体积也不大,且由于AT89C51可以带多个DSB1820,因此可以非常容易实现多点测量.轻松的组建传感器网络。
2.1.2上位机和下位机的通讯方式设计
考虑到这次为温度检测系统,并且不完成复杂的功能,串口完全可能胜任。
再者,串口简单易操作,非常适合本系统。
2.1.3下位机主控模块设计
AT89C51单片机的特点:
5V供电,8位单片机,与MCS-51兼容。
有四组I/O口(P3口可复用),5个中断源,有两个外部中断输入端,两个内部定时器中断(也可以扩展做计数器),支持半双工串行通信。
内部RAM为128B,ROM为4K(也可以选择其他型号获得较大空间),简单易操作。
2.2上位机设计
LabVIEW是实验室虚拟仪器集成环境(LaboratoryvirtualInstrumentEngineeringworkbench)的简称,是目前应用最广、功能最强、发展最快的图形化软件开发环境。
得到工业界和学术界的普遍认可和好评。
它可以把复杂、繁琐、费时的文本语言编程简化成用菜单或图标提示的方法选择功能(图形),用线条将各种功能(图形)连接起来的简单图形编程方式,为没有编程经验的用户进行编程、调试提供了简单方便、完整的环境和工具,尤其适合于从事科研、开发的科学家和工程技术人员使用。
LabVIEW是一种虚拟仪器开发平台软件,能够以其直观简便的编程方式、众多的源代码级的设备驱动程序、多种多样的分析和表达功能支持,为用户快捷地构筑自己在实际工程中所需要的仪器系统创造了基础条件。
而且LabVIEW与其它计算机语言相比,有一个特别重要的不同点:
其它计算机语言都是采用文本语一言产生代码行,而LabVIEW采用图形化编程语言——G语言,产生的程序是框图的形式,易学易用,特别适合硬件工程师、工程技术人员、生产线工艺技术人员的学习和使用,可以在很短的时间内掌握并应用到实践中去。
特别是对于熟悉仪器结构和硬件电路的硬件工程师、工程技术人员和测试技术人员来说,编程就像设计电路图一样;因此,硬件工程师、工程技术人员和测试技术人员们学习LabVIEW驾轻就熟,在较短的时间内就能够学会并应用LabVIEW,也不必去记忆那眼花缭乱的文本式程序代码。
LabVIEW的功能十分强大。
像C和C++等其它计算机高级语言一样,LabVIEW也是一种通用编程语言,具有各种各样、功能强大的函数库,包括数据采集、GPIB、串行仪器控制、数据分析、数据显示及数据存储,甚至还有网络功能。
LabVIEW也有完善的仿真、调试工具,如设置断点、单步执行等。
LabVIEW的动态连续跟踪方式,可以连续、动态地观察程序中的数据流向及其变化情况,比其它语言的开发环境更方便、更有效。
G语言编写的程序称为虚拟仪器VI(VirtualInstrument),因为它的界面和功能与真实仪器十分相像,在LabVIEW环境下开发的应用程序都以VI为后缀的,以表示虚拟仪器的含义。
一个VI由交互式用户接口、数据流框图和图标连接端口组成。
同时,G语言很好地实现了模块化编程思想。
用户可以将一个应用分解为多个任务,再将任务细分,将一个复杂的应用分解为多个简单的子任务,为每个子任务建立一个VI,然后把这些VI组合在一起成为最终的应用程序。
因为每个子VI可以单独执行,所以很容易调试。
进一步而一言,许多低级子VI可以完成一些常用功能,因此,用户可以开发特定的子VI库,以适用一般的应用程序。
LabVIEW的运行机制从宏观上讲己经不再是传统上的冯·诺依曼计算机体系结构的执行方式。
传统的计算机语言中的顺序执行结构在LabVIEW中被并行机制所代替:
从本质上讲,它是一种图形控制流结构的数据流模式。
数据流程序设计规定,一个函数只有当它的所有输入有效时才能执行;而目标的输出,只有当它的功能完成时才是有效的。
也就是说,在这种数据流程序的概念中,程序的执行是数据驱动的,它不受操作系统、计算机等因素的影响。
这样,LabVIEW中被连接的功能节点之间的数据流就能控制程序的执行次序,而不像文本程序受到行顺序执行的约束。
从而,我们可以通过相互连接功能节点快速地开发应用程序,甚至还可以有多个数据通道同步运行。
LabVIEW的核心是VI。
VI有一个人机对话的用户界面,即前面板(FrontPanel)和类似于源代码功能的程序图(Diagram)。
前面板接收来自程序图的指令。
在VI的前面板中,输入控件(Controls)模拟了仪器的输入装置并把数据提供给VI的程序图:
而显示控件(Indicators)则模拟了仪器的输出装置并显示由程序图获得或产生的数据。
当把一个输入控件或显示放置到前面板上时,LabVIEW在程序图中相应地放置了一个端口(Terminals),这个从属于输入控件或显示控件的端口不能随意删除,只有删除它对应的输入控件或显示控件时它才随之一起被删除。
用LabVIEW编制框图程序时,不必受常规程序设计语法的限制。
首先,从功能菜单中选择需要的功能节点,将之置于面板上合适的位置;然后用线(Wires)连接各功能节点在程序图中的端口,用来在功能节点之间传输数据。
这些节点包括了简单的算术功能,高级数据采集和分析以及用来存储和检索数据的文件输入输出功能和网络功能。
用LabVIEW编制出的图形化VI是分层次和模块化的。
我们可以将之用于顶层程序,也可用作其它程序或子程序的子程序。
显然LabVIEW依附并发展了模块化程序设计的概念。
图形化程序设计编程简单、直观、开发效率高。
经过各个部分的选择,最后确定基本的框架图如下
Labview界面显示
AT89C51单片机
DS18B20
DS18B20
DS18B20
图2-2系统设计后图
第3章下位机的软硬件实现
下位机包括硬件电路和单片机软件编程。
3.1硬件实现
设计包括的主要功能是温度检测和数据格式的转化。
3.1.1DS18B20温度传感器
DS18B20支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等。
DS18B20的内部结构如图3-1所示。
图3-1DS18B20内部结构图
DS18B20有4个主要的数据部件:
①64位激光ROM。
64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。
②温度灵敏元件。
③非易失性温度报警触发器TH和TL。
可通过软件写入用户报警上下限值。
④配置寄存器。
配置寄存器为高速暂存存储器中的第五个字节。
DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图所示。
表3-1DS18B20结构图
TM
R1
R0
1
1
1
1
1
MSB
DS18B20配置寄存器结构图
LSB
其中,TM:
测试模式标志位,出厂时被写入0,不能改变;R0、R1:
温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:
R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
表3-2配置寄存器与分辨率关系表
R0
R1
温度计分辨率/bit
最大转换时间/us
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。
3.1.2单片机外围电路
将AT89C51单片机的P1.0,P1.1,P1.2三个引脚分别连上三个DS18B20传感器来实现三点温度测量。
将RET接上复位电路。
然后将XTAL1,XTAL2接上晶振,让晶振提供时钟信号使AT89C51单片机工作。
图3-3硬件电路
3.2下位机软件设计
以下是下位机的程序流程图:
首先发送命令通知到温度转换,转换获取的数据,由二进制转换到十进制,再保存到寄存器SBUF,由串口从寄存器获取数据,传输给上位机进行显示和处理。
温度转换初始化
获取温度
信号格式转换
保存到寄存器
SBUF
串口从寄存器读取
图3-4下位机流程图
下面的程序为下位机核心程序
voidmain()
{
uintt;
SCI_Init();
while
(1)
{
tmpchange();
tmp1change1();
tmp2change2();
Disp(tmp());
wendushuju1(tmp());
wendushuju2(tmp1());
wendushuju3(tmp2());
send_packet(&send_data_s1,3);
send_packet(&send_data_s2,3);
send_packet(&send_data_s3,3);
while
(1);
}
}
第4章上位机实现
4.1上位机总体模块
图4.1是上位机LabVIEW的总体模块图。
串口通讯模块
数据处理模块
数据显示模块
温度报警模块
图4.1LabVIEW总体模块
4.2模块分析
4.2.1串口通讯模块
该模块的主要作用是将串口读进来的字符串转化为九维数组。
图4-2VISA输入
从串口读入十六进制的字符串。
图4-3VISA配置串口
该程序的功能是将VISA资源指定名称的串口按特定设置初始化。
通过将数据连线至VISA资源名称输入端可确定要使用的多态实例。
本程序VISA配置串口的数据设置为波特率9600,数据比特8,奇偶校验为0.
图4-4VISA写入程序
该程序的主要功能是将写入缓冲区的数据写入VISA资源名称指定的资源或接口中。
图4-5VISA读取程序
从VISA资源名称指定的设备或接口读取指定数量的字节,并将数据返回至读取缓存区。
本次程序设置为一次读取九个字节进行转换。
图4-6数组转换程序
将读取的字符串转化为九维数组。
图4-7串口通讯模块总体图
图4-8为串口通讯模块,从VISA串口资源名称(COM3)读取十六进制的字符数,然后通过VISA的串口配置,写入缓冲区,之后将缓存区的数据读出,一次读九个,经过转换,转换为数组。
4.2.2数据处理模块
图4-8索引
本程序是索引数组,返回n维数(本次程序n为9)为组在索引位置的元素或者子数组。
将从数组转化器读入的数组通过索引逐个读出。
三点温度测量点分别为甲地,乙地,丙地。
第一位为甲地的标示位,第二位为甲地的整数部分,第三位为甲地的小数部分。
第四位为乙地的标示位,第五位为乙地的整数部分,第六位为乙地的小数部分。
第七位为丙地的标示位,第八位为丙地的整数部分,第九位为丙地的小数部分。
图4-9运算
将甲地,乙地,丙地的标示位分别设置为1,2,3。
图4-10温度的运算
这个为条件结构,当为假的时候,不输出。
当为真的时候,将索引来的小数部分乘以0.01加上整数部分,然后输出完整的温度数据。
图4-11数据处理模块总体图
将读入的数组通过索引,读出元素,九维数组分别为甲地标志位,甲地整数部分,甲地小数部分,乙地标志位,乙地整数部分,乙地小数部分,丙地标志位,丙地整数部分,丙地小数部分。
将三个点的小数部分乘以0.01加上整数部分完成了温度数值的计算,传输到下一部分。
4.2.3数据显示模块
该模块是将处理好的数据读出分别作温度曲线,历史数据,温度报警。
将计算好的数据读出以温度曲线的形式输出。
图4-12转化程序
将计算好的温度数据进行小数精度设置,精度为0.01,转化为浮点字符串。
图4-13获取时间日期
为了在显示历史数据时能准确显示出当时历史数据的时间而是用本程序。
本程序能返回当时的时间标示。
图4-14时间转化
按照格式把时间标示显示为时间值或者数值。
图4-15数组插入
本程序的作用是在n维数组索引的位置中差入