Omron E5 Furnace Controller

class nupylab.drivers.omron_e5.OmronE5(port: str, clientaddress: int, channels: int = 2, baudrate: int = 9600, parity: str = 'even', bytesize: int = 7, stopbits: int = 2, timeout: float = 0.05, write_timeout: float = 2.0)

Bases: object

Instrument class for Omron E5A(E)R-T based on CompoWay/F communication.

serial

pySerial serial port object, for setting data transfer parameters.

default_channel

channel to write and read from if not explicitly specified

Initialize communication settings and connect to Omron.

Serial connection settings including baudrate, parity, bytesize, stopbits, timeout, and write_timeout can be changed after initialization.

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

  • clientaddress – integer address of Omron in the range of 1 to 99.

  • channels – number of input channels. E5ER-T comes with 2 inputs, E5AR-T comes with 2 or 4 inputs.

  • baudrate – baud rate, one of 9600 (default), 19200, or 38400.

  • parityeven, odd, or none.

  • bytesize – number of data bits.

  • stopbits – number of stopbits.

  • timeout – read timeout in seconds.

  • write_timeout – write timeout in seconds.

Raises:
  • ValueError – if Omron or serial parameters are out of range.

  • SerialException – if device cannot be found or configured.

configure() None

Move to Setting Area 1 and stops operation.

Allows writing to Omron configurational settings. To return to Setting Area 0, use reset_software(), or turn power OFF and ON.

echoback(data: str) str

Perform an echoback test.

Parameters:

data – string to send to Omron, maximum length 200.

Returns:

string of echoed data.

read(command: str) bytes

Execute read command.

Parameters:

command – string command to send to Omron.

Returns:

Reponse from Omron as bytes object.

read_decimal(command: str, decimals: int = 1) float

Write command and convert response to signed decimal.

Parameters:
  • command – string command to send to Omron.

  • decimals – number of decimal places in response.

Returns:

Response from Omron converted to a float.

read_int(command: str, signed: bool = False) int

Read command and convert to signed integer.

Parameters:
  • command – string command to send to Omron.

  • signed – whether integer response should be interpreted as signed.

Returns:

Omron response converted to integer.

reset_software() None

Reset software, equivalent to turning power OFF and ON.

save_ram() None

Write set values to EEPROM.

Written set values include:
  • Operation Level

  • Program Setting Level

  • Adjustment Level

  • Adjustment 2 Level

  • Alarm Set Setting Level

  • PID Setting Level

  • Time Signal Setting Level

  • Approximation Setting Level.

property version: str

Get Omron software version string.

write(command: str) None

Execute write command.

Parameters:

command – string command to send to Omron.

write_decimal(command: str, val: float, decimals: int = 1) None

Write command with decimal value.

Convert value to two’s complement int, then 8-wide hex and write command.

Parameters:
  • command – string command to send to Omron.

  • val – float value to send to Omron.

  • decimals – number of decimal places in response.

write_int(command: str, val: int) None

Convert val to two’s complement int, then 8-wide hex, and write command.

Parameters:
  • command – string command to send to Omron.

  • val – integer value to write.

property writing_enabled: bool

Control whether communications writing is enabled. True or False.

class nupylab.drivers.omron_e5.OmronE5Channel(parent: OmronE5, channel_num: int)

Bases: object

Individual input channel for Omron E5AR and E5ER.

omron

Omron parent class.

Create Omron input channel.

Parameters:
  • parent – Omron class instance channel belongs to.

  • channel_num – channel number, 1 to 4.

property alarm_1_limits_1: Tuple[float, float]

Control alarm set 1, lower and upper limits 1.

Returns and sets as a tuple of (lower_limit, upper_limit).

property alarm_1_limits_2: Tuple[float, float]

Control alarm set 1, lower and upper limits 2.

Returns and sets as a tuple of (lower_limit, upper_limit).

property alarm_1_setpoint_1: float

Control alarm set 1, value 1.

property alarm_1_setpoint_2: float

Control alarm set 1, value 2.

property analog_decimals: int

Control number of decimal places displayed, if input type is analog.

Valid range is 0 to 4.

property autotune_status: str

Control PID autotune status.

Valid options are run or stop. Applies to current PID number only.

property input_type: Tuple[int, str]

Control input type. Can only set from Setting Area 1.

Getting this property returns tuple with integer value and string input type. Temperature input type can be set with either integer or string. Analog imput type must be set with integer. Input type (temperature or analog) must agree with input type switch.

property internal_setpoint: float

Read internal setpoint.

