Vacuubrand CVC3000

PyLabware driver for Vacuubrand CVC3000 vacuum pump controller.

class PyLabware.devices.vacuubrand_cvc_3000.CVC3000VacuumPump(device_name, connection_mode, address, port)[source]

Bases: AbstractPressureController

This provides a Python class for the Vacuubrand CVC3000 vacuum controller based on the the original operation manual 20901228_EN_ONLINE

Default constructor.

Parameters:
  • device_name (str) –

  • connection_mode (str) –

  • address (str | None) –

  • port (int | str) –

check_errors()[source]

Get the error string from the device and it translates it into a readable string. As long as the error string can contain only 1 and 0, unlike configuration and status strings, it can be treated as a bit field.

clear_errors()[source]

Not implemented in this device, requires manual checking.

get_configuration(verbose=False)[source]

Gets device configuration and returns it as a list of integers or as a human-readable dictionary

Parameters:

verbose (bool) –

get_end_pressure_setpoint()[source]

Returns the end pressure setpoint.

Return type:

int

get_end_timeout()[source]

Gets end time value in seconds.

get_mode()[source]

Returns pump operation mode.

Return type:

int

get_pressure()[source]

Returns the current pressure. In simulation returns atmospheric pressure.

Return type:

float

get_pressure_setpoint()[source]

Returns the pressure setpoint, in millibar.

Return type:

int

get_pump_speed()[source]

Returns the current speed of the pump’s motor in %.

Return type:

int

get_pump_speed_setpoint()[source]

Returns the maximum speed of the pump in %.

Return type:

int

get_status(verbose=False)[source]

Gets device status and returns it as a list of integers or as a human-readable dictionary

Parameters:

verbose (bool) –

initialize_device()[source]

Sets the following parameters: echo ‘on’ for all SET_x commands, to check if the command was interpreted correctly remote control active otherwise the device cannot accept any settings, set the controller to CVC 3000 which is the most comprehensive set the mode to vacuum control

is_connected()[source]

Checks if the correct device is connected by asking the name.

Return type:

bool

is_idle()[source]

Checks if the pump is in function at the moment.

Return type:

bool

is_vent_open()[source]

Checks if the vent is open.

Return type:

bool

set_echo(value)[source]

Toggle echo mode of the device on/off. When echo mode is on, pump replies with command argument for each command correctly recognized. If echo mode is on, but the command is wrong/unrecognized - the pump replies nothing.

Parameters:

value (bool) –

set_end_pressure(pressure)[source]

Sets the the end pressure for auto mode and pump down mode. After this pressure is reached or the timeout has elapsed (whichever happens first), the pump switches off.

Parameters:

pressure (int) –

set_end_timeout(timeout)[source]

Sets end time for pump down and auto mode. After this time has elapsed or switch-off pressure is reached (whichever happens first), the pump switches off.

Parameters:

timeout (int) – Vacuum pump timeout time in seconds.

Exceptions:
Raises PLDeviceCommandError if the timeout value is not within the range from 1 s

to 86400 s.

set_mode(mode)[source]

Sets pump operation mode. When set to extended auto modes (30, 31, 32), the controller would always read back mode 3.

set_pressure(pressure)[source]

Sets the pressure to be reached, in millibar. Takes pressure as a float to comply w/ AbstractPressureController, but the device only understands mbar (int).

Parameters:

pressure (float) –

set_pump_speed(speed)[source]

Sets the maximum speed (1 - 100 %) the pump will reach.

Parameters:

speed (int) –

set_remote(value)[source]

Toggle the remote control of the device on/off. After the pump is disconnected it will remain in remote control state not allowing manual actions on the front panel.

Parameters:

value (bool) –

start_pressure_regulation()[source]

Starts the pump.

stop_pressure_regulation()[source]

Stops the pump.

property unit

Get pressure unit that the device is currently operating with.

Returns:

Pressure unit that the device is currently operating with. One of ‘mbar’, ‘Torr’ or ‘hPa’. If :py:attr`initialize_device` has not been called then return None.

Return type:

str

vent_auto()[source]

Automatically vents the pump to the atmospheric pressure.

vent_off()[source]

Closes the air admittance valve.

vent_on()[source]

Opens the air admittance valve.

class PyLabware.devices.vacuubrand_cvc_3000.CVC3000VacuumPumpCommands(*args, **kwargs)[source]

Bases: LabDeviceCommands

Collection of command definitions for CVC3000 vacuum controller.

This class shouldn’t be instantiated

