Tektronix Technical Forums are maintained by community involvement. Feel free to post questions or respond to questions by other members. Should you require a time-sensitive answer, please contact your local Tektronix support center here.

Keithley 2612A -VISA Read -Error: -420Keithley/-1073807339L

Post Reply
Rumplstilzchen
Posts: 1
Joined: April 7th, 2014, 7:10 am
Country: Austria

Keithley 2612A -VISA Read -Error: -420Keithley/-1073807339L

Post by Rumplstilzchen » April 7th, 2014, 8:12 am

Hello,

I'm running a Keithley 2612A via LabView 10.0.1 with a LAN connection.
Keithley Firmware: 2.2.2

Im running the Programm with the newest Keithley 26xx driverset.
Generally we are running a voltage sweep on one SMU for several voltage steps on the other SMU.

Problem:
ONLY for a certain amount of Datasets - around multiples of 1024 ASCII signs output - the VISA Read function gives out an error.
Measurements are made and stored in buffer, only when the VISA Read in the Print Buffer.vi runs it will give an error!

-1073807339
VISA Read in Keithley 2600 Series.lvlib:Print Buffer.vi->my_print_buffer.vi->sweep.vi->main_sweep_copy_1.vi
Possible reason(s):
VISA: (Hex 0xBFFF0015) Timeout expired before operation completed.


The Keithley will give an error:
Keithley Error: Query unterminated: Error -420

The number of input bytes is set to 200000: which is way more then expected!
Timeout set to 10000ms!

When running the LabView assembled script in TSP it works fine!

I'm neither an expert on LabView or Signaling techniques and the program was written by a former student and we're trying to adapt and fix it!
I've also put in Waits, and termination characters, line feeds, in-out buffer counts... but i'm not really getting whats going on!
Since the problem only occurs occasionally i guess the buffer query-response action might be faulty somehow... maybe some header issues or something...

Anyone encountered similar problems?

Script used:
local start_v = 10.000000
local stop_v = -50.000000
local sw_steps = -1.000000
local m_delay = 0.100000
local single = false
local sw_smua = false
list_v = {0.000000,-25.000000,-50.000000}
local sw_steps_back

sw_steps_back = sw_steps * -1

-------------------config SMU A-------------------------
smua.reset()
--smua.measure.autorangei = smua.AUTORANGE_ON
smua.source.func = smua.OUTPUT_DCVOLTS
smua.source.levelv = 0
smua.source.limiti = 20e-3

smua.nvbuffer1.clear()
smua.nvbuffer1.appendmode = 1
smua.nvbuffer1.collectsourcevalues = 1

smua.nvbuffer2.clear()
smua.nvbuffer2.appendmode = 1
smua.nvbuffer2.collectsourcevalues = 1

smua.measure.count = 1

display.smua.measure.func = display.MEASURE_DCAMPS

-------------------config SMU B-------------------------
smub.reset()
--smub.measure.autorangei = smub.AUTORANGE_ON
smub.source.func = smub.OUTPUT_DCVOLTS
smub.source.levelv = 0
smub.source.limiti = 20e-3

smub.nvbuffer1.clear()
smub.nvbuffer1.appendmode = 1
smub.nvbuffer1.collectsourcevalues = 1

smub.nvbuffer2.clear()
smub.nvbuffer2.appendmode = 1
smub.nvbuffer2.collectsourcevalues = 1



smub.measure.count = 1
display.smub.measure.func = display.MEASURE_DCAMPS

------------------measurement-----------------------
smub.source.output = smub.OUTPUT_ON
smua.source.output = smua.OUTPUT_ON

if sw_smua == false then

smub.measure.delay = m_delay

ind = 1
while list_v[ind] do

smua.source.levelv = list_v[ind]
delay(0.5)

for i = start_v, stop_v, sw_steps do
smub.source.levelv = i
smub.measure.iv(smub.nvbuffer1,smub.nvbuffer2)
waitcomplete()
smua.measure.iv(smua.nvbuffer1,smua.nvbuffer2)
end

if single == false then
for i = stop_v, start_v, sw_steps_back do
smub.source.levelv = i
smub.measure.iv(smub.nvbuffer1,smub.nvbuffer2)
waitcomplete()
smua.measure.iv(smua.nvbuffer1,smua.nvbuffer2)
end
end

ind = ind +1
end
else

smua.measure.delay = m_delay

ind = 1
while list_v[ind] do

smub.source.levelv = list_v[ind]
delay(0.5)

for i = start_v, stop_v, sw_steps do
smua.source.levelv = i
smua.measure.iv(smua.nvbuffer1,smua.nvbuffer2)
waitcomplete()
smub.measure.iv(smub.nvbuffer1,smub.nvbuffer2)
end

if single == false then
for i = stop_v, start_v, sw_steps_back do
smua.source.levelv = i
smua.measure.iv(smua.nvbuffer1,smua.nvbuffer2)
waitcomplete()
smub.measure.iv(smub.nvbuffer1,smub.nvbuffer2)
end
end

ind = ind +1
end
end

smua.source.output = smua.OUTPUT_OFF
smub.source.output = smub.OUTPUT_OFF
Attachments
myprintbuffer.bmp
2
myprintbuffer.bmp (180.23 KiB) Viewed 13112 times
SweepVI.bmp
SweepVI.bmp (498.1 KiB) Viewed 13112 times

Norbert W
Keithley Applications
Keithley Applications
Posts: 227
Joined: October 21st, 2010, 7:18 am
Country: Germany

Re: Keithley 2612A -VISA Read -Error: -420Keithley/-10738073

Post by Norbert W » May 5th, 2014, 5:39 am

I wasn't able to reproduce an error using TestScriptBuilder for your code nor was I able to open your attachments (myprintbuffer.bmp, SweepVI.bmp).
Nevertheless I would like to suggest using a query for the buffer data points first then the data, like this:

TSP>print(smua.nvbuffer1.n)

3.66000e+02
TSP>print(smua.nvbuffer2.n)

3.66000e+02
TSP>print(smub.nvbuffer1.n)

3.66000e+02
TSP>print(smub.nvbuffer2.n)

3.66000e+02
TSP>printbuffer(1,366,smua.nvbuffer1)

1.00136e-12, 9.77516e-13, 1.09673e-12, 8.82149e-13, 1.04904e-12, 9.41753e-13, 1.06096e-12, 1.03712e-12, 1.09673e-12, 1.10865e-12, 9.89437e-13, 1.02520e-12, 1.07288e-12, 1.21593e-12, 9.53674e-13, 1.22786e-12, 1.13249e-12, 9.05991e-13, 8.94070e-13, 9.41753e-13, 1.15633e-12, 8.82149e-13, 1.07288e-12, 1.13249e-12, 8.94070e-13, 1.04904e-12, 9.4 .....

Post Reply

Return to “LabView Drivers”

Who is online

Users browsing this forum: No registered users and 3 guests