《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW的溫度壓力采集系統(tǒng)的設(shè)計(jì)
基于LabVIEW的溫度壓力采集系統(tǒng)的設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2013年第7期
易 馳,,文小玲,,李鳳旭
(武漢工程大學(xué) 電氣信息學(xué)院,湖北 武漢 430205)
摘要: 闡述了虛擬儀器軟件開(kāi)發(fā)平臺(tái)LabVIEW技術(shù)的特點(diǎn),并介紹了MySQL數(shù)據(jù)庫(kù)與LabVIEW之間的通信方法,,應(yīng)用LabVIEW圖形化編程軟件和MySQL數(shù)據(jù)庫(kù)軟件,,借助ODBC驅(qū)動(dòng)軟件,對(duì)溫度,、壓力采集系統(tǒng)進(jìn)行了設(shè)計(jì),,實(shí)現(xiàn)了溫度、壓力的采集,,數(shù)據(jù)存儲(chǔ)與查詢,,遠(yuǎn)程監(jiān)控等功能。
Abstract:
Key words :

摘  要: 闡述了虛擬儀器軟件開(kāi)發(fā)平臺(tái)LabVIEW技術(shù)的特點(diǎn),,并介紹了MySQL數(shù)據(jù)庫(kù)與LabVIEW之間的通信方法,,應(yīng)用LabVIEW圖形化編程軟件和MySQL數(shù)據(jù)庫(kù)軟件,借助ODBC驅(qū)動(dòng)軟件,,對(duì)溫度,、壓力采集系統(tǒng)進(jìn)行了設(shè)計(jì),實(shí)現(xiàn)了溫度,、壓力的采集,,數(shù)據(jù)存儲(chǔ)與查詢,遠(yuǎn)程監(jiān)控等功能,。
關(guān)鍵詞: LabVIEW,;MySQL數(shù)據(jù)庫(kù);溫度壓力采集,;數(shù)據(jù)存儲(chǔ)

 在工業(yè)制造和農(nóng)業(yè)生產(chǎn)中,,為了降低成本、提高生產(chǎn)率,,常常要對(duì)溫度,、壓力進(jìn)行采集和分析。在很多環(huán)境比較惡劣的生產(chǎn)場(chǎng)合,,不宜采用人工采集檢測(cè),。所以設(shè)計(jì)一種可以對(duì)溫度、壓力進(jìn)行自動(dòng)采集的系統(tǒng)有著廣泛的應(yīng)用價(jià)值,。而LabVIEW是目前應(yīng)用最廣,、發(fā)展最快、功能最強(qiáng)大的圖形化軟件開(kāi)發(fā)集成系統(tǒng),。它提供了豐富的圖形界面組件和庫(kù)函數(shù),,有大量可見(jiàn)的儀器控制面板所需的控制對(duì)象,如按扭,、圖表,、示波器等,,為用戶設(shè)計(jì)各種專(zhuān)業(yè)軟件提供方便,,其在環(huán)境檢測(cè)等領(lǐng)域有著廣闊的應(yīng)用前景[1-2],。與此同時(shí),面對(duì)大量監(jiān)測(cè)采集到的數(shù)據(jù)信息,,無(wú)論是手工數(shù)據(jù)管理還是文件系統(tǒng)管理,,都不便于各類(lèi)數(shù)據(jù)的查詢和管理。為了有效地管理和存儲(chǔ)數(shù)據(jù),,基于數(shù)據(jù)庫(kù)的虛擬儀器系統(tǒng)成為現(xiàn)代檢測(cè)采集系統(tǒng)的發(fā)展趨勢(shì),。本文基于LabVIEW數(shù)據(jù)采集系統(tǒng)主要包括:數(shù)據(jù)信號(hào)的模擬、MySQL數(shù)據(jù)庫(kù)與LabVIEW的鏈接以及數(shù)據(jù)庫(kù)的設(shè)計(jì)3個(gè)部分的設(shè)計(jì),。
