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

NAME

Lab::Moose::Instrument::Keithley2450 - Keithley 2450 voltage/current sourcemeter.

VERSION

version 3.772

SYNOPSIS

 use Lab::Moose;

 my $smu = instrument(
     type => 'Keithley2450',
     connection_type => 'LinuxGPIB',
     connection_options => {gpib_address => 15},
     # mandatory protection settings
     max_units_per_step => 0.001, # max step is 1mV/1mA
     max_units_per_second => 0.01,
     min_units => -10,
     max_units => 10,
 );

 ### Sourcing


 # Source voltage
 $smu->source_function(value => 'VOLT');
 $smu->source_range(value => 210);
 
 # Step-sweep to new level.
 # Stepsize and speed is given by (max|min)_units* settings.
 $smu->set_level(value => 9);

 # Get current level from device cache (without sending a query to the
 # instrument):
 my $level = $smu->cached_level();

 ### Measurement 

 # Measure current
 $smu->sense_function(value => 'CURR');
 $smu->sense_nplc(value => 2);

 # Get value of current
 my $current = $smu->get_value();

METHODS

Used roles:

Lab::Moose::Instrument::Common
Lab::Moose::Instrument::SCPI::Output::State
Lab::Moose::Instrument::SCPI::Sense::Range
Lab::Moose::Instrument::SCPI::Sense::NPLC
Lab::Moose::Instrument::SCPI::Source::Function
Lab::Moose::Instrument::SCPI::Source::Level
Lab::Moose::Instrument::SCPI::Source::Range
Lab::Moose::Instrument::LinearStepSweep

set_level

 $smu->set_level(value => $new_level);

Go to new level. Sweep with multiple steps if the distance between current and new level is larger than max_units_per_step.

get_value

 my $value = $smu->get_value();

Perform measurement of value defined by sense_function.

source_limit/source_limit_query

Set current compliance limit of voltage source to 1mA

 $smu->source_function(value => 'VOLT');
 $smu->source_limit(value => 1e-3);

Set voltage compliance limit of current source to 1V

 $smu->source_function(value => 'CURR');
 $smu->source_limit(value => 1);

Get current source limit my $limit = $smu->source_limit_query();

cached_level

 my $current_level = $smu->cached_level();

Get current value from device cache.

get_level

 my $current_level = $smu->get_level();

Query current level.

set_voltage

 $smu->set_voltage($value);

For XPRESS voltage sweep. Equivalent to set_level(value => $value).

COPYRIGHT AND LICENSE

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

  Copyright 2021       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.