Bus интерфейс

smart_andy

Управление отоплением – это не только дёрганье сервоприводами, но и управление котлом. Как минимум, вкл/выкл и задание температуры воды (подачи). Как вариант, я начал было делать эмулятор уличного температурного датчика. Котел может по уличной температуре вычислять температуру подачи по линейному графику с задаваемыми коэффициентами.
Но потом я вспомнил про статью о подключении котла к компьютеру. Автор статьи кроме своего ценного опыта поделился и файликами с описаниями eBUS. В моем котле Ariston Clas System имеется шина eBUS. По ней котел общается с ClimaManager — проводным настенным пультиком, с которого можно управлять всеми функциями котла. Я решил попробовать подключить комп к этой шине с перспективой увязки в свою сеть.
Сделал простейший USB-UART переходничок, наваял на макетке схему с опторазвязкой из файла описания шины eBUS. Компаратора TS3V3702 я не нашел, поставил биполярный аналог LM393, поэтому схему пришлось подкорректировать (отмечено красным).
Соединил комп+ USB-UART+UART-eBUS+котёл. Запустил программку Terminal. Пошла череда байтов #AA. Из описания eBUS прочитал, что это байты синхронизации. Мастер шины (котел) сообщает, что он готов к приему инфы. Я начал менять настройки котла с ClimaManager . В Terminal начал фиксировать цепочки байт – телеграммы от ClimaManager к котлу. Были телеграммы и от котла к ClimaManager . Было видно, что телеграммы от ClimaManager начинаются с #01, а от котла с #10.
Для первых экспериментов выбрал меню 245 – «макс.температура воды». Поставил Terminal на запись в лог и начал менять значение в меню с 30 до 40 градусов с шагом 1. Получил ряд телеграмм:
01 10 06 23 06 07 88 00 40 1E 12 9E 00 30 градусов
01 10 06 23 06 07 88 00 40 1F 12 05 00 31 градус
01 10 06 23 06 07 88 00 40 20 12 BD 00 32 градуса
Первый байт – адрес отправителя (ClimaManager), второй – адрес получателя, 3й и 4й – команды, 5й – число байт данных, с 6 по 11 – сами данные, 12й – сумма CRC, 13й – говорит о том, что котел принял телеграмму. Ну а в 10м байте – сразу видно передается задаваемое значение температуры. Прелестно!
Я установил с ClimaManager температуру 30, вышел из меню. В Terminal скопировал телеграмму с установкой 35. Возвращаюсь в меню, пару секунд ClimaManager запрашивает параметры у котла… и показывает 35! Получилось!
Краткий вывод. Осуществлено соединение котла с компьютером по шине eBUS. Компьютер успешно принимал и отправлял телеграммы котлу.
Огромное спасибо Андрею, автору http://ab-log.ru/ . Без его статьи и файла с описанием шины я бы даже не подумал в этом направлении.

ZONT — УМНЫЕ ПРИБОРЫ ДЛЯ БЕЗОПАСНОСТИ И КОМФОРТА

Особенности управления котлом отопления по информационной шине E-BUS

Термостат ZONT или Контроллер ZONT управляет мощностью котла за счет периодической коррекции мощности горелки (включением или отключение ступеней нагрева у э/котлов).

Очевидная польза от такого управления — термостат не включает и выключает котел, а постоянно и плавно изменяет расчетную температуру теплоносителя и передает ее котлу для (модулирует его мощность), «приспосабливая» к текущей потребности в тепле, то есть к фактическим теплопотерям помещения. Термостат постоянно вычисляет, насколько именно фактическая температура отклонилась от заданной, и чем больше эта разница, тем большую расчетную температуру теплоносителя он командует развить котлу. Для котла и для КПД отопительной установки в целом это значительно лучше, чем простое периодическое включение и выключение: непрерывно работать на пониженной мощности экономически намного выгоднее.

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

Skoda Octavia Scout ›
Бортжурнал ›
Управление Webasto Top Evo start по шине W-BUS. Теория.

Всем привет!
В продолжении поста об установка Webasto решил сделать пост с теоретическими выкладками как подцепиться к шине W-BUS, которая на данный момент соединяет пульт 1533 и котёл.

