基于LabVIEW的四通道温度数据采集系统的设计.docx

上传人:b****0 文档编号:9174515 上传时间:2023-05-17 格式:DOCX 页数:17 大小:267.45KB
下载 相关 举报
基于LabVIEW的四通道温度数据采集系统的设计.docx_第1页
第1页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第2页
第2页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第3页
第3页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第4页
第4页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第5页
第5页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第6页
第6页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第7页
第7页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第8页
第8页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第9页
第9页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第10页
第10页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第11页
第11页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第12页
第12页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第13页
第13页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第14页
第14页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第15页
第15页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第16页
第16页 / 共17页
基于LabVIEW的四通道温度数据采集系统的设计.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于LabVIEW的四通道温度数据采集系统的设计.docx

《基于LabVIEW的四通道温度数据采集系统的设计.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的四通道温度数据采集系统的设计.docx(17页珍藏版)》请在冰点文库上搜索。

基于LabVIEW的四通道温度数据采集系统的设计.docx

基于LabVIEW的四通道温度数据采集系统的设计

摘要

虚拟仪器是将仪器技术、计算机技术、总线技术和软件技术紧密地融合在一起,利用计算机强大的数字处理能力实现仪器的大部分功能,打破了传统仪器的框架,形成的一种新的仪器模式。

本设计是基于LabVIEW2010开发平台而简单模拟设计的一个四通道数据采集系统,其中下位机是采用单片机模拟产生实时温度数据,上位机系统则具有数据同时采集、采集数据实时显示、存储与管理、报警系统、数据记录查看等功能,实现了四通道温度数据采集的目的。

本文首先概述了虚拟仪器技术,LabVIEW开发平台,然后简单那介绍了数据采集的相关理论,最后具体讲解了本设计的各个模块在LabVIEW上是如何实现的。

关键字:

虚拟仪器;数据采集;LabVIEW

 

Abstract

Virtualinstrument(VI)combinescomputerscience,bustechnology,softwareengineeringwithmeasurementinstrumentationtechnology,makinguseofthecomputerpowerfuldigitalprocessingabilityrealizemostofthefunctionsoftheinstrument,breakingthetraditionalinstrument,formingtheframeworkofanewinstrumentmodel.

ThisdesignisbasedonLabVIEW2010developmentplatformandsimplesimulationdesignofafourchanneldataacquisitionsystem,includinglowermachineisproducedbysinglechipmicrocomputersimulationreal-timetemperaturedata,PCsystemhasdatacollection,datacollectionandreal-timedisplay,storageandmanagement,alarmsystem,datarecordcheck,andotherfunctions,realizethefourchanneltemperaturedatacollectionpurpose.

Thispaperfirstsummarizesthevirtualinstrumenttechnology,LabVIEWdevelopmentplatform,andthensimplethatintroducesthedataacquisitionofrelevanttheory,andfinallytoexplainindetailthedesignofeachmoduleinLabVIEWonhowitisdone.

Keywords:

VirtualInstrument;Dataacquisition;LabVIEW

 

目录

摘要-1-

Abstract-2-

目录-3-

第一章绪论-5-

1.1引言-5-

1.2数据采集的意义和任务-5-

1.3虚拟仪器在数据采集中的应用价值-5-

1.4本设计所做的工作-6-

第二章设计原理-6-

2.1数据产生-6-

2.2串口接收-7-

2.3分通道显示-8-

2.3.1数据分离-8-

2.3.2门限设置-8-

2.3.3波形显示-9-

2.4华氏转换-9-

2.5报警系统-10-

2.6数据文件存储-10-

2.6.1建立头文件-10-

2.6.2数据TXT存储-11-

2.7记录数据读取-11-

2.8面板设计-12-

第三章程序的调试-12-

3.1调试结果-13-

3.1.1波形显示-13-

3.1.2缓冲区字符串-13-

3.1.3数据存储文件-13-

3.1.4报警-14-

3.1.5华氏转换-14-

3.1.6波形回显-14-

3.2调试问题与解决方案-15-

3.2.1字符串缓冲区-15-

3.2.2文件存储-15-

3.2.3华氏转换-15-

3.2.4波形回显-16-

3.3调试心得和建议-16-

