Instrument Control (GPIB, Serial, VISA, IVI)

Showing results for 
Search instead for 
Did you mean: 

keithley 2700/7700 4-wire Measurement GPIB

Hi Everyone,


I am attempting to use a Keithley 2700 with a 7700 20Ch switching card to set up 3 4-wire measurements on channels 101-103.


Ideally I want to be able to send a query to the 2700 and get back the 3 resistance measurements, each an average of 5-10 readings.  For now I just need to have the meter do it once and I will set up repeating and time stamping to record the data.  I attempted to use the drivers from here at NI, as usual they didn't work.  I contacted a tech at Keithley and he has had trouble with the drivers in the past. He wrote a quick VI for me to show me how he would approach it.  I played with it and got it to read the first channel but can't get the other channel values. Also, after each run of the for loop the meter resets, I would like to stop that. Hopefully you guys can see something I am missing, any help is greatly appreciated.




0 Kudos
Message 1 of 17

It would be helpful to describe what is not working with the keithley driver... like that you can get help and others too.

My experience with drivers for the big players (AG,Keithley,Fluke etc) was quite good, however sending and receiving GPIB commands is quite simple. How to set up the instruments is well described in the manuals. 


These instruments are like music instruments, you can play them in a orchestra and get wonderful music ... or just noise.

While it take years to learn to play a violin, it take only hours to read a manual (assuming the background to understand what is written)


Sorry might sound a bit sarcastic, but I just had the impression that you just blame others while trying to have them solve your task.



Greetings from Germany

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'

0 Kudos
Message 2 of 17

Hi Henrik,


I appreciate the feedback.  I have been working on solving the problem myself it's just nice to get feedback from others as well.  I have been working in labview on and off for the last 5 years but it is not my main focus. I use labview to facilitate my research so I am usually project driven.  Often someone who does a lot of this kind of work will see something right away that would take me a week to find. 


I have been reading the manuals, been over them several times, and will continue to work it out on my own.  While I have the background and understand the manuals sometimes their notation isn't clear when you haven't worked with the command structure before.  They are written by people with extensive knowledge in the area and assume that the people reading it will also have that knowledge level.   I've never worked with GPIB before and am getting used to the commands. I was just hoping someone would glance at it a see an error.


The problem I have had with the drivers is simply that they seem to generate a lot of errors for no apparent reason, without any changes being made. When I go to find the error the code usually says something like "Error occured at an unknown location" which is not really helpful in debugging.  I then have to go through a process of debugging the several sub VIs which can get frustrating.  My usual strategy now is to try the drivers for a day and if they are troublesome write my own code from scratch to do the same job.  My main comment was that even somone who works at Keithley  has found the drivers lacking and suggested starting from scratch. 


My previous experience with Watlow F4 drivers was that the default settings in the drivers are set to adhere to the MODBUS-RTU protocol.  Unfortunately, Watlow doesn't use the protocol and have their own settings, settings they don't list in the manual.  It required a few hours on the phone to find someone who knew what the setting were.  After that fiasco I've found that the forums usually have someone that has had the same problem or knows the solution.


I will continue to work on the solution I was just hoping the forum members could help save me some time.  When I have the solution I am always willing to help someone with the same problem.




0 Kudos
Message 3 of 17

Hey PChemist,

I have a few questions for you so I can help you better isolate your issue:


