NAME

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

VERSION

version 3.881

SYNOPSIS

use Lab::Moose;

# 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) 2023 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.