NAME
Lab::Moose::Instrument::SignalRecovery7265 - Model 7265 Lock-In Amplifier
VERSION
version 3.881
SYNOPSIS
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
set_imode
$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
set_vmode
$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
set_fet
$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
set_float
$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
set_cp
$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
set_sen
$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');
auto_sen
$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.
set_acgain
$SR->set_acgain(value => $acgain);
Preset Signal RECOVERY 7260 / 7265 Lock-in Amplifier
- $acgain
-
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
set_linefilter
$SR->set_linefilter(value => $linefilter);
Preset Signal Recovery 7260 / 7265 Lock-in Amplifier
- $linefilter
-
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
set_refchannel
$SR->set_refchannel(value => $refchannel);
Preset Signal Recovery 7260 / 7265 Lock-in Amplifier
- $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
autophase
$SR->autophase();
Trigger an autophase procedure
set_refpha/set_phase
$SR->set_refpha(value => $phase);
$SR->set_phase(value => $phase);
Preset Signal Recovery 7260 / 7265 Lock-in Amplifier
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
- $verbose
-
Default = true. Set to false if you don't want the sweeping process to be printed on-screen.
- $step
-
Default = 1 [°]. Adjust the step size in degrees, can't be smaller than 0.001°.
- $rate
-
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.
set_outputfilter_slope
$SR->set_outputfilter_slope(value => $slope);
Preset Signal Recovery 7260 / 7265 Lock-in Amplifier
- $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
set_tc
$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
- $tc
-
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
set_offset
$SR->set_offset(X => $x_offset, Y => $y_offset);
- $x_offset/$y_offset
-
-300 to 300 --> Set the offset OFF --> disable the offset AUTO --> automatically set offset
source_level
$SR->source_level(value => $level);
Preset the oscillator output voltage of the Signal Recovery 7260 / 7265 Lock-in Amplifier
- $level
-
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.
set_frq
$SR->set_frq(value => $frequency);
Preset the oscillator frequency of the Signal Recovery 7260 / 7265 Lock-in Amplifier
get_value
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
-
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
config_measurement
$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.
- $channel
-
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
.
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
- $number_of_points
-
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.
- $interval
-
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.
- $trigger
-
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.
get_data
@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
-
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
-
TIMEOUT is another optional parameter. Since it takes approximately 4ms per datapoint, with 25k-Points a default timeout of 100s should be sufficient.
trg
$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.
abort
$SR->abort();
Aborts current (triggered) measurement.
active
$SR->active();
Returns '1' if current (triggered) measurement is still running and '0' if current (triggered) measurement has been finished.
wait
$SR->wait();
Waits until current (triggered) measurement has been finished.
display_on
$SR->display_on();
display_off
$SR->display_off();
CAVEATS/BUGS
probably many
SEE ALSO
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 by the Lab::Measurement team; in detail:
Copyright 2021 Andreas K. Huettel, Fabian Weinelt, Simon Reinhardt
2022 Jonas 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.