The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Lab::Moose::Instrument::ABB_TRMC2 - ABB TRMC2 temperature controller

VERSION

version 3.771

SYNOPSIS

 use Lab::Moose;
 
 my $trmc = instrument(
      type => 'ABB_TRMC2'
 );
 
 my $temp = $trmc->get_T();

Warning: Due to the rather unique (and silly) way of device communication, the TRMC2 driver does not use the connection layer.

External interface

set_T

 $trmc->set_T(value => 0.1);

Program the TRMC to regulate the temperature towards a specific value (in K). The function returns immediately; this means that the target temperature most likely has not been reached yet.

Possible values are in the range [min_setpoint, max_setpoint], by default [0.02, 1.0].

get_T

 $trmc->get_T();

This is a shortcut for reading out temperature channel 5, typically the mixing chamber temperature.

TODO: Which channel is typically used for the control loop here?

Internal / hardware-specific functions

TRMC2init

Checks input and output buffer for TRMC2 commands and tests the file communication.

TRMC2off

Unmounts, i.e., releases control of the TRMC

TRMC2_Heater_Control_On

Switch the Heater Control (The coupling heater and set point NOT the heater switch in the main menu); 1 on, 0 off

TRMC2_Prog_On

What does this precisely do?

TRMC2_get_SetPoint

 my $target = $trmc->TRMC2_get_SetPoint();

Return the current setpoint of the TRMC2 in Kelvin.

TRMC2_set_SetPoint

 $trmc->TRMC2_set_SetPoint(0.1);

Program the TRMC to regulate the temperature towards a specific value (in K). The function returns immediately; this means that the target temperature most likely has not been reached yet.

Possible values are in the range [min_setpoint, max_setpoint], by default [0.02, 1.0].

TRMC2_get_PV

What does this do?

TRMC2_AllMeas

Read out all sensor channels.

TRMC2_get_T

 my $t = $trmc->TRMC2_get_T($channel);

Reads out temperature of a sensor channel.

Sensor number: 1 Heater 2 Output 3 Sample 4 Still 5 Mixing Chamber 6 Cernox

TRMC2_get_R

  my $r = $trmc->TRMC2_get_R($channel);

Reads out resistance of a sensor channel.

Sensor number: 1 Heater 2 Output 3 Sample 4 Still 5 Mixing Chamber 6 Cernox

TRMC2_get_RT

  my ($r, $t) = $trmc->TRMC2_get_RT();

Reads out resistance and temperature simultaneously.

Sensor number: 1 Heater 2 Output 3 Sample 4 Still 5 Mixing Chamber 6 Cernox

TRMC2_Read_Prog

Reads Heater Batch Job

TRMC2_Set_T_Sweep

 $trmc->TRMC2_Set_T_Sweep(SetPoint, Sweeprate, Holdtime)

Programs the built in temperature sweep. After Activation it will sweep from the current temperature to the set temperature with the given sweeprate. The Sweep can be started with TRMC2_Start_Sweep(1).

Variables: SetPoint in K, Sweeprate in K/Min, Holdtime in s (defaults to 0)

TRMC2_Start_Sweep

 $trmc->TRMC2_Start_Sweep(1);

Starts (1) / stops (0) the sweep --- provided the heater in TRMC2 window is turned ON. At a sweep stop the power is left on.

TRMC2_All_Channels

Reads out all channels and values and returns an array

TRMC2_Active_Channel

Reads out the active channel (?)

TRMC2_Shut_Down

Stops the sweep and the heater control

TRMC2_Write

 TRMC2_Write($cmd, $wait_write=$WAIT)

Sends a command to the TRMC and will wait $wait_write.

TRMC2_Query

 TRMC2_Query($cmd, $wait_query=$WAIT)

Sends a command to the TRMC and will wait $wait_query sec long and returns the result.

RemoveFrenchComma

Replace "," in a number with "." (yay for French hardware!)

MakeFrenchComma

Replace "." in a number with "," (yay for French hardware!)

Consumed Roles

This driver consumes no roles.

COPYRIGHT AND LICENSE

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

  Copyright 2011       Andreas K. Huettel, Florian Olbrich
            2012       Alois Dirnaichner, Andreas K. Huettel
            2013       Alois Dirnaichner
            2016       Simon Reinhardt
            2017       Andreas K. Huettel, Simon Reinhardt
            2020-2021  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.