Wiren Board 6 управляет котлом через шлюз Modbus-OpenTherm · Невотон
Главная / Wiren Board 6 управляет котлом через шлюз Modbus-OpenTherm

Wiren Board 6 управляет котлом через шлюз Modbus-OpenTherm

Есть задача подключения оборудования котельной коттеджа в систему Умный дом. В качестве контроллера умного дома выбран Wiren Board 6 (WB6). В котельной установлен одноконтурный котел Thermona, который греет контур отопления (радиаторы в комнатах, подключенные через коллектор) и греет горячую воду в накопительной емкости косвенного нагрева.

У этого котла есть возможность подключения по цифровому интерфейсу OpenTherm для внешнего управления, что позволяет получить от котла необходимую телеметрическую информацию и задавать ему основные параметры работы.

Для подключения контроллера к котлу по OpenTherm решил использовать шлюз Nevoton BCG-3.0.1-W ( см. рис. 1)

Рисунок 1

Список поддерживаемых котлов здесь.

Шлюз к контроллеру подключается по интерфейсу RS485 (протокол Modbus RTU).

На сайте производителя шлюза скачал конфигурационный файл для контроллера Wiren Board 6 (в архиве 7zip или в формате json). Разместил файл .json в каталоге /usr/share/wb-mqtt-serial/templates в контроллере и затем ввел шлюз в конфигурацию контроллера через меню Configs/Serial Device Driver Configuration, как уже известное контроллеру устройство (рис. 2). Процесс пошагово выглядит так:

Рисунок 2

  1. Добавить новое последовательное устройство
  2. Выбирать Device type из списка: OpenThermMBGateway
  3. Задать идентификатор устройства (адрес) на шине Modbus – 10 (у меня такой адрес был в заводской установке шлюза).
  4. Сохранить.

В результате, в WEB-интерфейсе контроллера WB6 появится новое устройство, как показано на рис. 3:

Рисунок 3

Названия каналов этого устройства, в основном, соответствуют названию параметров протокола OpenTherm. И, судя по названиям этих параметров, теперь можно наблюдать всю внутреннюю жизнь котла. Наибольший интерес представляют несколько параметров:

OT_Status – слово статуса котла и мастера. Для выделения отдельных флагов это слово надо парсить любым удобным способом. Можно и с помощью Node-red. Среди флагов есть даже индикатор горения горелки.

OT_Error – флаг ошибки

OT_Modulation – процент модуляции горелки.

OT_BoilerTemperature – температура котловой воды (теплоносителя)

OT_WaterPressure – давление в котловом контуре, бар

OT_DHWsetPoint – заданная температура ГВС. Можно изменять уставку температуры в накопительном водонагревателе в зависимости от сценария автоматики (день/ночь, будни/выходные).

OT_DHWtemp – измеренная температура ГВС

OT_ErrorOEM – код ошибки производителя котла (соответствует коду, индицируемому на панели котла и приведенному в инструкции к котлу). Этот параметр меня интересует больше всего. И лучше всего, когда он равен нулю (нет ошибок).

OT_ControlSetpoint – заданная целевая температура котловой воды. Это основной параметр, с помощью которого производится управление теплогенерацией котла.

Котел не знает какова желаемая температура воздуха в помещении. Он только исполняет команду внешнего управляющего термостата: «Подайте, любезный, теплоноситель с температурой 57 градусов, пожалуйста». Таким термостатом будет виртуальное устройство «Терморегулятор» на контроллере WB6. Он будет вычислять, какой температуры теплоноситель должен подаваться в отопительную систему в зависимости от внешних параметров для достижения желаемой температуры воздуха в помещении.

Рисунок 4

В этой статье описываю виртуальное устройство «Терморегулятор» с реализацией  управления по погодозависимому алгоритму, когда котел подает в отопительную систему теплоноситель с температурой, выбранной по температурной кривой в зависимости от температуры на улице. Таких температурных кривых в «Терморегуляторе» предусмотрено несколько и можно произвести переключение с одной кривой на другую для адаптации к особенностям конкретного обогреваемого строения.

Температура котловой воды Tboiler рассчитывается по следующей замысловатой формуле:

Tboiler = ax2 + bx + c,

где:  a = -0,21k — 0,06; b = 6,04k + 1,98; с = -5,06k + 18,06; x = -0.2*Toutside + 5; k = 0.1 … 3 – коэффициент, учитывающий характеристики помещения  (теплопотери, отапливаемая площадь и проч.)

 

Интерфейс виртуального устройства реализовал скриптом WB6, а функционал виртуального устройства средствами node-red (рис. 5). Использованы ноды node-red-contrib-Wiren Board, предложенные пользователем apopov.

Рисунок 5

Привожу Javascript.

Чтобы удобно было задавать температурный режим для помещений и измерять комнатную температуру, я воспользовался комнатным пультом ПУ-3 (рис. 6) с интерфейсом RS485 (Modbus RTU), который предложил автор статьи (Управление климатом в комнате с радиаторным отоплением при помощи сенсорной панели термостата).

Рисунок 6

Для питания контроллера, шлюза и пультов можно использовать один блок питания +24V.

Вот так выглядит установленное оборудование в щитке автоматики в котельной (рис.7):

Рисунок 7

 

В котельной у нас расположен еще счетчик ХВС Valtec VLF-UI 15, счетчик газа c импульсным выходом и рядом в главном щите стоит счетчик электроэнергии Меркурий- 206. Подключим к контроллеру и все счетчики, а для этого установим модуль опроса счетчиков NEVOTON PCR-6.0.1-E.

Этот модуль взаимодействует с контроллером по интерфейсу Ethernet. Попросту, он должен быть подключен к той же локальной сети, что и контроллер (проводом Ethernet или через Wi-Fi-канал). В WEB-интерфейсе модуля можно произвести настройки подключения к MQTT-брокеру контроллера Wiren Board 6, указав IP-адрес и порт контроллера. Имена топиков можно не указывать – в настройках по умолчанию на заводе уже прописаны допустимые для Wiren Board 6 топики.

После включения модуля опроса счетчиков в локальную сеть и выполнении указанных настроек в WEB-интерфейсе контроллера появится новое устройство PCR-6.0.1 (рис. 8) с показаниями всех подключенных к нему счетчиков. 

Рисунок 8

 

Подробнее, о применении модуля опроса счетчиков NEVOTON PCR-6.0.1-E можно узнать тут и тут: