Unerklärliche Verzögerung zwischen PyVISA – USB – GPIB – Keithley 2401Python

Python-Programme
Anonymous
 Unerklärliche Verzögerung zwischen PyVISA – USB – GPIB – Keithley 2401

Post by Anonymous »

Ich versuche, eine Strom-Spannungs-Kurve mit einer Keithley 2401 SMU zu messen. Der Anschluss erfolgt über GPIB an USB; Ich steuere es über PyVISA (Python 3.10):

Code: Select all

def main():
rm = pyvisa.ResourceManager()
k = cast(MessageBasedResource, rm.open_resource(ADDR))

k.timeout = 60000
k.write_termination = "\n"
k.read_termination = "\n"

# print(f"[{datetime.now():%H:%M:%S}] Connected: {k.query('*IDN?').strip()}")

# ---- Force known idle state ----
k.write(":ABOR")
k.write("*RST")
k.write(":OUTP OFF")

# ---- Minimal configuration ----
k.write(":SOUR:FUNC VOLT")
k.write(":SOUR:VOLT:RANG 20")
k.write(":SENS:FUNC 'CURR'")
k.write(f":SENS:CURR:PROT {I_COMPLIANCE_AMPS}")
k.write(":SENS:CURR:RANG:AUTO ON")
k.write(":TRIG:SOUR IMM")
k.write(":TRIG:COUN 1")
k.write(":FORM:ELEM CURR")
k.write(":OUTP ON")

print("\npoint | t_set_v (s) | t_read (s) | current (A)")
print("-" * 50)

for v in V_POINTS:
# ---- Time voltage set ----
t0 = now()
k.write(f":SOUR:VOLT {v}")
time.sleep(0.0)
t_set = now() - t0

# ---- Time read ----
t1 = now()
resp = k.query(":MEAS:CURR?")
t_read = now() - t1

i = float(resp)

print(f"{v:4.1f}  | {t_set:10.4f} | {t_read:9.4f} | {i: .3e}")

k.write(":OUTP OFF")
k.close()
rm.close()
Ausgabe:

Code: Select all

point | t_set_v (s) | t_read (s) | current (A)
--------------------------------------------------
0.0  |     0.0022 |    0.1809 | -2.524e-11
0.4  |    16.7798 |    0.0776 |  2.465e-11
0.8  |    16.7799 |    0.0847 | -5.544e-11
1.2  |    16.7799 |    0.0728 |  1.100e-11
1.6  |    16.7799 |    0.0848 |  2.844e-07
2.0  |    16.7798 |    0.0694 |  1.008e-06
Wie Sie sehen können, gibt es bei diesen Messungen eine wiederholbare Verzögerung von 16,7799 Sekunden. Ich habe mir Folgendes angesehen:
  • Code: Select all

    time.sleep
  • NPLC-Verzögerungen
  • Probleme mit der automatischen Bereichswahl
Ich habe nichts gefunden, was diese Verzögerungen beseitigen kann. Wenn ich ein time.sleep hinzufüge, kann ich dafür sorgen, dass es länger dauert, aber nie unter 16,7 Sekunden.
Gibt es bekannte NI-Treiber- oder PyVISA-Probleme, die diese Verzögerung verursachen können? Es scheint ein GPIB-Handshake-Problem oder eine NPLC-Verzögerung zu sein (1000 Stromzyklen bei 60 Hz = 16,67 Sekunden) ... aber ich habe nichts gefunden.
Dies war früher ein zufälliges Problem, z. B. Während eines Sweeps tauchte es an 1 oder 2 Punkten auf. Jetzt erfolgt es bei jeder Messung.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post
  • Unerklärliche Verzögerung zwischen PyVISA – USB – GPIB – Keithley 2401
    by Anonymous » » in Python
    0 Replies
    1 Views
    Last post by Anonymous
  • Python Pyvisa GPIB -Verbindungsproblem
    by Anonymous » » in Python
    0 Replies
    22 Views
    Last post by Anonymous
  • Python Pyvisa GPIB -Verbindungsproblem
    by Anonymous » » in Python
    0 Replies
    15 Views
    Last post by Anonymous
  • Problem mit der Python pyVISA GPIB-Verbindung
    by Anonymous » » in Python
    0 Replies
    3 Views
    Last post by Anonymous
  • Senden von SCPI/GPIB -Befehlen über USB von C#
    by Anonymous » » in C#
    0 Replies
    34 Views
    Last post by Anonymous