Python: ошибка тайм-аута при чтении больших данных из Keithely 2400 SMU

Я использую Python для удаленного управления SMU Keithely 2410 и столкнулся с проблемой чтения данных из буфера, если есть более 250 точек. Кажется, он работает нормально для <200 баллов, но при>250 баллах я получаю ошибку тайм-аута с:trace:data? команда, которую я вложил:

values ​​= np.array(inst.query_ascii_values ​​(':trace:data?'))

Это проблема с методом.query_ascii_values ​​()? Я очень плохо знаком с Python. Я ссылаюсь на руководство пользователя Keithley 2400 SMU по командам для связи с SMU.

Мой код Python ниже.

import visa
import numpy as np
import matplotlib.pyplot as plt

np.set_printoptions(threshold='nan')

# Initialize Instrument
rm = visa.ResourceManager()
rm.list_resources()
inst = rm.open_resource('GPIB0::22::INSTR')
# Write Measurement Parameters 
inst.write('*rst; status:preset; *cls')
inst.write(':status:measurement:enable 512; *sre 1')
inst.write(':sense:current:nplcycles 0.01')
inst.write(':route:terminals front')
inst.write(':sense:average off')
inst.write(':sense:function:conc off')
inst.write(':source:function voltage')
inst.write(":sense:function 'current:dc'")
inst.write(':sense:current:protection 0.1')
inst.write(':source:voltage:mode sweep')
inst.write(':source:voltage:start 1')
inst.write(':source:voltage:stop 1')
inst.write(':source:voltage:step 0')
inst.write(':source:sweep:spac lin') 
inst.write(':source:delay .001')
inst.write(':arm:source bus')
inst.write(':trace:poin 200')
inst.write(':trigger:count 200')
inst.write(':trace:feed sense1')
inst.write(':trace:feed:control next')
inst.write(':trace:tstamp:format absolute')
# Begin Measurement
inst.write(':output on')
inst.write(':initiate') 
inst.assert_trigger()
inst.wait_for_srq()         
# Read Buffer Data 
values = np.array(inst.query_ascii_values(':trace:data?'))
# Reset Instrument For Future Measurements
inst.write(':*cls')
inst.write(':*sre 0')
inst.query(':status:measurement?')
inst.write(':trace:clear')
inst.write(':output off')
#Plot Measurement 
b=values.reshape((200,5))
t = b[:,3]
I = b[:,1]
plt.plot(t,I);
plt.xlabel('time (s)');
plt.ylabel('current (A)');
plt.title('TDDB Leakage Current');
plt.show()

Сообщение об ошибке из кода

runfile('C:/Users/Mosto/Python Scripts/ivsweep.py', wdir='C:/Users/Mosto/Python Scripts') Traceback (последний вызов был последним):

Файл "", строка 1, в исполняемом файле ('C: / Users / Mosto / Python Scripts / ivsweep.py', wdir = 'C: / Users / Mosto / Python Scripts')

Файл "C:\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", строка 880, в исполняемом файле runfile (имя файла, пространство имен)

Файл "C:\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", строка 87, в execfile exec(compile(scripttext, filename, 'exec'), glob, loc)

Файл "C:/Users/Mosto/Python Scripts/ivsweep.py", строка 46, в values ​​= np.array(inst.query_ascii_values ​​(':trace:data?'))

Файл "C:\Anaconda2\lib\site-packages\pyvisa\resources\messagebased.py", строка 455, в query_ascii_values ​​block = self.read()

Файл "C:\Anaconda2\lib\site-packages\pyvisa\resources\messagebased.py", строка 332, в файле read message = self.read_raw(). Decode (enco)

Файл "C:\Anaconda2\lib\site-packages\pyvisa\resources\messagebased.py", строка 306, в блоке read_raw, status = self.visalib.read(self.session, size)

Файл "C:\Anaconda2\lib\site-packages\pyvisa\ctwrapper\functions.py", строка 1582, в read ret = library.viRead(сессия, буфер, count, byref(return_count))

Файл "C:\Anaconda2\lib\site-packages\pyvisa\ctwrapper\highlevel.py", строка 188, в _return_handler вызывает ошибки.VisoEEror (ret_value)

VisaIOError: VI_ERROR_TMO (-1073807339): истекло время ожидания до завершения операции.

0 ответов

Другие вопросы по тегам