下圖示出對具有visa的儀器進行控制的流程。當用可視basic語言(visual basic languagee)開發visa程式時,必須回顧乙個特殊的程式設計注意事項(在下面列出的自述文字檔案中)。
有關visa程式庫的利用以及利用帶有e5071a巨集程式(e5071a vba)的visa的程式設計注意事項的詳情,請參考包含在io程式庫光碟(cd-rom)上的下列檔案。
vbreadme.txt (對利用具有vb的visa程式庫的注釋)。
使用visa控制儀器的流程
樣本程式ctrl_ext.vba. 中的90行處理visa系統起動對話。visa的viopendefaultrm功能對visa系統進行初始化和起動。viopendefaultrm 功能必須在呼叫其它visa功能之前執行,而這個功能的引數是起動資訊(ctrl_ext.vba中的defrm)。
viopendefaultrm(param)
引數(param)
說明起動資訊(輸出)
資料型別
長整型130行處理連線對話。visa的viopen功能進行與規定儀器的連線。viopen功能返回某個值,使得visa功能可以將其應用於規定儀器,這個功能的引數是起動資訊(defrm)、規定儀器的位址資訊(ctrl_ext.vba中的「gpib::17::instr」)、接入方式(ctrl_ext.vba中的0)、超時(ctrl_ext.vba中的0)和連線資訊(ctrl_ext.vba中的equip)。
viopen(param1, param2, param3, param4, param5)
引數(param1)
說明起動資訊(輸入)
資料型別
長整型引數
(param2)
說明規定儀器的位址資訊(輸入)
資料型別
字串型
語法"gpib0::gpib address::instr"
"usb0::manufacturer id::model code::serial number::0::instr"
(ex. "usb0::2391::2312::my12345678::0::instr")
"tcpip0::ip address::inst0::instr"
引數(param3)
說明接入方式(輸入0)
引數(param4)
說明超時(輸入0)
引數(param5)
說明連線資訊(輸出)
資料型別
長整型170行進行通訊對話。visa的vivprintf功能將程式訊息(gpib命令)傳送到規定儀器。這個功能的引數是連線資訊(equip)、程式訊息(*edn?)和待格式化變數(ctrl_ext.vba中的0)。
vivprintf(param1, param2, param3)
引數(param1)
說明連線資訊(輸出)
資料型別
長整型引數
(param2)
說明傳送gpib命令的程式訊息時的程式訊息,訊息結束處要求乙個訊息終結符(ctrl_ext.vba中的chr$(10))
資料型別
字串型
引數(param3)
說明變數待格式化,若不可應用,則輸入0。
資料型別
規定的資料型別
210行控制接收對話。visa的vivscanf 功能接收來自規定儀器的結果,並將其儲存在輸出變數中。這個功能的引數是連線資訊(ctrl_ext.vba中的equip)、輸出變數的格式引數(ctrl_ext.vba中的%t)和輸出變數(ctrl_ext.vba中的prod)。
vivscanf(param1, param2, param3)
引數(param1)
說明連線資訊(輸入)
資料型別
長整型引數
(param2)
說明輸出變數的格式引數
資料型別
字串型
引數(param3)
說明輸出變數(輸出)
資料型別
字串型
280行處理斷開對話。visa的 viclose 功能將通訊中斷並使visa系統終結,這個功能的引數是起動資訊(ctrl_ext.vba中的defrm)。
viclose(param)
引數(param)
說明起動資訊(輸入)
資料型別
長整型ctrl_ext.vba 是利用e5071c作為系統控制器時,控制通過usb/gpib介面電纜連線的儀器的樣本程式。這個vba程式由下列程式模組組成。
物件名模組型別
內容mdlvisa
標準模組
讀出外部儀器的產品資訊。
模組1模組2
標準模組
利用visa程式庫的兩個定義檔案
對visa系統進行初始化和起動,並將起動資訊輸出到defrm變數。在這個過程期間,若發生差錯,程式便轉到錯誤處理程式(320行到360行)。
查詢利用visa經usb/gpib介面電纜連線的外部儀器的產品資訊,在這個過程期間,若發生差錯,程式便轉到錯誤處理程式(320行到360行)。
通過visa對產品資訊進行檢索,並將產品資訊輸出到prod變數。在訊息框中顯示讀出結果。在這個過程期間,若發生差錯,程式便轉到錯誤處理程式(320行到360行)。
中斷通訊並使visa系統終結。
若visa功能發生差錯,將顯示錯誤的細節並使程式終結。
讀出產品資訊(ctrl_ext.vba)
10| sub main()
20|30| dim status as long 'visa function status return code
40| dim defrm as long 'session to default resource manager
50| dim equip as long 'session to instrument
60| dim prod as string * 100 'string to receive the result
70|80| ' initializes the visa system.
90| status = viopendefaultrm(defrm)
100| if (status <> vi_success) then goto visaerrorhandler
110|
120| ' opens the session to the specified instrument.
130| status = viopen(defrm, "gpib0::17::instr", 0, 0, equip)
140| if (status <> vi_success) then goto visaerrorhandler
150|
160| ' asks for the instrument's product information.
170| status = vivprintf(equip, "*idn?" & chr$(10), 0)
180| if (status <> vi_success) then goto visaerrorhandler
190|
200| ' reads the result.
210| status = vivscanf(equip, "%t", prod)
220| if (status <> vi_success) then goto visaerrorhandler
230|
240| ' displays the result.
250| msgbox prod
260|
270| ' closes the resource manager session (which closes everything)
280| call viclose(defrm)
290|
300| goto prog_end
310|
320| visaerrorhandler:
330| dim visaerr as string * 200
340| call vistatusdesc(defrm, status, visaerr)
350| msgbox "error : " & visaerr, vbexclamation
360| exit sub
370|
380| prog_end:
390|
400| end sub
linux使用入門教程
說實話在第一次接觸linux系統時,確實很不習慣,尤其是在用了多年的windows後,可是專案需要又不得不頂著頭皮去學習了,下面就自己一點點摸索做下總結,以供後面學習。1 安裝linux系統 由於linux的開源性,我們可以有很多選擇,常見的有ubuntu,centos,fedora,debian ...
Apple Swift程式語言入門教程
蘋果公司在2014年的wwdc大會上發布了全新的程式語言swift語言,swift語言繼承了c語言以及objective c的特性,且克服了c語言的相容性問題。swift語言採用安全程式設計模式,且引入了多種新功能,使得程式設計工作更加簡便,靈活!swift用來寫ios和os x程式。swift吸取...
Python3程式設計入門教程
目錄 1 python介紹 2 python3資料型別 3 python語句語法 4 python3中的函式及相關特性 5 python3中的模組和包 6 python3檔案操作 7 python3 excel檔案操作 8 python3物件導向 9 python3異常處理 10 python3網路...