Skip to content

Keithley 6517B

Keithley

6517B

Electrometer / high-resistance meter with 10 fA sensitivity

electrometer SCPI
Keithley 6517B electrometer/high resistance meter front panel
eBay listing photo
Default Address 27
Termination LF
IEEE 488.2 Yes
IDN Patterns
KEITHLEY INSTRUMENTS INC.,MODEL 6517B,*,*KEITHLEY INSTRUMENTS*,*6517*,*,*
Documentation

The Keithley 6517B is the industry standard electrometer for high-resistance and low-current measurements. It replaced the 6517A with improved voltage source stability and added humidity readback. The built-in 1000V source eliminates the need for an external supply when measuring insulation resistance, volume/surface resistivity (with appropriate electrode fixtures), and material properties. Zero check must always be enabled when connecting or disconnecting test leads to protect the sensitive input amplifier.

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Operation SummaryRQS/MSSESBMAVQuestionable DataError QueueUnusedMeasurement Summary
Operation status summary bitRequesting service / Master summary statusEvent status byte summary bitMessage available in output bufferQuestionable data summary bitOne or more errors in error queueNot usedMeasurement event summary bit

Use *STB? to read status byte, *SRE to set service request enable register

Standard IEEE 488.2 commands supported by all compliant instruments

Command Type Description
*IDN? query Identification query -- returns manufacturer, model, serial, firmware
Details
Returns (string) — Comma-separated identification
Example: KEITHLEY INSTRUMENTS INC.,MODEL 6517B,1234567,A01/A01
*RST command Reset to factory default state
*CLS command Clear status registers and error queue
*ESE {mask} command Set event status enable register
Details
Parameters
  • mask (numeric) — Bitmask 0-255
*ESE? query Query event status enable register
Details
Returns (numeric)
Example: 0
*ESR? query Read and clear event status register
Details
Returns (numeric)
Example: 0
*OPC command Set operation complete bit in ESR when all pending operations finish
*OPC? query Returns 1 when all pending operations complete
Details
Returns (numeric)
Example: 1
*SRE {mask} command Set service request enable register
Details
Parameters
  • mask (numeric) — Bitmask 0-255
*SRE? query Query service request enable register
Details
Returns (numeric)
Example: 0
*STB? query Read status byte register
Details
Returns (numeric) — Status byte value
Example: 0
*TST? query Self-test; returns 0 for pass, 1 for fail
Details
Returns (numeric)
Example: 0
Note: Takes several seconds to complete
*TRG command Trigger measurement from bus (requires trigger source BUS)

Configure measurement function, range, and resolution using high-level CONF commands

Command Type Description
CONF:VOLT [{range}] command Configure for DC voltage measurement
Details
Parameters
  • range (numeric, optional) — Range in volts (2, 20, 200) or MIN|MAX|DEF Default: DEF
Example CONF:VOLT 20
CONF:CURR [{range}] command Configure for DC current measurement
Details
Parameters
  • range (numeric, optional) — Range in amps (20e-12 to 20e-3) or MIN|MAX|DEF
Example CONF:CURR 2e-9
CONF:RES [{range}] command Configure for resistance measurement
Details
Parameters
  • range (numeric, optional) — Range or MIN|MAX|DEF
Note: Resistance is calculated from applied voltage / measured current
CONF:CHAR [{range}] command Configure for charge measurement
Details
Parameters
  • range (numeric, optional) — Range in coulombs (20e-9, 200e-9, 2e-6) or MIN|MAX|DEF
CONF? query Query current measurement configuration
Details
Returns (string)
Example: "VOLT:DC +2.000000E+01"

Trigger and read measurements

Command Type Description
MEAS:VOLT? [{range}] query Configure, trigger, and return one DC voltage reading
Details
Parameters
  • range (numeric, optional)
Returns (numeric) — Voltage in volts
Example: +1.23456789E+00
MEAS:CURR? [{range}] query Configure, trigger, and return one DC current reading
Details
Returns (numeric) — Current in amps
Example: +5.00000000E-14
MEAS:RES? [{range}] query Configure, trigger, and return one resistance reading
Details
Returns (numeric) — Resistance in ohms
Example: +1.00000000E+12
MEAS:CHAR? [{range}] query Configure, trigger, and return one charge reading
Details
Returns (numeric) — Charge in coulombs
Example: +1.50000000E-09
READ? query Trigger and return one reading using current configuration
Details
Returns (numeric) — Measurement result in current function's units
Example: +1.23456789E+00
INIT command Initiate measurement and place in wait-for-trigger state
FETCH? query Return stored readings from buffer (no new trigger)
Details
Returns (numeric) — Comma-separated readings
Example: +1.23456789E+00,+1.23456790E+00