CONFIGURATIONS = {'acoustic_signal': {0: 'ACOUSTIC SIGNAL OFF', 1: 'ACOUSTIC SIGNAL ON'}, 'active_sensor': {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}, 'autostart': {0: 'AUTOSTART OFF', 1: 'AUTOSTART ON'}, 'coolant_valve_connected': {0: 'NO COOLANT VALVE', 1: 'COOLANT VALVE CONNECTED'}, 'fault_indicator_connected': {0: 'NO FAULT INDICATOR', 1: 'FAULT INDICATOR CONNECTED'}, 'inline_valve_connected': {0: 'NO IN-LINE VALVE', 1: 'IN-LINE VALVE CONNECTED'}, 'language': {0: 'GERMAN', 1: 'ENGLISH', 2: 'FRENCH', 3: 'ITALIAN', 4: 'SPANISH', 5: 'TURKISH', 6: 'KOREAN', 7: 'CHINESE', 8: 'PORTUGUESE', 9: 'RUSSIAN', 10: 'POLISH', 11: 'DUTCH', 12: 'JAPANESE', 13: 'FINNISH'}, 'level_sensor_connected': {0: 'NO LEVEL SENSOR', 1: 'LEVEL SENSOR CONNECTED'}, 'mode': {0: 'VACU LAN mode.', 1: 'Pumping down mode.', 2: 'Vac control mode.', 3: 'Auto mode.', 4: 'Program mode.', 5: 'Gauge.'}, 'remote_control': {0: 'REMOTE OFF', 1: 'REMOTE ON'}, 'remote_module_connected': {0: 'NO REMOTE MODULE', 1: 'REMOTE MODULE CONNECTED'}, 'total_sensors': {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}, 'unit': {0: 'mbar', 1: 'Torr', 2: 'hPa'}, 'vario_pump_connected': {0: 'NO VARIO PUMP', 1: 'VARIO PUMP CONNECTED'}, 'vent_valve_connected': {0: 'NO VENT VALVE', 1: 'VENT VALVE CONNECTED'}, 'vms_connected': {0: 'NO VMS', 1: 'VMS CONNECTED'}}
DEFAULT_NAME = 'CVC 3000'
ERRORS = {0: 'Last command incorrect!', 1: 'Catch pot full error!', 2: 'External error!', 3: 'Vacuum sensor error!', 4: 'Overpressure error!', 5: 'Vent valve error!', 6: 'Coolant valve error!', 7: 'In-line valve error!', 8: 'Pump error!'}
EXAMPLE_CONFIG = '3100010001000111'
EXAMPLE_STATUS = '000020'
GET_CONFIG = {'name': 'IN_CFG', 'reply': {'type': <class 'str'>}}
GET_DELAY_TIME = {'name': 'IN_SP_4', 'reply': {'type': <class 'str'>}}
GET_ERRORS = {'name': 'IN_ERR', 'reply': {'type': <class 'str'>}}
GET_NAME = {'name': 'IN_VER', 'reply': {'args': [0, 8], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_OFF_PRESSURE = {'name': 'IN_SP_5', 'reply': {'args': [None, 4], 'parser': <function slicer>, 'type': <class 'int'>}}
GET_PRESSURE = {'name': 'IN_PV_1', 'reply': {'args': [0, 6], 'parser': <function slicer>, 'type': <class 'float'>}}
GET_PRESSURE_SET = {'name': 'IN_SP_1', 'reply': {'args': [0, 4], 'parser': <function slicer>, 'type': <class 'int'>}}
GET_PUMP_SPEED = {'name': 'IN_PV_2', 'reply': {'args': [3], 'parser': <function slicer>, 'type': <class 'int'>}}
GET_PUMP_SPEED_SET = {'name': 'IN_SP_2', 'reply': {'args': [3], 'parser': <function slicer>, 'type': <class 'int'>}}
GET_RUNTIME = {'name': 'IN_PV_3', 'reply': {'type': <class 'str'>}}
GET_STARTUP_PRESSURE = {'name': 'IN_SP_3', 'reply': {'type': <class 'int'>}}
GET_STATUS = {'name': 'IN_STAT', 'reply': {'type': <class 'str'>}}
GET_TIMER = {'name': 'IN_SP_6', 'reply': {'args': [None, 5], 'parser': <function slicer>, 'type': <class 'str'>}}
GET_UPTIME = {'name': 'IN_PV_T', 'reply': {'type': <class 'str'>}}
GET_VERSION = {'name': 'IN_VER', 'reply': {'args': [11, 15], 'parser': <function slicer>, 'type': <class 'float'>}}
LANGUAGES = {0: 'GERMAN', 1: 'ENGLISH', 2: 'FRENCH', 3: 'ITALIAN', 4: 'SPANISH', 5: 'TURKISH', 6: 'KOREAN', 7: 'CHINESE', 8: 'PORTUGUESE', 9: 'RUSSIAN', 10: 'POLISH', 11: 'DUTCH', 12: 'JAPANESE', 13: 'FINNISH'}
OPERATION_MODES = {0: 'VACUU_LAN', 1: 'PUMP_DOWN', 2: 'VAC_CONTROL', 3: 'AUTO', 4: 'PROGRAM', 30: 'AUTO_LOW_SENS', 31: 'AUTO_NORMAL_SENS', 32: 'AUTO_HIGH_SENS'}
SET_CONFIG = {'name': 'OUT_CFG', 'type': <class 'str'>}
SET_CVC_2000 = {'name': 'CVC 2000', 'reply': {'type': <class 'int'>}, 'type': <class 'str'>}
SET_CVC_3000 = {'name': 'CVC 3000', 'reply': {'type': <class 'int'>}, 'type': <class 'str'>}
SET_DELAY_TIME = {'check': {'max': 300, 'min': 1}, 'name': 'OUT_SP_4', 'reply': {'type': <class 'str'>}, 'type': <class 'int'>}
SET_ECHO = {'check': {'values': [0, 1]}, 'name': 'ECHO', 'reply': {'type': <class 'bool'>}, 'type': <class 'int'>}
SET_MODE = {'check': {'values': {0: 'VACUU_LAN', 1: 'PUMP_DOWN', 2: 'VAC_CONTROL', 3: 'AUTO', 4: 'PROGRAM', 30: 'AUTO_LOW_SENS', 31: 'AUTO_NORMAL_SENS', 32: 'AUTO_HIGH_SENS'}}, 'name': 'OUT_MODE', 'reply': {'type': <class 'int'>}, 'type': <class 'int'>}
SET_OFF_PRESSURE = {'check': {'max': 1060, 'min': 0}, 'name': 'OUT_SP_5', 'reply': {'type': <class 'int'>}, 'type': <class 'int'>}
SET_PRESSURE = {'check': {'max': 1060, 'min': 0}, 'name': 'OUT_SP_1', 'reply': {'type': <class 'int'>}, 'type': <class 'int'>}
SET_PRESSURE_WITH_VENT = {'check': {'max': 1060, 'min': 0}, 'name': 'OUT_SP_V', 'reply': {'type': <class 'int'>}, 'type': <class 'int'>}
SET_PUMP_SPEED = {'check': {'max': 100, 'min': 0}, 'name': 'OUT_SP_2', 'reply': {'type': <class 'int'>}, 'type': <class 'int'>}
SET_REMOTE = {'check': {'values': [0, 1]}, 'name': 'REMOTE', 'reply': {'type': <class 'bool'>}, 'type': <class 'int'>}
SET_STARTUP_PRESSURE = {'check': {'max': 1060, 'min': 0}, 'name': 'OUT_SP_3', 'reply': {'type': <class 'int'>}, 'type': <class 'int'>}
SET_TIMER = {'name': 'OUT_SP_6', 'reply': {'args': [None, 5], 'parser': <function slicer>, 'type': <class 'str'>}, 'type': <class 'str'>}
START = {'name': 'START 1', 'reply': {'type': <class 'int'>}}
STATUSES = {'control_state': {0: 'Control off.', 1: 'Reaching set point/boiling point', 2: 'Set point reached/boiling point found.', 3: 'Below set point/auto switch-off.'}, 'coolant_valve': {0: 'Coolant valve closed.', 1: 'Coolant valve open.'}, 'inline_valve': {0: 'In-line valve closed.', 1: 'In-line valve open.'}, 'mode': {0: 'VACU LAN mode.', 1: 'Pumping down mode.', 2: 'Vac control mode.', 3: 'Auto mode.', 4: 'Program mode.', 5: 'Gauge.'}, 'motor_state': {0: 'Pump off.', 1: 'Pump on.'}, 'vent_valve': {0: 'Vent valve closed.', 1: 'Vent valve open.'}}
STOP = {'name': 'STOP 1', 'reply': {'type': <class 'int'>}}
VENT_AUTO = 2
VENT_CLOSED = 0
VENT_OFF = {'name': 'OUT_VENT 0', 'reply': {'type': <class 'int'>}}
VENT_ON = {'name': 'OUT_VENT 1', 'reply': {'type': <class 'int'>}}
VENT_ON_TO_ATM = {'name': 'OUT_VENT 2', 'reply': {'type': <class 'int'>}}
VENT_OPEN = 1