ismatec

ismatec_scanner

Scan system serial ports for connected Ismatec Reglo peristaltic pumps.

plateflo.ismatec.ismatec_scanner.scan_for_pumps() list

Scans system serial ports for connected Ismatec Reglo peristaltic pumps.

Returns:

list [{‘pump’ – One dict per pump detected. [{‘pump’:str, ‘port’:str, ‘addr’:int}, …]

pump : str - Pump model, ‘ICC’ or ‘Digital’.

port : str - Serial port name.

addr : int - Pump internal address.

Return type:

str, ‘port’:str, ‘addr’:int}, …]

ismatec_icc

Convenience functions for control of common Ismatec Reglo ICC peristaltic pump functions.

class plateflo.ismatec.ismatec_icc.RegloICC(port, addr, channels=4, timeout=0.5)

Ismatec Reglo ICC pump object, for serial control of multi-channel pump.

Parameters:
  • port (str) – Serial port on which Relgo ICC is connected. E.g. ‘COM3’

  • channels (int, default=4) – Number of channels on ICC pump.

  • timeout (float, default=0.5) – Time (seconds) to allow pump to respond before commands timeout/fail.

pump_ser

Backend PySerial device object

Type:

Serial

port

Serial port name

Type:

str

addr

Pump internal address (for e.g. serial daisy-chaining)

Type:

str

status

state, direction, and flow rate for all channels. Timestamp of last update.

Type:

dict

max_flow

Pump maximum flow rate (mL/min)

Type:

float

n_channels

Number of independant channels on Reglo ICC pump.

Type:

int

display_text(txt: str) int

Show text on the pump LCD. Maximum 15 character.

Parameters:

txt (str) – Text to display on pump LCD. Maximum 15 characters.

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

get_chan_dir(chan: int) int

Query pump channel head direction.

Parameters:

chan (int) – Pump channel number

Returns:

1 == clockwise

-1 == counter-clockwise

0 == error

Return type:

int

get_chan_flow(chan: int) float

Query channel set flow-rate.

NB: Not supported when daisy-chaining multiple pumps over single serial interface.

Parameters:

chan (int) – Pump channel number

Returns:

channel set flow-rate; otherwise,

-1.0 == error

Return type:

float

get_chan_run_state(chan: int) int

Query pump channel run state.

Parameters:

chan (int) – Pump channel number

Returns:

1 == running,

0 == stopped,

-1 == error

Return type:

int

get_dir() int

Query pump head direction.

Returns:

Pump head direction:

+1 == clockwise

-1 == counter-clockwise

0 == unknown error

Return type:

int

get_max_flowrate() float

Query the maximum achievable flow rate in mL/min.

Returns:

Maximum pump flow rate (mL/min)

Return type:

float

kill()

Kill all threads and close the pump’s serial port

restore_display() int

Return the LCD to normal display mode. Used to reset the LCD after display_text, for example.

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

send_cmd_pass_fail(cmd: str) int

Send command ,`cmd`, to pump. Resend if failure up to a total of three attempts.

See Reglo ICC manual (pp. 17-33) for command structure documentation. http://www.ismatec.com/images/pdf/manuals/14-036_E_ISMATEC_REGLO_ICC_ENGLISH_REV.%20C.pdf

Parameters:

cmd (str) – Command string, CR-terminated.

Returns:

1 == pass

0 == fail

-1 == error

Return type:

int

send_cmd_string_resp(cmd_string: str, EOL='\n') str

Command/query the pump with cmd. Resend if failure up to a total of three attempts.

See Reglo ICC manual (pp. 17-33) for command structure documentation. http://www.ismatec.com/images/pdf/manuals/14-036_E_ISMATEC_REGLO_ICC_ENGLISH_REV.%20C.pdf

Parameters:

cmd (str) – Command string, CR-terminated.

Returns:

pump response string

Return type:

str

set_chan_dir(chan: int, direction: int) int

Set channel direction: clockwise(+1), or counterclockwise(-1).

Parameters:
  • chan (int) – Pump channel number

  • direction (int {-1, +1}) – Channel direction: clockwise (+1) or counter-clockwise (-1)

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

set_chan_flow(flow_rate, chan)

Set channel flow rate in mL/min.

Parameters:
  • chan (int) – Pump channel number

  • flow_rate (float) – Flow rate in mL/min

Returns:

1 == Pass 0 == Fail -1 == Error

Return type:

int

set_dir(direction: int) int

Set pump head direction: clockwise(+1), or counterclockwise(-1)

Parameters:

direction (int {-1, +1}) – Pump head direction: clockwise (+1) or counter-clockwise (-1)

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

set_flow(flow_rate: float) float

Set pump flow rate (mL/min). If requested flow rate is above pump limit, set to maximum achievable, max_flow.

Returns:

1 == pass

0 == fail

-1 == error

Return type:

int

set_mode_flowrate()

Set pump to volumetric flowrate mode.

Returns:

1 == pass

0 == fail

-1 == error

Return type:

int

set_per_chan_mode(mode: int)

Set mode for command addressing: channel(1), pump-wide(0)

Parameters:

mode (int {0, 1}) – Send pump-wide commands (0) or per-channel (1).

Returns:

