NAME
Lab::Moose::Instrument::SR830 - Stanford Research SR830 Lock-In Amplifier
VERSION
version 3.920
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.