Русский
Русский
English
Статистика
Реклама

Программируемые реле

Сетевой интерфейс для программируемого реле с поддержкой Telegram Bot и HomeKit

07.05.2021 14:19:42 | Автор: admin

Как я реализовал удаленное управление и мониторинг, для программируемого реле ПР200, используя разные сервисы (Telegram Bot, HomeKit) и протоколы (Modbus RTU, Modbus TCP, mqtt) и ESP32.

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

Долгое время я использовал сетевой интерфейс на основе модуля esp8266, на сегодня более перспективным вижу использование модуля esp32, долгое время я не рассматривал его из-за размеров, но впоследствии, проработав разные варианты, удалось не только вместить все на одной плате, но и сделать решение более универсальным и удобным.

Первая версия платы на основе ESP32

Во второй версии добавлен usb порт, что позволяет загрузить прошивку без использования дополнительных проводов и преобразователей. Базовая реализация изначально задумывалась с возможностью обновления прошивки по воздуху через ОТА, а для экспериментов проще использовать microUSB.

В обновленном варианте добавил ещё и кнопки сброса и загрузки при прошивке, а так же добавил поддержку модулей ESP32-WROVER с PSRAM, это позволит использовать больше памяти и расширит возможности.

В общем, структура взаимодействия сетевой платы с программируемым реле основана на протоколе modbus rtu, а с внешним миром варианты могут быть самые разнообразные от bluetooth до TelegramBot.

TelegramBot

Именно с поддержки бота я и начал опыты, на раннем этапе получилось вот такая реализация:

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

Для универсальности взаимодействие бота с алгоритмом в приборе, использован режим чтения/записи сетевых регистров Modbus а разных форматах представления:

/R- целое 16 битное значение

/I-целое число занимающее 2 регистра

/F- число в формате float тоже 2 регистра.

После символа адрес в диапазоне 512-576, эти регистры можно читать и записывать, формат для записи /Xzzz=nnnn, для чтения достаточно отправить номер регистра в требуемом формате.

Для представления состояний регистра в битовых полях, можно отправить адрес в формате /Bzzz, ответ будет в виде 16 значения в булевом формате.

Apple HomeKit

Следующим этапом был сервис Apple HomeKit и приложение дом, как раз для управления освещением и другими точечными нагрузками он подходит лучше всего, я начал с 16 каналов, по количеству бит в регистре модбас.

После выхода обзора по такому применению,

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

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

Для быстрого добавления платы в приложение Дом, на web страницу добавлен QR код, второй вариант ввести код настройки, индивидуальный для каждой платы. Постарался упростить и минимизировать все настройки для быстрого старта.

Так же протестировал mqtt, идея задания топиков взята из версии платы для esp8266. Проверил поддержку датчиков 1-wire ds18b20, для их подключения к плате предусмотрены посадочные места под разъем, и сигнальные линии с резисторами, такой-же использовался в плате prsd на esp8266.

4 пина, два из которых +3.3v и gnd, позволяют задействовать 2 порта в качестве интерфейса 1-wire или i2c. I2C позволяет подключать всякую экзотику, которую практически невозможно состыковать в базовой поставке прибора. Например, датчик влажности/давления с I2C или RFID ридер.

Для быстрого просмотра значений регистров используется протокол Modbus TCP, запустив Modbus Poll на ПК или Virtuino/Kascada и другие приложения на Android, можно быстро организовать доступ и управление устройством с помощью телефона или планшета.

Остальные настройки WEB интерфейса представлены ниже:

WEB настройки

Для смены прошивки платы, когда она уже установлена в устройство, предусмотрен режим обновления по воздуху (OTA), для этого достаточно выбрать bin файл, после загрузки прошивки устройство перезагрузится и запустится обновленная версия. Так же можно перезагрузить плату в ручном режиме через web кнопку.

При первом старте, когда устройство не имеет настроек точки доступа и пароля и не может подключиться к сети wi-fi, плата включает режим точки доступа для подключения и ввода ssid и pass, после сохранения значений и перезагрузки если подключение к сети успешно, точка доступа выключается. Если токен Telegram bot введен, то после подключения и выхода в интернет, узнать IP адрес платы можно введя команду. Через бот можно получить и другую информацию.

Основные моменты по работе представлены в видео.

На данный момент прошивка находится в режиме доработки, демонстрационные версии будут доступны позже.

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

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

В меню бота есть возможность смотреть время бесперебойной работы в секундах, текущий и минимальный объем доступной Heap памяти, используя один и тот же токен для TelegramBot, можно читать параметры сразу с нескольких устройств, аналогично и на запись параметров. Т.е. любая команда, отправленная с телефона боту, отправляется всем устройствам с токеном, это происходит не всегда, иногда отвечает только часть устройств, и приходится делать запросы повторно. Сейчас все они не имеют привязки к имени, думаю сделать уникальные имена для отличия при запросах/ответах.

