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

NAME

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

VERSION

version 3.831

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) 2022 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       Andreas K. Huettel
            2021       Andreas K. Huettel, 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.