Lab::Moose::Instrument::SignalRecovery7265 - Model 7265 Lock-In Amplifier
version 3.810
use Lab::Moose; # Constructor my $SR = instrument( type => 'SignalRecovery7265', connection_type => 'LinuxGPIB', min_units => 0, max_units => 1, max_units_per_step => 0.001, max_units_per_second => 1 );
max_units
min_units
max_units_per_step
max_units_per_second
$SR->set_imode(value => $imode);
Set input amplifier mode; valid arguments for imode are:
$imode == 0 --> Current Mode OFF $imode == 1 --> High Bandwidth Current Mode $imode == 2 --> Low Noise Current Mode
$SR->set_vmode(value => $vmode);
Set input channel and/or differental mode; valid arguments for vmode are:
$vmode == 0 --> Both inputs grounded (testmode) $vmode == 1 --> A input only $vmode == 2 --> -B input only $vmode == 3 --> A-B differential mode
$SR->set_fet(value => $fet);
Set input impedance and noise via selection of the initial stage transistor; valid values for fet are:
$fet == 0 --> Bipolar device, 10 kOhm input impedance, 2nV/sqrt(Hz) voltage noise at 1 kHz $fet == 1 --> FET, 10 MOhm input impedance, 5nV/sqrt(Hz) voltage noise at 1 kHz
$SR->set_float(value => $float);
Switch ground reference of the input connector on or off; valid values for float are:
$float == 0 --> input conector shield set to GROUND $float == 1 --> input conector shield set to FLOAT
$SR->set_cp(value => $cp);
Set input coupling to ac or dc; valid values are:
$cp == 0 --> input coupling mode AC\n $cp == 1 --> input coupling mode DC\n
$SR->set_sen(value => $value);
Set input sensitivity; valid values are:
SENSITIVITY (IMODE == 0) --> 2nV, 5nV, 10nV, 20nV, 50nV, 100nV, 200nV, 500nV, 1uV, 2uV, 5uV, 10uV, 20uV, 50uV, 100uV, 200uV, 500uV, 1mV, 2mV, 5mV, 10mV, 20mV, 50mV, 100mV, 200mV, 500mV, 1V\n SENSITIVITY (IMODE == 1) --> 2fA, 5fA, 10fA, 20fA, 50fA, 100fA, 200fA, 500fA, 1pA, 2pA, 5pA, 10pA, 20pA, 50pA, 100pA, 200pA, 500pA, 1nA, 2nA, 5nA, 10nA, 20nA, 50nA, 100nA, 200nA, 500nA, 1uA\n SENSITIVITY (IMODE == 2) --> 2fA, 5fA, 10fA, 20fA, 50fA, 100fA, 200fA, 500fA, 1pA, 2pA, 5pA, 10pA, 20pA, 50pA, 100pA, 200pA, 500pA, 1nA, 2nA, 5nA, 10nA\n
Every value can be entered via string, for example
$SR->set_sen(value => '100nV');
$SR->auto_sen(value => $amplitude);
Adjust the Lock-Ins sensitivity based on a specified amplitude value $amplitude. This function will select a sensitivity, that covers the given amplitude the best.
$SR->set_acgain(value => $acgain);
Preset Signal RECOVERY 7260 / 7265 Lock-in Amplifier
AC-GAIN == 0 --> 0 dB gain of the signal channel amplifier\n AC-GAIN == 1 --> 10 dB gain of the signal channel amplifier\n ... AC-GAIN == 9 --> 90 dB gain of the signal channel amplifier\n
$SR->set_linefilter(value => $linefilter);
Preset Signal Recovery 7260 / 7265 Lock-in Amplifier
LINE-FILTER == 0 --> OFF\n LINE-FILTER == 1 --> enable 50Hz/60Hz notch filter\n LINE-FILTER == 2 --> enable 100Hz/120Hz notch filter\n LINE-FILTER == 3 --> enable 50Hz/60Hz and 100Hz/120Hz notch filter\n
$SR->set_refchannel(value => $refchannel);
REF-CHANNEL == 'INT' --> internal reference input mode\n REF-CHANNEL == 'EXT LOGIC' --> external rear panel TTL input\n REF-CHANNEL == 'EXT' --> external front panel analog input\n
$SR->autophase();
Trigger an autophase procedure
$SR->set_refpha(value => $phase); $SR->set_phase(value => $phase);
REFERENCE PHASE can be between 0 ... 360°
Use set_refpha to instantly set the Lock-Ins phase, use set_phase for a linear step sweep to the desired phase. Like the Lab::Moose::Instrument::LinearStepSweep class, optional arguments for set_phase are
set_refpha
set_phase
Default = true. Set to false if you don't want the sweeping process to be printed on-screen.
Default = 1 [°]. Adjust the step size in degrees, can't be smaller than 0.001°.
Default = 30 [°/s]. Adjust the sweep rate in degrees per second, can't be smaller than 0.001°/s.
Note that set_phase is used in phase sweeps.
$SR->set_outputfilter_slope(value => $slope);
6dB --> 6dB/octave slope of output filter\n 12dB --> 12dB/octave slope of output filter\n 18dB --> 18dB/octave slope of output filter\n 24dB --> 24dB/octave slope of output filter\n
$SR->set_tc(value => $tc);
Preset the output(signal channel) low pass filters time constant tc of the Signal Recovery 7260 / 7265 Lock-in Amplifier
Filter Time Constant: 10us, 20us, 40us, 80us, 160us, 320us, 640us, 5ms, 10ms, 20ms, 50ms, 100ms, 200ms, 500ms, 1s, 2s, 5s, 10s, 20s, 50s, 100s, 200s, 500s, 1ks, 2ks, 5ks, 10ks, 20ks, 50ks, 100ks\n
$SR->set_offset(X => $x_offset, Y => $y_offset);
-300 to 300 --> Set the offset OFF --> disable the offset AUTO --> automatically set offset
$SR->source_level(value => $level);
Preset the oscillator output voltage of the Signal Recovery 7260 / 7265 Lock-in Amplifier
OSCILLATOR OUTPUT VOLTAGE can be between 0 ... 5V in steps of 1mV (Signal Recovery 7260) and 1uV (Signal Recovery 7265)
Use source_level(value => $level)) to jump to a desired amplitude, use set_level(value => $level) to slowly sweep to that amplitude.
$SR->set_frq(value => $frequency);
Preset the oscillator frequency of the Signal Recovery 7260 / 7265 Lock-in Amplifier
OSCILLATOR FREQUENCY can be between 0 ... 259kHz
WORK IN PROGRESS... This subroutines still has some bugs, please beware
$value=$SR->get_value(channel => $channel);
Makes a measurement using the actual settings. The CHANNELS defined by $channel are returned as floating point values. If more than one value is requested, they will be returned as an array.
CHANNEL can be:
in floating point notation: ----------------------------- 'X' --> X channel output\n 'Y' --> Y channel output\n 'MAG' --> Magnitude\n 'PHA' --> Signale phase\n 'XY' --> X and Y channel output\n 'MP' --> Magnitude and signal Phase\n 'ALL' --> X,Y, Magnitude and signal Phase\n
$SR->config_measurement( channel => $channel, nop => $number_of_points, interval => $interval, trigger => $trigger );
Preset the Signal Recovery 7260 / 7265 Lock-in Amplifier for a TRIGGERED measurement.
.
in percent of full range notation: ------------------------------------ 'X-' --> X channel output\n 'Y-' --> Y channel output\n 'MAG-' --> Magnitude\n 'PHA-' --> Signale phase\n 'XY-' --> X and Y channel output\n 'MP-' --> Magnitude and signal Phase\n 'ALL-' --> X,Y, Magnitude and signal Phase\n
Preset the NUMBER OF POINTS to be taken for one measurement trace. The single measured points will be stored in the internal memory of the Lock-in Amplifier. For the Signal Recovery 7260 / 7265 Lock-in Amplifier the internal memory is limited to 32.000 values.
--> If you request data for the channels X and Y in floating point notation, for each datapoint three values have to be stored in memory (X,Y and Sensitivity). --> So you can store effectivly 32.000/3 = 10666 datapoints. --> You can force the instrument not to store additionally the current value of the Sensitivity setting by appending a '-' when you select the channels, eg. 'XY-' instead of simply 'XY'. --> Now you will recieve only values between -30000 ... + 30000 from the Lock-in, which is called the full range notation. --> You can calculate the measurement value by ($value/100)*Sensitivity. This is easy if you used only a single setting for Sensitivity during the measurement, and it's very hard if you changed the Sensitivity several times during the measurment or even used the auto-range function.
Preset the STORAGE INTERVAL in which datavalues will be stored during the measurement. Note: the storage interval is independent from the low pass filters time constant tc.
Optional value. Presets the source where the trigger signal is expected. 'EXT' --> external trigger source 'INT' --> internal trigger source
DEF is 'INT'. If no value is given, DEF will be selected.
@data = $SR->get_data( sensitivity => $sensitivity, timeout => $timeout );
Reads all recorded values from the internal buffer and returns them as an (2-dim) array of floatingpoint values.
Example:
requested channels: X --> $SR->get_data(); returns an 1-dim array containing the X-trace as floatingpoint-values requested channels: XY --> $SR->get_data(); returns an 2-dim array: --> @data[0] contains an 1-dim array containing the X-trace as floatingpoint-values --> @data[1] contains an 1-dim array containing the Y-trace as floatingpoint-values
Note: Reading the buffer will not start before all predevined measurement values have been recorded. The LabVisa-script cannot be continued until all requested readings have been recieved.
SENSITIVITY is an optional parameter. When it is defined, it will be assumed that the data recieved from the Lock-in are in full range notation. The return values will be calculated by $value = ($value/100)*$sensitivity.
TIMEOUT is another optional parameter. Since it takes approximately 4ms per datapoint, with 25k-Points a default timeout of 100s should be sufficient.
$SR->trg();
Sends a trigger signal via the GPIB-BUS to start the predefined measurement. The LabVisa-script can immediatally be continued, e.g. to start another triggered measurement using a second Signal Recovery 7260 / 7265 Lock-in Amplifier.
$SR->abort();
Aborts current (triggered) measurement.
$SR->active();
Returns '1' if current (triggered) measurement is still running and '0' if current (triggered) measurement has been finished.
$SR->wait();
Waits until current (triggered) measurement has been finished.
$SR->display_on();
$SR->display_off();
probably many
This software is copyright (c) 2022 by the Lab::Measurement team; in detail:
Copyright 2021 Andreas K. Huettel, Fabian Weinelt, Simon Reinhardt 2022 Mia Schambeck
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Lab::Measurement, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lab::Measurement
CPAN shell
perl -MCPAN -e shell install Lab::Measurement
For more information on module installation, please visit the detailed CPAN module installation guide.