NAME

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

VERSION

version 3.670

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) 2018 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.