2017-01-05 16 views
0

BlockquoteТаймаут команды с использованием ПСПО для Keithley 2230 питания

Я использую Трехканальный источник питания постоянного тока Keithley 2230 для автоматизации лаборатории с PyVISA. Я хочу выбрать конкретный канал и соответственно установить напряжение. Я приложил программу, а также ошибку.

Я сделал следующее исследование, но я не был успешным.

PyVISA SCPI commands and queries (issue with value update)

Python SCPI avoiding fixed delays (synchronization issue)

Программа:

import visa 

rm = visa.ResourceManager() 
str = 'USB0::0x05E6::0x2230::9102008::INSTR' 
inst = rm.open_resource(str) 
print inst.query("*IDN?") 
######### print the selected channel ########## 
print inst.query("INSTrument:SELect?") 
######### selected the perticular channel ########## 
print inst.query("INSTrument:SELect 2") 

Команды, которые я получил от официального звена Keithley DD питания:

http://assets.tequipment.net/assets/1/26/Documents/Keithley/2220_30_1/2220_30_1_doc_4.pdf

Выход Вход:

Keithley instruments, 2230-30-1, 9102008, 1.15-1.04 

CH1 

Traceback (most recent call last): 
    File "C:/Users/PycharmProjects/trails/keithley2230.py", line 9, in <module> 
    print inst.query("INSTrument:SELect 2") 
    File "C:python-2.7.9\lib\site-packages\pyvisa\resources\messagebased.py", line 384, in query 
    return self.read() 
    File "C:\python-2.7.9\lib\site-packages\pyvisa\resources\messagebased.py", line 309, in read 
    message = self.read_raw().decode(enco) 
    File "C:\python-2.7.9\lib\site-packages\pyvisa\resources\messagebased.py", line 283, in read_raw 
    chunk, status = self.visalib.read(self.session, size) 
    File "C:\python-2.7.9\lib\site-packages\pyvisa\ctwrapper\functions.py", line 1569, in read 
    ret = library.viRead(session, buffer, count, byref(return_count)) 
    File "C:\python-2.7.9\lib\site-packages\pyvisa\ctwrapper\highlevel.py", line 180, in _return_handler 
    raise errors.VisaIOError(ret_value) 
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed. 
+0

Что делает 'печати rm.list_resources()' производят? – TigerhawkT3

+0

И что произойдет, если вы сначала запросите канал 2, а затем канал 1? – TigerhawkT3

+0

print rm.list_resources() произвести (u'USB0 :: 0x05E6 :: 0x2230 :: 9102008 :: INSTR ', u'ASRL3 :: INSTR', u'ASRL10 :: INSTR ') – Sandy

ответ

0

Ошибка придет из запроса:

print inst.query("INSTrument:SELect?") 
Instead I used print inst.write("INSTrument:SELect?") 

Установка кода для будущих пользователей :-)

import visa 
import pyvisa 

rm = visa.ResourceManager() 
print rm.list_resources() 
str = 'USB0::0x05E6::0x2230::9102008::INSTR' 
inst= rm.open_resource('USB0::0x05E6::0x2230::9102008::INSTR') 


print inst.query("*IDN?") 

print inst.write("OUTPUT ON") 

inst.write("INSTrument:SELect CH1") 
print inst.query("INSTrument:SELect?") 
print inst.write("OUTPut:ENABle 1") 
print inst.write("APPLY CH1,1.11V,1.5A")