林彩霞,雙 凱
(中國石油大學(xué)(北京)地球物理與信息工程學(xué)院,北京 102249)
測井裝備上位機(jī)軟件是測井裝備非常重要的一部分,它負(fù)責(zé)對整個(gè)系統(tǒng)的控制,數(shù)據(jù)采集,顯示和存儲等功能,為石油勘探和油田開發(fā)提供非常重要的數(shù)據(jù)資料。
目前主流的測井儀器上位機(jī)軟件基本上采用VC++進(jìn)行開發(fā),但是使用VC++進(jìn)行軟件開發(fā)對開發(fā)人員水平要求高且工作量大,不同模塊需要從底層開發(fā),出發(fā)點(diǎn)低,需要較長的開發(fā)周期[1]。
LabVIEW是一種圖形化編程語言,作為數(shù)據(jù)采集和儀器控制軟件的標(biāo)準(zhǔn)被廣泛的應(yīng)用于工業(yè)界、學(xué)術(shù)界和研究性實(shí)驗(yàn)室。LabVIEW是功能強(qiáng)大、靈活的多平臺儀器和分析軟件系統(tǒng)。用戶可以根據(jù)自己的需要靈活地定義儀器的功能,使用人員可以通過軟件編程或采用現(xiàn)有分析軟件,實(shí)時(shí)、直接地對數(shù)據(jù)進(jìn)行各種分析與處理。該軟件使用模塊函數(shù),工程師不需要從最底層進(jìn)行開發(fā),可大大減少工作量,縮短項(xiàng)目開發(fā)周期。
文中旨在使用LabVIEW設(shè)計(jì)實(shí)現(xiàn)一種測井上位機(jī)系統(tǒng),采用模塊化設(shè)計(jì)方法,根據(jù)測井測量參數(shù)的特點(diǎn),設(shè)計(jì)實(shí)現(xiàn)了數(shù)據(jù)采集、實(shí)時(shí)顯示、數(shù)據(jù)庫存儲、數(shù)據(jù)查詢。在軟件開發(fā)過程中為了減少對硬件的依賴,根據(jù)實(shí)際采集數(shù)據(jù)特點(diǎn),設(shè)計(jì)模擬數(shù)據(jù)源對軟件系統(tǒng)各模塊進(jìn)行測試。
如圖1所示,為測井裝備地面系統(tǒng)總體設(shè)計(jì)模塊圖。為了保證系統(tǒng)的數(shù)據(jù)采集速度,采用硬件對采集到得數(shù)據(jù)進(jìn)行處理。為了保證速度,系統(tǒng)采用硬件對上行數(shù)據(jù)的濾波、解碼、解析,傳送至上位機(jī)系統(tǒng)進(jìn)行存儲,顯示;上位機(jī)產(chǎn)生的下行數(shù)據(jù)即對井下系統(tǒng)的控制命令經(jīng)過封裝和編碼后傳送至井下。
圖1 總體設(shè)計(jì)方案Fig.1 Overall design scheme
根據(jù)實(shí)際需要,設(shè)計(jì)實(shí)現(xiàn)四通道隨鉆測量上位機(jī)數(shù)據(jù)采集系統(tǒng)。圖2為上位機(jī)系統(tǒng)方案,如圖2所示,主要包括6個(gè)模塊:數(shù)據(jù)接收模塊,數(shù)據(jù)處理模塊,數(shù)據(jù)存儲模塊,數(shù)據(jù)查詢模塊,數(shù)據(jù)顯示模塊。
圖2 上位機(jī)系統(tǒng)方案Fig.2 System scheme of upper system
傳統(tǒng)測井儀器采用CPCI總線進(jìn)行數(shù)據(jù)接收,設(shè)計(jì)這樣的系統(tǒng)需要單獨(dú)設(shè)計(jì)數(shù)據(jù)采集板卡,費(fèi)時(shí)費(fèi)力,而普通串口又不能滿足數(shù)據(jù)高速傳輸?shù)囊?,所以文中設(shè)計(jì)方案采用USB作為接口實(shí)現(xiàn)對處理過的下行數(shù)據(jù)進(jìn)行采集,同時(shí)為了在軟件開發(fā)過程中不過分依賴于硬件的開發(fā),使用模擬數(shù)據(jù)源對軟件各個(gè)功能模塊進(jìn)行測試[2]。該模塊根據(jù)服務(wù)表內(nèi)容產(chǎn)生數(shù)據(jù),將其發(fā)送到數(shù)據(jù)接收端口,由主程序?qū)Χ丝跀?shù)據(jù)進(jìn)行讀取,端口數(shù)據(jù)暫時(shí)被讀入緩沖區(qū)。數(shù)據(jù)處理模塊主要負(fù)責(zé)對采集到得數(shù)據(jù)進(jìn)行數(shù)據(jù)報(bào)格式封裝解析和相應(yīng)的計(jì)算處理;實(shí)時(shí)顯示模塊完成對處理后數(shù)據(jù)的顯示;數(shù)據(jù)存儲模塊采用SQL Server進(jìn)行數(shù)據(jù)存儲;數(shù)據(jù)查詢模塊實(shí)現(xiàn)兩種查詢:基于時(shí)間范圍的查詢,基于通道參數(shù)的查詢;數(shù)據(jù)顯示模塊包括波形圖顯示和表格顯示兩種,以曲線和數(shù)字兩種方式對采集到得數(shù)據(jù)進(jìn)行顯示;同時(shí)根據(jù)實(shí)際需要可將相應(yīng)數(shù)據(jù)導(dǎo)出到EXCEL表格。
在LabVIEW下,調(diào)用NI-VISA子程序控件,實(shí)現(xiàn)與USB設(shè)備的直接通信。NI-VISA從3.0開始支持與USB設(shè)備的通信,為了使用NI-VISA,必須先讓W(xué)indows將NI-VISA作為設(shè)備的缺省驅(qū)動程序使用。要做到這點(diǎn)需要完成以下步驟:
1)安裝NI-VISA后,啟動VISA Driver Development Wizard程序,出現(xiàn)了為PXI/PCI或USB設(shè)備創(chuàng)建一個(gè)INF文檔的向?qū)Вx擇USB設(shè)備,點(diǎn)NEXT,出現(xiàn)VISA DDW基本設(shè)備信息窗口。
2)正確輸入 USB的 PID和 VID,點(diǎn)擊 NEXT,進(jìn)行最后一步。
3)在USB Instrument Prefix中輸入相應(yīng)信息,并在“output file directory”中選擇存放這些文檔的目錄,然后點(diǎn)擊Finish。INF文檔就被建好并保存至指定的位置。
4)復(fù)制生成的INF文件夾到系統(tǒng)盤windows文件夾下INF文件夾,點(diǎn)擊右鍵安裝[3]。
經(jīng)過以上步驟后,當(dāng)插上該USB接口時(shí),Windows系統(tǒng)就能探測到,并根據(jù)INF硬件配置文件選擇NI-VISA作為底層驅(qū)動程序。
圖3所示為使用VISA串口進(jìn)行數(shù)據(jù)采集的程序框圖[4],經(jīng)過上面的設(shè)置后該框圖實(shí)現(xiàn)對端口數(shù)據(jù)的采集和下行命令發(fā)送的功能。
圖3 數(shù)據(jù)采集程序圖Fig.3 Program of data acquisition
傳感器采集井下測井測量參數(shù),通過電纜傳送到數(shù)據(jù)處理板,進(jìn)行濾波,解碼,解析,傳送到USB端口,端口采集到數(shù)據(jù)后對采集到得原始數(shù)據(jù)進(jìn)行計(jì)算處理,得到相應(yīng)的測井測量參數(shù)。
介紹兩種基于LabVIEW的數(shù)據(jù)存儲的方法。1)通過ACTIVEX技術(shù),實(shí)現(xiàn)EXCEL表格的自動創(chuàng)建與數(shù)據(jù)的存??;2)在LabVIEW中,通過LabSQL工具包與SQL Server進(jìn)行連接,將數(shù)據(jù)存入數(shù)據(jù)庫中[5]。方法1適用于測井裝備工作狀態(tài)記錄等小量數(shù)據(jù)存儲,因此采用方法一生成數(shù)據(jù)報(bào)表;而對于從井下傳送來的海量數(shù)據(jù),采用方法2,通過對數(shù)據(jù)庫的調(diào)用來實(shí)現(xiàn)。
在LabVIEW中,通過LabSQL工具包完成將采集數(shù)據(jù)向數(shù)據(jù)庫的存儲?;境绦蛉鐖D4(a)所示。為了實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)存儲,采用生產(chǎn)者/消費(fèi)者設(shè)計(jì)模式(數(shù)據(jù))的程序設(shè)計(jì)方法[6],生產(chǎn)者負(fù)責(zé)將采集并處理過的數(shù)據(jù)送入隊(duì)列,消費(fèi)者負(fù)責(zé)將隊(duì)列中的數(shù)據(jù)存入到數(shù)據(jù)庫中。如圖4(b)所示,將采集到得數(shù)據(jù)存儲到名稱為DATA00的表中。
圖4 存儲模塊Fig.4 Storage module
如圖5(a)所示,為數(shù)據(jù)查詢模塊界面。數(shù)據(jù)查詢模塊包括按時(shí)間范圍進(jìn)行查詢和按通道名進(jìn)行查詢兩種方式,通過設(shè)置相應(yīng)的時(shí)間范圍和通道名,可獲得指定的數(shù)據(jù);從圖中可以看出,通過規(guī)定時(shí)間段,程序能很好的實(shí)現(xiàn)相應(yīng)數(shù)據(jù)的查詢[7]。該模塊包括EXCEL數(shù)據(jù)報(bào)表導(dǎo)出功能,系統(tǒng)自動創(chuàng)建EXCEL表格,將用戶指定的數(shù)據(jù)導(dǎo)出到報(bào)表中,具體程序框圖如圖 5(b)所示。
圖5 查詢模塊Fig.5 System query module
報(bào)表自動生成模塊主要采用ACTIVEX技術(shù),在LabVIEW中通過屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)對EXCEL表格進(jìn)行操作[8],其中CONVERT子VI實(shí)現(xiàn)的功能是EXCEL表格中每個(gè)單元格的定位。
該隨鉆測量上位機(jī)系統(tǒng)由數(shù)據(jù)采集界面,數(shù)據(jù)查詢界面,系統(tǒng)設(shè)置界面3個(gè)界面組成,通過選項(xiàng)卡標(biāo)簽可以實(shí)現(xiàn)界面的切換[9]。為了實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示,采用生產(chǎn)者/消費(fèi)者模式(數(shù)據(jù)),生產(chǎn)者負(fù)責(zé)數(shù)據(jù)的采集處理,消費(fèi)者負(fù)責(zé)數(shù)據(jù)的實(shí)時(shí)顯示。圖8為數(shù)據(jù)采集界面,打開‘顯示’和‘存儲’開關(guān),系統(tǒng)在進(jìn)行實(shí)時(shí)顯示的同時(shí)對采集到得數(shù)據(jù)進(jìn)行數(shù)據(jù)庫存儲[10]。圖8為主程序運(yùn)行的主界面截圖,系統(tǒng)采用Labview自帶波形圖顯示控件對采集到得數(shù)據(jù)進(jìn)行存儲,橫坐標(biāo)為采集到點(diǎn)的個(gè)數(shù),縱坐標(biāo)為該點(diǎn)所對應(yīng)不同參數(shù)的數(shù)值,不同曲線對應(yīng)不同的參數(shù),坐標(biāo)范圍隨采集到參數(shù)數(shù)值大小自動調(diào)整。通過模擬數(shù)據(jù)源測試,主界面的顯示功能達(dá)到預(yù)期目標(biāo)。
圖6 模擬數(shù)據(jù)源測試圖Fig.6 Test chart based on simulated data source
文中主要介紹了基于LabVIEW測井裝備上位機(jī)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),下行數(shù)據(jù)經(jīng)過數(shù)據(jù)處理板的處理以后,經(jīng)過USB接口傳入上位機(jī)系統(tǒng),通過數(shù)據(jù)處理模塊對端口接收到得數(shù)據(jù)進(jìn)行計(jì)算處理之后,對其進(jìn)行顯示,存儲,查詢。系統(tǒng)采用原始數(shù)據(jù)文件作為模擬數(shù)據(jù)源,對系統(tǒng)功能進(jìn)行測試,證明系統(tǒng)性能已經(jīng)達(dá)到預(yù)期目標(biāo)。以LabVIEW為軟件開發(fā)工具對隨鉆測量上位機(jī)軟件進(jìn)行開發(fā),可縮短項(xiàng)目開發(fā)周期,提高編程效率,大大增強(qiáng)了隨鉆測量上位機(jī)系統(tǒng)的可擴(kuò)展性。
[1]丁偉.石油測井車井上監(jiān)測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].石油天然氣學(xué)報(bào),2012,34(6):100-103.
DING Wei.The design and implementation of monitoring system of well logging wheeled machine[J].Journal of oil and gas,2012,34(6):100-103.
[2]劉濤,王軍寧.測井軟件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2008.
[3]程龍飛,何聞.基于LabVIEW的USB數(shù)據(jù)傳輸技術(shù)研究[J].機(jī)床與液壓,2009,37(7):105-108.
CHENG Long-fei,HE Wen.Research on USB data transmission technology based on LabVIEW[J].Machine Tool&Hydraulics,2009,37(7):105-108.
[4]趙奇峰,閔濤,楊黔龍.基于LabVIEW串口數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011, 21(11):224-226.
ZHAO Qi-feng,MIN Tao,YANG Qian-long.Design of serial data collection system based on LabVIEW [J].Computer Technology and Development,2011,21(11):224-226.
[5]張榮.LabVIEW數(shù)據(jù)庫與報(bào)表的混合編程設(shè)計(jì)技術(shù)[J].信息與電子工程,2010,8(4):476-479.
ZHANG Rong.Design ofdatabaseand reporthybrid programmingbased on LabVIEW [J].Information and Electronic Engineering,2010,8(4):476-479.
[6]陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[7]李文濤,曹彥紅,卜旭芳.LabVIEW數(shù)據(jù)庫訪問技術(shù)的實(shí)現(xiàn)及應(yīng)用[J].工礦自動化,2012(2):69-71.
LI Wen-tao,CAO Yan-hong,PU Xu-fang.Implementation of database accessing technique of LabVIEW and its application[J].Industry and mine automation,2012,2:69-71.
[8]胡紹海,高亞峰,肖坦.基于LabVIEW的Excel報(bào)表生成技術(shù)研究[J].測控技術(shù),2007,26(10):64-69.
HU Shao-hai,GAO Ya-feng,XIAO Tan.Excelreport generation technology based on LabVIEW[J].Measurement and control technology,2007,26(10):64-69.
[9]顧文武,何慶中,周鐵.基于LabVIEW與智能儀器數(shù)據(jù)采集系統(tǒng)[J].儀表技術(shù)與傳感器,2012(11):53-58.
GU Wen-wu,HE Qing-zhong,ZHOU Tie.Data acquisition system based on LabVIEW and intelligent instrument[J].Instrument Technique and Sensor,2012(11):53-58.
[10]何俊偉,張齊.Labview在多通道數(shù)據(jù)采集系統(tǒng)中的應(yīng)用研究[D].廣州:華南理工大學(xué),2012.