第四章总结-17-

参考文献-18-

附录

(一)单片机程序代码-19-

附录

(二)部分程序框图-22-

第一章绪论

1.1引言

测控技术在现代科学技术、工业生产和国防科技等诸多领域中应用十分广泛,它的现代化已被认为是科学技术、国防现代化的重要条件和明显标志。

近年来,以计算机为中心、以网络为核心的网络化测控技术与网络化测控系统得到越来越多的应用,而数据采集系统则是完成测控任务的主力,虚拟仪器的出现很大程度上可以替代传统仪器的测量,本文正是设计实现了一款基于LabVIEW的温度数据采集系统。

1.2数据采集的意义和任务

数据采集是计算机与外部物理世界连接的桥梁。

数据采集就是将被测对象的各种参量(可以是物理量,也可以是化学量,生物量等)通过各种传感器和变送器做适当的转换后,以及信号调理、采样保持等步骤后,转化成数字信号给处理器进行数据处理,存储记录和显示打印的过程。

随着计算机技术的发展和普及以及网络技术的发展,总线吞吐能力的提高,CPU处理能力的增强,数据采集系统的技术水平大大提高。

在生产过程中,应用数据采集系统,可以对生产现场的工艺变量进行采集,监控和记录,为提高产品质量,降低成本提供信息和手段。

在科学研究领域中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具。

数据采集的任务,就是采集传感器输出的模拟信号并转换成为计算机能识别的数字信号,然后送入计算机,进行相应的计算和处理,得到所需要的结果。

1.3虚拟仪器在数据采集中的应用价值

虚拟仪器是以计算机为基础,配以相应测试功能的硬件作为信号输入/输出的接口,完成信号的采集,测量与调理,从而完成各种测试功能的一种计算机化仪器系统,是现代通讯技术与计算机技术结合的产物,是当今计算机辅助测试领域的一项重要的技术。

虚拟仪器通过软件将计算机硬件资源和仪器硬件资源有机的融合一体,从而把计算机强大的计算机处理能力和仪器的硬件测试,控制能力结合在一起,大大缩小了仪器硬件成本和体积,并通过软件实现对数据的显示,存储以及分析处理。

“软件就是仪器”,这就是对虚拟仪器最好的定义。

下图很好的描述了虚拟仪器数据采集的过程。

 

图1-1虚拟仪器数据采集过程

1.4本设计所做的工作

本设计是用单片机做为下位机端,模拟产生四个通道的实时温度数据,通过串口发送到上位机LabVIEW端,上位机系统实时对下位机发送过来的温度数据进行处理和波形显示,同时有报警系统可检测温度数据是否超限,以实现可视化的实时数据观测,最后波形重现系统可很好地实现对已存储数据的调用观察。

第二章设计原理

本设计以实现四通道温度数据的采集和处理为目的,具体模块包括数据产生、串口通讯接收、分通道显示、报警系统、华氏转换、数据文件存储、记录数据读取、面板设计共八个部分。

以下是各个模块的具体实现原理:

2.1数据产生

四个通道的温度数据,是通过在单片机上编写发送程序实现的,所用单片机型号为P89V51RD2,程序是在keiluvision3上编写C语言程序实现数据发送的,并通过串口专家来进行调试。

具体思路为,通过51单片机的T1来设置串口波特率为9600,通过T0实现一秒的时间间隔,在中断服务程序中将事先写好的四组数据依次间隔一秒地通过串口发送出去。

串门专家接收情况如图2-1:

图2-1单片机程序调试

2.2串口接收

本部分是实现下位机发送的温度数据在LabVIEW上的接收,具体是在LabVIEW上用VISA配置串口对串口进行配置、VISA写入(引用IF结构语句实现分别写入‘T’‘F’)、VISA读取、VISA关闭,将接收到的字符串数据在接收缓冲区显示,并通过字符串连接实现10KB的数据显示,大于10KB,对字符串显示控件清除。

图2-2串口配置

2.3分通道显示

本部分实现四组数据的实时波形显示,并实现数据上下限的设定,同时让三条曲线显示在一个波形图表中,以达到实时观测数据的目的。

2.3.1数据分离