Built-in programmable voltage source (0 to +/-1000V) for resistance and resistivity measurements

Command Type Description
SOUR:VOLT {value} command Set voltage source output level
Details
Parameters
  • value (numeric) — Voltage in volts (-1000 to +1000) or MIN|MAX|DEF
Example SOUR:VOLT 100
SOUR:VOLT? query Query voltage source output level
Details
Returns (numeric)
Example: +1.00000000E+02
SOUR:VOLT:RANG {range} command Set voltage source range
Details
Parameters
  • range (numeric) — 100 or 1000 volts or MIN|MAX
Note: 100V range: 0 to +/-100V; 1000V range: 0 to +/-1000V
SOUR:VOLT:RANG? query Query voltage source range
Details
Returns (numeric)
Example: +1.00000000E+02
SOUR:VOLT:LIM {value} command Set voltage source current limit (compliance)
Details
Parameters
  • value (numeric) — Current limit in amps (typically 2.5 mA max)
SOUR:VOLT:LIM? query Query voltage source current limit
Details
Returns (numeric)
Example: +2.50000000E-03
SOUR:VOLT:STAT {state} command Enable or disable voltage source output
Details
Parameters
  • state (enum) Values: ON, OFF
Note: WARNING: Voltages up to 1000V can be lethal. Always verify connections before enabling.
SOUR:VOLT:STAT? query Query voltage source output state
Details
Returns (numeric)
Example: 0

Detailed configuration of measurement sense parameters

Command Type Description
SENS:FUNC '{function}' command Select measurement function
Details
Parameters
  • function (enum) — Must be quoted with single quotes Values: VOLT, CURR, RES, CHAR
Example SENS:FUNC 'VOLT'
SENS:FUNC? query Query current measurement function
Details
Returns (string)
Example: "VOLT:DC"
SENS:VOLT:RANG {range} command Set voltage measurement range
Details
Parameters
  • range (numeric) — 2, 20, or 200 volts or MIN|MAX|DEF
SENS:VOLT:RANG? query Query voltage measurement range
Details
Returns (numeric)
Example: +2.00000000E+01
SENS:VOLT:RANG:AUTO {state} command Enable/disable voltage autoranging
Details
Parameters
  • state (enum) Values: ON, OFF
SENS:CURR:RANG {range} command Set current measurement range
Details
Parameters
  • range (numeric) — 20e-12 to 20e-3 or MIN|MAX|DEF
SENS:CURR:RANG? query Query current measurement range
Details
Returns (numeric)
Example: +2.00000000E-09
SENS:CURR:RANG:AUTO {state} command Enable/disable current autoranging
Details
Parameters
  • state (enum) Values: ON, OFF
SENS:RES:MODE {mode} command Set resistance measurement mode
Details
Parameters
  • mode (enum) — NORM=auto V-source, MAN=manual V-source control Values: NORM, MAN
Note: In MAN mode, use SOUR:VOLT to set the test voltage for resistance measurement
SENS:RES:MODE? query Query resistance measurement mode
Details
Returns (string)
Example: NORM
SENS:VOLT:NPLC {nplc} command Set voltage measurement integration time in power line cycles
Details
Parameters
  • nplc (numeric) — 0.01, 0.1, 1, 5, 10 or MIN|MAX
Note: Higher NPLC = better noise rejection but slower measurement
SENS:VOLT:NPLC? query Query voltage integration time
Details
Returns (numeric)
Example: +5.00000000E+00
SENS:CURR:NPLC {nplc} command Set current measurement integration time in power line cycles
Details
Parameters
  • nplc (numeric) — 0.01, 0.1, 1, 5, 10 or MIN|MAX
SENS:CURR:NPLC? query Query current integration time
Details
Returns (numeric)
Example: +5.00000000E+00
SENS:AVER {state} command Enable/disable digital averaging filter
Details
Parameters
  • state (enum) Values: ON, OFF
SENS:AVER? query Query averaging filter state
Details
Returns (numeric)
Example: 0
SENS:AVER:COUN {count} command Set number of readings to average
Details
Parameters
  • count (numeric) — 1 to 100
SENS:AVER:TCON {type} command Set averaging filter type
Details
Parameters
  • type (enum) — REP=repeating, MOV=moving average Values: REP, MOV