Используя несложный сетевой интерфейс с чипом ESP32, можно значительно расширить функционал программируемого реле ПР200 и в перспективе ПР103, куда можно установить сетевой интерфейс, другие модели ПР100/ПР102 потребуют внешний драйвер RS-485 для подключения снаружи, так как сетевые интерфейсы в них не съемные.

Наличие программатора на борту платы, позволяет создать собственные алгоритмы с быстрой загрузкой в устройство, необходимо лишь обеспечить обмен по протоколу Modbus на стандартных выводах UART esp32.

Подробнее..

Программируемое реле easyE4

18.06.2021 20:15:41 | Автор: admin

Предисловие

В свое время наткнулся на очень хорошую статью о програмируемых реле EASY компании Eaton (Moeller). Если кратко, то можно выделить 3 больших серии реле:

  • easy500 - реле 8 входов, 4 выхода, без возможности расширения;

  • easy700 - реле 12 входов, 6/8 выходов, с возможностью подключения одного модуля расширения или коммуникации. Максимальное число точек - 40 (базовый модуль 12+8, модуль расширения 12+8).

  • easy800 - более продвинутая версия 700-й серии, с увеличенным размером памяти, со встроенным протоколом коммуникации easyNet, позволяющим подключить до 8 устройств в одну сеть.

Программируемые реле серий EASY800, EASY500 и EASY700Программируемые реле серий EASY800, EASY500 и EASY700

При этом, каждая из серий состоит из устройств с различным питающим напряжением, с экраном/без, с поддержкой/без часов реального времени (RTC), со счетчиками... в итоге была огромная номенклатура только базовых устройств, в которой я сам периодически путался, активно с ними работая.


Новинка easyE4

В 2019 году у Eaton вышла обновленная линейка программируемых реле - easyE4. Компания в новой линейке изменила философию продукта. Теперь есть базовый модуль, по размерам как реле серии easy500, имеющий 8 входов и 4 выхода, к которому можно подключить до 11 модулей расширения. При этом функционал базового модуля сопоставим как минимум со "старой" серией easy800.

Новая серия easyE4 и EASY512, подключенные к питающему напряжениюНовая серия easyE4 и EASY512, подключенные к питающему напряжению

По питающему напряжению можно выделить 3 вида:

  • DC - 24VDC

  • UC - 12VDC, 24VDC, 24VAC

  • AC - 100_240VAC, 100_240VDC

Есть еще версии без экрана, итого максимальное количество различных базовых модулей всего 6. В каталогах встречаются модели с push-in клеммами, но они еще только планируются к производству. С данными моделями количество базовых модулей вырастет до 12.

Разберем структуру наименования базовых модулей. Маска наименования следующая:
EASY-E4-[VV]-12[W]C(X)1(P), где:

  • [VV] - тип питающего напряжения - DC, UC, AC;

  • [W] - тип выходов - релейные (R) или транзисторные (T);

  • (Х) - отсутствие дисплея (если дисплей есть, символ не ставится);

  • (P) - push-in клеммы (модель еще не выпущена); если символа нет - клеммы винтовые.

    Примеры:
    EASY-E4-DC-12TC1 - напряжение питания 24 Вольт постоянного тока, транзисторные выходы, с дисплеем (артикул производителя 197213).
    EASY-E4-UC-12RCX1P - напряжение питания 12/24 Вольта, релейные выходы, без дисплея, push-in клеммы (артикул производителя 197505).

Структура наименования моделей расширения. Маска наименования: EASY-E4-[VV]-[AA][B]E1(P), где:

  • [VV] - напряжение питания модуля;

  • [AA] - общее количество точек (входов-выходов);

  • [B] - тип точек (R - релейные, T - транзисторные, A - аналоговые, P- температурные);

  • (P) - push-in клеммы.

    Примеры:
    EASY-E4-AC-16RE1 - напряжение питания 100-240 Вольт, общее количество входов и выходов 16, тип выходов - релейные (артикул производителя 197222).
    EASY-E4-DC-4PE1 - напряжение питания 24 Вольт постоянного тока, 4 температурных входа (артикул производителя 197224).


"Железо"

