@@ -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