Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Setting up a channel close, pause, measurement system with VISA

First, please be patient with me.  I've only been working with VISA for a few days.

I'm using LabView to write a program that drives a Keithley 2000-20 multimeter, which is measuring the voltage across ten diodes and two standard resistors.  The procedure for the measurements calls for a ten-second settling period between switching to a channel and recording the data.  This was easy when we had someone sitting in front of the multimeter: they'd close the channel, wait ten seconds (more or less), and write down the numbers.  But I've been going crazy trying to figure out how to do this with VISA.

The little test VI I wrote currently has it set so there's an internal scan list of twelve channels (ten diodes and two resistors), a reading count of twelve, and a sample count of one.  I set the timer to ten seconds and the trigger to the timer.  What I think is happening is: channel closes, measurement is taken, timer fires.  But I want the timer interval to happen between the closing of the channel and the measurement.

I tried using the delay function but it seems to me that it only fires once, at the beginning?  Or am I mistaken?  Do I need to use the delay and timer functions in conjunction?  Is what I'm trying to do even possible?

I also can't get the read buffer to work, but I figured I'd start with the thing that's really making me tear my hair out.

Thank you in advance for any help!

Katherine
0 Kudos
Message 1 of 2
(3,106 Views)
Howdy Katherine,

I first want to point out a Keithley 2000 LabVIEW driver available that I found on our Instrument Driver Network (IDNet). Using a pre-made set of VI's in a LabVIEW instrument driver package can help significantly cut development time, depending on what you intend to do with your application.

Going back to your original post...If I understand you correctly, you want the following data flow. (Please correct me if I've misunderstood.)
  1. Select a channel
  2. Close the selected channel
  3. Wait 10 seconds
  4. Read value from channel
  5. If not finished, then go to Step 1. Else, go to Step 6
  6. End program
To accomplish this desired data flow in LabVIEW, one technique you can use is to wire the error lines from one VI next, following the above order. So you would have the error out of the Step 1 code going to the error in of the Step 2 code; the error out of the Step 2 code going to the error in of the Step 3 code (in this case a Time Delay Express VI); and so on. Alternatively, you could use a Sequence Structure in LabVIEW to control the data flow in a similar method.

I hope this helps!
Warm regards,

pBerg
0 Kudos
Message 2 of 2
(3,072 Views)