Данный материал написан для более-менее подготовленных специалистов в области электроники.

Если вкратце, то шина W-BUS по сути представляет однопроводную линию (потенциал относительно массы), по которой туда-сюда (между пультом и котлом) бегают импульсы-байтики. Связь симплексная. Чтобы подключиться к этой шине нужен адаптер K-LINE. Схема ниже.

Схема К-Line Адаптера

Как видно на схеме, слева есть выводы RX TX VCC GND. К VCC и GND надо подвести питание (в моем случае это питание микроконтроллера 3,3В), RX и TX подключаются к пинам UART микроконтроллера.
Если посмотреть на схему справа то увидим выводы +12V K-LINE GND. +12V и GND надо подключить к (+) и (-) аккумулятора, K-LINE надо подключить к шине (проводу) W-BUS.

Если всё подключено правильно то можно начинать разрабатывать программу микроконтроллера. В настройках UART необходимо указать параметр порта 2400 8E1 (скорость 2400кбит/с, 8 бит, проверка четности EVEN, 1 стоп-бит).
К шине W-BUS можно подключить до 4-х устройств:
— котёл;
— пульт;
— радиобрелок Т91;
— диагностическое устройство.

Так вот далее будет рассмотрено как будет подключено устройство, эмулирующее радиобрелок Т91.
В этом случае циклограмма работы с котлом в классическом виде выглядит таким образом:
1. Вывод котла из спящего режима.
Для этого в линию надо подать импульс 25мс
Я делал так. Настраивал UART на 360 8Е1, засылал в линию 0x00, выдержал паузу 25мс, настроил UART на 2400 8Е1. После чего можно попытаться запустить котел.
2. Команда на запуск котла, с ответом.
Запрос 34 03 21 0F 19
Ожидаемый ответ 43 03 A1 0F EE
На этом примере можно разобрать что тут к чему.
Мы видим систему общения типа запрос-ответ. Судя по логам и осциллографу, ответ обычно поступает спустя 30-40мс после запроса. Отправлять запросы быстрее чем каждые 100мс я не рекомендую (да и обычно в этом нет необходимости).
В запросе первый байт 34 — это значит идет обращение от 3 к 4, т.е. от радиобрелка Т91 к котлу.
соответственно в ответе первый байт 43 означает от котла к радиобрелку Т91.
К слову если первый байт будет 44 то это будет означать широковещательное сообщение от котла.
Второй байт — это кол-во информационных байт в сообщении, т.е. кол-во байт после второго байта. В нашел случае их 3.
Третий байт в запросе 21 означает команду на запуск котла, что интересно ответный третий байт будет 0x21+0x80=0xA1
Четвертый байт — это кол-во минут на запуск. Т.е. 0x0F это 15 минут.
Последний байт это контрольная сумма. Т.е. 0x19 = 34 xor 03 xor 21 xor 0F
3. Команда на поддержание работы котла, с ответом
Запрос 34 04 44 21 00 55
Ожидаемый ответ 43 03 A1 0F EE
Суть в том, что данный запрос надо отправлять каждые 15 секунд, иначе котел заглохнет.
4. Команда на остановку котла, с ответом
Запрос 34 02 10 26
Ожидаемый ответ 43 02 90 d1
10- это команда на выключение котла
0x90=0x10+0x80 — тут всё понятно
Причем ответ котлом может засылаться несколько раз.

Кстати если врубить эмулятор радиобрелка Т91 в шину W-BUS и гнать цикл работы с котлом то пульт 1533 проснется и на его дисплее будет отображаться «TELE ON».

