NAME
Lab::Instrument::IPS - Oxford Instruments IPS Magnet Power Supply
VERSION
version 3.850
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
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 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
2020 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.