IKA RET Control Visc

PyLabware driver for IKA RET Control Visc stirring hotplate.

class PyLabware.devices.ika_ret_control_visc.RETControlViscHotplate(device_name, connection_mode, address, port)[source]

Bases: AbstractHotplate

This provides a Python class for the IKA RET Control Visc hotplate based on the english section of the original operation manual 20000004159 RET control-visc_042019

Default constructor.

Parameters:
  • device_name (str) –

  • connection_mode (str) –

  • address (str | None) –

  • port (str | int) –

check_errors()[source]

Not supported on this device.

clear_errors()[source]

Not supported on this device.

get_ph()[source]

Gets pH value from external probe. Returns value around 14 with no probe connected.

Return type:

float

get_safety_temperature()[source]

Gets safety temperature sensor reading.

Return type:

float

get_safety_temperature_setpoint()[source]

Gets safety temperature sensor setpoint.

Return type:

float

get_speed()[source]

Gets current stirring speed.

Return type:

int

get_speed_setpoint()[source]

Gets desired speed setpoint.

Return type:

int

get_status()[source]

Not supported on this device.

get_temperature(sensor=0)[source]

Gets the actual temperature.

Parameters:

sensor (int) – Specify which temperature probe to read.

Return type:

float

get_temperature_setpoint(sensor=0)[source]

Gets desired temperature setpoint.

Parameters:

sensor (int) – Specify which temperature setpoint to read.

Return type:

float

get_viscosity_trend()[source]

Gets current viscosity value.

Return type:

float

get_weight()[source]

Gets weight - the hotplate has embedded weight sensor.

Return type:

float

initialize_device()[source]

Resets the device.

is_connected()[source]

Checks whether the device is connected.

Return type:

bool

is_idle()[source]

Returns True if no stirring or heating is active.

Return type:

bool

set_speed(speed)[source]

Sets the stirring speed.

Parameters:

speed (int) –

set_temperature(temperature, sensor=0)[source]

Sets desired temperature.

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

  • sensor (int) – Specify which temperature probe the setpoint applies to.

setup_watchdog_mode2(temperature, speed)[source]

This can be cleared remotely

Parameters:
  • temperature (int) –

  • speed (int) –

start_stirring()[source]

Starts stirring.

start_temperature_regulation()[source]

Starts heating.

start_watchdog_mode1(timeout)[source]

This can’t be cleared remotely, requires power cycle.

Parameters:

timeout (int) –

start_watchdog_mode2(timeout)[source]

This doesn’t display any error as advertised in the manual, just falls back to safety values

Parameters:

timeout (int) –

stop_stirring()[source]

Stops stirring.

stop_temperature_regulation()[source]

Stops heating.

stop_watchdog()[source]

Clears mode2 watchdog.

class PyLabware.devices.ika_ret_control_visc.RETControlViscHotplateCommands(*args, **kwargs)[source]

Bases: LabDeviceCommands

Collection of commands for IKA RET Control Visc stirring hotplate.

This class shouldn’t be instantiated

DEFAULT_NAME = 'IKARET'
GET_CYCLE_OFF_TIME = {'name': 'IN_SP_56', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_CYCLE_ON_TIME = {'name': 'IN_SP_55', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_NAME = {'name': 'IN_NAME', 'reply': {'type': <class 'str'>}}
GET_PH = {'name': 'IN_PV_80', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_SENSOR_TIMEOUT = {'name': 'IN_SP_54', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_SPEED = {'name': 'IN_PV_4', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'int'>}}
GET_SPEED_SET = {'name': 'IN_SP_4', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'int'>}}
GET_TEMP = {'name': 'IN_PV_2', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_TEMP_EXT = {'name': 'IN_PV_1', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_TEMP_EXT_2 = {'name': 'IN_PV_7', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_TEMP_EXT_2_SET = {'name': 'IN_SP_7', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_TEMP_EXT_SET = {'name': 'IN_SP_1', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_TEMP_SAFE = {'name': 'IN_PV_3', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_TEMP_SAFE_SET = {'name': 'IN_SP_3', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_TEMP_SET = {'name': 'IN_SP_2', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_VERSION = {'name': 'IN_VERSION', 'reply': {'type': <class 'str'>}}
GET_VISC = {'name': 'IN_PV_5', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_WEIGHT = {'name': 'IN_PV_90', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}}
RESET = {'name': 'RESET'}
SET_CYCLE_OFF_TIME = {'check': {'max': 60, 'min': 5}, 'name': 'OUT_SP_56', 'type': <class 'int'>}
SET_CYCLE_ON_TIME = {'check': {'max': 600, 'min': 10}, 'name': 'OUT_SP_55', 'type': <class 'int'>}
SET_NAME = {'name': 'OUT_NAME', 'type': <class 'str'>}
SET_SENSOR_TIMEOUT = {'check': {'max': 30, 'min': 0}, 'name': 'OUT_SP_54', 'type': <class 'int'>}
SET_SPEED = {'check': {'max': 1700, 'min': 50}, 'name': 'OUT_SP_4', 'type': <class 'int'>}
SET_TEMP = {'check': {'max': 340, 'min': 0}, 'name': 'OUT_SP_2', 'type': <class 'int'>}
SET_TEMP_EXT = {'check': {'max': 340, 'min': 0}, 'name': 'OUT_SP_1', 'type': <class 'int'>}
SET_TEMP_EXT_2 = {'check': {'max': 340, 'min': 20}, 'name': 'OUT_SP_7', 'type': <class 'int'>}
SET_WD_MODE_1 = {'check': {'max': 1500, 'min': 20}, 'name': 'OUT_SP_WD1@', 'type': <class 'int'>}
SET_WD_MODE_2 = {'check': {'max': 1500, 'min': 20}, 'name': 'OUT_SP_WD2@', 'type': <class 'int'>}
SET_WD_SAFE_SPEED = {'check': {'max': 1700, 'min': 0}, 'name': 'OUT_SP_42@', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}, 'type': <class 'int'>}
SET_WD_SAFE_TEMP = {'check': {'max': 340, 'min': 0}, 'name': 'OUT_SP_12@', 'reply': {'args': [-2], 'parser': <function slicer>, 'type': <class 'float'>}, 'type': <class 'int'>}
START_HEAT = {'name': 'START_1'}
START_STIR = {'name': 'START_4'}
STOP_HEAT = {'name': 'STOP_1'}
STOP_STIR = {'name': 'STOP_4'}
TEMP_SENSORS = {0: 'INTERNAL', 1: 'EXTERNAL', 2: 'MEDIUM'}