property operating_mode: str

Control auto/manual mode. Must be auto or manual.

property output_power: float

Control power output in percent. Negative values indicate cooling.

Valid range is

-5.0 to 105.0 for standard ouput -105.0 to 105.0 for heat/cool output -10.0 to 110.0 for position proportional output

Settable only if operating_mode is set to manual.

property pid_number: int

Control PID set number. Valid range is 1 to 8, or 0 (automatic).

property present_setpoint: float

Read present setpoint.

property present_value: float

Read present value.

property setpoint_mode: str

Control setpoint mode. Must be local or remote.

property status: List[str]

Read Omron status.

class nupylab.drivers.omron_e5.OmronE5T(port: str, clientaddress: int, channels: int = 2, baudrate: int = 9600, parity: str = 'even', bytesize: int = 7, stopbits: int = 2, timeout: float = 0.05, write_timeout: float = 2.0)

Bases: OmronE5

Instrument class for Omron E5A(E)R-T based on CompoWay/F communication.

serial

pySerial serial port object, for setting data transfer parameters.

default_channel

channel to write and read from if not explicitly specified

Initialize communication settings and connect to Omron.

Serial connection settings including baudrate, parity, bytesize, stopbits, timeout, and write_timeout can be changed after initialization.

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

  • clientaddress – integer address of Omron in the range of 1 to 99.

  • channels – number of input channels. E5ER-T comes with 2 inputs, E5AR-T comes with 2 or 4 inputs.

  • baudrate – baud rate, one of 9600 (default), 19200, or 38400.

  • parityeven, odd, or none.

  • bytesize – number of data bits.

  • stopbits – number of stopbits.

  • timeout – read timeout in seconds.

  • write_timeout – write timeout in seconds.

Raises:
  • ValueError – if Omron or serial parameters are out of range.

  • SerialException – if device cannot be found or configured.

property ramp_mode: str

Control program ramp mode. Can only set from Setting Area 1.

Valid options are time or rate. Default is time. If set to time, time_units applies to both soak time and ramp time. If set to rate, time_units applies only to soak time, and ramp_units applies to ramp rate.

property ramp_units: str

Control ramp rate units. Only applies if ramp_mode is set to rate.

Valid options are 10h (10 hours), hours, mins, and secs. Default is mins. Can only be set from Setting Area 1.

property time_units: str

Control progammer time units. Can only set from Setting Area 1.

Applies to soak time and ramp time for step time programming, applies only to soak time for ramp rate programming.

Valid options are hhmm (hour, minute), mmss (minute, second), or mmssd (minute, second, desisecond). Default is hhmm.

class nupylab.drivers.omron_e5.OmronE5TChannel(parent: OmronE5T, channel_num: int)

Bases: OmronE5Channel

Individual input channel for Omron E5AR-T and E5ER-T.

omron

Omron parent class.

program

class for active program containing a list of segments.

Create Omron input channel.

Parameters:
  • parent – Omron class instance channel belongs to.

  • channel_num – channel number, 1 to 4.

class Program(channel: OmronE5TChannel, channel_num: int)

Bases: object

Program class for each Omron input channel.

Only supports 8 segments regardless of channel setting.

channel

Omron channel program belongs to.

segments

list of segment classes

Create program class.

Parameters:
  • channel – Omron Program Channel class instance.

  • channel_num – Omron channel number.

class Segment(program: Program, address: str)

Bases: object

Segment class for program.

Create program segment.

Parameters:
  • program – OmronE5TChannel program instance.

  • address – first two characters of segment address.

property ramp_rate: float

Control segment ramp rate.

property setpoint: float

Control segment setpoint.

property time: float

Control segment time. Formatted as decimal, e.g. 99.59.

property segments_used: int

Control number of segments used. Valid range is 1 to 8.

property var: str

Get variable area for current program number. Read only.

property fixed_setpoint: float

Control fixed setpoint.

property num_segments: int

Control number of segments in programs.

Valid options are 8, 12, 16, 20, and 32. Default is 16. The maximum number of programs than can be set depends on the number of segments. 8 segments: 32 programs 12 segments: 20 programs 16 segments: 16 programs 20 segments: 12 programs 32 segments: 8 programs

property pid_number: int

Control PID set number. Valid range is 1 to 8, or 0 (automatic).

property program_num: int

Control active program number. Valid range is 1 to 32.

property program_status: List[str]

Control program status.

Getting this property returns list of program status conditions. Valid set values are run or reset.

property setpoint_mode: str

Control setpoint mode. Must be program, remote, or fixed.