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()
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
Code: Select all
time.sleep- NPLC-Verzögerungen
- Probleme mit der automatischen Bereichswahl
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.
Mobile version