-
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">If I understand, you want to sweep or source a series of voltage values but do it from a Loop on the PC side where you send a command for each source level.</span></span></span><br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">And if also obtaining measurements, from your loop you are also sending commands to cause a current measurement to occur.</span></span></span><br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">You will have overhead and possibly some timing variation by the loop-based approach.</span></span></span><br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">Using TSP command set and Python, I have this code that does the loop and obtains a measurement.</span></span></span><br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">The measurements are sent to PC at the end (one bus transfer).</span></span></span><br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">Duration at each source level is about 900usec. Scope shot image uploaded.</span></span></span><br>
<br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">If I instead send each measurement one by one, the duration increases to about 3.6msec; I have set the integration rate to fastest and turned off autozero.</span></span></span><br>
<br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">If you know source values ahead of time and can load them into a Source Config List, you can get faster operations.</span></span></span><br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">From datasheet for 2450, you can approach 1700 Hz Source-Measure rate at 0.01 NPLC.</span></span></span><br>
<span style="font-size:11pt;"><span style="line-height:107%;"><span style="font-family:Calibri,sans-serif;">Look at the System Measurement Speeds table in datasheet (pg 10).</span></span></span>
<pre class="linenums prettyprint">my_instr.write("reset()")
my_instr.write("status.clear()")
my_instr.write("errorqueue.clear()")
MEAS_RANGE = 100e-3
cmd_list = ["smu.source.func = smu.FUNC_DC_VOLTAGE",
            "smu.source.autorange = smu.OFF",
            "smu.source.range = 20",
            "smu.source.ilimit.level = " + str(MEAS_RANGE),
            "smu.source.delay = 0",
            "smu.source.autodelay = smu.OFF",
            "smu.source.readback = smu.OFF",
            "smu.measure.func = smu.FUNC_DC_CURRENT",
            "smu.measure.autorange = smu.OFF",
            "smu.measure.range = " + str(MEAS_RANGE),
            "smu.measure.nplc = 0.01",
            "smu.measure.autozero.enable = smu.OFF"
            ]
    
for cmd in cmd_list:
    my_instr.write(cmd)
    
    
#lets loop thru some source levels and measure speed with scope
debug = 1
voltage_list = {}
for i in range(0, 11):
    voltage_list[i] = i/10
print(voltage_list)    
    
my_instr.write("smu.source.output = smu.ON")
for j in range(0,1):
    for i in range( 0 ,len(voltage_list)):
        my_instr.write("smu.source.level = " + str(voltage_list[i]))
        my_instr.write("smu.measure.read()")   #obtain a reading into the buffer
        #print(my_instr.query("print(smu.measure.read())"))  # this will slow you down!
        
           
