From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Issues with data read for Keithley 2612. LabVIEW error code 85, Keithley Error code: -285, -286.

Hello,

 

I am working on a set up that uses an Agilent 33120A with a Keithley 2612 SourceMeter. The Agilent 33XXX is used to create an arbitrary (square) waveform and apply that to one terminal of a 3 terminal device. The Keithley 26XX SourceMeter is used in dual channel setup to apply a constant voltage across the device on the second terminal from Channel A (or Ch.B) on Keithley and Channel B (or Ch.A) should read out Current/Voltage of the third terminal. 

I have tried several codes to implement this with some difficulties.

Most recently, I am working off of one of the examples provided in the instruments drivers: KE26XX Factory Pulse Script Usage.vi

I have modified the script as seen in the attached VI. (In short; script resets Keithley Channels, Channel A pulses from 0V to 1V and back and forth for i iterations while Channel B is at constant 0.1V, current is measured for each channel after each voltage pulse, finally channels are set to 0V.)

After clicking run, the labVIEW error out states code: 85, source: >Scan From String (arg1) in Keithley 2600 Series.lvlib:Error Query.vi-

>Keithley 2600 Series.lvlib:Close.vi-

>KE26XX Factory Pulse Script Usage.vi

And two errors appear on the keithley, which state: (1)Error Code: -286. TSP run time error at line 1: attempt to index global 'nvbuffer1' a nil value, and

(2) Error Code: -285, TSP Syntax error at line 1: unexpected symbol near ')'

 

After the run is complete, the buffer will still output a single Voltage and Current but will not show all data collected for all i iterations. Any suggestions? 

 

(Note: this specific script is used without the Agilent to apply the waveform for now. I am just trying to get this script to run first before complicating it anymore.)

 

0 Kudos
Message 1 of 3
(3,474 Views)

Please describe your measurement.  I don't understand why you would attempt to modify the pulse example given your (overly brief) description of need.  From what I can understand:  Your Agilent 33120A sources a waveform to one terminal (A) and your Keithley supplies constant voltage on two others (B and C).  Do you want to monitor current at both B and C?   

 

With an SMU you can track the current over time, but you can't see if the current on terminals B and C track waferorm on A.  To do that sort of sampling you need a scope.  The sampling rate of an SMU is limited to ~200us/point at the fastest and probably slower for current measurements.  You would have to review the specs and know the amplitude of your signal. It gets more complicated if you somehow what to synchronize input waveform with measurements at B and C.  Then you need hardware triggering.

 

Now if you just need a single reading of current at B and C, irrespective of what is going on at A, that's easy to do.  Just look at the Source V and Measure I examples.  There are plenty of those if you search this forum for Keithley 2600.

 

Craig 

 

0 Kudos
Message 2 of 3
(3,457 Views)

Craig,

 

First, thank you for your speedy reply. 

 

To get the code to work, for now, I am solely focusing on the labVIEW code with the Keithley instrument. This measurement should have Channel A input pulse voltages between 0V and 1V up to i iterations (I believe 5 or 10 is shown in the attached code), while Channel B should be set to a constant 100mV for the whole test. The test should also be continuously monitoring the current change, on both Channels A and B. 

 

I understand that the waveform generated from the Agilent 33120A (terminal A) can NOT be strictly monitored from the Keithley 2612 (terminal B and C). For this, I was planning on running the output waveform for a lot of iterations while the Keithley reads current over a set period of time (also for a long time). This would be to assume that the Keithley would read over the time that (at the least one of) the waveform is sent through. 

 

From the original file, KE26XX Factory Pulse Script Usage.vi, the script inserted does a similar test, however leaves out the second channel (Channel B). My script incorporates the use of Channel A and Channel B, which also have different voltage outputs. 

 

I will check into the forums for other Source V and Measure I examples. This is not a single read however, that I am trying to do. The goal is to apply a waveform at one terminal and read current at separate terminals. 

0 Kudos
Message 3 of 3
(3,444 Views)