The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Lab::Moose::Instrument::SR830 - Stanford Research SR830 Lock-In Amplifier

VERSION

version 3.631

SYNOPSIS

 use Lab::Moose;

 # Constructor
 my $lia = instrument(type => 'SR830', %connection_options);
 
 # 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 10 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.

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'

Consumed Roles

This driver consumes the following roles:

Lab::Moose::Instrument::Common

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by the Lab::Measurement team; in detail:

  Copyright 2016       Simon Reinhardt
            2017       Andreas K. Huettel, Simon Reinhardt
            2018       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.