Рассмотрим базовый модуль на примере EASY-E4-UC-12RC1 (артикул 197211).
Он содержит 8 цифровых (дискретных) входов, (в версиях DC и UC входы I5-I8 могут быть аналоговыми по напряжению - функционал выбирается в ПО для программирования). Есть 4 выхода - релейные (релейные для версий AC, UC, транзисторные для DC). Шестистрочный экран с подсветкой, которая может быть белой, красной, зеленой. Слева от дисплея находится слот под карту microSD, с помощью которой можно обновить прошивку устройства, организовать логгирование, или же сохранить свой загрузочный логотип.

easyE4easyE4

В правой части находится порт для подключения модулей расширения (закрыт заглушкой).
Для коммуникации имеется порт RJ-45 с интерфейсом Ethernet. Доступные протоколы - Modbus TCP и EasyNet. Используя данный порт, можно зайти на встроенный web-сервер (с собственным API), отправиль сообщения на e-mail, также реле может синхронизировать часы реального времени с серверами в интернете - удобная вещь в случае использования функционала, завязанного на астрономические таймеры.

Web-сервер easyE4 с отображением текущего состояния входовWeb-сервер easyE4 с отображением текущего состояния входов

Модули расширения подключаются при помощи комплектного соединителя, который идет с каждым модулем.

Модули расширения с комплектными соединителямиМодули расширения с комплектными соединителями

Всего к одному базовому устройству можно подключить до 11 модулей расширения. Т.к. каждый модуль имеет свои клеммы питания, в одной системе можно использовать различные типы модулей расширения - например, базовое устройство EASY-E4-UC-12RC1, модуль расширения аналоговых входов EASY-E4-DC-6AE1 и модуль 4DI+4RO EASY-E4-AC-8RE1 прекрасно будут работать в одной сборке, позволяя подключить разнообразные устройства ко входам и выходам.

Артикулы 197211+197222+197223Артикулы 197211+197222+197223

Программное обеспечение

Если вы работали со "старыми" easy500/700/800 (в коллективе называем эти реле "изиками"), то средой программирования было ПО EasySoft 6. А для подключения реле к компьютеру использовался специальный кабель, который стоит немало.

EASY800 и EASY700 с кабелями программированияEASY800 и EASY700 с кабелями программирования

Можно, конечно, попытаться вбить программу руками через кнопки, но если проект сложнее чего-то базового "по сигналу I1 включить выход Q1", то ручной ввод программы будет настоящим мучением.

Для новых программируемых реле easyE4 используется ПО EasySoft 7. Приемы работы в нем схожи с работой в 6 версии, поэтому переход на новое ПО будет легким.

EasySoft 7EasySoft 7

Впридачу, есть преемственность - если проект для старых "изиков" открыть в 7 версии, то произойдет автоматическая конвертация с заменой "железа" на новое и переназначением операнд с выводом отчета.

Конвертация "старого" проекта *.e60 Конвертация "старого" проекта *.e60

Демонстрационную версию можно скачать с сайта Eaton. Демо-версия позволяет создать и отдадить проект, но без возможности записать проект в само реле. Для этого необходима лицензия. Сама лицензия стоит денег, но можно схитрить - есть специальные стартовые наборы, состоящие из самого реле, шнурка для программирования (обычный патч-корд, подойдет абслютно любой RJ-45 прямого обжима) и флаера с кодом, который нужно зарегистрировать и получить ключ активации ПО. Набор такой стоит немного дороже самого базового модуля. Так что если нужно несколько базовых модулей - вместо одного покупаете набор, и получаете лицензионное ПО со скидкой:) Особенностью ПО является то, что код с флаера можно зарегистрировать несколько раз, тем самым получив коды активации для нескольких компьютеров. Артикулы для поиска - 197227/197228/197229.

Стартовый набор 197227Стартовый набор 197227

К программному обеспечению хорошо изучить руководство по эксплуатации. Его код MN050009 (англоязычная версия). Загуглив код "MN050009_RU", находится русскоязычное руководство, которого, почему-то, нету на сайте производителя.
Дополнительно посоветую обучающий курс по программированию для старых изиков "EASY Это просто" от Одесского политеха (авторы О.А. Андрюшенко, В.А. Водичев) - там основы основ.


Пример применения

Один из практически реализованных мной простых проектов - управление освещением во дворе. Есть 2 группы опор освещения - основное (КМ2) и дежурное (КМ1). В автоматическом режиме после заката (по астрономическому таймеру) включается всё освещение, после 22.00 остается только дежурное, которое работает до полуночи в будние дни и чуть позже в выходные. Данные временнные отрезки установлены в недельных таймерах.

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

Электрическая схема подключенияЭлектрическая схема подключения

В настройках функционального блока "Астрономический таймер" необходимо указать координаты местности для правильного расчета времени захода и восхода солнца в конкретный день.

Настройки астрономического таймераНастройки астрономического таймера
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru