2014-01-15 25 views
4

我想用Ubuntu 13.04(Raring Ringtail)下的pyvisa來控制Agilent 33120A任意波形發生器。我已經安裝並設置了使用我們的實驗室NI GPIB-USB-B適配器與儀器進行通信所必需的一切。適配器固件已加載,而linux-gpib的內核模塊也是如此。pyvisa給出了錯誤,但linux-gpib工作

我可以成功做一些幹運轉,例如,通過運行# ibtest(命令行工具),我可以將*IDN?寫入設備,並且我收到設備ID:'HEWLETT-PACKARD,33120A,0,8.0-5.0-1.0'。我還成功測試了其他命令,如設置電壓和頻率等。有用。

問題是,pyvisa總是拋出一個VisaIOError ......我不知道如何讓它工作。我以root身份運行python-2.7,因此(現在)我不必處理任何訪問權限。這是代碼和輸出:

import visa 
>>> visa.vpp43.visa_library.load_library("/usr/lib/x86_64-linux-gnu/libvisa.so.0") 
>>> visa.get_instruments_list() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/dist-packages/pyvisa/visa.py", line 254, in get_instruments_list 
    vpp43.find_resources(resource_manager.session, "?*::INSTR") 
    File "/usr/lib/python2.7/dist-packages/pyvisa/vpp43.py", line 583, in find_resources 
instrument_description) 
    File "/usr/lib/python2.7/dist-packages/pyvisa/vpp43.py", line 398, in check_status 
raise visa_exceptions.VisaIOError, status 
pyvisa.visa_exceptions.VisaIOError: VI_ERROR_RSRC_NFOUND: Insufficient location information or the requested device or resource is not present in the system. 

庫正確加載。甚至沒有必要,但我明確加載庫以保證安全。顯然,pyvisa沒有找到任何工具。我也試圖使用這些命令的顯式打開我的樂器board=0, pad=10, sad=0

visa.instrument("GPIB::10") 
visa.instrument("GPIB0::10") 
visa.instrument("GPIB::10::0") 
visa.instrument("GPIB0::10::0") 

但與上述相同的異常被拋出。

基本上,一切都設置好了,但pyvisa沒有看到任何東西。

二手版本:

我希望得到一些建議。

回答

2

pyvisa是圍繞NI-VISA的Python包裝。據我所知,無法使用pyvisalinux-gpib。但是linux-gpib帶有它自己的Python包裝器。只要import Gpib,你是好去,例如,

>>>import Gpib 
>>>device = Gpib.Gpib(pad=10) 
>>>device.write('*IDN?') 
>>>device.read() 
'HEWLETT-PACKARD,33120A,0,8.0-5.0-1.0' 

我猜你正在寫某種測量的腳本。看看slave它可能對你有用(免責聲明:我是slave的作者)。它試圖簡化設備通信。它也有自己的包裝linux-gpib

相關問題