python-owen
Библиотека для работы с измерительными приборами фирмы Овен по протоколам Modbus RTU и ОВЕН.
Быстрый старт
Установка
pip install pymodbus==2.5.3
pip install pyserial
⚠️ Важно: Библиотека работает только с pymodbus==2.5.3. Новые версии не поддерживаются!
Пример использования
from owen import OwenClient
# Подключение к прибору
client = OwenClient(port='/dev/ttyUSB0', baudrate=9600, address=16)
# Чтение температуры
temperature = client.read_temperature()
print(f"Температура: {temperature}°C")
# Установка уставки
client.write_setpoint(75.0)
📋 Поддерживаемые приборы
Терморегуляторы
| Модель | Страница продукта | Протокол |
|---|---|---|
| ТРМ101 | Документация | Modbus, ОВЕН |
| ТРМ136 | Документация | Modbus, ОВЕН |
| ТРМ138 | Документация | Modbus, ОВЕН |
| ТРМ148 | Документация | Modbus, ОВЕН |
| ТРМ151 | Документация | Modbus, ОВЕН |
| ТРМ200 | Документация | Modbus, ОВЕН |
| ТРМ201 | Документация | Modbus, ОВЕН |
| ТРМ202 | Документация | Modbus, ОВЕН |
| ТРМ210 | Документация | Modbus, ОВЕН |
| ТРМ212 | Документация | Modbus, ОВЕН |
| ТРМ251 | Документация | Modbus, ОВЕН |
| 2ТРМ1 | Документация | Modbus, ОВЕН |
Программируемые реле
| Модель | Страница продукта | Протокол |
|---|---|---|
| ПР100 | Документация | Только Modbus |
Примечание: ПР100 не поддерживает протокол ОВЕН!
Настройка приборов
Параметры связи
Для работы с прибором необходимо настроить:
- Скорость: 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200 бод
- Адрес устройства: 0-255 (по умолчанию 16)
- Формат данных: 8N1, 8E1, 8O1
Пример настройки ТРМ
# Для RS-485
client = OwenClient(
port='/dev/ttyUSB0', # COM-порт (Windows: 'COM3')
baudrate=9600, # Скорость обмена
address=16, # Адрес прибора
timeout=1.0 # Таймаут ответа
)
Расширение функционала
Библиотека поддерживает добавление новых моделей приборов. Для этого необходимо:
- Открыть файл
owen/device.py - Добавить конфигурацию для вашей модели по аналогии с существующими
- Указать карту регистров согласно документации прибора
Пример добавления нового прибора:
DEVICES = {
"ТРМ999": {
"registers": {
"temperature": {"address": 0x0001, "type": "float"},
"setpoint": {"address": 0x0005, "type": "float"},
}
}
}
📖 Дополнительная информация
📄 Лицензия
Проект является форком: https://github.com/RAA80/python-owen
⚠️ Известные проблемы
- pymodbus > 2.5.3 - не совместимы с текущей версией библиотеки
- ПР100 - поддерживает только Modbus, протокол ОВЕН не работает
- Не все модели были протестированы в реальных условиях
Languages
Python
100%