LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Different number of readings with same script Keithley 2410

Hello,

First of all: I am not very experienced with LabView or the 2410. I was told to write a program for the 2410 which should be a fixed measurement. It should measure the current logarithmically while having a fixed voltage source. Now my problem is that I write the buffer with a trigger delay depending on the iteration with a trigger count of 10 but I get less readings. What's very confusing is that it doesn't always return the same number of readings. Sometimes it is 5, then 7 and afterwards 6 without changing anything. Since it is the first program for the Keithleys at work nobody can help me. I already tried highlighting execution and retain wire values. This way I saw that the VISA write command should give the correct command but the VISA read does not return the right number of readings. In addition to that I don't get any readings on the second iteration, so I can only see some on the first. The Keithley also does not show any new measurements (at least it does not show any numbers, only the typical "----"). I hope You could understand everything I wrote (sorry, I usually don't write any english questions/problems a.s.o. concerning such issues and my english is not perfect).
I attached my library. The main VI is called "Fixed Source LOG Delay". Any help (even if it is only cosmetic) is appreciated!
Thanks in advance!

Best Regards

0 Kudos
Message 1 of 4
(2,940 Views)

Hi D.,

 

a lot of people are using Keithley 2410 today (see here)…

 

Well, at first you should clean up your code:

- Most often you don't need sequences...

- Using InsertIntoString seems wrong to me when a simple FormatIntoString would be so much easier (in WriteBufferFixedSource).

- Writing the very same data several times to a file doesn't make sense to me (in WriteMeasFile).

- Conversion from string would be so much simpler without locals and sequence:

check.png


- There are more points worth mentioned in your VIs…

 

To your problem:

Which errors do you get? Does the Keithley show an error message similar to those describe in the linked threads?

 

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 4
(2,932 Views)

@D.Bender wrote:

Hello,

What's very confusing is that it doesn't always return the same number of readings. Sometimes it is 5, then 7 and afterwards 6 without changing anything. Since it is the first program for the Keithleys at work nobody can help me. I already tried highlighting execution and retain wire values. This way I saw that the VISA write command should give the correct command but the VISA read does not return the right number of readings. In addition to that I don't get any readings on the second iteration, so I can only see some on the first. The Keithley also does not show any new measurements (at least it does not show any numbers, only the typical "----").


I can't view your file but I have experience with the Keithley 2400 so here is my opinion.  

 

This is a common problem for new users working with buffers.  The most likely cause is that you are reading the buffer BEFORE it is full.  If you initiate the second measurement immediately, you will likely see a Keithley error caused by trying to set the buffer values while a measurement is in progress.  The keithley will immediately return the buffer contents when asked to.  You, as the programmer, must set up your LabVIEW code to wait for the buffer to fill, then read the values.  While a fixed delay before reading could work, here is a better solution.

 

I posted my code for a I-V sweep (set voltage, measure current over a linear range) here http://forums.ni.com/t5/LabVIEW/Error-code-110-in-keithley-2400/m-p/2680579#M797618.  (sorry I don't have access to the files right now to upload them here.  The idea is first set the registers to watch for the buffer to become full.  When full, the SRQ bit will be set to 1.  After starting the measurement, i probe the SRQ value in a while loop.  Once it's set to 1, read the buffer and reset registers.  This method is outlined in the Keithley 24xx SMU manual (I can't remember which page).

0 Kudos
Message 3 of 4
(2,903 Views)

Hello,

 

First of all thanks for the fast answer, didn't expect one anytime soon.

Second I am going to rewrite the code.

Third, I never got an error Message when running the VI. I also thought that the buffer may still be written but after using a timer (which should wait for 3 seconds and then VISA Read should be run) I got the same problem. That's why I am asking myself what I am doing wrong. It seems to me, that the Keithley just does a few measurements and then stops. 

 

Best Regards

0 Kudos
Message 4 of 4
(2,873 Views)