Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

NAME

Lab::Moose::Instrument::Lakeshore340 - Lakeshore Model 340 Temperature Controller

VERSION

version 3.920

SYNOPSIS

# Constructor
my $lakeshore = instrument(
type => 'Lakeshore340',
connection_type => 'LinuxGPIB',
connection_options => {pad => 22},
input_channel => 'B', # set default input channel for all method calls
);
my $temp_B = $lakeshore->get_T(); # Get temp for input 'B' set as default in constructor.
my $temp_A = $lakeshore->get_T(channel => 'A'); # Get temp for input 'A'.

METHODS

get_T

my $temp = $lakeshore->get_T(channel => $channel);

$channel can be 'A' or 'B'. The default can be set in the constructor.

get_value

alias for get_T.

get_sensor_units_reading

my $reading = $lakeshore->get_sensor_units_reading(channel => $channel);

Get sensor units reading (like resistance) of an input channel.

set_setpoint/get_setpoint

Set/get setpoint for loop 1 in whatever units the setpoint is using

$lakeshore->set_setpoint(value => 10, loop => 1);
my $setpoint1 = $lakeshore->get_setpoint(loop => 1);

set_T

alias for set_setpoint

set_heater_range/get_heater_range

$lakeshore->set_heater_range(value => 1);
my $range = $lakeshore->get_heater_range();

Value is one of 0 (OFF),1,...,5 (MAX)

set_control_mode/get_control_mode

Specifies the control mode. Valid entries: 1 = Manual PID, 2 = Zone, 3 = Open Loop 4 = AutoTune PID, 5 = AutoTune PI, 6 = AutoTune P.

# Set loop 1 to manual PID
$lakeshore->set_control_mode(value => 1, loop => 1);
my $cmode = $lakeshore->get_control_mode(loop => 1);

set_mout/get_mout

$lakeshore->set_mout(
loop => 1,
value => 22.45, # percent of range
);
my $mout = $lakeshore->get_mout(loop => 1);

Set/get manual output. Only works if output is configured for open loop control.

set_control_parameters/get_control_parameters

$lakeshore->set_control_parameters(
loop => 1,
input => 'A',
units => 1, # 1 = Kelvin, 2 = Celsius, 3 = sensor units
state => 1, # 0 = off, 1 = on
powerup_enable => 1, # 0 = off, 1 = on, optional with default = off
);
my %args = $lakeshore->get_control_parameters(loop => 1);

set_input_curve/get_input_curve

# Set channel 'B' to use curve 25
$lakeshore->set_input_curve(channel => 'B', value => 25);
my $curve = $lakeshore->get_input_curve(channel => 'B');

set_remote_mode/get_remote_mode

$lakeshore->set_remote_mode(value => 1);
my $mode = $lakeshore->get_remote_mode();

Valid entries: 1 = local, 2 = remote, 3 = remote with local lockout.

set_pid/get_pid

$lakeshore->set_pid(loop => 1, P => 1, I => 50, D => 50)
my %PID = $lakeshore->get_pid(loop => 1);
# %PID = (P => $P, I => $I, D => $D);

set_zone/get_zone

$lakeshore->set_zone(
loop => 1,
zone => 1,
top => 10,
P => 25,
I => 10,
D => 20,
range => 1
);
my %zone = $lakeshore->get_zone(loop => 1, zone => 1);

set_analog_out/get_analog_out

$lakeshore->set_analog_out
output => 1,
bipolar_enable => 1, # default: 0
mode => 2, # 0 = off, 1 = input, 2 = manual, 3 = loop. Loop is only valid for output 2
manual_value => -30, # -30 percent output (-3V)
);
my %analog_out = $lakeshore->get_analog_out();

Consumed Roles

This driver consumes the following roles:

Lab::Moose::Instrument::Common

COPYRIGHT AND LICENSE

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

Copyright 2018 Simon Reinhardt
2020 Andreas K. Huettel, Simon Reinhardt
2021-2022 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.