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

NAME

Lab::Moose::Instrument::OI_IPS - Oxford Instruments IPS Intelligent Power Supply

VERSION

version 3.901

SYNOPSIS

 use Lab::Moose;

 # Constructor
 my $ips = instrument(
     type => 'OI_IPS',
     connection_type => 'LinuxGPIB',
     connection_options => {pad => 10},

     # safety limits, should be fixed in a subclass of this driver
     max_fields => [7, 10],          # absolute maximum field of 10T
     max_field_rates => [0.1, 0.05], # 0.1 T/min maximum rate in range 0T..7T
                                     # 0.05 T/min maximum rate in range 7T..10T
 );


 # Get field
 my $field = $ips->get_field();

 # Sweep to 1T with rate 0.1T/min

 $ips->sweep_to_field(target => 1, rate => 0.1);

METHODS

sweep_to_field

 my $new_field = $ips->sweep_to_field(
    target => $target_field, # Tesla
    rate => $rate, # Tesla/min
 );

config_sweep

 $ips->config_sweep(point => $target, rate => $rate);

Only define setpoints, do not start sweep.

set_control

 $ips->set_control(value => 1);

Set device local/remote mode (0, 1, 2, 3)

set_communications_protocol

 $ips->set_communications_protocol(value => 0);

Allowed values: 0, 2, 4, 6.

This driver sets the protocol to 4 "Extended Resolution" on startup.

examine_status

 my $status = $ips->examine_status();

Return status (XmnAnCnHnMmnPmn).

active

 my $status = $ips->active();

Return true value if IPS is sweeping. Return false when sweep finished.

in_persistent_mode

 if ($ips->in_persistent_mode()) {
    ...
 }

Return 1 if in persistent mode; otherwise return false.

wait

 $ips->wait();

Wait until current sweep is finished. Print status messages if verbose attribute was set in constructor (default).

read_parameter

 my $value = $ips->read_parameter(value => 1);

Allowed values for value are 0..13

get_field

 my $field = $ips->get_field();

Return current field (Tesla).

get_value

Alias for "get_field"

set_switch_heater

 $ips->set_switch_heater(value => 0); # Heater off
 $ips->set_switch_heater(value => 1); # Heater on (only done if magnet current equals power supply current)

get_switch_heater

 my $switch = $ips->get_switch_heater();

Return values:

0: Off Magnet at Zero (switch closed)
1: On (switch open)
2: Off Magnet at Field (switch closed)
5: Heater Fault (heater is on but current is low)
8: No Switch Fitted

Consumed Roles

This driver consumes the following roles:

COPYRIGHT AND LICENSE

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

  Copyright 2019-2020  Simon Reinhardt
            2021       Andreas K. Huettel, Fabian Weinelt, 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.