方許丹
(珠海格力電器股份有限公司 珠海 519070)
隨著儀器技術(shù)的發(fā)展,示波器的功能也越來越強(qiáng)大,實(shí)際應(yīng)用中需要使用到的功能也越來越多。但是由于儀器自身的局限性,示波器的數(shù)據(jù)必須傳送到計(jì)算機(jī),由計(jì)算機(jī)軟件才能進(jìn)行詳細(xì)的分析。羅德與施瓦茨(ROHDE&SCHWARZ,以下簡稱羅德)示波器可以通過TCP/IP或USB方式與計(jì)算機(jī)進(jìn)行通信,可以遠(yuǎn)程控制的方式響應(yīng)計(jì)算機(jī)對(duì)其進(jìn)行的各項(xiàng)參數(shù)設(shè)置,并將采集、處理后的波形數(shù)據(jù)以指定的數(shù)據(jù)格式發(fā)送到計(jì)算機(jī),或以csv格式導(dǎo)出發(fā)送到計(jì)算機(jī)。計(jì)算機(jī)采用VISA技術(shù)與示波器建立通信,向端口發(fā)送SCPI語言指令,實(shí)現(xiàn)控制、查詢、讀取等各項(xiàng)功能,并將讀取到的波形數(shù)據(jù)進(jìn)行分析,實(shí)現(xiàn)對(duì)測(cè)試點(diǎn)的采集、傳輸和分析一體自動(dòng)化。本文介紹的軟件采用LabVIEW編程語言和VISA技術(shù),示波器與計(jì)算機(jī)采用TCP/IP傳輸方式,實(shí)現(xiàn)系統(tǒng)功能。
整套系統(tǒng)由計(jì)算機(jī)、示波器和測(cè)試點(diǎn)組成。計(jì)算機(jī)和示波器之間需要進(jìn)行物理連接,使用通用的網(wǎng)線分別連接示波器后面板的LAN接口和計(jì)算機(jī)的LAN接口,待示波器的網(wǎng)絡(luò)連接符號(hào)由黃色轉(zhuǎn)為綠色后,表明物理通信已建立,可以進(jìn)行軟件連接。
系統(tǒng)搭建框圖見圖1。
圖1 系統(tǒng)搭建框圖
系統(tǒng)功能包括建立通信、設(shè)置參數(shù)、采集波形、數(shù)據(jù)上傳和分析等模塊,見圖2。
圖2 系統(tǒng)功能框圖
建立通信:計(jì)算機(jī)與示波器網(wǎng)絡(luò)連接建立之后,點(diǎn)擊示波器的網(wǎng)絡(luò)符號(hào),讀取IP地址(以xx.xx.xx.xx表示),發(fā)送字符串指令”TCPIP::xx.xx.xx.xx::INSTR”作為VISA的串口資源,打開串口,建立通信。
設(shè)置參數(shù):需要設(shè)置參數(shù)包括通道選擇、垂直通道設(shè)置(如電壓幅度、帶寬、耦合方式等)、水平通道設(shè)置(單次采樣時(shí)間、觸發(fā)位置等)、觸發(fā)條件及其他必要性參數(shù)。
采集波形、數(shù)據(jù)上傳和分析:采用單次觸發(fā)采集、立即上傳并分析,分析結(jié)果無異常則進(jìn)行下一次采集,有異常則停止,保存當(dāng)前數(shù)據(jù)用于分析,并確保軟件界面顯示波形與示波器波形同步。
前面板包括用戶設(shè)置、運(yùn)行狀態(tài)、錯(cuò)誤提示等模塊。TCP/IP方式需要先訪問儀器IP,必須由用戶手動(dòng)輸入IP地址,才能建立連接。波形圖如果設(shè)置為自動(dòng)調(diào)整Y軸標(biāo)尺,多次采樣時(shí),可能導(dǎo)致Y軸標(biāo)尺多次變化,采樣波形缺乏可比性。以Homebus波形測(cè)試為例,用戶輸入示波器IP地址后,設(shè)定好波特率和連續(xù)測(cè)試時(shí)間,點(diǎn)擊運(yùn)行即可,如圖3。
圖3 前面板設(shè)計(jì)
程序設(shè)計(jì)需要采用羅德廠家提供的VISA_Extended驅(qū)動(dòng)函數(shù)庫。
向示波器寫入指令時(shí)可使用函數(shù)”VISAext_write.vi”。也可以使用LabVIEW自帶的函數(shù)”VISA Write.Vi”,二者功能相同。
示波器每運(yùn)行一條或幾條指令后需要用函數(shù)”VISAext_query_OPC.vi”查詢指令是否已經(jīng)全部執(zhí)行完畢,之后用”VISAext_check_error.vi”檢測(cè)指令是否全部正確執(zhí)行。如果出現(xiàn)錯(cuò)誤,可首先檢查某條指令下發(fā)后示波器實(shí)際運(yùn)行時(shí)間是否超過默認(rèn)時(shí)間,若超過可以手動(dòng)設(shè)置超時(shí)時(shí)間,超時(shí)時(shí)間需大于示波器實(shí)際運(yùn)行時(shí)間。
以默認(rèn)采樣電壓值返回?cái)?shù)據(jù)時(shí)需要使用函 數(shù) ”VISAext_query_ASCII_ListOf-Doubles.vi”,向該函數(shù)依次發(fā)送”FORM ASC”、”CHANn:DATA?”指令(n為通道),從該函數(shù)的輸出端獲取數(shù)據(jù)。以二進(jìn)制浮點(diǎn)型格式返回?cái)?shù)據(jù)時(shí)使用函數(shù)”VISAext_query_Binary-FloatData.vi”,以雙精度浮點(diǎn)型格式返回?cái)?shù)據(jù)時(shí)使用函數(shù)”VISAext_query_double.vi”。
程序主要部分代碼包含圖4建立通信、圖5通道與觸發(fā)設(shè)置、圖6采集與上傳數(shù)據(jù)。
圖4建立通信:根據(jù)用戶輸入的IP地址,向”VISA打開.vi”函數(shù)輸入完整的IP地址訪問指 令”TCPIP::XXX:XXX:XX:X::INSTR”, 并 調(diào)用”VISA設(shè)備清零.vi”清空I/O緩沖區(qū),為訪問數(shù)據(jù)做準(zhǔn)備。之后發(fā)送”*IDN?”指令,返回設(shè)備ID,發(fā)送”*RST”和”*CLS”指令,對(duì)設(shè)備進(jìn)行復(fù)位并清空輸出緩沖區(qū)。
圖4 建立通信
圖5通道與觸發(fā)設(shè)置:首先設(shè)置水平時(shí)基,”TIM:ACQT xx”設(shè)置單次采樣時(shí)間,”TIM:POS xx”設(shè)置觸發(fā)偏置;其次設(shè)置垂直通道,”CHANn:RANG xx”設(shè)置通道n垂直電壓范圍,”CHANn:COUP DCL xx”設(shè)置通道n信號(hào)耦合方式,”CHANn:STAT xx”設(shè)置通道信號(hào)打開或關(guān)閉;水平和垂直參數(shù)設(shè)置完畢后,還需設(shè)置觸發(fā)條件,”TRIG:A:TYPE xx”設(shè)置觸發(fā)類型,”TRIG:A:EDGE:SLOP xx”設(shè)置上升沿或下降沿觸發(fā),”TRIG:A:SOUR CHn”設(shè)置觸發(fā)源,即觸發(fā)通道,”TRIG:A:LEV1 xx”設(shè)置觸發(fā)閾值。
圖5 通道與觸發(fā)設(shè)置
圖6采集與上傳數(shù)據(jù):”SING”設(shè)置單次采集,每次采集后調(diào)用函數(shù)”VISAext_query_OPC.vi”和”VISAext_check_error.vi”確認(rèn)是否有錯(cuò)誤,如果出現(xiàn)超時(shí)錯(cuò)誤,需要設(shè)置超時(shí)時(shí)間。檢測(cè)無異常時(shí),發(fā)送”FORM:ASC”和”CHANn:DATA?”指令,將通道n采集結(jié)果以電壓值的方式上傳到計(jì)算機(jī),在計(jì)算機(jī)上進(jìn)行波形復(fù)現(xiàn),并可用來進(jìn)行分析。
圖6 采集與上傳數(shù)據(jù)
本文設(shè)計(jì)了一套基于LabVIEW的羅德示波器通信與應(yīng)用系統(tǒng)。在安裝了LabVIEW和羅德VISA_Extended驅(qū)動(dòng)函數(shù)庫的計(jì)算機(jī)上,可以直接使用本文提供的源代碼進(jìn)行開發(fā)。示波器參數(shù)需要根據(jù)被測(cè)波形以及預(yù)期測(cè)試效果進(jìn)行設(shè)置,上傳到計(jì)算機(jī)的波形數(shù)據(jù)可以用于進(jìn)一步分析。