基于虚拟仪器的温度采集系统的设计与实现
2014-11-12武祎
武祎
摘 要:本文主要介绍了在Windows环境下,以LabWindows/CVI为软件开发平台,以热电偶和计算机为主要硬件平台,利用多线程机制进行温度的采集和存储,最后对采集到的数据加以分析。实际应用表明该系统运行稳定。
关键词:LabWindows/CVI;热电偶;多线程;数据采集
1 前言
虚拟仪器是近些年发展起来的新仪器技术,它利用数据采集硬件模块完成一般仪器的采集功能,利用计算机完成数据存储、分析、显示功能。LabWindows/CVI是目前世界上应用最广泛的虚拟仪器开发平台之一,它以C语言为基本编程语言。为此,本文利用ADAM-4118热电偶和LabWindows/CVI完成对数据的采集、存储和分析工作[1]。计算机(工控机)通过串口RS-232,中间经过RS-232和RS-485的转换器与热电偶进行通讯,被测参数的实时信号通过串口传送给工控机。
⑴软件设计。系统的应用程序开发采用LabWindows/CVI,它是在Windows环境下面向计算机测控领域的虚拟仪器软件开发平台。该程序以ANSI C为核心,将C语言与测控专业工具有机的结合起来,并且支持多线程机制,利用它的集成开发环境,在编程过程中直接调用用户界面函数并且利用采集卡提供的库函数,进行系统的软件设计。LabWindows/CVI有许多标准函数库,其中的RS-232函数库提供了各种方式的串口通讯函数和IO函数。系统软件主要包括串口初始化与实现,安装串口回调函数,读写串口操作,数据保存,用户界面5个部分。⑵硬件设计。系统的硬件主要是由热电偶与工控机连接进行数据采集和显示。
2 基于LabWindows/CVI数据采集系统的设计方案
基于LabWindows/CVI数据采集系统的建立分以下几步:第一步,利用LabWindows/CVI建立用户界面。此界面包括四个数据采集(热电偶)模块,每个模块有8个通道。第二步,在界面上建立控件按钮,如数据采集按钮(开始采集、停止采集),数据确认按钮,保存数据按钮,数据显示按钮。第三步,在编程过程中使用多线程机制以保证数据采集的实时性,和提高CPU的利用率和程序的执行效率。
⑴多线程机制的概念及设计。1)多线程概念。在Windows操作系统中,进程表示一个执行中的程序,它是CPU的调度单位。执行程序代码是线程的工作。当一个进程建立起来后,主线程也就产生了,所以每个Windows程序至少存在一个线程(主线程)。在数据采集系统的实时控制中,常会出现多任务同时进行工作的情况,如数据采集,数据存储等工作的并行进行。如果采用单线程编程,必须要按数据采集-数据存储的顺序执行程序,只有在数据存储完后才能进行下一轮的采集。这样就会影响程序执行的效率而且可能导致数据丢失。而采用多线程机制,就可以将这些任务分给几个单独的线程,一个线程进行数据采集,一个线程进行数据存储或其他。2)多线程编程。在LabWindows/CVI编程中,使用主线程进行创建、显示并运行用户界面。使用次线程进行数据的采集、存储及其他操作。LabWindows/CVI提供了两种机制来运行次线程,分别是线程池和异步定时器。线程池比较适用于一个死循环或者是不连续的任务;异步定时器适用于执行有规律的中断。本系统采用线程池机制[2]。
⑵线程池的使用。线程池中运行次线程,首先需要调用通用函数库中的CmtSchedulePoolFunction函数。并将需要在次线程中执行的函数的函数名作为参数传递。其次,调用线程池等待函数CmtWaitForThreadPoolFunction等待线程池函数结束。最后,调用线程池释放函数CmtReleaseThreadPoolFunctionID释放空间。
3 温度采集系统的设计
温度采集系统的设计主要包括操作面板设计和能够实现数据实时采集功能的程序设计。面板是用于人机交流、对面板上的各种控件进行操作。后台运行的功能程序实现数据采集、存储等功能。
⑴操作面板设计。面板(用户界面)和面板中的控件如一些按钮都是被控对象。面板的设计主要是利用了LabWindows/CVI中的用户界面库函数所提供的函数及通过改变对象的属性来实现的。采集系统的前面板共有四个热电偶模块,每个模块有八个通道进行数据采集。这四个模块可以任意选择来采集数据,即可以全选,也可以选其中的一个,两个或三个。在采集系统的串口通讯面板上发送接收命令,可改变模块特性,如设定地址,输入量程,波特率,从通道返回数据等。此外还有一些模块的设置[3]。
⑵实验结果。
实验结果表明,采集的温度数据稳定且具有较好的线性度。这些数据很好地反应了实验室当前的温度情况。
4 总结
本系统在研究虚拟仪器技术以及数据采集技术相关理论的基础上,使用虚拟仪器技术实现多通道数据采集,并将采集到的数据以文件形式进行存储,用以数据分析。系统经过调试后,运行稳定可靠。
[参考文献]
[1]史君成,张淑伟,律淑珍.LabWindows/CVI虚拟仪器设计[M].北京:国防工业出版社.2007.
[2]余军,张璐莹.虚拟现实技术及其应用[J].河南:天中学刊.2007-5.
[3]張靓,黄海于.基于LabWindows/CVI的多线程数据采集的研究和设计[J].北京:中国仪器仪表.2005-8.