Posted Tue, 20 Jun 2023 23:23:20 GMT by Henriksson-Ward, Maia
Hello,

I am using a Keithley 6517B electrometer to provide a bias voltage and to read current in a circuit. I am using SCPI commands to operate the device remotely. I would like to use auto-range, but have found that the instrument does not up-range from the 200 pA range to the 2 nA range when I use "READ?" to trigger a measurement. However, the instrument completes the correct transitions for other ranges when using "READ?".

I can get the 6517B to up-range from 200 pA range to the 2 nA range by re-issuing "CONF:CURR" (or "MEAS?", but "meas" works because it includes "conf"). This is after the instrument has been configured for a current measurement (i.e., querying "conf?" would return "curr:dc"), and it needs to be done every time I want to get out of the 200 pA range. I know that using "conf" performs a number of actions, and ideally I do not want to re-do all of these every single time I take a reading - there must be a more efficient way.

How can I configure my instrument to properly use auto-ranging for the current measurement? I've checked that auto-range is enabled, and that the upper range limit for auto-range is 20 mA.

Steps to repeat issue
---
I am using the GPIB interface with a GPIB-Ethernet adapter, and the readings I obtain are the same as those shown on the device's front panel.

1. Setup
netcat -v 192.168.0.98 1234
Connection to 192.168.0.98 1234 port [tcp/*] succeeded!

*IDN?
KEITHLEY INSTRUMENTS INC.,MODEL 6517B,4584330,A14/700x

*rst
conf:curr
form:elem read,unit,vso,stat
syst:zch off
sour:volt 25
outp on
2. Checking configuration, auto-range, and range limits:
conf?
"CURR:DC"

sens:curr:rang:auto?
1

sens:curr:rang:auto:llim?
2.0000000E-11

sens:curr:rang:auto:ulim?
2.0000000E-02

sens:curr:rang:upp?
2.0000000E-02
3. Measuring using "read?"  in the 200 pA range works as expected:
read?
+143.0885E-12NADC,+0025.000Vsrc
read?
+141.1126E-12NADC,+0025.000Vsrc

sens:curr:rang:upp?
2.0000000E-10
4. This is where the problem is: increasing the voltage in the system for an expected current of roughly 250 pA. Now, measuring using "read?" does not give me the expected current, but instead gives me ~209 pA (the maximum allowed in the 200pA range). Auto-range is still enabled, but the measurement range did not increase. The voltage I physically measure across the source is 35V as expected. The status flag is still 'N' for normal, and shows no indication of overflow.
sour:volt 35

read?
+208.8394E-12NADC,+0035.000Vsrc
read?
+208.4471E-12NADC,+0035.000Vsrc

sens:curr:rang:upp?
2.0000000E-10
sens:curr:rang:auto?
1
sens:curr:rang:auto:ulim?
2.0000000E-02
5. After I send a "meas?", I get readings of around 250 pA as expected. I can see that the measurement range has been increased, and "read?" will now continue to give me 250 pA as expected.
meas?
+0.241637E-09NADC,+0035.000Vsrc

read?
+0.249885E-09NADC,+0035.000Vsrc

sens:curr:rang:upp?
2.0000000E-09
5. When increasing the current further, up-ranges occur as expected.
sour:volt 52
read?
+021.0036E-09NADC,+0052.000Vsrc

sens:curr:rang:upp?
2.0000000E-07
6. If I bring the current back down to the 200 pA range, and then back up to the 2 nA range again, the instrument does not up-range until I issue a "meas?" command, as before. I tried using 35 V (expected 250 pA) and 40 V (expected 330 pA) - neither caused the 6517B to uprange.
sour:volt 25
read?
+143.4189E-12NADC,+0025.000Vsrc

sens:curr:rang:upp?
2.0000000E-10

sour:volt 35
read?
+208.3761E-12NADC,+0035.000Vsrc

sour:volt 40
read?
+208.2913E-12NADC,+0040.000Vsrc
read?
+208.3752E-12NADC,+0040.000Vsrc

sens:curr:rang:upp?
2.0000000E-10

meas?
+0.333612E-09NADC,+0040.000Vsrc

sens:curr:rang:upp?
2.0000000E-09
7. The difference between "read?" and "meas?" is that "meas" issues "abor", "conf:curr", and then "read?". So, which of the two extra commands helped? conf:curr is the one that makes it work:
sour:volt 35
read?
+209.2242E-12NADC,+0035.000Vsrc
read?
+209.3727E-12NADC,+0035.000Vsrc

ABOR
read?
+209.8183E-12NADC,+0035.000Vsrc
read?
+209.7916E-12NADC,+0035.000Vsrc

CONF:CURR
read?
+0.255592E-09NADC,+0035.000Vsrc

I had this same issue two weeks ago, and it went away without any conscious change on my part. However, today it is back again and is consistently repeatable with these steps. I always use *rst so that my instrument settings are consistent - I'm not sure why this issue went away in the past, why it is back, or why it is occurring at all.

Thanks in advance.
Posted Thu, 29 Jun 2023 16:39:02 GMT by C, Andrea
Hello Maia,

That is very odd behavior.

I see you have the latest firmware, A14.

What if you manually operate the instrument from a reboot/factory defaults?  Does the current range adjust appropriately then?

As you increase the source voltage a little bit, does the 200pA range ever report overflow?
If you have a volt meter or scope channel, what does the 2V output do as you approach full scale 200pA and push past?

Seems like the :MEAS:CURR? rather than a :READ? will be needed.

How is your remote connection to the instrument?  Looks like you have a LAN to something converter?  Using GPIB or RS-232 on the 6517B?
Posted Thu, 06 Jul 2023 00:33:28 GMT by Henriksson-Ward, Maia
Hello Andrea,

I see the same thing when manually operating the instrument from the front panel, but only under certain conditions: it happens if I change the trigger mode from continuous to a manually triggered one-shot, or if I first issue an *RST command remotely and then return to local operation.

If use the instrument immediately after power-up, with no change to the trigger settings, my range changes work as expected - i.e., if I skip step 5 below or don't issue *RST, everything seems ok. But, I would really like something that works after an *RST, so that I can keep my remote settings consistent in case someone else uses the picometer and changes my settings.

I now have set up a test circuit with a 100 MOhm resistor. I can re-create the issue using exclusively local operation by:
  1. Power-on the Keithely6517 by pressing the power button
  2. Press "I" to select the current measurement function
  3. Press "AUTO" to turn autorange on. The screen displays "Autorange: A"
  4. Press "ZCHK" to turn zero-check off
  5. Switch to one-shot mode with a manual trigger (this is to copy the behaviour on *RST, which I want for remote operation). Press "CONFIG", "TRIG", select BASIC, then select MODE and ONE-SHOT. Then, press "CONFIG", "TRIG", SOURCE and select MANUAL. This provides the same functionality I get after an *RST, where I only trigger a reading by pressing the TRIG key
  6. Set the voltage to 0.01 V using "OPER" and the arrow keys to set a voltage output
  7. Press "TRIG" to trigger a reading. The display shows 75 pA, roughly as expected (expected 100 pA, but given my low-quality/unshielded test circuit, 75 pA is reasonable). The 2V output at the back gives me -0.77 V on my multimeter.
  8. Set the voltage to 0.02 V 
  9. Trigger a reading. The display shows 176 pA, roughly as expected. The 2V output at the back gives me -1.8 V
  10. Set the voltage to 0.03 V
  11. Trigger a reading. The display shows 208 pA, but I would expect around 300 pA. The 2V output at the back gives me -2.1 V.
  12. Press the up arrow key once, to uprange. The screen displays "Range: 2nA"
  13. Trigger a reading. The display shows 0.280 nA, roughly as expected. The 2V output at the back gives me -0.27 V
  14. Return to autorange
  15. Set the voltage to 0.3 V
  16. Trigger a reading. The display shows 3nA, as expected. This means the uprange from 2nA to 20nA happened automatically, which is good. The 2V output at the back gives me -0.29 V
Try again with more current. This immediately follows step 14 above (i.e., autorange is still on, same setup)
  1. Set the voltage to 0.01 V
  2. Trigger a reading. The display shows 75 pA, as expected. The 2V output at the back gives me -0.77 V
  3. Set the voltage to 0.03 V
  4. Trigger a reading. The display shows 209 pA, but I would expect around 300 pA. The 2V output at the back gives me -2.18 V
  5. Set the voltage to 0.3 V
  6. Trigger a reading. The display shows 208 pA, but I would expect around 3 nA. The 2V output at the back gives me -2.18 V
  7. Press the up arrow key once, to uprange. The screen displays "Range: 2nA"
  8. Trigger a reading. The screen displays "OutOfLimit" - at least in the 2nA range I have an indication that something is wrong! The 2V output at the back gives me -2.94 V
  9. Uprange to the 20 nA range
  10. Trigger a reading. It is 3 nA, as expected. The 2V output at the back gives me -0.293 V
My remote connection is with a GPIB-Ethernet adapter from Prologix. In the end, I have a C++ program that will send commands to the 6517, but used a terminal to send commands for my first post so that it is easier to see exactly what I am sending. Technically, I am sending these commands to the adapter, which then forwards them to the 6517's GPIB interface.

Thank you
 
Posted Tue, 11 Jul 2023 12:40:40 GMT by C, Andrea
Hi Maia,
I'm going to ask the factory to take a look at this.
Excellent detail here and steps to duplicate.  Thank you for taking the time to put it so clearly.

Andrea
Posted Wed, 02 Aug 2023 13:48:46 GMT by C, Andrea
Hello Maia,
Factory took a look using a 6517B at A14 firmware, same as you.
Not able to duplicate any issue related to auto range as the applied V to resistor changes.
Factor suggested that your specific unit may have a service issue (RMA).
Andrea

You must be signed in to post in this forum.