VISA读取得到的字符串包含四组温度信息,依次通过字符串截取控件,然后把截取到的字符串转换为一位数组,达到从字符串到数字转换的目的,数据就可以在波形图表上显示了。

其中很关键的一步是把截取到的字符转换为数字,我用到了一个常量数组,依次让字符串对应的ASCII码减去‘0’对应的码值得到额数字再相应重新组合为数字。

图2-3字符串到数值的转化

2.3.2门限设置

温度上下限的设置都是通过一个滑杆数值输入控件实现的,通过一个创建数组的控件可把数值常量创建成为一个常量数组,这样,上下限的数据类型就和温度数据一致了。

同时引入一个数值比较运算,以方便判断数据是否超限,同时用来设置报警系统。

图2-4门限设置

2.3.3波形显示

将三组数组捆绑成簇,引入波形图表(如上图),即可显示三条图线,在前面板可通过设置波形图表的属性改变图线颜色和样式。

显示效果如图2-5:

图2-5波形显示

把当前时间控件的输出(绝对时间),转换为双精度浮点数,然后输出给波形图表X轴的偏移量属性,然后再调节波形图表的标尺显示格式属性为绝对时间,即可达到波形图表横轴显示为实时时间的目的。

2.4华氏转换

根据摄氏温度和华氏温度数据的数学关系,引用表达式节点可方便快速实现以上目的,但是这仅仅能实现数值的转换,要想实现系统显示(波形图表,温度显示盘数值)的改变,则必须引入IF结构,通过一个布尔控件控制是否转换,这个程序应放在波形图表以及其他显示控件的前面,这样,只通过改变布尔的值就可以改变所有的显示。

具体程序框图见附录

(二)。

2.5报警系统

报警系统我设置了三个层次,已达到当有温度值过限时,一目了然切能快速找到过限源的目的。

首先,针对每一通道的数据,有单独的过限报警系统(主要是闪烁),其次,高一层次地,设置了两个报警灯,分别为上限报警和下限报警,报警源都来自四个通道各自上下限的“与”操作,即只要有任一通道过限即会报警,最感层次是一个报警灯和声音提示,只要是有过限数据,即会报警。

这样,从高层次往下看,当有数据过限时,就可以很快地找到过限源,进行相应处理。

图2-6报警系统

2.6数据文件存储

数据文件存储包括两个部分,头文件的建立和数据txt存储。

2.6.1建立头文件

本功能以及下面的数据存储,都主要用到以下控件:

打开/创建/替换文件、格式化写入文件和关闭文件。

头文件的创建包括两步:

第一是文件路径,根据设计要求,先引用当前时间,转化为字符串,然后把具体路径字符串捆绑(当前时间是变化的),输出给文件路径的值属性;第二就是头文件了,这个可以引用格式化写入文件,注意头文件字符间隔与数据对应,很容易就实现了。

程序框图如图2-7:

图2-7建立头文件

2.6.2数据TXT存储

数据的存储是实时的,动态的,所以把写入操作放在IF循环里面,与格式化写入头文件类似,先以一定格式写入当前时间,然后就是四组数据,我采用以字符串的形式写入。

程序如下图。

值得注意的是每次写入文件时有一个判断文件大小的,然后和一个常量相比较的操作,该操作是为了实现新文件的创建,从程序框图很容易看出,当文件大小大于10200B时,则跳出if和while循环,这样,在下次数据到来之前,就可以执行再次创建一个文件的操作。

图2-8格式化写入文件

2.7记录数据读取

这部分是为了实现对以前存储数据的读取,数据是存储在txt文件中的,要想把数据读取出来,我采用的是和上面串口读取类似的读取方式,这个比较复杂,但是思路是很明确的。

首先,打开、读取文件,然后用截取字符串控件,只把头文件截取掉,对以下的每行数据采用for循环(执行次数至少等于存储的数据组数)截取,这里应用到移位寄存器,可以很方便地实现数据的逐行逐行截取。

最后在for循环里面把截取到的字符串转换为数值数组,然后显示在波形图表上,达到读取存储数据的目的。

具体程序框图见附录。

2.8面板设计

面板设计对于一个仪器系统来说也是比较重要的,它一方面是为了整体美观,另一方面也是为了增强设计的可读性。

