• RE: Keithley DMM6500 - random jump touch issue

    Thanks for the videos.
    It behaves like the touch panel is receiving touch to change measure function.
    Something is wrong in your display.

    What happens if you place the instrument on different screen?  Swipe to graph or stats screen?  Does it stay there?

     
  • RE: Direct current overflow issue in Keithley DMM 6500 digital multimeter

    Seems you are saying that the DCI measure function returns overflow for the 3A and lower ranges.
    Both front and rear.  No connections and still get overflow.
    However, the 10A range available on rear only, is somewhat functional.

    To me, it sounds like a malfunctioning meter.
    Firmware unlikely to help such a symptom.

    Separate from DCI is the digitize current measure function.  Does that still work for the 3A and lower ranges?
  • 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.
     

    From Reference Manual:

  • 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:
    1. *RST
    2.  
    3. :SENSE:FUNC 'VOLT:DC'
    4.  
    5. :SENSE:VOLT:NPLC 0.01
    6.  
    7. :SENSE:VOLT:RANGE 10
    8.  
    9. :SENSE:VOLT:AVER:STAT OFF
    10.  
    11. :SAMPLE:COUNT 1000
    12.  
    13. :TRIG:DELAY 0.0
    14.  
    15. :SYSTEM:AZERO:STAT OFF
    16.  
    17. :DISPLAY:ENABLE:STAT OFF
    18.  
    19. :READ?
    20.  
    21. Now read the data...
    22.  
    23. To check for maximum speed apply a 1V RMS at 2Hz to the input. Run the above command sequence.
    24.  
    25. 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:
    1. import pyvisa                                              
    2. import time                                                
    3. import matplotlib.pyplot as plt                
    4. import pandas as pd
    5.  
    6.  
    7. def check_error():
    8.     status = my3706A.read_stb()
    9.     if int(status) & 4 == 4 :    #test if the EAV (error available) bit is set
    10.         error_response = my3706A.query("print(errorqueue.next())")
    11.         print(error_response)
    12.     else:
    13.         print("No Errors")
    14.  
    15. def get_scanState():
    16.     my3706A.write("scanState, scanCount, stepCount, lastReading = scan.state()")
    17.     return int(float(my3706A.query("print(tonumber(scanState))")))
    18.    
    19.  
    20. DEBUG = 0
    21. my3706A = pyvisa.ResourceManager().open_resource('TCPIP0::192.168.1.214::INSTR')
    22. #my3706A = pyvisa.ResourceManager().open_resource('USB0::0x05E6::0x3706::04428124::INSTR') # Connect to the keithley and set it to a variable named multimeter.
    23. my3706A.timeout = 10000  #number of msec to wait for VISA command completions
    24. #my3706A.write("")
    25. #put instrument into known state
    26. my3706A.write('reset()')
    27. my3706A.write('status.reset()')
    28. my3706A.write('errorqueue.clear()')
    29. #allocate a buffer for the measurements
    30. my3706A.write('buf=dmm.makebuffer(1000)')
    31. my3706A.write('buf.clear()')
    32. my3706A.write('buf.appendmode=1')
    33. my3706A.write('buf.collectchannels=1')
    34.  
    35. if DEBUG: check_error()
    36. #configure the DMM settings
    37. my3706A.write("dmm.func= dmm.DC_VOLTS")  #   TWO_WIRE_OHMS   DC_VOLTS
    38. my3706A.write("dmm.range=1")
    39. my3706A.write("dmm.autorange=1")
    40. my3706A.write("dmm.nplc= 1")   #0.0005 to 15 for 60Hz power
    41. my3706A.write("dmm.autozero= dmm.ON")
    42. my3706A.write("dmm.autodelay= dmm.ON")
    43.  
    44. if DEBUG: check_error()
    45. #associate these dmm settings with a configuration name
    46. # do not use a factory preset name, e.g., 'dcvolts'
    47. # custom settings = requires custom name
    48. my3706A.write('dmm.configure.set("my_dcvolts")')
    49.  
    50. if DEBUG: check_error()
    51. #associate the dmm config with channels
    52. my3706A.write('dmm.setconfig("1001:1008", "my_dcvolts")')
    53.  
    54.  
    55. #define a scan
    56. my3706A.write('scan.measurecount=1')  # one reading per scan
    57. my3706A.write("scan.create('1001:1008')")
    58. my3706A.write("scan.scancount = 10")     # 10 scans
    59. # now that scan is setup, run the scan
    60. my3706A.write("buf.clear()")   # just in case, clear the buffer of any content
    61. #my3706A.write("scan.execute(buf)")  # this one does not return until scan completes
    62. my3706A.write("scan.background(buf)")  # this one returns;  Python needs to coordinate with done.
    63.  
    64. # setup a while loop to exit when scan state goes to 6 = scan.SUCCESS = done
    65. script_running = True
    66. DEBUG_LOOP = 0
    67. while script_running:
    68.     present_state = get_scanState()
    69.     if DEBUG_LOOP: print("Scan State: " + str(present_state))
    70.     if present_state == 6:
    71.         script_running = False
    72.     time.sleep(0.5) #delay before asking again
    73.  
    74. #ask for the data
    75. my3706A.write("printbuffer(1, buf.n, buf.relativetimestamps, buf.readings)")
    76. raw_data = my3706A.read()
    77. # raw data will be comman delimited string:
    78. # time, ch1, time, ch2, time, ch3, time, ch4, time, ch5, time...
    79. # parse the data
    80. raw_data_array = raw_data.split(",")
    81. timestamps = []
    82. chan1001 = []
    83. chan1002 = []
    84. chan1003 = []
    85. chan1008 = []
    86. num_channels = 8
    87. num_elements = num_channels * 2  #time, ch1, time, ch2, time, ch3, time, ch4, time, ch5, time....
    88. for element in range(0, len(raw_data_array), num_elements):
    89.     timestamps.append(float(raw_data_array[element]))
    90.     chan1001.append(float(raw_data_array[element+1]))
    91.     chan1002.append(float(raw_data_array[element+3]))
    92.     chan1003.append(float(raw_data_array[element+5]))
    93.     chan1008.append(float(raw_data_array[element+15]))
    94. #create dataframe
    95. data = {'Timestamp': timestamps, 'Channel 1': chan1001, 'Channel 2': chan1002, 'Channel 3': chan1003, 'Channel 8': chan1008}
    96. df = pd.DataFrame(data)
    97.  
    98. # Set 'Timestamp' as the index
    99. df.set_index('Timestamp', inplace=True)
    100. # Print the DataFrame
    101. print(df)
    102. # ********************  Simple Graph ******************
    103. plt.figure()
    104. plt.subplot(3, 1, 1) # nrows=3, ncols=1, index=1
    105. plt.plot(timestamps, chan1001, 'o-b')
    106. plt.subplot(312)
    107. plt.plot(timestamps, chan1002, 'x-r')
    108. plt.subplot(313)
    109. plt.plot(timestamps, chan1003, '.-g')
    110. plt.show()
    111.  
    112.  
    113. my3706A.clear()
    114. 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

    In attached document, is more info and a sample TSP script.