LabVIEW編程實時控制KEITHLEY 6517A靜電計
LabVIEW編程實時控制KEITHLEY 6517A靜電計
基于GPIB接口總線,采用6517A中最簡單的按鈕命令,在LabVIEW5.1平臺上實現了對6517A面板操作的實時控制和信息的同步顯示。
關鍵詞:LabVIEW編程;計算機模擬;6517A靜電計
Hefei 230029, China)
LabVIEW提供了任意一個程序調用另一個LabVIEW程序的辦法,即將后者作為一個子程序(即subVI)。因此在實驗站的數據采集主程序中,將模擬的6517A作為主程序調用的subVI嵌入其中(當然這個子程序完全可以不依賴于主程序而能夠獨立運行)。根據主程序的要求,6517A的subVI具備以下特點:
代碼簡潔,執(zhí)行效率高;完全能實現真實面板上各個按鍵的功能,并可以基本同步顯示6517A顯示的各種信息;獨立的窗口,不在視覺上干擾主程序窗口,以方便用戶的使用。
對于復雜的未編譯的LabVIEW程序,要求代碼盡可能簡潔,這有益于提高運行速度。而且考慮到6517A參數的調整僅僅是實驗站數據采集與控制的一小部分,我們未使用KEITHLEY公司隨儀器提供的LabVIEW子程序。對于6517A,有三個途徑可以實現面板按鍵的功能:一是用它的SCPI命令中有關功能選擇的命令,如使用SENSe命令組里的各種命令選擇測量內容(電壓、電流、電阻和電荷)以及與測量這些量有關的各類參數[1]。這種方式功能全面,可用一條足夠長的命令直接實現某個功能,而這個功能可能需要按多次按鍵才能實現,而且用戶勿需知道6517A前面板的顯示信息(KEITHLEY公司提供的LabVIEW子程序即是這樣編寫的)。缺點是代碼命令長、書寫復雜,而且要對所有的SCPI命令非常熟悉。另一種是使用SYSTem命令組里的SYSTem:KEY〈NRf〉命令。6517A功能面板上每一個功能鍵均對應了一個數字,如執(zhí)行:SYSTem:KEY 15相當于人工按一次按鍵V(電壓)。使用這種方式基本就是在計算機顯示器上“復制”了前面板的按鍵,雖然設置某個參數需要多次按鍵且需要在計算機上同步顯示選擇菜單,但其代碼簡潔,且可以利用LabVIEW提供的界面功能,在外型上完全模擬6517A的前面板,不失為一種好方法。第3種方法是用DDC語言,該語言的語法簡潔,但不易記憶,難以維護,功能也不強。我們在編寫時未予考慮。?
代碼簡潔,執(zhí)行效率高;完全能實現真實面板上各個按鍵的功能,并可以基本同步顯示6517A顯示的各種信息;獨立的窗口,不在視覺上干擾主程序窗口,以方便用戶的使用。
對于復雜的未編譯的LabVIEW程序,要求代碼盡可能簡潔,這有益于提高運行速度。而且考慮到6517A參數的調整僅僅是實驗站數據采集與控制的一小部分,我們未使用KEITHLEY公司隨儀器提供的LabVIEW子程序。對于6517A,有三個途徑可以實現面板按鍵的功能:一是用它的SCPI命令中有關功能選擇的命令,如使用SENSe命令組里的各種命令選擇測量內容(電壓、電流、電阻和電荷)以及與測量這些量有關的各類參數[1]。這種方式功能全面,可用一條足夠長的命令直接實現某個功能,而這個功能可能需要按多次按鍵才能實現,而且用戶勿需知道6517A前面板的顯示信息(KEITHLEY公司提供的LabVIEW子程序即是這樣編寫的)。缺點是代碼命令長、書寫復雜,而且要對所有的SCPI命令非常熟悉。另一種是使用SYSTem命令組里的SYSTem:KEY〈NRf〉命令。6517A功能面板上每一個功能鍵均對應了一個數字,如執(zhí)行:SYSTem:KEY 15相當于人工按一次按鍵V(電壓)。使用這種方式基本就是在計算機顯示器上“復制”了前面板的按鍵,雖然設置某個參數需要多次按鍵且需要在計算機上同步顯示選擇菜單,但其代碼簡潔,且可以利用LabVIEW提供的界面功能,在外型上完全模擬6517A的前面板,不失為一種好方法。第3種方法是用DDC語言,該語言的語法簡潔,但不易記憶,難以維護,功能也不強。我們在編寫時未予考慮。?
整個6517A子程序是一個大的whileloop循環(huán)。在循環(huán)內是前面板上所有按鍵對應的命令和顯示子程序,循環(huán)結束的條件是Boolean按鈕“RETURN”=false。這種結構有兩個作用,由于LabVIEW程序的執(zhí)行是并行的,因此可以隨時接受任意一個虛擬按鍵的命令,另一是計算機屏幕的顯示與靜電計的顯示基本同步。子程序被設置為“調用時打開、結束后關閉”,在視覺上不影響主程序的使用,即在按下RETURN后,子程序窗口即被關閉。
2.2按鈕
圖1是6517A subVI的界面,圖中字符“Ω”已被替換為“Ohm”。它盡量模仿了實際儀器的前面板,只不過是用RETURN按鈕取代了6517A的POWER開關。每個按鈕的機械動作置為“Latch when Released”,這樣每按一次圖中的按鈕,程序通過GPIB接口給6517A發(fā)送一個相應的命令,完成手工按鍵的動作。隨即按鈕浮起,不會導致誤動作。按鈕對應的程序是一個“true?false” case structure。在True CASE中寫入命令:SYSTem:KEY 〈NRf〉(圖2),False CASE中為空。當用鼠標點擊按鍵時,6517A將根據命令完成相應的按鍵動作。如圖中的命令,GPIB write控件將:SYST:KEY 15發(fā)送給6517A,完成一次按“V”鍵。
2.2按鈕
圖1是6517A subVI的界面,圖中字符“Ω”已被替換為“Ohm”。它盡量模仿了實際儀器的前面板,只不過是用RETURN按鈕取代了6517A的POWER開關。每個按鈕的機械動作置為“Latch when Released”,這樣每按一次圖中的按鈕,程序通過GPIB接口給6517A發(fā)送一個相應的命令,完成手工按鍵的動作。隨即按鈕浮起,不會導致誤動作。按鈕對應的程序是一個“true?false” case structure。在True CASE中寫入命令:SYSTem:KEY 〈NRf〉(圖2),False CASE中為空。當用鼠標點擊按鍵時,6517A將根據命令完成相應的按鍵動作。如圖中的命令,GPIB write控件將:SYST:KEY 15發(fā)送給6517A,完成一次按“V”鍵。
?
為了更好的顯示測量值的單位,6517A顯示行存在一些特殊符號,如次顯示行的溫度符號℃,主顯示行的電阻單位Ω(歐姆),量級單位μ(即表示10-6)等。但實際測試表明計算機接收到的6517A的信號,只能正確顯示出標準ASCII碼中的數字0~9、字母A~B和a~b,因此僅使用上述命令將顯示亂碼,無法正確反映6517A的全部顯示信息。作者經過分析,得到了非ASCII碼經過GPIB接口后對應的編碼如下(表1)。
?
RETURN鍵是控制整個子程序的邏輯量。但由此也帶來一個問題,程序運行時發(fā)現當第一次參數設置完畢,退出子程序后,RETURN有可能仍保持在false狀態(tài),那么緊接著第二次調用子程序時,將因為RETURN=false而無法進入循環(huán)(或僅循環(huán)1次便結束)。為此利用了LabVIEW的并行處理特性,在RETURN置false時將完成2個動作,首先是將邏輯常數True賦值給RETURN(利用了local variable,不會干擾其中斷循環(huán)的作用),然后再退出循環(huán),這樣保證了下一次的調用。
評論