1 信號(hào)模擬的程序設(shè)計(jì)
1.1 時(shí)間的模擬

 溫度,、壓力值都是隨著時(shí)間的變化而實(shí)時(shí)的變化。整個(gè)系統(tǒng)都是依據(jù)時(shí)間為基準(zhǔn)在運(yùn)行,,因此時(shí)間的模擬非常重要,。圖1所示為分鐘模擬輸出的程序框圖。

 上面程序總體上是一個(gè)FOR循環(huán)結(jié)構(gòu),,程序每運(yùn)行一次,,都要檢查定時(shí)器時(shí)間是否超時(shí),如果沒(méi)有就產(chǎn)生等待,,直到超時(shí),,然后再進(jìn)入下次循環(huán),如果已經(jīng)超時(shí)可直接進(jìn)入下次循環(huán),。上面的程序中還用到了一個(gè)通知操作,,它的作用主要是使其他程序能與分鐘輸出保持同步。
 圖2所示為小時(shí)模擬輸出的程序框圖,。

 

 

 此程序首先一直處于等待狀態(tài),,直到分鐘通知器發(fā)送來(lái)的信號(hào),小時(shí)等待通知器接收到信號(hào)以后就會(huì)使上面的FOR循環(huán)執(zhí)行一次,。通過(guò)這種通知器的操作就可以使分鐘小時(shí)輸出值達(dá)到同步,。程序中通知器的另一個(gè)作用就是傳遞程序停止的信號(hào),使系統(tǒng)停止工作,。
1.2 溫度,、壓力信號(hào)的模擬
 為了能反映出一天的溫度變化,則使溫度信號(hào)值在4~14點(diǎn)之間緩慢上升,,在14~次日4點(diǎn)之間緩慢下降,,且溫度范圍在10~40℃之間。程序中還引入了隨機(jī)數(shù),,這樣會(huì)使每次模擬的溫度值不一樣,,但溫度變化曲線保持一致。
 壓力值是在一個(gè)基準(zhǔn)壓力值附近不斷隨機(jī)變化的值,其平均值基本穩(wěn)定在基準(zhǔn)壓力值,。其基準(zhǔn)的壓力值是可控的,。
 圖3所示為溫度、壓力信號(hào)模擬輸出的程序框圖,。

 由于溫度,、壓力信號(hào)變化是比較緩慢的一個(gè)過(guò)程,因此本系統(tǒng)設(shè)計(jì)的是每1小時(shí)輸出1次溫度,、壓力信號(hào)值,。程序中的等待通知器保證了整個(gè)程序與分鐘時(shí)間輸出變化保持同步,與小時(shí)輸出程序中的作用類(lèi)似,。
