Skip to main content

Lightweight Python driver for Omega CN-series temperature controllers using Modbus over serial

Project description

Omega Controller (Python)

Lightweight Python driver for Omega CN-series temperature controllers using Modbus over serial (via minimalmodbus).

Features

  • PV/SV: get present value and set temperature setpoint
  • On/Off: get and set the controller on/off
  • Modes: PID, ON/OFF, MANUAL, and PID Program (Ramp/Soak)
  • PID tuning: get/set P, I, D
  • Program params: read/write 64-register blocks for Ramp/Soak (A/B)
  • Error handling: maps Omega error/status codes and raises helpful exceptions

Install dependencies:

pip install minimalmodbus

Quickstart

from OmegaController import OmegaController, OmegaControllerError

# Adjust port/slave as needed for your setup
ctrl = OmegaController(port="COM3", slave_address=1, baudrate=9600, parity="even", bytesize=7, stopbits=1, mode="ascii")

try:
    # Optional: raise if the controller is reporting an error
    ctrl.check_errors()

    # Read process value (°C)
    pv = ctrl.get_pv()
    print("PV:", pv)

    # Set temperature setpoint (°C)
    ctrl.set_sv(150.0)

    # Switch to PID Program (Ramp/Soak) mode
    ctrl.set_control_method("program")

    # Tune PID
    ctrl.set_p(12.3)
    ctrl.set_i(600)
    ctrl.set_d(120)

except OmegaControllerError as e:
    print("Controller error:", e)
finally:
    ctrl.close()

API Overview

  • PV/SV
    • get_pv(raise_on_error=False) -> Optional[float]
    • get_sv() -> Optional[float]
    • set_sv(temp_c: float) -> None
  • Control method
    • get_control_method() -> Optional[int] (0=PID, 1=ON/OFF, 2=MANUAL, 3=PROGRAM)
    • set_control_method(method: int|str) -> None
  • PID
    • get_p()/set_p() – proportional band (0.1 resolution)
    • get_i()/set_i() – integral time (seconds)
    • get_d()/set_d() – derivative time (seconds)
  • Ramp/Soak program parameters
    • Blocks: A = 0x2000–0x203F, B = 0x2080–0x20BF (64 regs each)
    • read_program_block(block) / write_program_block(block, values)
    • read_program_param(block, offset) / write_program_param(block, offset, value)
  • Errors
    • check_errors(raise_on_error=True) – checks status and PV error codes
    • Raises OmegaControllerError with descriptive message

Serial Settings

  • Some models use alternate status/PV addresses; this driver handles common variants

Compatibility

  • Tested on: Omega CN7800
  • Expected to work with many CN-series models using the same Modbus map

Roadmap - Contributions Welcome

  • Test on additional Omega models
  • Add remaining serial commands from the manual (alarms, limits, etc.)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omega_controller-0.0.2.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omega_controller-0.0.2-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file omega_controller-0.0.2.tar.gz.

File metadata

  • Download URL: omega_controller-0.0.2.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for omega_controller-0.0.2.tar.gz
Algorithm Hash digest
SHA256 26300db9b3de4244f019858fc0e47d6d24c7ce965a4f7c23742931b75c3002fe
MD5 62b50bc1089b1512c709b7a95b8ec8f9
BLAKE2b-256 1280ef3a509ccd2d9e90179e6c26519ce4a110f1d56283272f77f870a01e65c3

See more details on using hashes here.

File details

Details for the file omega_controller-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for omega_controller-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 856329753c3d252cee333a34b306fa23015d27455cb58f260c097dd1d5c74042
MD5 e2f21277e1cc42f8fdc6107171f7b9d4
BLAKE2b-256 806231ba4149b615d6923b50a1d1ac1e6a43f1937b0e0dd2276034cd572db5c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page