面板的设计分为前面板设计和后面板设计,具体应遵循以下几点原则:

第一,整齐、美观、无多余控件;第二,主要部分靠左上的原则;第三,就是颜色了,前面板颜色要有对比度,而且不宜超过三种颜色。

最后值得注意的是,后面板的排列应尽量按照数据流从左到右的次序,实现某一功能的模块控件可放紧凑点,不同模块之间要有一定间隔,这样可大大提高程序可读性,也方便设计者更改和完善程序。

第三章程序的调试

程序调试过程就是运行一个设计好的程序,看是否能实现预期功能,并不断改进的过程。

设计本采集系统时,我是分模块一步步进行设计的,一个模块实现一个功能,这样若某一模块功能无法实现,就可以很方便地立即更改。

当然整个设计过程也遇到了不少问题,以下是各模块调试的结果,调试中遇到的一些问题解决方案和我的一点调试心得。

3.1调试结果

3.1.1波形显示

图3-1

3.1.2缓冲区字符串

图3-2

3.1.3数据存储文件

图3-3

3.1.4报警

图3-4

3.1.5华氏转换

图3-5

3.1.6波形回显

图3-6

3.2调试问题与解决方案

程序调试过程中遇到的问题是比较多的,设计用的时间也比较长,以下仅拿出我遇到的几个典型的问题,并说明我的解决办法。

3.2.1字符串缓冲区

下位机端的数据是每隔一秒发送一次的,这样的话,若直接用一个字符串显示控件显示缓冲区,则会出现只显示最后一组数据和不断刷新的现象,不能实现接收数据在显示控件中显示的效果。

为了解决这个问题,我引用了反馈节点和if条件结构(具体可见该部分程序),设置if的条件为连接字符串的大小是否大于10KB,在if结构中运用反馈对每次接收到的字符串进行连接显示,达到了预期效果。

3.2.2文件存储

一开始,实现这部分时,在if语句的引用上我出现了错误,我把文件存储部分放在了if外面,这样的后果就是,每来一组数据就会创建一个文件,无法连续存入,这是因为,程序执行时,每来一组数据,就会执行一次if语句并跳出,这样,每次跳出if结构,就会创建一个文件,并把一组数据存入。

其实只需要把写入文件放入循环内部,并且很关键地要在if外放置一个while循环,并把文件创建程序放在while外面,设置while跳出条件为txt文件大于10KB,这样就会每存够10KB数据,才会进行下一个文件的创建。

3.2.3华氏转换

这部分遇到的问题,前面已经提到过,就是一开始我设计华氏转换时,只是实现了一个显示控件数据的转换,并没有实现系统单位华氏的整体转换,其实前面我只是简单进行了一个数学的转换,然后显示,后来我用一个if结构,这样可以用一个布尔控件实现整体单位的转换,布尔为F时,数据没有进行转换,为T时,不但数据进行了转换,同时显示仪表的量程等也要相应作出改变。

3.2.4波形回显

波形回显是单独的一个模块,与前面没有数据流交换,如何实现前面部分与波形回显部分为类似于物理上电阻的并联结构,同时实现波形回显后程序进入前面部分(即接着进行数据采集)十分关键。

一开始,我写的程序,这两个模块执行时存在矛盾,后来才发现,其实,在程序上,这个问题的关键就是波形回显部分放置的位置问题,只有把波形回显部分放置在与前面部分相同的层次上,才能解决问题,于是我把波形回显部分放在了里面这个while循环的内部,解决了这个问题。

3.3调试心得和建议

对于LabVIEW的学习,我们往往在调试程序,遇到错误,然后自己慢慢解决的过程中才会有很大收获,这部分东西才是我们学习的宝贵财富。

上面5.2部分我已详细讲解了我自己在调试本设计程序过程中遇到的问题,以及我解决这些问题的过程和方案,以下是我的一些心得和建议:

1)我们用LabVIEW编写程序时,一定要多动手操作,多摸索实践。

这也是我们学习应用性软件的很好的方法,以前学习C语言时,可能没有意识到这个问题,结果学的并不怎么样,而在完成上面整个程序的设计的过程中,我深深感受到了这一点,老师在课堂上带我们做东西,教给我们的只是学习这个东西的方法,只有我们自己加强动手操作,才能学好LabVIEW。

