Eurotherm 3216 Furnace Controller

class nupylab.drivers.eurotherm3216.Eurotherm3216(port: str, clientaddress: int, baudrate: int = 9600, timeout: float = 1, **kwargs)

Bases: Instrument

Instrument class for Eurotherm 3216 process controller.

The 3216 has a program with 8 segments, all of which are executed upon program run, and each consisting of a target setpoint, ramp rate, and dwell time. Segment parameters are accessible by referencing the list of segment subclasses they are attached to, e.g. segments[0].ramp_rate for the ramp rate of the first segment.

serial

pySerial serial port object, for setting data transfer parameters.

segments

program segments, accessible as segments[0], segments[1], etc.

Connect to Eurotherm.

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 Segment(segment_num: int, eurotherm: Eurotherm3216)

Bases: object

A class for each (target, ramp rate, dwell time) segment.

Create segment list and read current values.

Parameters:
  • segment_num – segment number, from 1 to 8.

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

clear()

Set target setpoint, ramp rate, and dwell time to 0.

property dwell: float

Segment dwell duration in seconds.

property ramp_rate: float

Segment ramp rate.

property target_setpoint: float

Segment target setpoint.

property active_setpoint: int

SP1, 2: SP2.

Type:

1

property calculated_error: float

Error = PV - SP.

property current_program_cycle: int

Current program cycle number.

property end_type: str

Programmer end type.

property output_level: float

Power output in percent.

property process_value: float

Process variable.

property program_cycles: int

Number of program cycles to run.

property program_status: str

Program status.

property ramp_units: str

Degrees per mins, hours, or secs.

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 remote_setpoint: float

Local/remote setpoint is selected with address 276.

property remote_setpoint_enabled: bool

Select whether local or remote (comms) setpoint is selected.

Remote setpoint is stored in address 26.

property setpoint1: float

Do not write continuously changing values to this variable.

property setpoint2: float

Do not write continuously changing values to this variable.

property setpoint_rate_limit: float

0 = no rate limit.

property target_setpoint: float

Target setpoint (if in manual mode).

property working_output: float

Read-only if in auto mode.

property working_setpoint: float

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.