?

Log in

No account? Create an account

Тестовая прошивка для реле на 16 Ампер

Как-то давно я описывал свое устройство - реле на 220В 16А (4кВт)
Сегодня я закончил основные работы по этому устройству, и вот что у меня получилось:

Это прототип с небольшой ошибкой на PCB, которая уже исправлена и скоро будет заказ новых плат.
(прошу прощения за качество фото, просто нет времени делать хорошо да и условий нет, выложил как есть)

photo_2018-03-11_05-51-34.jpg
photo_2018-03-11_05-45-35.jpg



Характеристики:
1) Шина rs485, 9600/8n1, с протоколом схожим с modbus
2) С гальванической развязкой от силовой части, но без гальванической развязки по шине
3) Диапазон напряжения питания 9-24В
4) 250В, 16А (4кВт мощности)
5) Без корпуса, можно использовать термо трубку
6) 30мА потребление на шине
7) Датчик тока
8) Внешний датчик температуры
9) Габариты 45х25х17мм

Управление:
1) К устройству можно подключить либо кнопку(без фиксации), либо выключатель(с фиксацией), либо сенсор касания (просто провод или металлическая площадка)
При этом будет выполняться команда инвертирования(т.е. вкл->выкл и выкл->вкл)
*Есть возможность настройки чувствительности сенсора.
2) Удаленное управление через шину, поддерживаются такие команды как вкл, выкл, инвертировать
3) Таймер - также через шину можно задать таймер на отложенное выполнение команды. Таймер отсчитывает два периода - для выполнения основной команды и для выполнения обратной основной команде, к примеру: включить реле через 15мс и выключить ее через час. *Любая команда на реле отменяет действия таймера.
4) Триггеры - оказывают влияние на состояние реле на основе данных температуры внешнего датчика или тока, протекающего через реле. Имеют максимальный приоритет, и при срабатывании блокируют остальные методы управления.
*Также, на случай отключения электропитания, устройству можно указать режим старта - вкл, выкл, последнее состояние.

Съем показаний:
Можно получить логическое состояние реле, наличие напряжения на выходе реле, температуру внешнего датчика и ток потребления в мА.
*Также есть возможность корректировки коэффициента, участвующего в расчетах силы тока при анализе амплитуды синусоиды, корректировки значения температуры внешнего датчика.

По поводу датчика тока, дискретизация в 114мА (со стандартным коэффициентом в 57, можно менять), ну и такая же ошибка, т.е. где-то точность измерения составляет грубо 30Вт.
Здесь не будет точных значений, по нескольким причинам:
- используется не самый лучший встроенный в МК АЦП(10бит);
- используется датчик тока на эффекте Холла, который легко подвержен электромагнитным наводкам (не забываем, у нас электромагнитное реле);
- нет вычислительной мощности для расчета тока умными и корректными формулами, здесь магия.

Низкое энергопотребление:
Катушка реле питается от силовой части, поэтому максимальный ток потребления на шине составляет всего около 30мА.

Индикация:
Два светодиода. Первый - логическое состояние реле. Правый - мигает при опросе по шине. Devices tool позволяет изменить их режим работы, детальней будет описано ниже.

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

Время:
Ведется отсчет времени для истории. При этом я не ставил задачи подсчета близкого к точному времени, так как в этом нет необходимости, ошибка не большая, а для отсчета таймера и ведения истории достаточно просто дельты времени.

Вопросы надежности и безопасности:
При подаче питания, устройство приступает к работе спустя 1-5 секунд(время выбирается случайно при каждом старте), это сделано из-за особенностей запуска МК и для снижения пиковых нагрузок на сеть (если у Вас, к примеру, используется большое количество таких устройств с подключенными потребителями большой мощности, при этом устройства настроены на автоматическое включение при подаче питания).

Триггеры:
В устройстве реализовано два типа триггера, на базе показаний температуры от внешнего датчика температуры и на базе показаний датчика тока.
  Первый реализует механизм работы как обогрева так и охлаждения, т.е. можно выставить пороги температуры, при которых реле будет постоянно включено или выключено. Также есть реакция на сбой/потерю датчика температуры.
  Второй следит за уровнем тока, можно выставить порог, при котором реле будет автоматически выключено.
Но, не стоит полагаться на этот механизм как на защиту от замыкания и тому подобное, ток анализируется каждые 4 секунды, не так уж часто, чтобы использовать как защиту. Тем не менее это может быть полезно для предупреждения больших нагрузок на силовую линию.

Devices tool:
Снимок.PNG

Левый блок (блок показаний), думаю такие вещи как версия прошивки описывать не имеет смысла, здесь и так все понятно, перейду к менее интуитивно понятным:
Наличие фазы на выходе - вкл, если на выходе реле действительно есть напряжение. Причины могут быть разные, например отсутствие напряжения на входе, или к примеру, контакты реле прикипели.
Сила тока - значение переменного тока в миллиамперах, значение может немного 'дрожать' на 114мА, корректируется значением с правого блока.
Температура внешняя - показание температуры с внешнего датчика, корректируется значением с правого блока

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

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

Заключение:
На текущий момент, это мое самое богатое функционалом устройство.
Здесь есть датчик тока, датчик температуры, датчик наличия напряжения.
Реализованы триггеры по основным показаниям, таймер реле, ведение истории, сенсорное управление и конечно шина на RS485.
Это первая моя прошивка размером в 4КБ, (любителям Си покажется это незначительным, учитывая особенности процесса компилирования, но я то пишу на чистом ассемблере...)
Стоит также учитывать довольно малые размеры устройства для 4кВт и не малый набор датчиков и функционала.
Здесь я вижу широкие возможности для использования, ведь кроме встроенных триггеров есть еще большие возможности контроллера с сценариями, которые можно легко настроить через клиента.
Лично для себя я вижу большой плюс в размерах (в некоторых случаях устройство помещается в настенный стакан для розетки), также для меня очень полезен датчик тока, и датчик наличия напряжения.
В общем, я считаю, что это компактное и полнофункциональное устройство для управления розетками, обогревателями и холодильными установками (как дополнительное устройство управления и контроля)

Comments