Trigger system configuration for the arm-trigger-sample model

Command Type Description
TRIG:SOUR {source} command Set trigger source
Details
Parameters
  • source (enum) — BUS=*TRG/GET, IMM=immediate, TIM=timer, TLIN=trigger link, EXT=external Values: BUS, IMM, TIM, TLIN, EXT
TRIG:SOUR? query
Details
Returns (string)
Example: IMM
TRIG:COUN {count} command Set number of triggers to accept
Details
Parameters
  • count (numeric) — 1 to 2500 or MIN|MAX|INF
TRIG:COUN? query
Details
Returns (numeric)
Example: +1
TRIG:DEL {seconds} command Set trigger delay
Details
Parameters
  • seconds (numeric) — Delay in seconds (0 to 999999) or MIN|MAX|DEF
TRIG:DEL? query
Details
Returns (numeric)
Example: +0.00000000E+00
SAMP:COUN {count} command Set number of readings per trigger (sample count)
Details
Parameters
  • count (numeric) — 1 to 2500 or MIN|MAX
SAMP:COUN? query
Details
Returns (numeric)
Example: +1
ARM:SOUR {source} command Set arm layer source
Details
Parameters
  • source (enum) — Source for the arm layer event Values: BUS, IMM, TIM, TLIN, EXT, MAN
ARM:SOUR? query
Details
Returns (string)
Example: IMM
ARM:COUN {count} command Set arm layer count
Details
Parameters
  • count (numeric) — 1 to 2500 or MIN|MAX|INF
ARM:COUN? query
Details
Returns (numeric)
Example: +1

Math and calculation functions applied to measurements

Command Type Description
CALC:FUNC {function} command Select calculation function
Details
Parameters
  • function (enum) — NONE=disabled, PERC=percent deviation from reference Values: NONE, PERC
CALC:STAT {state} command Enable/disable calculation
Details
Parameters
  • state (enum) Values: ON, OFF
CALC:NULL {state} command Enable/disable relative (null/offset) mode
Details
Parameters
  • state (enum) Values: ON, OFF
Note: When enabled, the stored null value is subtracted from each reading
CALC:NULL:ACQ command Acquire a new null offset value from the current reading
CALC:NULL:OFFS {value} command Manually set the null offset value
Details
Parameters
  • value (numeric) — Offset value in current measurement units
CALC:NULL:OFFS? query Query the current null offset value
Details
Returns (numeric)
Example: +0.00000000E+00
CALC:LIM:STAT {state} command Enable/disable limit testing
Details
Parameters
  • state (enum) Values: ON, OFF
CALC:LIM:LOW {value} command Set lower limit for limit test
Details
Parameters
  • value (numeric)
CALC:LIM:UPP {value} command Set upper limit for limit test
Details
Parameters
  • value (numeric)
CALC:LIM:FAIL? query Query limit test result (0=pass, 1=fail)
Details
Returns (numeric)
Example: 0

System configuration, zero check, zero correct, guard, and autozeroing

Command Type Description
SYST:ERR? query Read and remove one error from error queue
Details
Returns (string) — Error code and message
Example: +0,"No error"
SYST:ZCH {state} command Enable/disable zero check (input protection relay)
Details
Parameters
  • state (enum) Values: ON, OFF
Note: Zero check opens the input relay to protect the input from overload. Must be disabled to take readings. Enable before connecting/disconnecting signals to protect the input.
SYST:ZCH? query Query zero check state
Details
Returns (numeric)
Example: 1
SYST:ZCOR {state} command Enable/disable zero correct (offset correction acquired with zero check on)
Details
Parameters
  • state (enum) Values: ON, OFF
Note: Acquires an offset reading with zero check ON, then subtracts it from subsequent measurements. Must have zero check enabled first, then acquire correction, then disable zero check.
SYST:ZCOR? query Query zero correct state
Details
Returns (numeric)
Example: 0
SYST:ZCOR:ACQ command Acquire a new zero correct value (zero check must be enabled)
Details
Note: Takes a reading with zero check on to establish the correction offset
SYST:GUAR {state} command Enable/disable guarded measurement mode
Details
Parameters
  • state (enum) Values: ON, OFF
Note: Guard drives the cable shield at the same potential as the inner conductor, eliminating leakage current errors. Essential for measurements above 1 Gohm.
SYST:GUAR? query Query guard mode state
Details
Returns (numeric)
Example: 0
SYST:AZER {state} command Enable/disable auto-zero for drift correction
Details
Parameters
  • state (enum) Values: ON, OFF
