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:
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.