NAME

Lab::Moose::Instrument::Cryomagnetics_4G - Cryomagnetics 4G superconducting magnet power supply

VERSION

version 3.930

SYNOPSIS

  use Lab::Moose;
 
  # Constructor
  my $magnet = instrument(
      type => 'Cryomagnetics_4G',
      connection_type => 'VISA::GPIB',
      connection_options => {'gpib_address' => 10},
	  field_constant => 18.7047 # A/T
  );

Eventhough the magnet power supply does support ethernet and USB besides GPIB, both connectiontypes do not seem to work properly (on linux at least...). Ramp rates are internally set with a ramp current and therefore one needs to supply the field constant of the magnet in units of A/T.

METHODS

List of all high level methods. These are recommended to use for normal operation!

get_field

$magnet->get_field();

Returns current powerline field in units of Tesla.

get_persistent_field

$magnet->get_persistent_field();

Returns current persistent field in the magnet in units of Tesla.

sweep_to_field

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

config_sweep

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

Only define setpoints, do not start sweep.

get/set_target_field

$magnet->set_target_field(value => 1);

Sets or gets the next target field in Tesla.

set_field_sweep_rate

$magnet-set_sweep_rate(value => 1) # T/min

Sets the sweep rate for all ranges to the given value in T/min.

to_zero

$magnet->to_zero();

Sweep magnet to 0 field.

hold

$magnet->hold();

Set magnet to hold and stop sweeping field.

in_persistent_mode

  if ($magnet->in_persistent_mode()) {
    # go to desired filed
  } else {
	# Sweep up powerline field and start switch heater
  };

Check if magnet is in persistent mode (the switch heater is on).

unset_persistent_mode

$magnet->unset_persistent_mode()

Disables the persistent mode by driving up powerline field and starting switch heater

set_persistent_mode

$magnet->set_persistent_mode()

Enables the persistent mode with the current field.

heater_on/heater_off

$magnet->heater_on();
$magnet->heater_off();

Set the switch heater to be active or not active. Waits to let it warm up.

LOW-LEVEL DEVICE METHODS

get_imag

my $value = $magnet->get_imag();

Uses either Amps or kilo Gauss, depending on units setting.

get_iout

my $value = $magnet->get_iout();

Uses either Amps or kilo Gauss, depending on units setting.

set_llim/get_llim

$magnet->set_llim(value => 10);
my $value = $magnet->get_llim();

Uses either Amps or kilo Gauss, depending on units setting.

local

$magnet->local();

get_mode

my $mode = $magnet->get_mode();

Possible return values: Shim, Manual

set_pshtr/get_pshtr

$magnet->set_pshtr(value => 0);
my $value = $magnet->get_pshtr();

Returns 0 or 1.

set_range/get_range

$magnet->set_range(select => 1, limit => 2); # 2 Amps
my $range = $magnet->get_range(select => 1);

select is in range 0,..,4.

set_rate/get_rate

$magnet->set_rate(range => 1, rate => 0.001); # 1mA / sec 
my $rate = $magnet->get_rate(range => 1);

range is in range 0,...5, where 5 specifies the rate in fast sweep mode. rate arg is given in Amps per second.

set_sweep/get_sweep

$magnet->set_sweep(value => 'UP');
$magnet->set_sweep(value => 'UP FAST'); # with switch heater off
my $mode = $magnet->get_sweep();

value is one off 'UP', 'UP FAST', 'DOWN', 'DOWN FAST', 'PAUSE', 'ZERO', 'LIMIT'

set_ulim/get_ulim

$magnet->set_ulim(value => 10);
my $value = $magnet->get_ulim();

Uses either Amps or kilo Gauss, depending on units setting.

set_units/get_units

$magnet->set_units(value => 'A'); # use Amps
$magnet->set_units(value => 'G'); # use kiloGauss
my $units = $magnet->get_units(); # 'A' or 'G'

set_vlim/get_vlim

$magnet->set_vlim(value => 2); # 2V
my $vlim = $magnet->get_vlim();

get_vmag

my $vmag = $magnet->get_vmag();

get_vout

my $vmag = $magnet->get_vout();

Consumed Roles

This driver consumes the following roles:

Lab::Moose::Instrument::Common

COPYRIGHT AND LICENSE

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

Copyright 2022-2023  Simon Reinhardt
          2025       Deadmansshoe

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