Eurotherm 2400 Furnace Controller

class nupylab.drivers.eurotherm2400.Eurotherm2400(port: str, clientaddress: int, baudrate: int = 9600, timeout: float = 1)

Bases: Instrument

Instrument class for Eurotherm 2400 series process controller.

serial

pySerial serial port object, for setting data transfer parameters.

setpoints

dict of available setpoints.

programs

list of available programs, each program containing a list of segment dictionaries.

Connect to Eurotherm and initialize program and setpoint list.

Parameters:
  • port – port name to connect to, e.g. COM1.

  • clientaddress – integer address of Eurotherm in the range of 1 to 254.

  • baudrate – baud rate, one of 9600 (default), 19200, 4800, 2400, or 1200.

  • timeout – timeout for communication in seconds.

class Program(program_num: int, num_segments: int, eurotherm: Eurotherm2400)

Bases: object

Program class contains a list of Segment classes for each segment.

Program 0 is the working program and is read-only. Segment 0 for each program is Program General Data. Program must have its refresh method called before segments can be accessed.

segments

list of segment dicts in program.

Create segment list and read current values.

Parameters:
  • program_num – program number, from 0 to maximum number of programs supported by instrument.

  • num_segments – number of maximum program segments supported by instrument.

  • eurotherm – Eurotherm2400 instance. Provides read/write access.

class Segment(offset: int, eurotherm: Eurotherm2400)

Bases: dict

A dictionary-like class for individual segments within a program.

Segment values in key-value pairs are modified to behave similarly to other Eurotherm Python properties. Segment must have its refresh method called once before values can be read and written.

Read initial segment type and values.

Parameters:
  • offset (int) – segment register offset

  • eurotherm – Eurotherm2400 instance

refresh(val: int | None = None) None

Create new dict from segment type.

refresh() None

Create new dicts for all segments in program.

class Setpoints(eurotherm: Eurotherm2400)

Bases: dict

Setpoints dictionary containing entries for valid setpoints in Eurotherm.

eurotherm

Eurotherm2400 instance, for reading and writing registers

Create empty dictionary with access to eurotherm methods.

Parameters:

eurotherm – Eurotherm2400 instance

property active_setpoint

SP1, 2: SP2, 3: SP3, etc.

Type:

1

property current_program

Current program running (active program number).

property current_segment_number

Read only.

property current_segment_type

Read only.

property operating_mode

Auto/manual mode select.

property output_level

Power output in percent.

property process_value

Process variable.

property program_status

Program status.

property program_time_remaining

Read only. Program time remaining in seconds.

property programmer_cycles

Programmer cycles remaining. Read only.

property programmer_setpoint

Read only.

property ramp_rate

Read only.

read_float(registeraddress: int, functioncode: int = 3, number_of_registers: int = 2, byteorder: int = 0) float

Convert to higher register to properly read floats.

read_time(register: int) float

Read time parameters in seconds.

property segment_setpoint

Read only.

property segment_time_remaining

Read only. Segment time remaining in seconds.

property target_setpoint

Target setpoint (if in manual mode).

property working_setpoint

Working set point. Read only.

write_float(registeraddress: int, val: float, number_of_registers: int = 2, byteorder: int = 0) None

Convert to higher register to properly write floats.

write_time(register: int, val: float)

Write time parameters in seconds.