NAME
Lab::Moose::Instrument::SR830 - Stanford Research SR830 Lock-In Amplifier
VERSION
version 3.904
SYNOPSIS
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};
METHODS
get_frq
my $frq = $lia->get_frq();
Query frequency of the reference oscillator.
set_frq
$lia->set_frq(value => $frq);
Set frequency of the reference oscillator.
get_amplitude
my $ampl = $lia->get_amplitude();
Query amplitude of the sine output.
set_amplitude
$lia->set_amplitude(value => $ampl);
Set amplitude of the sine output.
get_phase
my $phase = $lia->get_phase();
Get reference phase shift (in degree). Result is between -180 and 180.
set_phase
$lia->set_phase(value => $phase);
Set reference phase shift. The $phase
parameter has to be between -360 and 729.99.
get_xy
my $xy = $lia->get_xy();
my $x = $xy->{x};
my $y = $xy->{y};
Query the X and Y values.
get_rphi
My $rphi = $lia->get_rphi();
my $r = $rphi->{r};
my $phi = $rphi->{phi};
Query R and the angle (in degree).
get_xyrphi
Get x, y, R and the angle all in one call.
get_tc
my $tc = $lia->get_tc();
Query the time constant.
set_tc
# 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.
get_filter_slope
my $filter_slope = $lia->get_filter_slope();
Query the low pass filter slope (dB/oct). Possible return values:
6
12
18
24
set_filter_slope
$lia->set_filter_slope(value => 18);
Set the low pass filter slope (dB/oct). Allowed values:
6
12
18
24
get_sens
my $sens = $lia->get_sens();
Get sensitivity (in Volt).
set_sens
$lia->set_sens(value => $sens);
Set sensitivity (in Volt).
Same rounding as for set_tc
.
set_auto_sens
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.
If the sensitvity is changed, return the new value. Otherwise return nothing.
get_input
my $input = $lia->get_input();
Query the input configuration. Possible return values:
A
AB
I1M
I100M
set_input
$lia->set_input(value => 'AB');
Set input configuration. Allowed values:
A
AB
I1M
I100M
get_ground
my $ground = $lia->get_ground();
Query the input shield grounding. Possible return values:
GROUND
FLOAT
set_ground
$lia->set_ground(value => 'GROUND');
# or:
$lia->set_ground(value => 'FLOAT');
Set the input shield grounding. Allowed values:
GROUND
FLOAT
get_coupling
my $coupling = $lia->get_coupling();
Query the input coupling. Possible return values:
AC
DC
set_coupling
$lia->set_coupling(value => 'AC');
# or:
$lia->set_coupling(value => 'DC');
Set the input coupling. Allowed values:
AC
DC
get_line_notch_filters
my $filters = $lia->get_line_notch_filters();
Query the line notch filter configuration. Possible return values:
OUT
LINE
2xLINE
BOTH
set_line_notch_filters
$lia->set_line_notch_filters(value => 'BOTH');
Set the line notch filter configuration. Allowed values:
OUT
LINE
2xLINE
BOTH
calculate_settling_time
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:
'63.2'
'90'
'99'
'99.9'
get_auxin
my $v = $lia->get_auxin();
Measure voltage on one of the four auxiliary input ports 1..4.
Consumed Roles
This driver consumes the following roles:
COPYRIGHT AND LICENSE
This software is copyright (c) 2024 by the Lab::Measurement team; in detail:
Copyright 2016 Simon Reinhardt
2017 Andreas K. Huettel, Simon Reinhardt
2018 Simon Reinhardt
2020 Simon Reinhardt
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.