武祎

摘 要:本文主要介紹了在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.