-
RE: Voltage compliance issue in picoammeter 6487
If you are seeing the OCOMP indicator when you turn the voltage source on, this means the maximum current (current limit) has been encountered.
If this occurs even for open circuit, I suspect some malfunction in the instrument, or your cabling is not what you think it is.From front panel, you can adjust the amount of current limit.
Both the reference and user manuals detail the procedure.
-
RE: Unable to set Source Current for SMU (Four Point Probe Experiment)
See if this application note helps:
Four Point Probe Resistivity with 2450 -
RE: communicate with two keithley via two gpib cables using python
You have two keithleys and two gpib cables.
But how many GPIB interface boards does the computer have?
If only one gpib card in the PC, then only one program can take charge of it at a time.
A single program that sends commands to two different gpib address would be needed for simultaneous use of both keithleys. -
RE: DMM 2701 - Ethernet conection - The web page open but not able to connect to 2701
The model 2701 uses port 1394 for the LAN communication. -
RE: Cannot get 2500 readings per second with Keithley 2700
You can try turning off the display: :DISPLAY:ENABLE:STAT OFF
I found an FAQ on tek.com for this topic. It is indicating that the TRACE buffer is not the fastest one.
Max Reading Rate from 2700, 2701 or 2750
Alternate commands:*RST :SENSE:FUNC 'VOLT:DC' :SENSE:VOLT:NPLC 0.01 :SENSE:VOLT:RANGE 10 :SENSE:VOLT:AVER:STAT OFF :SAMPLE:COUNT 1000 :TRIG:DELAY 0.0 :SYSTEM:AZERO:STAT OFF :DISPLAY:ENABLE:STAT OFF :READ? Now read the data... To check for maximum speed apply a 1V RMS at 2Hz to the input. Run the above command sequence. The 1000 readings should show one complete cycle or less. This shows the meter is taking data at least at a rate of 2000 readings per second.
-
RE: Using Keithley 3706A with a python script
Here is some Python sample code for scanning some channels with model 3706A:import pyvisa import time import matplotlib.pyplot as plt import pandas as pd def check_error(): status = my3706A.read_stb() if int(status) & 4 == 4 : #test if the EAV (error available) bit is set error_response = my3706A.query("print(errorqueue.next())") print(error_response) else: print("No Errors") def get_scanState(): my3706A.write("scanState, scanCount, stepCount, lastReading = scan.state()") return int(float(my3706A.query("print(tonumber(scanState))"))) DEBUG = 0 my3706A = pyvisa.ResourceManager().open_resource('TCPIP0::192.168.1.214::INSTR') #my3706A = pyvisa.ResourceManager().open_resource('USB0::0x05E6::0x3706::04428124::INSTR') # Connect to the keithley and set it to a variable named multimeter. my3706A.timeout = 10000 #number of msec to wait for VISA command completions #my3706A.write("") #put instrument into known state my3706A.write('reset()') my3706A.write('status.reset()') my3706A.write('errorqueue.clear()') #allocate a buffer for the measurements my3706A.write('buf=dmm.makebuffer(1000)') my3706A.write('buf.clear()') my3706A.write('buf.appendmode=1') my3706A.write('buf.collectchannels=1') if DEBUG: check_error() #configure the DMM settings my3706A.write("dmm.func= dmm.DC_VOLTS") # TWO_WIRE_OHMS DC_VOLTS my3706A.write("dmm.range=1") my3706A.write("dmm.autorange=1") my3706A.write("dmm.nplc= 1") #0.0005 to 15 for 60Hz power my3706A.write("dmm.autozero= dmm.ON") my3706A.write("dmm.autodelay= dmm.ON") if DEBUG: check_error() #associate these dmm settings with a configuration name # do not use a factory preset name, e.g., 'dcvolts' # custom settings = requires custom name my3706A.write('dmm.configure.set("my_dcvolts")') if DEBUG: check_error() #associate the dmm config with channels my3706A.write('dmm.setconfig("1001:1008", "my_dcvolts")') #define a scan my3706A.write('scan.measurecount=1') # one reading per scan my3706A.write("scan.create('1001:1008')") my3706A.write("scan.scancount = 10") # 10 scans # now that scan is setup, run the scan my3706A.write("buf.clear()") # just in case, clear the buffer of any content #my3706A.write("scan.execute(buf)") # this one does not return until scan completes my3706A.write("scan.background(buf)") # this one returns; Python needs to coordinate with done. # setup a while loop to exit when scan state goes to 6 = scan.SUCCESS = done script_running = True DEBUG_LOOP = 0 while script_running: present_state = get_scanState() if DEBUG_LOOP: print("Scan State: " + str(present_state)) if present_state == 6: script_running = False time.sleep(0.5) #delay before asking again #ask for the data my3706A.write("printbuffer(1, buf.n, buf.relativetimestamps, buf.readings)") raw_data = my3706A.read() # raw data will be comman delimited string: # time, ch1, time, ch2, time, ch3, time, ch4, time, ch5, time... # parse the data raw_data_array = raw_data.split(",") timestamps = [] chan1001 = [] chan1002 = [] chan1003 = [] chan1008 = [] num_channels = 8 num_elements = num_channels * 2 #time, ch1, time, ch2, time, ch3, time, ch4, time, ch5, time.... for element in range(0, len(raw_data_array), num_elements): timestamps.append(float(raw_data_array[element])) chan1001.append(float(raw_data_array[element+1])) chan1002.append(float(raw_data_array[element+3])) chan1003.append(float(raw_data_array[element+5])) chan1008.append(float(raw_data_array[element+15])) #create dataframe data = {'Timestamp': timestamps, 'Channel 1': chan1001, 'Channel 2': chan1002, 'Channel 3': chan1003, 'Channel 8': chan1008} df = pd.DataFrame(data) # Set 'Timestamp' as the index df.set_index('Timestamp', inplace=True) # Print the DataFrame print(df) # ******************** Simple Graph ****************** plt.figure() plt.subplot(3, 1, 1) # nrows=3, ncols=1, index=1 plt.plot(timestamps, chan1001, 'o-b') plt.subplot(312) plt.plot(timestamps, chan1002, 'x-r') plt.subplot(313) plt.plot(timestamps, chan1003, '.-g') plt.show() my3706A.clear() my3706A.close() -
RE: 2450 Cyclic Voltametry
The electrochemistry scripts for use with 2450, 2460 or 2461 are not open source.
The scripts can be obtained on model number EC-UPGRADE
EC-UPGRADE Kit Quick Start Guide -
RE: DAQ6510 OverflowHz/V Issue
-
RE: Questions about 3706
On each of the DB78 connectors on the 3720 card, there are the +ILK and -ILK pins.
Make sure to jumper these two pins together to enable the closure of the backplane relay.
NOTE: when using the 3720-ST wiring accessory, these jumpers are made for you. -
RE: Count number of time a relay on a scanner card switches
The IVI driver did not define a means to query that information from the card.
The IVI driver does however have WriteString and ReadString as part of the DirectIO interface.//ask for closure counts from a channel list driver.System.DirectIO.WriteString("print(channel.getcount(\"1001,1911\"))"); resultsListBox.Items.Add(driver.System.DirectIO.ReadString());