#all done, turn output off
my_instr.write("smu.source.level = 0")
my_instr.write("smu.source.output = smu.OFF")
#bring the data back from the buffer
print(my_instr.query("printbuffer(1, defbuffer1.n, defbuffer1.readings)"))
</pre>
-
The 2600-PCT-2B contains two SourceMeter models:  2651A and 2636B. Many (not all) of the specs you seek will be in the datasheet for the individual SMUs. I encourage you to contact your closest sales office and discuss your application and concerns.
-
Is the sample in any sort of shielded test fixture?<br>
<br>
Double check your connections.  Are you making use of meter-connect to connect LO of Amps meter to the LO of the V-Source?<br>
<br>
When was your electrometer last calibrated? Perhaps try with an axial leaded high ohms device as practice and to raise confidence in function of the instrument.<br>
<br>
There are many instructional videos on the 6517B web page.<br>
Try this one:  https://www.tek.com/en/video/how-to/how-to-make-a-resistance-measurement-using-the-model-6517b-electrometer-with-auto-and-manual-modes
-
Check out this application note pertaining to our 4200A-SCS and 1/f noise measurements:<br>
<a href="https://www.tek.com/en/documents/application-note/flicker-noise-measurements-using-the-4200a-scs-parameter-analyzer">1/F Noise Measurement with 4200A-SCS</a>
-
Here is some Python code that might more in line with what you are trying to do.<br>
I will upload an image of the outputs I get.  I have been feeding a 500Hz sine wave to the DMM7510.
<pre class="linenums prettyprint">debug = 1
NUM_SAMPLES = 100
my_instr.write('*RST')
my_instr.write(':TRACe:MAKE "voltDigBuffer",' + str(NUM_SAMPLES))
my_instr.write(':DIG:FUNC "VOLTage"')
my_instr.write(':SENS:DIG:VOLT:INP AUTO')
my_instr.write(':SENS:DIG:VOLT:RANG 10')
my_instr.write(':SENS:DIG:VOLT:SRATE 5000')   #5KHz sample rate
my_instr.write(':SENS:DIG:VOLT:APER AUTO')
my_instr.write(':SENS:DIG:COUN ' + str(NUM_SAMPLES))
my_instr.write(':TRAC:POIN ' + str(NUM_SAMPLES))
my_instr.write(':TRAC:CLE')
my_instr.write(':TRAC:TRIG:DIG "voltDigBuffer"')
# wait for done before asking for the data
time.sleep(1)  #pause before asking for data
if debug == 1:
    my_instr.write(':TRAC:DATA? 95, 100, "voltDigBuffer", REL, READ')
    print("****** response to last five points query *************")
    print(my_instr.read())
#split, parse, etc.
"""
raw_data will be comma delimted string of 
timestamp, reading, timestamp, reading,... etc.
"""
#ask for all the data
#TODO:  adjust for NUM_SAMPLES
raw_data = my_instr.query(':TRAC:DATA? 1, 100, "voltDigBuffer", REL, READ')
raw_data_array = raw_data.split(',')
timestamps = []
Digitized_V = []
# use step of 2 because there are two elements per reading
for i in range(0, len(raw_data_array), 2):
    if len(raw_data_array[i]) > 0:
        timestamps.append(float(raw_data_array[i]))
        Digitized_V.append(float(raw_data_array[i+1]))
if debug == 1:
    print("******* Timestamps *******************")        
    print(timestamps)
    print("******** Voltage ******************")
    print(Digitized_V)
    print("**************************")
    print()
#graph it
plt.autoscale(True, True, True)
#plt.axis([0, 0.2, 0, 50e-6])
plt.plot(timestamps, Digitized_V, 'c--')
plt.show()
</pre>
-
In general, when the command you send ends with the question mark (a query type command), you should immediately follow with a read to pull the response to the query command off the output queue.<br>
<br>
You are sending more than one command in a row.  The first time you read, you will get the response from the first query command, not from the most recent.<br>
<br>
I'll attach a screen image of your code and the outputs but using a read after each query command.
-
Can you successfully ping the IP address of the instrument?<br>
What's the IP address of the computer from which you are trying this?<br>
<br>
From PuTTY, is straightforward to get a Telnet session on port 23.  See attached document.
-
The TP3005DM is not a model I recognize.  A google search shows it as made by company “TekPower” not Tektronix.<br>
<br>
Consider our various single channel models from the 2200 series.<br>
https://www.tek.com/en/products/keithley/dc-power-supplies/2200-dc-power-supply<br>
 
-
Are you moving the scope card between the two systems?  Or do they both have a scope card and just the one running KITE 9.1 is not working?<br>
<br>
If you are attempting to move the card between the two systems, it will not work.  The expected cards of the configuration is not designed to be modified in the field.  So if the KITE 9.1 system never had a scope card, it will not be accepted by the KCON config.<br>
<br>
Please clarify.
-
Ayoub,<br>
<br>
Your post seem off topic, so I created a different thread for managing 4200A-CVIV switch.  <br>
https://my.tek.com/tektalk/semi-para-analyzer/7654133b-38da-ed11-a81c-00224809317b<br>
<br>
Andrea<br>