Электрический котел Эван (EVAN) NEXT PLUS оснащен RS485 интерфейсом с поддержкой Modbus RTU. Мне понадобилось подключить его к сети Ethernet. Для этого я использовал недорогой китайский конвертер Modbus RTU в Modbus TCP: EletechSup ET69C02. Описание устройства дано на китайском на станице http://gkwiki.cn/doku.php?id=gt1001.
Питание платы от 12В. Я использовал БП на DIN рейку Faraday 12W/12-24V/DIN.
- Клеммы питания подключаем к контактам БП (GND и VIN), как показано на рисунке.
- RS485 A+/B- подключаем к соответствующему разъему на плате контроллера электрокотла EVAN NEXT PLUS.
- Ethernet кабель подключаем к RJ45 разъему на плате GT1001 и к коммутатору Wi-Fi роутера на котором поднят DHCP сервер.
Описание подключения к устройству подробно рассмотрено в видео. Основные шаги:
- По-умолчанию устройство имеет статический IP адрес 192.168.0.10.
- Чтобы подключится к веб интерфейсу для начальной установки, необходимо на ПК, с которого будет производится настройка, установить IP адрес из подсети 192.168.0.х. Я задал IP: 192.168.0.1.
- Зайти в браузере на IP: 192.168.0.10.
- Откроется страница на китайском языке, где в единственном поле нужно ввести пароль: admin. Нажать кнопку «Login», справа.
- После авторизации в правом верхнем углу переключаемся на English.
После получения доступа к веб администрированию конвертера нужно настроить Serial Port и LAN.
Настройки LAN
Выбираем:
- Mode: Modbus Slave.
- IP Type: DHCP. Мне удобнее привязывать статический IP адрес по MAC адресу на роутере, нежели задавать статикой.
- Local Port: 8899. Стандартный порт для Modbus — 502. Изменил для проверки, что все отрабатывает.
Сохраним MAC адрес. Он пригодится для поиска устройства в сети.
Нажимаем Save. После чего нужно либо перегрузить преобразователь по питанию, либо зайти в System -> Reset.
Настройка Serial Port
В настройках Serial Port для работы по Modbus RTU с котлом EVAN NEXT PLUS проставляем следующие параметры:
- BaudRate: 115200,
- DataBits: 8,
- StopBits: 1,
- Parity: None,
- Flow Control: FC, т.е. включаем.
- Flow Control для котла NEXT PLUS должен быть ОТКЛЮЧЕН, но, видимо, из-за ошибки разработчиков конвертера ET69C02 его нужно включать, чтобы все работало (последняя прошивка на 02.2023). В конвертере Elfin EE-11 все отрабатывает корректно при выключенном Flow Control, как и должно быть.
Нажимаем Save. После чего нужно либо перегрузить преобразователь по питанию, либо зайти в System -> Reset.
После перезагрузки проверяем настройку параметров.
Подключение к котлу NEXT PLUS по Modbus RTU
Вычитаем по Modbus TCP настройки котла. В настройках котла нужно разрешить внешнее управление по Modbus. Для доступа к котлу по Modbus воспользуемся программой QModMaster: https://sourceforge.net/projects/qmodmaster/.
Function Code — 0х03 ( Read Holding Registers ), начальный адрес — 40001.
смещение | параметр |
0 | Режим работы: 0 — Комнатный, 1 — Отопление. |
1 | Заданная температура теплоносителя от 8 до 85 |
2 | Заданная температура воздуха от 0 до 35 |
3 | Максимальное количество ступеней мощности |
4 | Максимальная температура теплоносителя |
5 | Заданная температура ГВС от 40 до 75 |
6 | Состояние ГВС 1 — включено, 0 — выключено. |
Function Code — 0х04 ( Read Input Registers ), начальный адрес — 30001.
смещение | параметр |
0 | Измеренная температура теплоносителя |
1 | Измеренная температура воздуха |
2 | Количество включенных ступеней мощности |
3 | Измеренная температура ГВС от 40 до 75 |
4 | Состояние клапана ГВС: 1 — ГВС, 0 — Отопление. |
5 | Количество ступеней мощности в котле: 3, 6. |
6 | Флаги ошибок. |
Обрабатываются ошибки:
- — неверный код,
- — неверный адрес регистра,
- — недопустимые данные,
- — ведомый занят и не может обработать запрос.
Определяем IP адрес EletechSup ET69C02:
- Ноутбук, с которого осуществляется управление, должен быть подключен по Wi-Fi к тому-же роутеру, что и сетевой кабель от EletechSup ET69C02.
- Запускаем программу Advanced IP Scanner (https://www.advanced-ip-scanner.com/) для сканирования сетевых устройств по всему пулу IP адресов, заданных в DHCP сервере Wi-Fi роутера.
- В списке полученных сетевых устройств находим то, у которого производитель определяется как «Jiangsu Qinheng Co., Ltd.», либо по ранее сохраненному MAC адресу.
В настройках Modbus TCP Settings введем IP адрес конвертера EletechSup ET69C02, полученный после сканирования сети утилитой Advanced IP Scanner и порт указанный в настройках EletechSup ET69C02.
Нажимаем на Commands -> Connect. Если соединение с Modbus TCP конвертером установилось нормально, то в статус-строке отобразится зеленая точка.
В настройках (Settings) уберем смещение адреса, задав Base Addr = 0 (по умолчанию стоит 1).
- Modbus Mode: TCP.
- Unit ID для котла EVAN NEXT PLUS: 77 (0х4D).
- Function Code: Read Holding Registers (0x03).
- Start Address: 40001 [Dec].
- Number of Registers: 7.
- Data Format: Dec.
В Commands выберем Read /Write для считывания данных. Получим значение регистров Modbus RTU. Можно проверить какие количество байт было отправлено и получено конвертером. Если RX по 0, значит надо подбирать параметры Serial Port.
Если в Commands выбрать команду Scan, то данные по Modbus будут опрашиваться с интервалом заданным в параметре Scan Rate (ms): 1000.
Изменение настроек котла EVAN NEXT PLUS по Modbus TCP/RTU
Можно не только считывать значения настроек котла NEXT PLUS, но и менять их по сети.
Function Code: 0х06 (Запись одного регистра), 0х10 ( Запись нескольких регистров ). Начальный адрес — 40001.
смещение | параметр |
0 | Режим работы: 0 — Комнатный, 1 — Отопление. |
1 | Заданная температура теплоносителя от 8 до 85 |
2 | Заданная температура воздуха от 5 до 35 |
3 | Максимальное количество ступеней мощности |
4 | Максимальная температура теплоносителя |
5 | Заданная температура ГВС от 40 до 75 |
6 | Состояние ГВС 1 — включено, 0 — выключено. |
Для изменения настроек котла NEXT PLUS для начала изменим целевую температуру теплоносителя. Адрес 40001 + смещение 1 = 40002. Изменим значение в таблице с 40 на 50 и нажмем кнопку команды Read /Write. Значение на котле изменилось с 40 на 50.
Функция Write Multiple Registers (0x10) на котле NEXT PLUS по соображениям безопасности не поддерживается.