胡鳳明, 陸 澤
(中國原子能科學(xué)研究院,北京 102413)
?
基于LabVIEW和GPIB的數(shù)字示波器數(shù)據(jù)自動采集系統(tǒng)設(shè)計
胡鳳明, 陸 澤
(中國原子能科學(xué)研究院,北京 102413)
為了滿足數(shù)據(jù)采集自動化的需要,提高數(shù)字示波器的使用效率,充分發(fā)揮示波器的自動化優(yōu)勢,利用現(xiàn)有的數(shù)字示波器和工控機建立了一套數(shù)據(jù)自動采集系統(tǒng);通過GPIB接口,用一臺工控機對多臺數(shù)字示波器進行控制,實現(xiàn)對信號數(shù)據(jù)的采集、處理并將處理結(jié)果存入數(shù)據(jù)庫中;系統(tǒng)軟件使用LabVIEW語言開發(fā);實驗結(jié)果表明,該系統(tǒng)能快速準確地獲得被測信號數(shù)據(jù)并可根據(jù)需要對以往的實驗數(shù)據(jù)進行查詢分析,極大地方便了使用人員;采用這種方法建立的系統(tǒng)簡單、經(jīng)濟、通用性強,具有一定的實用價值。
LabVIEW語言;GPIB接口;數(shù)據(jù)自動采集
數(shù)字示波器是數(shù)據(jù)采集、A/D轉(zhuǎn)換、軟件編程等技術(shù)制造的高性能示波器,它除了可以準確捕獲各種周期信號、非周期信號或單次沖擊信號外,還具有許多優(yōu)良性能,如多種觸發(fā)類型、波形參數(shù)測量、波形處理及數(shù)學(xué)運算等,已成為科學(xué)實驗和工程項目中各類信號采集、記錄和分析的最主要設(shè)備之一。是設(shè)計、制造和維修電子設(shè)備不可或缺的工具。很多情況下,一套裝置或設(shè)備需要同時使用多臺數(shù)字示波器進行參數(shù)測量,并對測量結(jié)果進行分析以判斷裝置的運行狀態(tài),同時需要將數(shù)字示波器測得的波形及數(shù)據(jù)分析結(jié)果保存起來備用。如果僅靠人工對示波器進行操作,不僅工作量很大而且容易出錯,并且也不能體現(xiàn)出數(shù)字化示波器自動化程度高、數(shù)據(jù)處理功能強等特點。本文用工控機和數(shù)字示波器建立了一種分布式測量系統(tǒng),通過GPIB接口連接,將數(shù)字示波器獲得的波形數(shù)據(jù)自動采集到工控機中并進行數(shù)據(jù)分析,最后把波形數(shù)據(jù)及數(shù)據(jù)分析結(jié)果存入數(shù)據(jù)庫中。
本系統(tǒng)用一臺工控機控制8臺數(shù)字示波器,通過GPIB接口連接工控機和示波器,連接方式采用總線型連接。如圖1所示。數(shù)字示波器使用Tektronix公司的TDS320、TDS340和TDS640三種型號的示波器共8臺。
圖1 硬件結(jié)構(gòu)圖
1.1 GPIB接口
GPIB(general-purpose interface bus)即通用接口總線,是一個數(shù)字化24位并行總線,其中16條線為TTL電平信號傳輸線,包括8條雙向數(shù)據(jù)線、5條接口管理線和3條數(shù)據(jù)傳輸控制線,其余8條為地線和屏蔽線。GPIB使用8位并行、字節(jié)串行、異步通信方式,所有字節(jié)通過總線順序傳送。大部分測試測量儀器都帶有或選裝GPIB接口。GPIB接口卡選用美國國家儀器公司(NI)的PCI-GPIB卡。
GPIB總線接口可以實現(xiàn)“1對N”的數(shù)據(jù)傳輸,即用一條總線連接多臺設(shè)備,最多可連接設(shè)備不超過15臺,總線長度不超過20米。大多數(shù)臺式儀器是通過GPIB線以及GPIB接口與電腦相連。
GPIB線使用1米的GPIB連接線。
1.2 硬件連接
將GPIB接口卡插入工控機的PCI插槽內(nèi),并安裝驅(qū)動程序。將工控機和八臺數(shù)字示波器按圖1所示的方式連接。把8臺數(shù)字示波器的GPIB地址按順序設(shè)為1~8。運行“程序→National Instruments→Measurement & Automation”程序,該程序在安裝GPIB卡驅(qū)動程序或安裝LabVIEW軟件時自動安裝,在程序界面左側(cè)應(yīng)能顯示出所插入卡的類型和所有儀器的序號,說明硬件連接成功。點擊儀器能查看該儀器的地址及詳細信息。
2.1 開發(fā)工具的選擇
開發(fā)工具選擇LabVIEW語言。LabVIEW是一種圖形化編程語言,由National Instruments(美國國家儀器公司)研發(fā)。傳統(tǒng)的編程語言如VB、VC等,都是基于文本命令產(chǎn)生代碼,而LabVIEW語言是基于數(shù)據(jù)流的圖形化編程語言。它通過交互式的圖形化前面板來設(shè)計并控制系統(tǒng),并顯示所得結(jié)果。主要應(yīng)用于數(shù)據(jù)采集與控制、數(shù)據(jù)分析以及數(shù)據(jù)表達等方面。LabVIEW語言編程靈活性強、簡單易用,其圖形化界面操作直觀,是進行儀器應(yīng)用開發(fā)的首選工具。同時,LabVIEW和我們所選用的PCI-GPIB卡都由NI公司研制,具有非常好地兼容性。
2.2 軟件結(jié)構(gòu)設(shè)計
軟件采用基于面向?qū)ο蟪绦蛟O(shè)計模式。主要分為波形存儲、波形數(shù)據(jù)計算、數(shù)據(jù)存儲、波形數(shù)據(jù)查詢4個模塊。每個模塊的主要功能如下。
1)波形存儲:將8臺示波器上的波形以二進制文件形式保存到工控機硬盤上。
2)波形數(shù)據(jù)計算:計算需要的波形數(shù)據(jù),如幅值、上升時間等,對得到的波形數(shù)據(jù)進行判斷以確定被測信號的狀態(tài)。
3)數(shù)據(jù)存儲:將計算出的波形數(shù)據(jù)和狀態(tài)信息存入數(shù)據(jù)庫中,方便以后查閱。
4)波形數(shù)據(jù)查詢:可根據(jù)需要查看以前的波形和數(shù)據(jù)。
2.3 主要相關(guān)技術(shù)的實現(xiàn)
2.3.1 數(shù)字示波器波形的存儲
示波器波形存儲是將示波器測得的波形以文件形式保存到計算機中。其涉及的主要過程為工控機和示波器的交互。先通過工控機向示波器發(fā)出讀取數(shù)據(jù)指令,然后示波器向工控機發(fā)送數(shù)據(jù),最后由工控機讀取并以文件形式存儲。該過程主要使用GPIB寫入命令、GPIB讀取命令和寫入字符至文件命令。GPIB寫入是將數(shù)據(jù)通過GPIB接口發(fā)送到指定的設(shè)備上,根據(jù)設(shè)備的GPIB地址進行識別。GPIB讀取是從地址字符串對應(yīng)的設(shè)備上讀取指定字節(jié)數(shù)的數(shù)據(jù)并輸出。寫入文本文件是將指定的數(shù)據(jù)串存放到預(yù)定的文件中。波形存儲程序框圖如圖2。
以讀取GPIB地址為1的示波器為例。在程序框圖中,建立一順序結(jié)構(gòu),左側(cè)框中用GPIB寫入命令,將GPIB地址和數(shù)據(jù)即示波器命令連接到其對應(yīng)輸入上,模式表示如何終止GPIB寫入,設(shè)為0。示波器命令字符串為”CH1;STAR 1;STOP 5000;:DATA:ENC RPB;WID 2;:HEAD ON;VERB OFF;:WAVE?”,CH1為示波器通道1,WAVE?為獲取波形,其它為數(shù)據(jù)信息設(shè)置。這條命令的意思是獲得CH1通道的波形數(shù)據(jù),以二進制形式存儲,讀取5000個點。根據(jù)具體示波器的品牌型號來書寫命令格式。設(shè)定循環(huán),根據(jù)示波器的通道個數(shù),依次改變CH1為CH2,CH3或CH4可采集示波器所有通道的波形。右側(cè)框中上面的命令為GPIB讀取,在GPIB寫入執(zhí)行完成后即執(zhí)行讀取命令,需要GPIB地址參數(shù)和字節(jié)數(shù),此處字節(jié)數(shù)設(shè)為3000,模式為0。下面是文本寫入命令,將GPIB讀取的輸出數(shù)據(jù)連接到文本寫入的相應(yīng)位置,將文件路徑連接到路徑連接線處,即完成一次示波器一個通道的波形存儲。程序框圖如圖2所示。
圖2 波形存儲前面板和程序框圖
設(shè)備的GPIB地址是辨識設(shè)備的唯一標識。每臺數(shù)字示波器必須設(shè)定唯一的GPIB地址,通過改變程序中的GPIB地址,即可對每臺示波器進行數(shù)據(jù)讀取操作。此模塊的基本功能就是實現(xiàn)了工控機和示波器的交互,可根據(jù)實際應(yīng)用需要,通過改變示波器命令,對數(shù)字示波器進行其它操作。
2.3.2 波形的顯示
波形顯示是將文件中的波形圖像顯示出來。以二進制形式存儲的波形文件,包括構(gòu)建波形的設(shè)置信息和波形數(shù)據(jù)。需要先從波形文件中讀出波形數(shù)據(jù),然后查找相關(guān)的數(shù)據(jù)項,獲得構(gòu)建波形的設(shè)置信息和波形數(shù)據(jù),最后根據(jù)波形信息和波形數(shù)據(jù)將波形顯示出來。此過程主要使用字符串匹配模式命令。從文件中讀取數(shù)據(jù)后,先將波形信息和波形數(shù)據(jù)分離。用字符串匹配命令在波形信息中查找相關(guān)的波形信息,包括波形數(shù)據(jù)點數(shù)、X軸和Y軸的設(shè)置、觸發(fā)位置信息等,將這些信息進行轉(zhuǎn)換和計算后獲得波形的X、Y軸信息;將波形數(shù)據(jù)根據(jù)采樣點數(shù)分離出實際波形數(shù)據(jù),然后進行數(shù)據(jù)類型轉(zhuǎn)換并保存到數(shù)組。最后將X/Y軸的設(shè)置信息和數(shù)據(jù)數(shù)組捆綁成簇連接到波形顯示命令。程序框圖如圖3所示。NR_P為波形數(shù)據(jù)點個數(shù),XIN為水平采樣間隔,PT_O為觸發(fā)位置,YMU垂直刻度因子,YOF為垂直偏置,YZE為偏置電壓。
圖3 波形顯示程序框圖
2.3.3 數(shù)據(jù)庫的數(shù)據(jù)存儲和查詢
通過程序計算和測量所獲得的數(shù)據(jù),根據(jù)需要存入數(shù)據(jù)庫中,以方便對數(shù)據(jù)進行查詢、統(tǒng)計、生成報表等操作。
LabVIEW語言與數(shù)據(jù)庫系統(tǒng)的交互主要有4種方法:
1)利用LabVIEW的附加工具包LabVIEW SQL Toolkit。
2)先利用VC、VB等其它編程語言建立動態(tài)鏈接庫程序訪問數(shù)據(jù)庫,再用LabVIEW調(diào)用該動態(tài)鏈接庫程序,完成數(shù)據(jù)庫訪問。
3)利用LabVIEW的ActiveX功能,調(diào)用Microsoft ADO控件,用結(jié)構(gòu)化查詢語言SQL完成數(shù)據(jù)庫訪問。
4)利用LabVIEW用戶自己開發(fā)的免費數(shù)據(jù)庫訪問工具包LabSQL完成數(shù)據(jù)庫訪問。
我們選擇用數(shù)據(jù)庫訪問工具包LabSQL來進行數(shù)據(jù)庫操作。LabSQL是一個免費的、多數(shù)據(jù)庫、跨平臺的LabVIEW數(shù)據(jù)庫訪問工具包,基于Microsoft ADO和SQL語言進行數(shù)據(jù)庫操作。它支持如Access、SQL Server、Orcale等多種大型關(guān)系數(shù)據(jù)庫。
利用LabSQL進行數(shù)據(jù)庫操作的步驟:
1)先下載工具包文件LabSQL.zip。在LabVIEW安裝目錄中的用戶庫user.lib文件夾中新建一個名為LabSQL的文件夾,將LabSQL.zip文件解壓到這個文件夾中。當(dāng)重新運行LabVIEW時,LabVIEW的功能模塊就會自動加載LabSQL。
2)在Windows操作系統(tǒng)ODBC數(shù)據(jù)源中建立一個數(shù)據(jù)源DSN(data source name,數(shù)據(jù)源名),選擇和此數(shù)據(jù)源連接的數(shù)據(jù)庫,然后通過在程序中和這個DSN建立連接即可訪問指定的數(shù)據(jù)庫。這里使用的是Microsoft Access數(shù)據(jù)庫??筛鶕?jù)需要選擇數(shù)據(jù)庫系統(tǒng),如果用戶不多并且數(shù)據(jù)量不大使用Microsoft Access數(shù)據(jù)庫即可,否則可使用Orcale或SQL Server等大型關(guān)系數(shù)據(jù)庫系統(tǒng)。LabVIEW與數(shù)據(jù)庫之間的連接就是建立在DSN基礎(chǔ)之上的。
安裝LabSQL和設(shè)置ODBC數(shù)據(jù)源后,即可建立程序?qū)?shù)據(jù)庫進行存取和查詢操作,數(shù)據(jù)庫操作流程如圖5所示。LabSQL提供了一系列子程序用于數(shù)據(jù)庫操作。首先建立連接,用LabSQL提供的ADO Create Connection和ADO OpenConnection兩個子程序建立和打開連接,打開連接時需要提供連接字符串即數(shù)據(jù)源名稱,此處連接字符串為“DSN=exp”。建立連接后即可進行數(shù)據(jù)庫操作,用ADO SQL Execute子程序執(zhí)行操作命令,用SQL結(jié)構(gòu)化查詢語言書寫命令,如查找記錄用SELECT命令,插入記錄操作用INSERT命令,刪除操作DELETE命令等。查詢命令有返回數(shù)據(jù)。數(shù)據(jù)庫操作完成后,用ADO Close Connection和ADO Destroy Connection子程序關(guān)閉已建立的連接并刪除。
圖5 數(shù)據(jù)庫操作程序框圖
數(shù)字示波器數(shù)據(jù)自動采集系統(tǒng)實現(xiàn)了示波器數(shù)據(jù)的自動采集、數(shù)據(jù)處理、數(shù)據(jù)存儲以及對以往實驗數(shù)據(jù)的查詢。通過多次實際測試,該系統(tǒng)能快速準確地完成數(shù)據(jù)采集和處理操作,運行穩(wěn)定可靠,達到了預(yù)先設(shè)計的要求。軟件界面友好,方便了工作人員的使用,提高了工作效率。該系統(tǒng)已應(yīng)用到我們的實驗工作中。
數(shù)字示波器數(shù)據(jù)自動采集系統(tǒng)利用現(xiàn)有分散的測量儀器組成了基于GPIB總線的分布式測量系統(tǒng),將以前各自單獨進行測量改為集中統(tǒng)一由計算機自動進行數(shù)據(jù)計算和存儲,極大提高了儀器設(shè)備的使用效率。當(dāng)測量儀器設(shè)備總數(shù)小于15時,系統(tǒng)還可以加入其它配有GPIB接口的儀器,提高了使用的靈活性。在實際應(yīng)用中,效果良好,實現(xiàn)了快速準確地獲得示波器波形,并對波形數(shù)據(jù)進行處理,得到了所需要的參數(shù),最后將數(shù)據(jù)信息保存到數(shù)據(jù)庫中,極大地方便了對數(shù)據(jù)的查詢和分析。在實際應(yīng)用中還可以根據(jù)需要加入對示波器的控制和參數(shù)設(shè)置等功能,實現(xiàn)軟件系統(tǒng)和示波器的完全交互,進一步提高儀器的自動化水平。
[1] TDS320,TDS340A & TDS640 Digital Real-Time Oscilloscopes Programmer Manual[Z]. Tektronix.
[2] 楊樂平, 李海濤, 肖相生,等. LabVIEW程序設(shè)計與應(yīng)用[M]. 北京:電子工業(yè)出版社, 2001.
[3] Gray W.Johnson,Richard Jennings.,LabVIEW圖形編程[M]武嘉澎,陸勁昆譯. 北京:北京大學(xué)出版社,2002.
[4] 吳 暉, 祁曉野,等.基于PXI和LabVIEW的通用數(shù)據(jù)采集系統(tǒng)[J].計算機測量與控制,2015,23(5):1686-1688.
[5] 張法全, 陳良益,等.基于VC和GPIB的數(shù)字示波器遠程控制[J].微計算機信息,2007:103-104.
[6] 蒲明輝, 田 耕, 李憲優(yōu).核測量中數(shù)字示波器自動控制軟件的研制[A].全國第四屆核儀器及其應(yīng)用學(xué)術(shù)會議論文集[C],2004,231-234.
Design of Digital Oscilloscope Acquisition System Based on LabView and GPIB
Hu Fengming, Lu Ze
(China Institute of Atomic Energy, Beijing 102413, China)
In order to meet the need for the automation of data acquisition, increase the efficiency of the digital oscilloscope and give full play to its advantage, an automatic data acquisition system has been, therefore, established. Through the connection with the interface of GPIB and the manipulation of several oscilloscopes by a single personal computer ,the collection and process of the signals ,and hence the result of them can be saved in database .This system was developed on the basis of LabVIEW Language. The outcome of the experiment indicates that this system can rapidly exactly capture the targeted signals and analyze the data of previous experiments according to the needs, which, to a large extent, provide the staff with great convenience. The system based on this method is simple, economical and practical, which has a significant value in use.
LabVIEW language;GPIB interface;data automatic acquisition
2015-09-07;
2015-10-26。
胡鳳明(1975-),男,北京人,工程師,主要從事計算機技術(shù)與應(yīng)用方向的研究。
1671-4598(2016)03-0289-02
10.16526/j.cnki.11-4762/tp.2016.03.079
TP273
A