Scripting tool
Script your own high-speed measurement sequences on the real-time system with the scripting tool QT SI 5
When speed and precise timing matter, measurement routines just can’t be fast enough. With a time-deterministic approach and 50 μs time interval between commands, scripting significantly boosts execution speed and reduces measurement time.
The module is seamlessly integrated in standard measurement modules: Scripts can be easily called from other modules, and custom functions or pre-defined measurement can be started from within a script.
The scripting module is not intended as a replacement of the Nanonis Programming Interface, but as complementary module: It allows 100x faster execution speed while the Programming Interface offers more flexibility.
See below for some script examples.
KEY FEATURES
- Fast and precise: Up to 20’000 commands/s executed on the real-time system
- Seamless integration with standard modules and programming interface
- FOR-loops for repeated measurement loops
- IF-commands for conditional execution and real-time feedback
- Data acquisition options for customized measurements
Script example: SQUID maximum current determination
The following script solves an issue typical for SQUID measurements where it is necessary to detect the maximum current at which the SQUID will have zero voltage across the device. But the script could also be used to detect any threshold.
The script increases the voltage (which is converted to currrent over a resistor or voltage controlled current source) on a user-selectable output and monitors an input channel. As soon as the signal at the input channel reaches a certain threshold, ramping of the output stops and the final output voltage value before the ramping stopped is stored.
This measurement is typically either slow, requires signal generators with complex triggering, or will run without feedback driving the SQUID in its non-superconducting state for longer periods of time with the risk of damaging the device. The very simple script shown below solves all these issues offering a very fast and safe method of determining the transition point.
The script consists of two FOR loops: The first one performs a set of voltage ramps to determine the voltage (and therefore current) corresponding to the transition point (100 ramps in the example). The second loop generates the measurement points within a voltage ramp. An IF condition in the second loop stops the loop if the signal at one of the inputs (input 5 in the example) is above a certain threshold (15 mV in the example), and then writes the last output value into a data buffer.
The module runs 20'000 commands per second, meaning that the complete sequence can be run in significantly less than a minute.
Note that these are not the input commands of the scripting module, this is the script file generated by the module
[Script]
FOR_Loop("Averages";100)
UserOutput.Set(5;5.000E-3)
FOR_Loop("Trace";1000)
UserOutput.AddIncrement(5;2.000E-5)
IF("I_1;Input 5>1.500E-2)
Acquire_1(1;1.000E-4;Hold)
BREAK("Trace")
End_IF("I_1)
End_FOR("Trace")
End_FOR("Averages")