croak "\nSIGNAL RECOVERY 7265:\nunexpected value for IMODE in sub set_imode. Expected values are:\n 0 --> Current Mode OFF\n 1 --> High Bandwidth Current Mode\n 2 --> Low Noise Current Mode\n";
croak "\nSIGNAL RECOVERY 726x:\nunexpected value in sub set_float. Expected values are:\n 0 --> input conector shield set to GROUND\n 1 --> input conector shield set to FLOAT\n";
croak "\nSIGNAL RECOVERY 726x:\nunexpected value for AC-GAIN in sub set_acgain. Expected values are:\n AC-GAIN == 0 --> 0 dB gain of the signal channel amplifier\n AC-GAIN == 1 --> 10 dB gain of the signal channel amplifier\n ...\n AC-GAIN == 9 --> 90 dB gain of the signal channel amplifier\n";
$self->cached_refchannel($value); # Save the String value to the cache
if( $valueeq "INT") { $value= 0; }
elsif( $valueeq "EXT LOGIC") { $value= 1; }
elsif( $valueeq "EXT") { $value= 2; }
else{
croak "\nSIGNAL RECOVERY 726x:\nunexpected value for REFERENCE CHANEL in sub set_refchennel. Expected values are:\n INT --> internal reference input mode\n EXT LOGIC --> external rear panel TTL input\n EXT --> external front panel analog input\n";
croak "\nSIGNAL RECOVERY 726x:\n\nSIGNAL RECOVERY 726x:\nunexpected value for OSCILLATOR OUTPUT in sub source_level. Expected values must be in the range 0..5V.";
croak "\nSIGNAL RECOVERY 726x:\n\nSIGNAL RECOVERY 726x:\nunexpected value for OSCILLATOR FREQUENCY in sub set_frq. Expected values must be in the range 0..250kHz";
channel=> {isa=> enum([qw/X Y MAG PHA XY MP ALL/])},
read_mode=> {isa=> 'Str', default=> ''}
);
my$chan= delete$args{channel};
my$rmode= delete$args{read_mode};
my$result;
# $channel can be:\n 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
croak "\nSIGNAL RECOVERY 726x:\n\nSIGNAL RECOVERY 726x:\ncan't init BUFFER. Buffersize is too small for the given NUMBER OF POINTS and NUMBER OF CHANNELS to store.\n POINTS x (CHANNELS+1) cant exceed 32000.\n";
croak "\nSIGNAL RECOVERY 726x:\nunexpected value for INTERVAL in sub set_buffer_interval. Expected values are between 5ms...1E6s with a resolution of 5ms.";
Preset the oscillator output voltage of the Signal Recovery 7260 / 7265 Lock-in Amplifier
=over 4
=item $level
OSCILLATOR OUTPUT VOLTAGE can be between 0 ... 5V in steps of 1mV (Signal Recovery 7260) and 1uV (Signal Recovery 7265)
=back
Use source_level(value => $level)) to jump to a desired amplitude, use set_level(value => $level) to slowly sweep to that amplitude.
=head2 set_frq
$SR->set_frq(value => $frequency);
Preset the oscillator frequency of the Signal Recovery 7260 / 7265 Lock-in Amplifier
=over 4
=item $frequency
OSCILLATOR FREQUENCY can be between 0 ... 259kHz
=back
=head2 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.
=over 4
=item $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
=back
=head2 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.
=over 4
=item $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
=item $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.
=item $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.
=item $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.
=back
=head2 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.
=over 4
=item $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.
=item $timeout
TIMEOUT is another optional parameter.
Since it takes approximately 4ms per datapoint, with 25k-Points a default timeout of 100s should be sufficient.
=back
=head2 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.
=head2 abort
$SR->abort();
Aborts current (triggered) measurement.
=head2 active
$SR->active();
Returns '1' if current (triggered) measurement is still running and '0' if current (triggered) measurement has been finished.
=head2 wait
$SR->wait();
Waits until current (triggered) measurement has been finished.
=head2 display_on
$SR->display_on();
=head2 display_off
$SR->display_off();
=head1 CAVEATS/BUGS
probably many
=head1 SEE ALSO
=over 4
=item L<Lab::Moose::Instrument>
=back
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2025 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.
=cut
Keyboard Shortcuts
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
gp
Go to pull requests
gi
go to github issues (only if github is preferred repository)