LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Dual Voltage sweep in Keithley 2400 using labview

Hello, I am new to LabVIEW. I want to measure the IV characteristics of my memristor device using Keithley 2400 SMU. For this measurement, I need to sweep voltage gradually from 0 to 3V, then 3V to -3V, and then -3V to 0V and collect the current value. Does anyone have the program for this?  

0 Kudos
Message 1 of 10
(1,674 Views)

Hi Dipon,

 


Dipon.Kumar.Ghosh@inrs.ca wrote:

I want to measure the IV characteristics of…

I need to…

Does anyone have the program for this?  


Maybe someone else has a program for exactly your requirements - but the probability might be low…

 

Why don't you create that program on your own?

What have you tried and where are you stuck?

Did you start with the example VIs that come with the device driver for your Keithley SMU?

Best regards,
GerdW


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

Download Keithley 24XX Meter - IEEE 488.2 (GPIB), Serial Driver for LabVIEW and extract the content to <LabVIEW>\instr.lib

Open the Keithley 24XX.lvproj and there is one example on sweeping and measurement.

ZYOng_0-1692989933125.png

 

-------------------------------------------------------
Applications Engineer | TME Systems
https://tmesystems.net/
0 Kudos
Message 3 of 10
(1,652 Views)

Yes, download and install the driver.  Look at the examples, make sure the simple sweep and acquire works for a simple sweep. 

 

Since you want 3 sweeps and not just one, you would need to use a loop to measure all 3.  But, you should consider the more versatile Output List and Acquire example, which would allow you to setup a list with all three sweeps included and do the measurement all at once.

 

As Gerd said - post your code and we can help if you get stuck!

 

Craig

0 Kudos
Message 4 of 10
(1,581 Views)

Which loop will help me achieve something similar to this, sweeping from negative to zero and zero to positive(dual sweep)?

Also, is it possible to set two different compliance levels for these two sweeps? If so, how do I do it?

0 Kudos
Message 5 of 10
(1,082 Views)

Hi beginner,

 


@beginner1234 wrote:

Which loop will help me achieve something similar to this, sweeping from negative to zero and zero to positive(dual sweep)?


Sounds like a "two step approach", so first loop will handle the sweep from -X1 to 0 and the second step/loop will handle 0 to +X2.

Or you create just one sweep/ramp, you "just" need to make sure the "0" value is included…

 


@beginner1234 wrote:

Also, is it possible to set two different compliance levels for these two sweeps? If so, how do I do it?


Sure. Use the "two step approach" as described above. Switch the compliance level when the first step/loop has finished…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 6 of 10
(1,078 Views)

Can I use two while loops one after the other (like you mentioned) from sweep voltage, check if it is greater or lesser than zero, then use configure output to set compliance levels to the two in while loops? Is this the right approach? 

0 Kudos
Message 7 of 10
(1,070 Views)

Though it is not a dual sweep, I tried to make a block diagram such that it sweeps from negative to zero and zero to positive with two different compliance levels based on a sweep example from the instrument drivers, but there are few doubts and errors I would like to get clarified.

1. What should I place in loop terminals (all three loops) such that the outer 'while loop' stops after one iteration (after the sweep from negative to positive) and the 'for loops' work properly for negative to zero and zero to positive sweep?

2. Which function can I use to see that the delay between the two 'for loops' for sweeping negative to positive is almost negligible?

3. What is the best way to collect data from both loops and combine it into one and make it into an XY graph as current vs voltage?

4. How do I correct the errors for closing communication from the loops?

0 Kudos
Message 8 of 10
(1,000 Views)

Hi beginner,

 


@beginner1234 wrote:

1. What should I place in loop terminals (all three loops) such that the outer 'while loop' stops after one iteration (after the sweep from negative to positive) and the 'for loops' work properly for negative to zero and zero to positive sweep?

2. Which function can I use to see that the delay between the two 'for loops' for sweeping negative to positive is almost negligible?

3. What is the best way to collect data from both loops and combine it into one and make it into an XY graph as current vs voltage?

4. How do I correct the errors for closing communication from the loops?


Your approach shows several misunderstandings/misconceptions…

  • Why do you think build arrays of references is a good idea? (Ever heard of shift registers?)
  • Why do you think you need to build 3D arrays of your measurement data?
  • Why do you think a XY graph will handle a cluster of 2 3D arrays (in contrast to what the context help says)?
  • Why are there unwired tunnels in your VI?
  • Why are there 2 controls with the same label?
  • Why are there controls with different default values as described in their context help/documentation?

I guess it would make more sense to learn LabVIEW basics and to solve the other problem of receiving useful measurement data first! (Discussing the same code in more than one thread quickly becomes annoying…)

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 9 of 10
(995 Views)

Here's a better way to do multiple sweeps on a Keithley 2400 without a pause between them.  Upload a list or bias points and step between them at a given interval.  This is called a "List Sweep".  There's even an example in the NI driver on how to do this.  Here I expand on that and provide a sweep building VI and show you how to save data files and PNGs. 

 

k2400_list_sweep_example.png

 

 

 

Hope that helps.
Craig

Message 10 of 10
(973 Views)