Huber Petite Fleur

PyLabware driver for Huber Petite Fleur chiller.

class PyLabware.devices.huber_petite_fleur.PetiteFleurChiller(device_name, connection_mode, address, port)[source]

Bases: AbstractTemperatureController

This provides a Python class for the Huber Petite Fleur chiller based on the the original operation manual V1.8.0en/06.10.17

Default constructor.

Parameters:
  • device_name (str) –

  • connection_mode (str) –

  • address (str | None) –

  • port (str | int) –

check_errors()[source]

Not implemented yet. #TODO

clear_errors()[source]

Not implemented yet. #TODO

get_errors()[source]

Not implemented yet. #TODO

get_pump_pressure()[source]

Returns the pump pressure (can be used as measure of the pump activity).

Return type:

int

get_ramp_details()[source]

Get remaining time and target temperature for the ramp.

Return type:

Tuple[int, float]

get_status()[source]

Returns the status of the chiller.

Return type:

str

get_temperature(sensor=0)[source]

Reads the current temperature of the bath

Parameters:

sensor (int) – Specify which temperature probe the setpoint applies to. This device has one common setpoint temperature shared by the external and internal probe. Thus, the sensor variable has no effect here.

Return type:

float

get_temperature_setpoint(sensor=0)[source]

Reads the current temperature setpoint.

Parameters:

sensor (int) – Specify which temperature probe the setpoint applies to. This device has one common setpoint temperature shared by the external and internal probe. Thus, the sensor variable has no effect here.

Return type:

float

initialize_device()[source]

This chiller doesn’t need/have any initialization.

interpret_status(status_string)[source]

Interprets the status string to return human-readable status

Parameters:

status_string (str) –

Return type:

str

is_connected()[source]

Tries to get chiller status & compares it to the template value.

Return type:

bool

is_idle()[source]

Checks whether the chiller is running. #TODO Probably rather has to be done by checking device status.

Return type:

bool

ramp_temperature(end_temperature, time)[source]

Sets the duration for a temperature ramp in seconds. Range is -32767…32767s where negative values cancel the ramp. Maximum ramp is a tad over 9 hours.

Parameters:
  • end_temperature (float) –

  • time (int) –

set_circulator_control(pump_mode)[source]

Sets the compressor control mode.

Parameters:

pump_mode (int) –

set_temperature(temperature, sensor=0)[source]

Sets the target temperature of the chiller.

Parameters:
  • temperature (float) – Temperature setpoint in °C.

  • sensor (int) – Specify which temperature probe the setpoint applies to. This device has one common setpoint temperature shared by the external and internal probe. Thus, the sensor variable has no effect here.

start_temp_ctrl(program)[source]

Starts the temperature control program input from 0001 -> 0010

Parameters:

program (str) –

Return type:

int

start_temperature_regulation()[source]

Starts the chiller.

stop_temperature_regulation()[source]

Stops the chiller.

temp_transform(temp)[source]

Returns the temperature transformed into appropriate number: 16 bit signed integer.

Return type:

float

class PyLabware.devices.huber_petite_fleur.PetiteFleurChillerCommands(*args, **kwargs)[source]

Bases: LabDeviceCommands

Collection of command definitions for Huber PetiteFleur chiller.

This class shouldn’t be instantiated

COMMAND_PREFIX = '{M'
DEFAULT_NAME = 'Huber device'
GET_ERRORS = {'name': '{M05****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_PROCESS_TEMP = {'name': '{M07****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_PUMP_PRESSURE = {'name': '{M03****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_RAMP_TEMP = {'name': '{M5A****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_RAMP_TIME = {'name': '{M59****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_STATUS = {'name': '{M0A****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_TEMP_BATH = {'name': '{M01****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_TEMP_SP = {'name': '{M00****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_WARNINGS = {'name': '{M06****', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
KEY_LOCK = {'name': '{M17', 'reply': {'type': <class 'str'>}, 'type': <class 'str'>}
SET_PUMP_MODE = {'name': '{M15', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}, 'type': <class 'str'>}
SET_RAMP_DURATION = {'name': '{M59', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}, 'type': <class 'str'>}
SET_TEMP_SP = {'name': '{M00', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}, 'type': <class 'str'>}
START_CIRCULATOR = {'name': '{M160001', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
START_RAMP = {'name': '{M5A', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}, 'type': <class 'str'>}
START_TEMPERATURE_CTRL = {'name': '{M58', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}, 'type': <class 'str'>}
START_TEMP_CONTROL = {'name': '{M140001', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
STATUSES = ['Temperature control operating mode: ', 'Circulation operating mode: ', 'Refrigerator compressor mode: ', 'Temperature control mode: ', 'Circulating Pump: ', 'Cooling power available: ', 'KeyLock: ', 'PID parameter set: ', 'Error detected: ', 'Warning message detected: ', 'Mode for setting the internal temperature(0X08): ', 'Mode for setting the external temperature(0X09): ', 'DV E-grade: ', 'Power failure: ', 'Freeze protection: ']
STOP_CIRCULATOR = {'name': '{M160000', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
STOP_TEMP_CONTROL = {'name': '{M140000', 'reply': {'args': [4, 8], 'parser': <function slicer>, 'type': <class 'str'>}}