11-05-2009 06:52 PM
Hi,
I'm using the program that Labview made to measure I-V curves with a Keithley 236 SMU. I want to tweek this program to allow me to measure 1 IV curve per minute for a continuous amount of time. I want to be able to change the overall time period for measurements too. For example, I want to input 100 minutes of continuous data measurements, so i would expect to have 100 IV curves. How do I tweek the program to allow this to happen?
Omed
11-06-2009 02:11 AM
11-12-2009 12:52 AM
11-12-2009 01:12 AM - edited 11-12-2009 01:16 AM
Hi Tenn,
"take about 1min to finish"
- When your DAQ needs about 1sec to read a datapoint then you can read about 60 points per iteration. (I made some words bold to show that a clear and to-the-point question would be better here.)
Or you could also measure time and decide when it's time to end that iteration (ie. use a while loop here!).
"want that loop to repeat for a total of 30"
- Put another for loop around the first one and wire a "30" to the loop count... (You would do so in any programming environment, this is not LV specific.)
11-13-2009 04:06 PM
Thank you,
ok.... I have another question.... I'm running a temperature control unit along with an SMU. For my temperature control unit, will reach a certain temperature and then dwell for a certain amount of time. I want my SMU to initiate taking I-V curves within and only with in this time frame. So basically, I want I-V curves being taken only during the dwell time. Can you explain to me how to sync these two different programs together to allow this?
11-16-2009 11:09 AM
Hi Tenn,
well, there is more than one approach...
Easiest would be to have two seperate loops, one for the temp control and the other for the SMU. The first loop (temp control) is setting a boolean to true, when it is in dwell state. The second loop is reading the boolean and and initiates the IV-measurement when on TRUE condition. When both loops are within one vi you could use a local variable.
This can be extended to make this more versatile and robust: look into FGV (aka LV2-style globals) to store the boolean. Use a typedef'ed enum to store the program state (instead of the boolean). Use a state machine for both loops. Use notifiers/queues to send commands from one loop to the other. So much possibilities...