1 == pass

0 == fail

-1 == error

Return type:

int

start() int

Start/run pump, includes all channels with a non-zero flow rate.

Returns:

1 == pass

0 == fail

-1 == error

Return type:

int

start_chan(chan: int) int

Start/run pump channel.

Parameters:

chan (int) – Pump channel number

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

stop() int

Stop pump. All channels.

Returns:

1 == pass

0 == fail

-1 == error

Return type:

int

stop_chan(chan: int) int

Stop pump channel.

Parameters:

chan (int) – Pump channel number

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

update_status()

Update the pump status attribute. Must be called manually.

ismatec_dig

Convenience functions for control of common Ismatec Reglo Digital peristaltic pump functions

class plateflo.ismatec.ismatec_dig.RegloDigital(port: str, addr: int)

Ismatec Reglo Digital pump control serial control.

Parameters:
  • port (str) – Serial port on which Relgo Digital is connected. E.g. ‘COM3’.

  • timeout (float, default=0.5) – Time (seconds) to allow pump to respond before commands timeout/fail.

pump_ser

Backend PySerial device object

Type:

Serial

port

Serial port name

Type:

str

addr

Pump address (for e.g. serial daisy-chaining)

Type:

int

status

Dictionary of last pump status update values

timestamp - datetime object of last status update

run_state - pump head state ‘Running’, ‘Idle’, or ‘ERROR’

dir - pump head direction. -1 (CCW); +1 (CW); 0 (ERROR)

flow - current set flow rate (mL/min)

Type:

{‘timestamp’:datetime, ‘run_state’:str, ‘dir’:int, ‘flow’:float}

max_flow

Pump maximum flow rate

Type:

float

last_dir

Last set pump head direction. CW == +1; CCW == -1; ERROR == 0.

Type:

int

display_text(txt)

Show text on the pump LCD, 4 characters max.

Parameters:

txt (str) – Text to display on pump LCD. Maximum 4 characters.

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

get_dir()

Returns the last direction set via control software. Note Reglo Digital lacks ability to query pump head direction. Tracked in software.

Returns:

Last set pump direction:

+1 == clockwise

-1 == counter-clockwise

0 == unknown error

Return type:

int

get_flow() float

Query current pump flow rate.

Returns:

Flow rate in mL/min. OR -1 if an error occured.

Return type:

float

get_run_state()

Query pump current run status.

Returns:

1 == Running

0 == Stopped

-1 == Other error

-2 == Stopped, motor overload

Return type:

int

kill()

Kill all threads and close pump serial port

restore_display()

Return the LCD to normal display mode. Used to clear text displayed using display_text.

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

send_cmd_pass_fail(cmd: str) int

Send command ,`cmd`, to pump. Resend if failure up to a total of three attempts.

See Reglo Digital manual (pp. 33-38) for command structure documentation. http://www.ismatec.com/images/pdf/manuals/Reglo_Digital_new.pdf

Parameters:

cmd (str) – Command string, CR-terminated.

Returns:

1 == pass

0 == fail

-1 == error

Return type:

int

send_cmd_string_resp(cmd) str

Query the pump with cmd. Resend if failure up to a total of three attempts.

See Reglo Digital manual (pp. 33-38) for command structure documentation. http://www.ismatec.com/images/pdf/manuals/Reglo_Digital_new.pdf

Parameters:

cmd (str) – Command string, CR-terminated.

Returns:

pump response string

Return type:

str

set_cal_flow(flow_rate=12.4)

Set the calibrated volumetric flow rate at maximum pump speed.

Parameters:

flow_rate (float, default = 12.4) – Volumetric flow rate (mL/min) at maximum pump head speed. Default 12.4 mL/min.

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

set_dir(direction)

Set pump head direction clockwise or counterclockwise.

Parameters:

direction (int {-1, +1}) – Pump head direction: clockwise (+1) or counter-clockwise (-1)

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

set_flow(flow_rate: float) int

Set pump flow rate.

Parameters:

flow_rate (float) – Flow rate in mL/min.

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

set_mode_flowrate()

Change pump flow rate to mL/min mode

set_mode_rpm()

Change pump flow rate to RPM speed mode

set_tube_diameter(diam_mm)

Sets tubing inner diameter. Determines calibrated volumetric flow rate.

0.13, 0.19, 0.25, 0.38, 0.44, 0.51, 0.57, 0.64, 0.76, 0.89, 0.95, 1.02, 1.09, 1.14, 1.22, 1.30, 1.42, 1.52, 1.65, 1.75, 1.85, 2.06, 2.29, 2.54, 2.79, 3.17

Parameters:

diam_mm (float {0.13, 0.19, 0.25, 0.38, 0.44, 0.51, 0.57, 0.64, 0.76, 0.89, 0.95, 1.02, 1.09, 1.14, 1.22, 1.30, 1.42, 1.52, 1.65, 1.75, 1.85, 2.06, 2.29, 2.54, 2.79, 3.17}) – Tubing inner diameter in millimeters

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

start() int

Start/run the pump.

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

stop() int

Stop the pump.

Returns:

1 == Pass

0 == Fail

-1 == Other error

Return type:

int

update_status()

Update the pump status attribute. Must be called manually.