2 數(shù)據(jù)庫(kù)的鏈接
 LabVIEW本身并不能直接訪問(wèn)數(shù)據(jù)庫(kù),,但是由于LabVIEW提供了豐富的外部程序接口,例如ActiveX和.NET,,因此在LabVIEW中可以通過(guò)ADO(ActiveX Data Object),、DAO(Data Access Object)或ADO.NET等方法與數(shù)據(jù)庫(kù)連接。其中ADO是使用最為廣泛的技術(shù),,因?yàn)閃indows操作系統(tǒng)已經(jīng)包含了ADO組件,,而且ADO通過(guò)與ODBC連接能訪問(wèn)任何支持ODBC的數(shù)據(jù)庫(kù)[3]。因此本設(shè)計(jì)采用ADO技術(shù)通過(guò)ODBC與數(shù)據(jù)庫(kù)來(lái)連接,。
 ODBC是數(shù)據(jù)庫(kù)與應(yīng)用程序之間的一個(gè)公共接口,,應(yīng)用程序通過(guò)訪問(wèn)ODBC而不是直接訪問(wèn)具體數(shù)據(jù)庫(kù)來(lái)與數(shù)據(jù)庫(kù)通信。一個(gè)基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫(kù)的操作不依賴任何DBMS,,所有的數(shù)據(jù)庫(kù)操作由對(duì)應(yīng)的DBMS的ODBC驅(qū)動(dòng)程序完成,。ODBC的最大優(yōu)點(diǎn)是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫(kù)[4]。利用ADO與ODBC訪問(wèn)數(shù)據(jù)庫(kù)的過(guò)程示意圖如圖4所示,。

 實(shí)際的鏈接方法是首先安裝MySQL數(shù)據(jù)庫(kù)的ODBC驅(qū)動(dòng)程序MySQL Connector/ODBC,,然后在控制面板中的ODBC數(shù)據(jù)源中創(chuàng)建一個(gè)DSN(數(shù)據(jù)源名)文件,以保證LabVIEW通過(guò)DSN來(lái)調(diào)用設(shè)計(jì)好的MySQL數(shù)據(jù)庫(kù),??梢酝ㄟ^(guò)以下方法來(lái)創(chuàng)建DSN:打開(kāi)控制面板上的管理工具,選擇數(shù)據(jù)源(ODBC),,點(diǎn)擊“文件DSN”選項(xiàng)卡,,再點(diǎn)擊“添加”,選擇MySQL ODBC驅(qū)動(dòng),,然后為DSN文件命名,,這樣就建立了一個(gè)DSN文件[5-6]。建立好DSN文件后需要對(duì)其進(jìn)行配置才能使用,,包括用戶名,、密碼,、設(shè)置本地服務(wù)器還是遠(yuǎn)程服務(wù)器以及選擇哪個(gè)數(shù)據(jù)庫(kù),設(shè)置好之后點(diǎn)擊“Test”看是否能連接成功,,顯示connection successful則表示鏈接成功,。
3 數(shù)據(jù)庫(kù)的設(shè)計(jì)
3.1 數(shù)據(jù)庫(kù)中的建表

 本設(shè)計(jì)中需要存儲(chǔ)的數(shù)據(jù)有溫度、壓力值,、小時(shí),、分鐘和日期等,。由于時(shí)間日期不是實(shí)際的時(shí)間日期值,,實(shí)際模擬時(shí)有的時(shí)間可能會(huì)重復(fù),所以不宜用做主鍵,,因此還需單獨(dú)增加一個(gè)num字段,,設(shè)置為主鍵,并把其屬性設(shè)置成為auto-increment,。
根據(jù)前面的分析,,MySQL數(shù)據(jù)庫(kù)中需要建立一個(gè)表,其中表的關(guān)鍵字包括:date,、hour,、minute、temperature,、pressure,、num,分別對(duì)應(yīng)日期,、小時(shí),、分鐘、溫度,、壓力和序號(hào)值等,。
3.2 數(shù)據(jù)庫(kù)的操作程序
 數(shù)據(jù)庫(kù)鏈接成功以后就可以在LabVIEW里面通過(guò)LabSQL對(duì)數(shù)據(jù)庫(kù)直接進(jìn)行操作。LabSQL的基本操作是先創(chuàng)建一個(gè)連接,、打開(kāi)此連接,、執(zhí)行SQL語(yǔ)句,最后關(guān)閉該連接,。本設(shè)計(jì)中基本就是用這4步來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作,。數(shù)據(jù)存儲(chǔ)的程序框圖如圖5所示。

 程序的主體是上面所說(shuō)的LabSQL執(zhí)行一次SQL語(yǔ)句的基本操作,。其中執(zhí)行的SQL語(yǔ)句是一條數(shù)據(jù)插入語(yǔ)句,,用到的數(shù)據(jù)是前面所闡述的信號(hào)模擬輸出的日期、時(shí)間,、溫度和壓力值等,。因此程序每執(zhí)行一次就相當(dāng)于在數(shù)據(jù)庫(kù)中存儲(chǔ)一個(gè)當(dāng)前信號(hào)模擬輸出的日期,、時(shí)間、溫度和壓力值,,達(dá)到數(shù)據(jù)采集以及存儲(chǔ)到數(shù)據(jù)庫(kù)中的目的,。
 數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中以后,用上面類(lèi)似的方法執(zhí)行SQL語(yǔ)句,,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的查詢和必要的管理操作[7],。圖6所示為程序?qū)崿F(xiàn)了按日期查詢一段時(shí)間內(nèi)所有存儲(chǔ)在數(shù)據(jù)庫(kù)中的溫度、壓力值,。輸出的數(shù)據(jù)通過(guò)一張表,,還有一個(gè)波形圖顯示出來(lái),供用戶觀察,。

 本設(shè)計(jì)具體設(shè)計(jì)了按日期段查詢,、按天查詢和按溫度、壓力值范圍的查詢,,并且還有SQL語(yǔ)句直接執(zhí)行等,。其他的查詢與上面的按日期查詢程序結(jié)構(gòu)類(lèi)似。各個(gè)查詢用一個(gè)事件管理程序整合到一起,,在操作界面上希望執(zhí)行什么樣的查詢,,直接觸發(fā)相應(yīng)的按鈕即可。
