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

NAME

Lab::Instrument::Keithley2400 - Keithley 2400 SourceMeter

VERSION

version 3.620

SYNOPSIS

        use Lab::Instrument::Keithley2400;
        my $DMM=new Lab::Instrument::Keithley2400(0,GPIB-address);
        print $DMM->get_value();

DESCRIPTION

The Lab::Instrument::Keithley2400 class implements an interface to the Keithley 2400 digital multimeter.

CAVEATS

The Keithley2400 instrument driver is in a quite bad condition and would need a major revision. However it works within the XPRESS Voltage sweep for list and step mode pretty well.

CONSTRUCTOR

        my $DMM=new(\%options);

METHODS

get_value

        $value=$DMM->get_value(<$function>);

Request a measurement value using the current instrument settings. $function is an optional parameter. If $function is defined, a measurement using $function as the operating mode will be requested.

<$function>

FUNCTION can be one of the measurement methods of the Keithley2000.

        "current" --> DC current measurement 
        "voltage" --> DC voltage measurement 
        "resisitance" --> resistance measurement (2-wire)
        "fresistance" --> resistance measurement (4-wire)

get_temperature

        $value=$DMM->get_value($sensor, <$function>, <$range>);

Make a measurement defined by $function with the previously specified range and integration time.

$sensor

SENSOR can be one of the Temperature-Diodes defined in Lab::Instrument::TemperatureDiodes.

<$function>

FUNCTION can be one of the measurement methods of the Keithley2400.

        "diode" --> read out temperatuer diode
        "resisitance" --> resistance measurement (2-wire)
        "fresistance" --> resistance measurement (4-wire)
<$range>

RANGE is given in terms of amps or ohms and can be 1e-5 | 1e-4 | 1e-3 | MIN | MAX | DEF or 0...101e6 | MIN | MAX | DEF | AUTO . DEF is default AUTO activates the AUTORANGE-mode. DEF will be set, if no value is given.

set_output

        $output = $K6221->set_output($value);

Switch device OUTPUT ON/OFF or set new OUTPUT value. If no parameter is given, the current device output value will be returned.

$value

VALUE can be any numeric value within the current range setting or ON/OFF to switch the device OUTPUT ON/OFF.

get_output

        $output = $K6221->get_output(<$mode>);

Returns the current device output value or state. If no parameter is given, the current device output value will be returned.

<$mode>

MODE can be 'STATE' to request the current output state (ON/OFF) or 'VALUE' to request the current output value.

config_measurement

        $K2400->config_measurement($function, $number_of_points, <$time>, <$range>);

Preset the Keithley2400 for a TRIGGERED measurement.

WARNING: It's not recomended to perform triggered measurments with the KEITHLEY 2000 DMM due to unsolved timing problems!!!!!

$function

FUNCTION can be one of the measurement methods of the Keithley2000.

        "current" --> DC current measurement 
        "voltage" --> DC voltage measurement 
        "resisitance" --> resistance measurement (2-wire)
        "fresistance" --> resistance measurement (4-wire)
$number_of_points

Preset the NUMBER OF POINTS to be taken for one measurement trace. The single measured points will be stored in the internal memory of the Keithley2400. For the Keithley2400 the internal memory is limited to 1024 values.

<$time>

Preset the TIME duration for one full trace. From TIME the integration time value for each measurement point will be derived [NPLC = (TIME *50Hz)/NOP]. Expected values are between 0.5 ... 50000 seconds.

<$range>

RANGE is given in terms of amps, volts or ohms and can be 0...+3,03A | MIN | MAX | DEF | AUTO , 0...757V(AC)/1010V(DC) | MIN | MAX | DEF | AUTO or 0...101e6 | MIN | MAX | DEF | AUTO . DEF is default AUTO activates the AUTORANGE-mode. DEF will be set, if no value is given.

trg

        $K2400->trg();

Sends a trigger signal via the GPIB-BUS to start the predefined measurement. The LabVisa-script can immediatally be continued, e.g. to start another triggered measurement using a second Keithley2400.

abort

        $K2400->abort();

Aborts current (triggered) measurement.

active

        $K2400->abort();

Returns '1' if the current triggered measurement is still active and '0' if the current triggered measurement has allready been finished.

wait

        $K2400->abort();

WAIT until triggered measurement has been finished.

get_data

        @data = $K2400->get_data();

Reads all recorded values from the internal buffer and returnes them as an array of floatingpoint values. Reading the buffer will start immediately after the triggered measurement has finished. The LabVisa-script cannot be continued until all requested readings have been recieved.

set_function

        $K2400->set_function($function);

Set a new value for the measurement function of the Keithley2400.

$function

FUNCTION can be one of the measurement methods of the Keithley2000.

        "current" --> DC current measurement 
        "voltage" --> DC voltage measurement 
        "resisitance" --> resistance measurement (2-wire)
        "fresistance" --> resistance measurement (4-wire)

set_range

        $K2400->set_range($function,$range);

Set a new value for the predefined RANGE for the measurement function $function of the Keithley2400.

$function

FUNCTION can be one of the measurement methods of the Keithley2000.

        "current" --> DC current measurement 
        "voltage" --> DC voltage measurement 
        "resisitance" --> resistance measurement (2-wire)
        "fresistance" --> resistance measurement (4-wire)
$range

RANGE is given in terms of amps, volts or ohms and can be 0...+3,03A | MIN | MAX | DEF | AUTO , 0...757V(AC)/1010V(DC) | MIN | MAX | DEF | AUTO or 0...101e6 | MIN | MAX | DEF | AUTO . DEF is default AUTO activates the AUTORANGE-mode. DEF will be set, if no value is given.

set_nplc

        $K2400->set_nplc($function,$nplc);

Set a new value for the predefined NUMBER of POWER LINE CYCLES for the measurement function $function of the Keithley2400.

$function

FUNCTION can be one of the measurement methods of the Keithley2000.

        "current" --> DC current measurement 
        "voltage" --> DC voltage measurement 
        "resisitance" --> resistance measurement (2-wire)
        "fresistance" --> resistance measurement (4-wire)
$nplc

Preset the NUMBER of POWER LINE CYCLES which is actually something similar to an integration time for recording a single measurement value.

The values for $nplc can be any value between 0.01 ... 10.

Example: Assuming $nplc to be 10 and assuming a netfrequency of 50Hz this results in an integration time of 10*50Hz = 0.2 seconds for each measured value. Assuming $number_of_points to be 100 it takes in total 20 seconds to record all values for the trace.

set_averaging

        $K2400->set_averaging($count, <$filter>);

Set a new value for the predefined NUMBER of POWER LINE CYCLES for the measurement function $function of the Keithley2400.

$count

COUNT is the number of readings to be taken to fill the AVERAGING FILTER. COUNT can be 1 ... 100.

<$filter>

FILTER can be MOVING or REPEAT. A detailed description is refered to the user manual.

display_on

        $K2400->display_on();

Turn the front-panel display on.

display_off

        $K2400->display_off();

Turn the front-panel display off.

display_text

        $K2400->display_text($text);
        print $K2400->display_text();

Display a message on the front panel. The multimeter will display up to 12 characters in a message; any additional characters are truncated. Without parameter the displayed message is returned.

display_clear

        $K2400->display_clear();

Clear the message displayed on the front panel.

reset

        $K2400->reset();

Reset the multimeter to its power-on configuration.

SEE ALSO

Lab::Instrument

COPYRIGHT AND LICENSE

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

  Copyright 2015       Christian Butschkow
            2016       Simon Reinhardt
            2017       Andreas K. Huettel

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.