Note: Auto-zero takes periodic reference readings to compensate for thermal drift. Disabling doubles measurement speed.
SYST:AZER? query Query auto-zero state
Details
Returns (numeric)
Example: 1
SYST:TSC {state} command Enable/disable external temperature reading via thermocouple input
Details
Parameters
  • state (enum) Values: ON, OFF
Note: When enabled, temperature is appended to readings via the rear-panel thermocouple connector
SYST:TSC? query Query temperature reading state
Details
Returns (numeric)
Example: 0

Trace/buffer storage for reading sequences

Command Type Description
TRAC:CLE command Clear all readings from the buffer
TRAC:POIN {size} command Set buffer size (number of readings to store)
Details
Parameters
  • size (numeric) — 1 to 55000 (depends on elements stored)
TRAC:POIN? query Query buffer size
Details
Returns (numeric)
Example: +100
TRAC:POIN:ACT? query Query number of readings currently stored in buffer
Details
Returns (numeric)
Example: +0
TRAC:FEED {source} command Select data source fed into buffer
Details
Parameters
  • source (enum) — SENS=raw readings, CALC=calculated values, NONE=disable Values: SENS, CALC, NONE
TRAC:FEED:CONT {control} command Set buffer control mode
Details
Parameters
  • control (enum) — NEXT=fill then stop, NEV=disable storage Values: NEXT, NEV
TRAC:DATA? query Read all stored readings from the buffer
Details
Returns (string) — Comma-separated readings
Example: +1.23456789E-12,+1.23456790E-12,...
TRAC:TST:FORM {format} command Set timestamp format for buffered readings
Details
Parameters
  • format (enum) — ABS=absolute timestamp, DELT=delta from previous reading Values: ABS, DELT

Control output data format and elements

Command Type Description
FORM:ELEM {elements} command Select data elements to include in readings
Details
Parameters
  • elements (string) — Comma-separated: READ, UNIT, TST, RNUM, CHAN, ETEM, HUM, STAT, VSO
Note: READ=reading value, TST=timestamp, RNUM=reading number, CHAN=channel, ETEM=external temperature, HUM=humidity, STAT=status, VSO=voltage source output
FORM:ELEM? query Query which data elements are enabled
Details
Returns (string)
Example: READ
FORM:DATA {format} command Set data transfer format
Details
Parameters
  • format (enum) — ASC=ASCII text, REAL=IEEE 754 binary, SRE=single-precision swapped Values: ASC, REAL,32, SRE
Note: REAL formats are faster for bulk data transfer but require binary parsing
FORM:DATA? query
Details
Returns (string)
Example: ASC

Measure ultra-high resistance (>1 Gohm) using the built-in voltage source with zero check/correct for accuracy

1

Reset to known state

*RST
2

Clear status registers

*CLS
3

Enable zero check (protects input)

SYST:ZCH ON
4

Configure for resistance measurement

CONF:RES
5

Set manual resistance mode for voltage source control

SENS:RES:MODE MAN
6

Set voltage source to desired test voltage

SOUR:VOLT 100
7

Enable guard mode for ultra-high impedance

SYST:GUAR ON
8

Acquire zero correct offset while zero check is still on

SYST:ZCOR:ACQ
9

Enable zero correct subtraction

SYST:ZCOR ON
10

Disable zero check to connect to DUT

SYST:ZCH OFF
11

Enable voltage source output

SOUR:VOLT:STAT ON
12

Read the resistance value

READ?
Expected: +X.XXXXXXXXE+XX
13

Disable voltage source when done

SOUR:VOLT:STAT OFF
14

Re-enable zero check to protect input

SYST:ZCH ON

Measure sub-picoamp DC current with zero check/correct for maximum accuracy

1

Reset to known state

*RST
2

Clear status registers

*CLS
3

Enable zero check (protects input)

SYST:ZCH ON
4

Configure for current measurement on lowest range

CONF:CURR 20e-12
5

Set slow integration for best noise rejection

SENS:CURR:NPLC 10
6

Acquire zero correct offset

SYST:ZCOR:ACQ
7

Enable zero correct subtraction

SYST:ZCOR ON
8

Disable zero check to begin measuring

SYST:ZCH OFF
9

Read the current value

READ?
Expected: +X.XXXXXXXXE-XX
10

Re-enable zero check when done

SYST:ZCH ON