Lab::Moose::Instrument::SR830 - Stanford Research SR830 Lock-In Amplifier
version 3.831
use Lab::Moose; # Constructor my $lia = instrument( type => 'SR830', connection_type => 'VISA::GPIB', connection_options => {'gpib_address' => 10} ); # Set reference frequency to 10 kHz $lia->set_frq(value => 10000); # Set time constant to 10 sec $lia->set_tc(value => 10); # Set sensitivity to 1 mV $lia->set_sens(value => 0.001); # Get X and Y values my $xy = $lia->get_xy(); say "X: ", $xy->{x}; say "Y: ", $xy->{y};
my $frq = $lia->get_frq();
Query frequency of the reference oscillator.
$lia->set_frq(value => $frq);
Set frequency of the reference oscillator.
my $ampl = $lia->get_amplitude();
Query amplitude of the sine output.
$lia->set_amplitude(value => $ampl);
Set amplitude of the sine output.
my $phase = $lia->get_phase();
Get reference phase shift (in degree). Result is between -180 and 180.
$lia->set_phase(value => $phase);
Set reference phase shift. The $phase parameter has to be between -360 and 729.99.
$phase
my $xy = $lia->get_xy(); my $x = $xy->{x}; my $y = $xy->{y};
Query the X and Y values.
My $rphi = $lia->get_rphi(); my $r = $rphi->{r}; my $phi = $rphi->{phi};
Query R and the angle (in degree).
Get x, y, R and the angle all in one call.
my $tc = $lia->get_tc();
Query the time constant.
# Set tc to 30μs $lia->set_tc(value => 30e-6);
Set the time constant. The value is rounded to the nearest valid value. Rounding is performed in logscale. Croak if the the value is out of range.
my $filter_slope = $lia->get_filter_slope();
Query the low pass filter slope (dB/oct). Possible return values:
6
12
18
24
$lia->set_filter_slope(value => 18);
Set the low pass filter slope (dB/oct). Allowed values:
my $sens = $lia->get_sens();
Get sensitivity (in Volt).
$lia->set_sens(value => $sens);
Set sensitivity (in Volt).
Same rounding as for set_tc.
set_tc
my $rphi = $lia->get_rphi my $r = $rphi->{r}; $lia->set_auto_sens( r => $r, min_sens => 10e-6, # Smallest allowed range is 10μV (default: 2nV range) max_sens => 2e-3 , # Largest allowed range is 2mV (default: 1V range) up_at => 0.8 , # Go to next higher sens if $r is above 80% # of current range (default: 90%) down_at => 0.8 , # Go to next lower sens if $r is below 80% of # next lower sens (default: 90%) );
Set optimal sensitvity for current input signal, determined from the r attribute. Except for r, all attributes are optional. For stable operation, 1 > up_at >= down_at is required.
r
up_at
down_at
If the sensitvity is changed, return the new value. Otherwise return nothing.
my $input = $lia->get_input();
Query the input configuration. Possible return values:
A
AB
I1M
I100M
$lia->set_input(value => 'AB');
Set input configuration. Allowed values:
my $ground = $lia->get_ground();
Query the input shield grounding. Possible return values:
GROUND
FLOAT
$lia->set_ground(value => 'GROUND'); # or: $lia->set_ground(value => 'FLOAT');
Set the input shield grounding. Allowed values:
my $coupling = $lia->get_coupling();
Query the input coupling. Possible return values:
AC
DC
$lia->set_coupling(value => 'AC'); # or: $lia->set_coupling(value => 'DC');
Set the input coupling. Allowed values:
my $filters = $lia->get_line_notch_filters();
Query the line notch filter configuration. Possible return values:
OUT
LINE
2xLINE
BOTH
$lia->set_line_notch_filters(value => 'BOTH');
Set the line notch filter configuration. Allowed values:
my $settling_time = $lia->calculate_settling_time(settling => '99');
Calculate settling time independent of current time constant and filter slope. See "Principles of lock-in detection and the state of the art" white paper by Zurich Instruments. The settling parameter is given in percent. Allowed values:
settling
'63.2'
'90'
'99'
'99.9'
my $v = $lia->get_auxin();
Measure voltage on one of the four auxiliary input ports 1..4.
This driver consumes the following roles:
This software is copyright (c) 2022 by the Lab::Measurement team; in detail:
Copyright 2016 Simon Reinhardt 2017 Andreas K. Huettel, Simon Reinhardt 2018 Simon Reinhardt 2020-2021 Andreas K. Huettel, Simon Reinhardt
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.