Тайм-аут при использовании команд SCPI для блока питания Keithley 2230
Blockquote
Я использую трехканальный источник питания постоянного тока Keithley 2230 для лабораторной автоматизации с PyVISA. Я хочу выбрать определенный канал и установить напряжение соответственно. Я приложил программу, а также ошибка.
Я провел следующее исследование, но мне не удалось.
PyVISA SCPI команды и запросы (проблема с обновлением значения)
Python SCPI, позволяющий избежать фиксированных задержек (проблема синхронизации)
Программа:
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.
1 ответ
Ошибка пришла из-за запроса:
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")