1. What type of driver did you use for your initial testing from the NI Instrument Driver Network? If you take a look at the model page for this instrument ( you'll see that there are links to the LabVIEW Plug-and-Play (project-style), LabVIEW Plug-and-Play (non project style aka pre-LV 8.2), and the IVI-C driver for this instrument. 


2. What code were you running from this driver when you were receiving errors? All of our instrument drivers ship with examples of common uses of the instrument which should give you a starting point for your own applications. All drivers that are labelled as "NI Certified" are tested using all shipping examples and every individual function with actual hardware before being released on the web. From looking at the LabVIEW PnP project-style driver it looks like the Keithley 27XX Advanced is where you should start. Could you try running this example and see if it works as expected?


3. What errors were you receiving when you actually ran your code? Screenshots and an explanation of what VIs were running and when the error occurred will all be helpful here.


We take pride in the quality of the over 9000+ drivers that we have posted on our Instrument Driver Network and if customers ever experience any problems with them then we want users to let us know so we can fix them. You can do this by either rating the driver or by clicking the feedback button shown below which is located on the top right of the page.




Although you can always dig through the programmers manual and send basic string commands to the instrument, we've developed and tested these drivers so future users of the instrument don't have to do this. Let me know what you think and we'll take it from there. Thanks!


Lars L


Message 4 of 17

Hi Lars,


In answer to your questions.


1. I used the Instrument Driver finder utility from the LV start up window. The only one that appeared was the 27xx driver set so I downloaded and automatically installed it.


2. I was actually running the example VI "Keithley 27XX Finite Multi" It works just fine when I run it in default mode and only try to run a VDC measurement on the front or 7700 module. If I change the type of reading to 4-wire measurement I get an error (below).


"Error -1073807339 occurred at VISA Read in Keithley 27XX.lvlib:Error>Keithley 27XX.lvlib:Error Query (Multiple).vi->Keithley 27XX.lvlib:Clear Data>Keithley 27XX Finite Multi"


I took your suggestion and ran the Advanced I recieved errors while running it as well. I have attached screen shots of the two errors I got so you can see the settings I was using.   I also ran the Continuous Multi since it is closer to what I am try to accomplish.  That VI also gave me an error, a screen shot is below.


Thank you for taking the time to respond, I appreciate your help.




0 Kudos
Message 5 of 17

Hey PChemist,

We actually have an instrument library here at NI filled with both loaner as well as permanent instruments that were used for the development of many of the drivers you see on IDNet. I checked our library and we actually have the Keithley 2700 instrument and the 7700 switch card that we used for development of this driver. I went ahead and connected it up (via GPIB) and ran both the Finite Multi Read and the Continuous Multi Read examples without problems.


Since it sounds like the Continuous Multi Read is closer to what you are looking for, could you give me some more details on what settings you were using so I can try and match your exact configuration? Here's what I'm looking for:


1. Interface type (GPIB or serial)? I used GPIB.

2. Channel List (I used 101:110)

3. Function (4-wire, correct?)

4. Serial Configuration if using serial

5. Number of measurements before you received the bus error from your screenshot.


I just stopped the example after running for a long time and found that I retrieved a total of 618 samples without any errors.



Lars L


0 Kudos
Message 6 of 17

Hi Lars,


Thank you for taking the time to hook up an actual instrument.


1. Interface is GPIB, using an NI GPIB-USB-HS cable

2. Channel list is 101:103, I have resistors connected to these channels as dummy loads

3. Function is 4-wire

4. Not using serial, but I did not go into the VI and unwire that input, values were left at default values (screen shot)

5. The first screen shot I got about 20, I have since closed the VI and can't go back to count them


I have run the VI a second time and received 0 data points and an error, screen shot is attached. I opened the VI and before running it I restarted the 2700 to make sure that I didn't inadvertantly have a setting that was interfering.


EDIT: I just reset the 2700 to factory defaults to really make sure everything was where it should be.  Ran the VI and received an error, second attached screenshot.


Thank you,


0 Kudos
Message 7 of 17

Hey PChemist,

That's very strange that you're getting errors with the default settings. One thing that I'd like you to check is the firmware revision that you currently have loaded on the machine. If you take a look at the Readme HTML file that ships with the driver, you'll see this text: Firmware Revisions Tested:  B05, A05, A07.


Since we can't ensure that Keithley didn't make changes to their firmware that causes the instrument to behave differently, it would be ideal if you could make sure that the firmware on your instrument matches those that we tested during development of the driver. You can find these firmware versions by opening up NI Measurement & Automation Explorer (MAX) and finding your USB-GPIB device and right-clicking and selecting Scan for Instruments. You should then see something like this:




Though I'm not sure why there seem to be two firmware revisions returned, I would just check this and see if your numbers match B05, A05, A07, or have something similar to what I'm seeing. For further explanations from the instrument on why there are two firmware revisions listed, I'd recommend looking for the *IDN? command in the programmers manual.


One other question, what driver revision of the Keithley 27xx driver are you using? This should be listed in the readme.


Lars L


0 Kudos
Message 8 of 17

Hey Lars,


I ran the quick communication test that the Keithley engineer had me do, it sends the IDN command. The result is:




This is their most current firmware.


I also pulled the following from the Readme File, it is also attached below.


Driver Revision: 2.3 Original Release Date: 06/2004 Current Revision Date: 04/2008


Since we have different firmware versions that may be the problem. Would it be possible for you to update the 2700 that you have and see if you get the same error? I can send you the firmware file.




0 Kudos
Message 9 of 17

With Visa Read timeout errors a NI-Spy log is invaluable in debugging the issue. Can you run NI-SPY and post the log file here?

0 Kudos
Message 10 of 17