4 系統(tǒng)面板的采集仿真和數(shù)據(jù)查詢
 本設(shè)計(jì)的系統(tǒng)主要操做分兩步完成,,一是溫度壓力模擬采集以及數(shù)據(jù)存儲(chǔ),,另外一個(gè)就是數(shù)據(jù)庫(kù)的查詢操作。如圖7所示為溫度壓力模擬采集以及數(shù)據(jù)存儲(chǔ)的操作界面,。

 通過(guò)溫度壓力數(shù)據(jù)采集的控制面板把采集到的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)里面以后,,就可以通過(guò)該面板對(duì)數(shù)據(jù)庫(kù)里面的數(shù)據(jù)進(jìn)行操作。面板的左邊主要是一些查詢的動(dòng)作,,可以選擇不同的查詢對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,,還有直接用SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)的操作。中間是溫度和壓力數(shù)據(jù)輸出的波形顯示,,右邊是輸出詳細(xì)數(shù)據(jù)的顯示,。
本文在深入研究LabVIEW圖形化編程軟件和數(shù)據(jù)庫(kù)原理基礎(chǔ)上,把MySQL數(shù)據(jù)庫(kù)應(yīng)用到溫度,、壓力采集系統(tǒng)中,。通過(guò)ODBC驅(qū)動(dòng)程序使LabVIEW應(yīng)用程序與MySQL數(shù)據(jù)庫(kù)進(jìn)行了通信,在LabVIEW環(huán)境下實(shí)現(xiàn)了數(shù)據(jù)的采集,,同時(shí)還實(shí)現(xiàn)了對(duì)歷史數(shù)據(jù)的存儲(chǔ),、查詢等功能,使數(shù)據(jù)管理更加系統(tǒng),、科學(xué),,大大提高了軟件系統(tǒng)的可維護(hù)性,,實(shí)現(xiàn)了界面友好、操作方便,、直觀,、易于擴(kuò)展等功能。
參考文獻(xiàn)
[1] 雷振山.LabVIEW 7 Express實(shí)用技術(shù)教程[M].北京:電子工業(yè)出版社,,2004.
[2] 楊樂(lè)平,,李海濤.LabVIEW程序設(shè)計(jì)與應(yīng)用(第2版)[M].北京:電子工業(yè)出版社,2004.
[3] 唐波,,潘紅兵,,趙以順,等.在LabVIEW環(huán)境下基于ADO技術(shù)和SQL語(yǔ)言的數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),,2007,,28(4):227-229.
[4] 陳錫輝,,張銀鴻.LabVIEW8.2程序設(shè)計(jì)從入門(mén)到精通[M].北京:清華大學(xué)出版社,,2007.
[5] LOAN G. Designing and interrogation a database by using MySQL, PHP and LabVIEW programmes[J]. Metalurgia International,, 2008,,13(6):32-36.
[6] 朱后,彭宇寧.在LabVIEW中動(dòng)態(tài)配置ODBC數(shù)據(jù)源的方法[J].工業(yè)控制計(jì)算機(jī),,2006,,19(7):45-46.
[7] 戴敬.LabVIEW基礎(chǔ)教程[M].北京:科學(xué)出版社,2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。