2)除了要学会如何使用LabVIEW中的基础控件(字符串、数值、数组等),我们还要熟练掌握程序的三种结构的应用,特别是条件结构、循环结构(while、event等),往往要写出一个好的程序,这些东西才是关键。

编写程序的过程中,我慢慢意识到框架的建立是写好一个程序的关键,也能大致反应出我们的思路,开始时,我对while循环应用的理解存在误区,好多次程序出现问题时,总是不明白为什么程序会出现错误,通过和同学交流,才慢慢明白其中的原因。

3)要编写一个LabVIEW程序,我们要有层次和数据流的概念,想做好一个东西,首先要想好我们要做的东西的框架,然后一点点往里面填写每个部分的框图。

我刚开始做这个数据采集系统时,整个思路都是比较模糊的,在做的过程中总是出现反复修改的问题,后面要与前面连接时,才发现前面部分有不符合要求的地方,所以,最好在一开始时,我们就在纸上尽量详细地画出框架,然后慢慢分模块符合要求地做出来,最后连接时才不会出现大的纰漏。

4)通过深入了解一些LabVIEW的资料,我意识到,对于LabVIEW,我目前只是学习了一些基础,冰山一角,还有很多很多东西没有接触到,LabVIEW作为一种图行化程序设计语言,可以说走在了当今测量仪器设计的前列,能实现的功能是十分强大的,值得继续深入研究。

5)最后,单就LabVIEW的学习来说,我觉着在整个学习的过程中,老师可以每教完一部分东西,就给我们布置一个小的任务,这样不仅可以加强我们对课堂知识的巩固应用,而且特别有利于我们后面的学习。

好多同学因为前面的东西没有学明白,后面学习吃力而没有好好学,错过了很多重要的东西,到最后学完了,真正做东西的时候才发现什么都不会。

第四章总结

本设计是在学习了LabVIEW基础编程知识之后,运用数据采集的基本原理,基于LabVIEW2010开发平台而简单模拟设计实现的,系统功能的设计相对实际数据采集系统是有所简化的,数据来源是由下位机单片机直接产生的,所以没有实际的温度采集实践过程,有一定缺陷和不完整性,严格意义上并不能称为一个系统,实际应用时要有所改进,设计的主体是在LabVIEW上实现数据的接收、显示、处理和查看,所以设计的主要工作是LabVIEW程序的编写,通过各个模块的编程实现,组成一个模拟处理系统,完成了四通道数据采集的任务,同时也达到了掌握LabVIEW平台基础应用的目的。

设计的具体模块包括数据产生、串口通讯接收、分通道显示、报警系统、华氏转换、数据文件存储、记录数据读取、面板设计共八个部分。

在设计过程中,是先设计各个子模块,测试其功能后再依次连接相应功能模块来实现整个系统的,为了便于阅读,程序没有采用子程序的技术,这个是可以改进的,而且很好实现。

最后程序调试阶段,限于本身LabVIEW知识的缺陷,遇到了很多问题,但都很好滴解决了。

由于初学LabVIEW,整个系统的设计耗费了不少时间,但数据采集系统的设计,是一次很好的理论结合实际的机会。

通过设计完成这个小的系统,我已基本掌握了LabVIEW的简单应用,但是对于LabVIEW的高级应用,还需要在今后的学习实践中进一步探索学习。

总体来说,通过本设计,我深刻的认识到了虚拟仪器技术是仪器发展的重要方向,其以崭新的模式和强大的功能深入人心,伴随着计算机技术和信息技术的发展,虚拟仪器必将拓展到各个领域,引起测控仪器的深层次变革,可见学好虚拟仪器技术是多么的重要,LabVIEW还有好多好多东西等着我们去探索。

参考文献

1.PeterA.Blume著,刘章发,衣法臻等译LabVIEW编程样式,电子工业出版社,2009.6.

2.陈锡辉,张银鸿著.LabVIEW程序设计从入门到精通[M],清华大学出版社,2007.7.

3.LabVIEW网络讲坛

4.CPUBBS论坛.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2