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

NAME

Lab::Instrument::IPS - Oxford Instruments IPS Magnet Power Supply

VERSION

version 3.611

SYNOPSIS

        use Lab::Instrument::IPS;
        my $ips=new Lab::Instrument::IPS($isobus,2);
        print $ips->get_field();

.

DESCRIPTION

The Lab::Instrument::IPS class implements an interface to the Oxford Instruments IPS magnet power supply.

.

CONSTRUCTOR

        my $ips=new Lab::Instrument::IPS($isobus,$addr);

Instantiates a new IPS object, for example attached to the IsoBus device (of type Lab::Instrument::IsoBus ) $IsoBus , with IsoBus address $addr . All constructor forms of Lab::Instrument are available.

.

METHODS

get_field

        $field=$ips->get_field();

reads out the current applied magnetic field.

.

config_sweep

        @sweep = $ips->config_sweep($targetfield, $rate, <$interval>)

Predefine the target value, the sweeprate and optional the measurement interval for a magnetic field sweep. Returns the calculated sweep TRACE in steps of $rate*$interval as an array.

$targetfield
 TARGETFIELD  is the target magnetic tield value to sweep to. It must be within the magnet's limits.
$rate
 RATE  is the sweep rate in  TESLA per MINUTE . It must be within the magnet's limits.
$interval
 INTERVAL  defines the planed measurement interval in seconds. This parameter is necessary to calculate the  TRACE  correctly.
Default is 1 second.
ADVANCED SWEEP

$targetfield and $rate can also be a series of values to define a multiple step sweep. Note: The multiple step sweep cannot reverse sweeping direction.

Example: starting at 0 tesla: $targetfield = "1.0, 1.5, 3" and $rate = "0.1, 0.5, 1"

        --> this defines a sweep from 0T --> 3T with sweeprates of 
                0.1T/m for 0T->1T,
                0.5T/m for 1T->1.5T and 
                1T/m for 1.5T->3T.

Important: This kinde of 'advanced' sweep works only in combination with the subroutines wait() or active().

        --> wait() will simply wait until the sweep has been finished. 
        --> active() can be used as the condition-parameter within a 'while-loop'.

Example:

        $ips->config_sweep("1.0, 1.5, 3", "0.1, 0.5, 1"); # define an advanced sweep
        $ips->trg(); # start sweep
        while($ips->active())
                {
                # do something while the sweep is running
                }

.

trg

        $ips->trg();

starts a configured sweep.

.

abort

        $ips->abort();

aborts the current sweep.

.

wait

        $ips->wait(<$seconds>);

Waits ...

$seconds

SECONDS is an optional paramter. Wait until $seconds have been passed or if $seconds is not defined until the current sweep has been finished.

active

        $ips->active();

Returns a value > 0 if magnet is currently sweeping and '0' if magnet is not sweeping.

CAVEATS/BUGS

probably many

.

SEE ALSO

Lab::Instrument

COPYRIGHT AND LICENSE

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

  Copyright 2012       Christian Butschkow, Stefan Geissler
            2013       Alois Dirnaichner, Andreas K. Huettel, Christian Butschkow, Stefan Geissler
            2014-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.