Skip to content

Commit edb0b96

Browse files
author
Thomas Lemon
committed
Add parameter for fastsweep inter delay
1 parent cba622b commit edb0b96

File tree

1 file changed

+29
-5
lines changed

1 file changed

+29
-5
lines changed

src/qcodes/instrument_drivers/Keithley/_Keithley_2600.py

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class LuaSweepParameter(ParameterWithSetpoints[npt.NDArray, "Keithley2600Channel
3636
"""
3737
Parameter class to hold the data from a
3838
deployed Lua script sweep.
39+
40+
For more information on writing Lua scripts for the Keithley2600, please see
41+
https://www.tek.com/en/documents/application-note/how-to-write-scripts-for-test-script-processing-(tsp)
3942
"""
4043

4144
def _set_mode(self, mode: Literal["IV", "VI", "VIfourprobe"]) -> None:
@@ -110,13 +113,23 @@ def _fast_sweep(self) -> npt.NDArray:
110113
f"for index = 1, {steps} do",
111114
" target = startX + (index-1)*dX",
112115
f" {channel}.source.level{source} = target",
113-
f" {channel}.measure.{meas}({channel}.nvbuffer1)",
114-
"end",
115-
"format.data = format.REAL32",
116-
"format.byteorder = format.LITTLEENDIAN",
117-
f"printbuffer(1, {steps}, {channel}.nvbuffer1.readings)",
118116
]
119117

118+
# Only add delay code to lua script if greater than 0
119+
inter_delay = self.instrument.fastsweep_inter_delay.get_latest()
120+
if inter_delay > 0:
121+
script.append(f" delay({inter_delay})")
122+
123+
script.extend(
124+
[
125+
f" {channel}.measure.{meas}({channel}.nvbuffer1)",
126+
"end",
127+
"format.data = format.REAL32",
128+
"format.byteorder = format.LITTLEENDIAN",
129+
f"printbuffer(1, {steps}, {channel}.nvbuffer1.readings)",
130+
]
131+
)
132+
120133
return self.instrument._execute_lua(script, steps)
121134

122135
def get_raw(self) -> npt.NDArray:
@@ -629,6 +642,17 @@ def __init__(self, parent: Instrument, name: str, channel: str) -> None:
629642
)
630643
"""Stopping value of fastsweep. Can be current or voltage."""
631644

645+
self.fastsweep_inter_delay: Parameter[float, Self] = self.add_parameter(
646+
name="fastsweep_inter_delay",
647+
label="Fastsweep Inter Delay",
648+
initial_value=0,
649+
vals=vals.Numbers(min_value=0),
650+
unit="s",
651+
get_cmd=None,
652+
set_cmd=None,
653+
)
654+
"""Time in seconds to wait between setting a target value and taking a measurement."""
655+
632656
self.fastsweep_setpoints: FastSweepSetpoints = self.add_parameter(
633657
name="fastsweep_setpoints",
634658
label="Fastsweep setpoints",

0 commit comments

Comments
 (0)