Lab::Moose::Instrument::Lakeshore372 - Lakeshore Model 372 Temperature Controller
version 3.901
use Lab::Moose; # Constructor my $lakeshore = instrument( type => 'Lakeshore372', connection_type => 'Socket', connection_options => {host => '192.168.3.24'}, input_channel => '5', # set default input channel for all method calls ); my $temp_5 = $lakeshore->get_T(channel => 5); # Get temperature for channel 5. my $resistance_5 = TODO
Example: Configure inputs
# enable channels 1..3 for my $channel (1..3) { $lakeshore->set_inset( channel => $channel, enabled => 1, dwell => 1, pause => 3, curve_number => 0, # no curve tempco => 1, # negative temp coeff ); } # disable the other channels for my $channel ('A', 4..16) { $lakeshore->set_inset( channel => $channel, enabled => 0, dwell => 1, pause => 3, curve_number => 0, # no curve tempco => 1, # negative temp coeff ); } # setup the enabled input channels 1,2,3 for 20μV voltage excitation: for my $channel (1..3) { $lakeshore->set_intype( channel => $channel, mode => 0, excitation => 3, # control input, ignored: autorange => 0, range => 1, ); }
my $temp = $lakeshore->get_T(channel => $channel);
$channel needs to be one of 'A', 1, ..., 16.
$channel
alias for get_T.
get_T
my $reading = $lakeshore->get_sensor_units_reading(channel => $channel);
Get sensor units reading (in ohm) of an input channel.
my $imaginary_part = $lakeshore->get_quadrature_reading( channel => 1, # 1..16 (only measurement input) );
my $excitation_power = $lakeshore->get_excitation_power_reading( channel => 1, # 1..16 or A );
Set/get setpoint for loop 0 in whatever units the setpoint is using
$lakeshore->set_setpoint(value => 10, loop => 0); my $setpoint1 = $lakeshore->get_setpoint(loop => 0);
alias for set_setpoint
set_setpoint
$lakeshore->set_heater_range(output => 0, value => 1); my $range = $lakeshore->get_heater_range(output => 0);
For output 0 (sample heater), value is one of 0 (off), 1, ..., 8. For outputs 1 and 2, value is one of 0 and 1.
$lakeshore->set_heater_setup( loop => 0, resistance => 1500, # Ohms max_current => 0, # warm-up heater max_user_current => 0.1, # Amps display => 2, # Display power ); my %setup = $lakeshore->get_heater_setup(loop => 0);
my $power = $lakeshore->get_sample_heater_output();
Depending on setting, return either percentage of current range or power.
$lakeshore->set_outmode( output => 0, # 0, 1, 2 mode => 3, # 0, ..., 6 channel => 5, # A, 1, ..., 16 powerup_enable => 1, # (default: 0) polarity => 1, # (default: 0) filter => 1, # (default: 0) delay => 1, # 1,...,255 ); my $args = $lakeshore->get_outmode(output => 0);
# Set channel 5 to use curve 25 $lakeshore->set_input_curve(channel => 5, value => 25); my $curve = $lakeshore->get_input_curve(channel => 5);
$lakeshore->set_remote_mode(value => 0); my $mode = $lakeshore->get_remote_mode();
Valid entries: 0 = local, 1 = remote, 2 = remote with local lockout.
$lakeshore->set_pid(loop => 0, P => 1, I => 50, D => 50) my %PID = $lakeshore->get_pid(loop => 0); # %PID = (P => $P, I => $I, D => $D);
$lakeshore->set_zone( loop => 0, zone => 1, top => 10, P => 25, I => 10, D => 20, mout => 0, # 0% range => 1, rate => 1.2, # 1.2 K / min relay_1 => 0, relay_2 => 0, ); my %zone = $lakeshore->get_zone(loop => 0, zone => 1);
$lakeshore->set_filter( channel => 5, on => 1, settle_time => 1, # (1s..200s) window => 2, # % 2 percent of full scale window (1% ... 80%) ); my %filter = $lakeshore->get_filter(channel => 5);
# Set input channel 0 (measurement input) excitation frequency to 9.8Hz $lakeshore->set_freq(channel => 0, value => 1); my $freq = $lakeshore->get_freq(channel => 0);
Allowed channels: 0 (measurement input), 'A' (control input). Allowed values: 1 = 9.8 Hz, 2 = 13.7 Hz, 3 = 16.2 Hz, 4 = 11.6 Hz, 5 = 18.2 Hz.
$lakeshore->set_common_mode_reduction(value => 1); my $cmr = $lakeshore->get_common_mode_reduction();
Allowed values: 0 and 1.
$lakeshore->set_mout(output => 0, value => 10); my $mout = $lakeshore->get_mout(output => 0);
$lakeshore->set_inset( channel => 1, # A, 1, ..., 16 enabled => 1, dwell => 1, pause => 3, curve_number => 1, tempco => 1, # 1 or 2 ); my %inset = $lakeshore->get_inset(channel => 1);
$lakeshore->set_intype( channel => 1, mode => 0, # voltage excitation mode excitation => 3, # 20μV, only relevant for measurement input autorange => 0, # only relevant for control input range => 1, # only relevant for control input cs_shunt => 0, # default: 0 units => 1, # Kelvin, default: 1 my %intype = $lakeshore->get_intype(channel => 1);
$lakeshore->curve_delete(curve => 21);
$lakeshore->set_curve_header( curve => 21, name => "Germanium", SN => "selfmade", format => 4, # log Ohm / Kelvin limit => 300, coefficient => 1, # negative ); my %header = $lakeshore->get_curve_header(curve => 21);
$lakeshore->set_curve_point( curve => 21, # 21..59 index => 1, # sets first point (1..200) units => 2, # R or log(R) temp => 0.012345, curvature => 0, # default: 0 ); my %point = $lakeshore->get_curve_point(curve => 21, point => 1);
$lakeshore->set_input_name(channel => 1, value => 'RuOx_Sample'); my $name = $lakeshore->get_input_name(channel => 1);
$lakeshore->set_ramp( loop => 0, on => 1, # 0 or 1 rate => 10e-3, # ramp rate in K/min ); my %rate = $lakeshore->get_ramp(loop => 0);
# Set scanner to channel 5 and start autoscanning $lakeshore->set_scanner( channel => 5, autoscan => 1, ); my %scanner = $lakeshore->get_scanner(); my $current_channel = $scanner{channel};
$lakeshore->set_display_field( field => 1, input => 1, units => 1, # Kelvin ); my %field = $lakeshore->get_display_field(field => 1);
$lakeshore->set_display( mode => 2, # custom num_fields => 2, # 8 fields displayed_info => 1, # sample_heater ); my %display = $lakeshore->get_display();
This driver consumes the following roles:
This software is copyright (c) 2023 by the Lab::Measurement team; in detail:
Copyright 2018 Simon Reinhardt 2020 Andreas K. Huettel, Simon Reinhardt 2021-2023 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::Moose, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lab::Moose
CPAN shell
perl -MCPAN -e shell install Lab::Moose
For more information on module installation, please visit the detailed CPAN module installation guide.