Можно, конечно, получить более интересные плюшки от котла.
Можно узнать температуру антифриза, напряжение аккумулятора, производительность котла, обороты вентилятора, сопротивление датчика пламени, мощность отопления, производительность циркуляционного насоса, частоту дозирующего насоса, наличие пламени и т.д.
Всё это можно узнать вот так:
Запрос f4 1e 50 30 01 02 03 04 0a 0c 0e 10 11 12 13 1e 1f 23 24 28 2a 2c 32 34 51 58 59 5a 5f 60 61 fc
Пример Ответа 4f 49 d0 30 01 03 02 00 03 00 04 00 0a 0d 0c 62 0e 37 96 10 01 11 13 88 12 c8 13 03 ec 1e 22 e7 1f 7f 23 c8 24 00 28 99 2a 00 2c 00 32 00 34 04 88 51 00 00 00 58 00 09 28 59 00 00 00 5a 00 09 22 5f 00 27 60 00 27 61 00 00 8d

Как видно ответ состоит из 73 байт, d0 это ответ на команду 0х50 (0xd0 = 0x50 + 0x80)
Команда 50 — очень полезная в плане диагностики команда. Байты после неё — это коды запросов параметров котла, и что удобно — можно выбирать какие коды запрашивать а какие нет. Т.е. если интересен код параметра — вставляем его в запрос.
В ответе после ответа на команду (0хd0) идут коды запросов параметров котла и ответы (фиксированно одно/двух /трех-байтовые). Подробнее разжевывать не буду — присмотритесь по-внимательнее.
Вот расшифровка некоторых параметров:
0x0E Напряжение на АКБ 14,23 В = 0x3796
0x0C Температура антифриза 48 град.С = 48+0x32 = 0x62
0x1E Обороты вентилятора 8935 об/мин = 0x22E7
0x13 Сопротивление датчика пламени 1,004 Ом = 0x03ec
0x11 Мощность отопления 100% = 5000 Вт = 0х1388
0x1f Дозирующий насос 6,35 Гц = 6.35*2*10=127 = 0x7F
0x10 Наличие пламени (Flame) = 1
0x58 Working hours + Working minutes = 09:40 = 0x000928
0x5a Operating hours + Operating minutes = 09:34 = 0x000922

В качестве простого примера можно отправить команду на запрос значений температуры антифриза и напряжение аккумулятора:
f4 05 50 30 0c 0e 93
получить ответ типа
4f 08 d0 30 0c 2e 0e 30 52 e9 (Температура антифриза = -4 град.С, Напряжение АКБ = 12,37В)

///////////////*********************************
Подводя итог можно сказать, что основные моменты как работать с котлом изложены. На основе данного материала можно сделать устройство для дистанционного запуска котла Webasto Top Evo start, например, по GSM-каналу. Т.е. по SMS-ке (как самый простой способ) или по приложению через телефон (через GPRS/3G/4G). Я сделал управление по SMS: отправляю форматированный запрос в котором указываю параметры запуска (время работы котла), устройство через определенное время пришлет ответное SMS с информацией произошел ли запуск и какая температура антифриза и напряжение АКБ.
Как подключать к модулю микроконтроллера сотовый модем и как с ним работать — не самая интересная история, коих в сети много. Могу только заметить, что использовать в качестве модуля микроконтроллера на базе Atmel (читай Arduino) будет не просто т.к. Atmel(теперь уже Microchip) Tiny/Mega имеет на борту один аппаратный UART, а нужно как минимум два.
Реальная стоимость изделия, работающего на своем аккумуляторе и заряжаемого от генератора автомобиля получается вот такой:
1. Адаптер K-LINE на основе драйвера L9637 = 250 рублей
2. Модуль микроконтроллера STM32F103RET6 = 120 рублей
3. GSM/GPRS-модем SIM800C = 250 рублей
4. GSM-антенна = 150 рублей
4. Пластиковая коробка = 150 рублей
5. Провода и прочие соединители = 200 рублей.
6. Аккумулятор LiOn 3,3В 3000Ач+3000Ач = 400 рублей
7. Зарядный модуль = 150 рублей.
Как видно стоимость получается в районе 1600 рублей. Это при условии, что закупаться детали, в основном, будут в китае. Если не заморачиваться на своей автономной системе питания то выйдет 1000р.
Я думаю не надо показывать во сколько раз дороже будут стоить подобные изделия, при этом выполненные не на своем аккумуляторе, и которые будут дополнительно высаживать бортовой АКБ.
Всем пока, будут вопросы — пишите в комментах.

About the author

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *