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

$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

$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

$frequency
OSCILLATOR FREQUENCY can be between 0 ... 259kHz

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

Lab::Moose::Instrument

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.