Контроллер в металлическом корпусе, быстрый Modbus и другие новости
21 и 22 апреля на площадке «Физтехпарка» прошла выставка и конференция WBCE 2023, которую посетили более 500 гостей.
Мы организовали выставку и пригласили туда наших партнёров — было больше 30 участников. Спикеры из 23 компаний выступили с докладами, которые можно посмотреть на нашем YouTube-канале.
Чуть раньше мы опубликовали репортаж с конференции, где поведали о новинках и стендах партнеров, а теперь расскажем подробнее, о чем был наш доклад. Если вам удобнее посмотреть видео — вот оно.
Самой горячей темой выступления можно назвать быстрый Modbus. Он значительно ускоряет процесс сканирования шины Modbus и уменьшает время реакции на события. Причем это не новый протокол, а расширение стандартного Modbus, поэтому обратная совместимость с другими устройствами Modbus сохраняется — они просто будут работать в стандартном режиме. Далее в статье мы рассмотрим работу быстрого Modbus подробнее.
Также мы остановимся на новых устройствах Wiren Board: модуле аналоговых входов WB-MAI6, конвертере USB в RS-485 с выходом питания 12 В, универсальном датчике климата WB-MSW v. 3 с новым корпусом.
На конференции мы поделились своими планами на 2023 год. Будет представлен контроллер Wiren Board 7.4 с рядом улучшений и родной поддержкой PoE 802.3af. Наши инженеры работают над следующей версией контроллера Wiren Board 8, которая будет еще мощнее и надежнее. Клиенты попросили нас разработать контроллер в экранированном металлическом корпусе для сферы энергетики — и мы сделали это и презентовали Wiren Board 7M.
Наконец, в статье мы расскажем о новых программных функциях контроллера: менеджере сети, менеджере устройств, расширении rootfs, функции резервного копирования.
Быстрый Modbus
Одна из новинок этого года — быстрый Modbus, который теперь поддерживается в наших контроллерах и устройствах. Подробно ознакомиться с реализацией расширения Modbus можно в нашем репозитории на github.
Сразу оговоримся, что мы не изобрели новый протокол — мы расширили возможности стандартного Modbus RTU за счёт использования дополнительных функций.
Как работает обычный Modbus
Что же не так в обычном «медленном» Modbus? Протокол Modbus поддерживается в наших устройствах очень давно, почти 10 лет. Он был выбран по причине универсальности и поддержки устройствами разных вендоров.
Обычный Modbus
Поддержка Modbus RTU позволяет нашему оборудованию взаимодействовать с «чужими» устройствами через Modbus. Например, можно подключить модули реле Wiren Board к стороннему ПЛК. Или наоборот, наши контроллеры — к «чужим» реле. Всё это дает интеграторам уверенность в завтрашнем дне — оборудование можно заменить другим таким же от стороннего вендора. Или расширить существующую экосистему Modbus-оборудованием любого производителя.
Протокол Modbus простой и надежный, за многие годы он прочно утвердился на рынке. Из сравнимых конкурентов здесь можно отметить разве что KNX.
Принцип работы классического Modbus RTU следующий: мастер инициирует все транзакции на шине. Он по очереди опрашивает все устройства. Например, если нужно прочитать значение CO₂ с датчика, то достаточно отправить сообщение по адресу устройства с запросом. В протоколе каждому устройству присваивается адрес от 1 до 247, по которому к нему можно обращаться.
Сканирование шины в обычном Modbus
Чего не хватает в обычном Modbus? Одна из задач — сканирование. Чтобы настроить инсталляцию, нужно знать пару «адрес» и «тип устройства». Например, устройство номер 26 — это реле WB-MR6C v2. Адрес обычно указывают на наклейке, хотя его можно поменять. Если же нет физического доступа к инсталляции, но все становится уже сложней — наклейку быстро не посмотреть. Особенно если в инсталляции много устройств.
Когда устройств много — добавлять их в конфигурацию контроллера сложно
Поэтому сканирование — довольно частая задача, по итогу ее выполнения будет выведен список адресов и устройств. Мы давно добавили регистры, в которых описывается тип устройства, версия прошивки и другие параметры. Если известен адрес, то можно легко понять, что это за устройство. Но спросить это необходимо у каждого устройства на шине. Получается, что требуется перебрать все 247 адресов, причем на всех скоростях, на которых устройства могут работать.
Процесс сканирования в обычном Modbus RTU
Мастер опрашивает последовательно каждое устройство и ждет ответа 100 мс. Если в сети 30 устройств, придется отправить 247 запросов, и так на всех скоростях.
Поэтому процедура вроде бы простая, но она занимает несколько минут, если нужно перебрать все скорости.
Сканирование шины в Быстром Modbus
В быстром Modbus сканирование ускорено, и после старта процедуры устройства появляются сразу. Мастер отправляет один запрос с просьбой всем устройствам ответить, а устройства последовательно отвечают мастеру и сообщают информацию о себе. Мастер управляет этой процедурой, предоставляя возможность каждому устройству «высказаться». В конце концов устройства заканчиваются, и мастеру уже никто ответить не может.
Процесс сканирования в Быстром Modbus
Со стороны контроллера работает некая магия, поскольку отвечает только то устройство, которое и должно, без каких-либо задержек. И если на шине 10 устройств, то запрос просто будет отправлен 11 раз. И каждый раз будет получен ответ без дополнительных задержек. На практике после нажатия кнопки «Сканировать» список устройств появляется моментально.
Сканирование шины в веб-интерфейсе контроллера Wiren Board
Быстрый Modbus изнутри
Кстати, о магии. Быстрый Modbus — это не новый протокол, а расширение стандартного Modbus. То есть это не наша проприетарная разработка, замыкающая устройства на собственную экосистему и блокирующая совместимость с обычными продуктами Modbus. Это всего лишь дополнительная функция.
В Modbus есть концепция функций, например, читать или писать регистр, либо читать/писать группу регистров. Таких функций по спецификациям около десяти, и некоторые зарезервированы за производителями. То есть производители могут добавить отсутствующую в стандартном Modbus функцию, просто используя заложенные в протоколе возможности.
Мы взяли свободную функцию 0×46, которая и используется для «магии» быстрого Modbus.
Если ПЛК, SCADA-система или старый контроллер Wiren Board ничего не знают о быстром Modbus, они будут общаться с новыми «быстрыми» устройствами в обычном режиме: с функциями записать/прочитать регистры. Расширенная функция 0×46 на старых устройствах активна не будет, поскольку они про нее не знают. Все наши новые устройства с быстрым Modbus успешно работают с любыми ПЛК на обычном Modbus. Даже если эти ПЛК не поддерживают быстрый Modbus .
Повторим еще раз: быстрый Modbus — это не какой-то отдельный режим или новый протокол, ни переключатель быстро/медленно, это просто расширение. Если функции доступны — ими можно пользоваться, если нет — все будет работать как раньше, по обычному Modbus.
Принцип арбитража быстрого Modbus на примере сканирования устройств на шине
На наших контроллерах расширение быстрого Modbus будет работать автоматически, поскольку дополнительные функции инициируются со стороны устройств. То есть именно со стороны устройств используется арбитраж, подобный CAN. Подробнее можно прочитать в открытой спецификации.
Все устройства начинают отвечать одновременно, но при этом они понимают, что не одни на шине. И выигрывает арбитраж (право отправить сообщение) то устройство, у которого меньше серийный номер. На примере выше три устройства начали передавать информацию, и в какой-то момент они понимают, что серийный номер больше, чем у соседей.
Сначала арбитраж проигрывает третье устройство, потом второе, остается только одно. Применительно к процессу сканирования, выигрывает устройство с меньшим серийным номером — оно передает ответ и запоминает это, после чего больше не участвует в арбитраже. И тогда в следующий раз устройство уже не передает ответ, арбитраж выигрывает другое устройство. Если на шине 10 устройств, то они 10 раз в арбитраж поиграют и 10 ответов по очереди отправят.
События
Мы рассмотрели быстрый Modbus на примере сканирования. Вторая важная функция — реакция на события.
На что нужно быстро реагировать? В основном, на пользовательские действия. Например, выключатель света. Хочется, чтобы свет включился после нажатия на выключатель. Здесь важно время между действием и реакцией на него. Причем следует учитывать максимальное время. Если система обычно реагирует за 10 мс, но иногда за 10 с, то клиент это заметит и начнет жаловаться. Можно даже пошутить: «Требуйте у продавцов новых протоколов гистограмму распределений, чтобы знать наихудшее время реакции».
Вот пример нашей гистограммы. Мы подключили много реле к одному контроллеру на одну шину, скрипт через GPIO дёргает входы реле и измеряет задержку от отправки импульса до получения обновления в MQTT. Результат занесли в таблицу и построили гистограмму.
Гистограмма распределения времени реакции в Быстром Modbus
Опрос устройств в обычном Modbus
В обычном Modbus, как показано на иллюстрации выше, мастер периодически опрашивает устройство и считывает регистр. И если регистр поменялся, то значит что-то произошло. Проблема в том, что устройство необходимо постоянно опрашивать. А также перебирать все регистры состояния и на всех устройствах. Если на реле три диапазона регистров, 30 реле в инсталляции, то придется отправить 90 запросов в каждый цикл.
Если требуется время реакции 50 мс, то за 50 мс необходимо отправить 90 запросов и получить столько же ответов, что довольно тяжело. Придется решать, какие регистры опрашивать часто, какие — медленно: в обычном Modbus все это работает не очень хорошо.
Опрос устройств в быстром Modbus
В быстром Modbus мастер просто спрашивает: что у кого есть нового? На примере выше ответило устройство 13, сообщив об изменении регистра счетчика нажатия. Мастер снова отправляет такой же запрос, ему отвечает уже другое устройство 25. На следующий запрос реакции нет. Работа мастера в данном случае — регулярная отправка подобных запросов.
На первом примере с обычным Modbus за 50 мс нужно было отправить 90 запросов, то теперь за 50 мс нужно отправить один запрос и получить один ответ. Причем это не зависит от количества устройств. В обычном Modbus чем больше устройств и регистров, тем больше время реакции и хуже гистограмма распределения. С быстрым Modbus время фиксированное, оно не зависит от количества устройств. Кроме того, фиксированное время приводит к узкому распределению без выпадений.
Здесь тоже используется дополнительная функция 0×46 и арбитраж. Обычные устройства будут работать так, как и раньше, а новые, с быстрым Modbus, — моментально.
Настройка в контроллерах Wiren Board
Как настроить быстрый Modbus в контроллере? Настраивать ничего не надо, так как вся магия — в самих устройствах и прошивках. И все существующие и написанные правила будут успешно работать и дальше.
Новые функции уже доступны в testing-релизе, поэтому вам нужно просто ввести
apt update && apt upgrade
и всё заработает само.
Настройка в контроллерах Wiren Board
Поддержка в стороннем софте и устройствах
Мы планируем расширять экосистему быстрого Modbus. Для ПЛК, SCADA и контроллеров работа с быстрым Modbus очень простая — на уровне поддержки новых типов запросов. То есть в самую сложную систему поддержку можно добавить за несколько дней. У наших специалистов есть соответствующий опыт и компетенция.
Поэтому некоторые производители стороннего софта и SCADA-систем планируют добавить поддержку быстрого Modbus в ближайшем будущем. С нашей стороны им будет оказана необходимая поддержка. Также планируется поддержка быстрого Modbus в open source SCADA-системах.
Помогаем добавлять поддержку быстрого Modbus в SCADA-системы и конечные устройства
С конечными устройствами все сложнее. Обычный Modbus правильно поддержать не так просто, а быстрый Modbus еще и чувствителен к таймингам. Поэтому мы предлагаем производителям конечных устройств воспользоваться нашими наработками.
Можно использовать фреймворк, включающий всю компетенцию компании в написании прошивок за 10 лет. В нём есть механизм обновления прошивок по Modbus с помощью open source инструментов. Причем реализация очень компактная. Внутри используются микроконтроллеры класса Cortex M0, на картинке выше перечислены поддерживаемые платформы. Цена микроконтроллеров сегодня — 65 центов, в результате устройства получаются очень дешевыми в производстве. Условия тоже довольно комфортные: роялти с устройства 100 рублей, потолок 500 тысяч рублей в год. Больше вы не заплатите, сколько бы устройств в год не продали.
Но использовать наш фреймворк совершенно необязательно — спецификации протокола открытые, кто угодно их может использовать, то есть цена в данном случае за фреймворк и прошивки Wiren Board.
Со стороны сторонних производителей интерес есть, два уже подключились к нашей программе быстрого Modbus. Также есть возможность производства сторонних устройств на наших мощностях, что позволит ещё и сэкономить на запуске производства.
Модельный ряд
В нашем ассортименте — контроллеры, модули ввода/вывода, датчики, счетчики, всевозможные модули для автоматизации инженерных систем.
Из ассортимента продуктов Wiren Board: программируемые контроллеры для автоматизации, многоканальные счетчики электроэнергии, периферийные устройства
К нашим преимуществам можно отнести полный цикл производства. То есть мы не только проектируем оборудование, но и закупаем компоненты, разрабатываем SMT-платы, производим устройства, прошиваем и тестируем их. Затем упаковываем и продаем. Благодаря этому мы по-прежнему обеспечиваем очень хорошие сроки поставки — практически все оборудование всегда есть на складе, а если каких-то позиций нет, их отгружаем за месяц-полтора.
Wiren Board — компания полного цикла
Новые устройства
Модуль аналоговых входов WB-MAI6
WB-MAI6 — 12 аналоговых входов с Modbus
Сперва про новые устройства, вышедшие в 2022-м и первой половине 2023 года.
WB-MAI6 — аналоговый модуль, который измеряет практически любые аналоговые сигналы. К нему можно подключать стандартные выходы 0–10 В/4–20 мА, различные термисторы, в том числе PT100 и с трехпроводной схемой. Также он умеет работать с «разными странными датчиками», вплоть до датчиков постоянного тока на эффекте Холла.
Модуль внутри преобразует величины, то есть выдает не милливольты и микроамперы, а градусы Цельсия, ток в амперах — непосредственно величину, которую измеряет подключенный датчик. Новая версия отличается уменьшенным размером, поэтому ее можно применять в большем спектре различных проектов.
Конвертер USB в RS-485 с выходом питания 12 В
WB-USB485 — конвертер USB в RS-485, модуль есть практически у всех производителей, но мы постарались сделать его идеальным. Кстати, рекомендуем ознакомиться с нашей статьей «Как мы изобрели велосипед: адаптер USB–RS485 с выходом питания 12 В и защитой», в которой подробно описан процесс разработки конвертера. Внимание было уделено всему, вплоть до жесткости комплектного кабеля, чтобы удобно было работать с модулем на столе.
WB-USB485 — конвертер USB в RS-485 с выходом питания 12 В
Новый корпус для универсального датчика климата
WB-MSW v. 3— настенный универсальный датчик климата с Modbus, он умеет измерять температуру и влажность, освещенность, уровень шума, VOC, честный CO2, движение. Ещё может управлять кондиционерами, тепловыми завесами и другими устройствами через ИК.
WB-MSW v. 3 уже были доступны с интерфейсами Modbus и ZigBee, в прошлом году вышли новые модели с поддержкой LoRA, а скоро будут доступны варианты с Z-Wave. Датчики внесены в Государственный реестр средств измерения — есть сертификат, который можно показывать заказчику.
Версия WB-MSW v. 4 точно такая же, как предшественник, только в новом корпусе: тоньше, меньше по габаритам и крепёжные отверстия точно подходят под отверстия в подрозетнике. Кроме этого плата стала компактнее и чуть лучше по схемотехнике.
WB-MSW v. 4 — настенные датчики »9 в 1»: температуры, влажности, освещенности и других параметров
Планы на 2023 год
Wiren Board 7.4
Контроллер — самый сложный продукт Wiren Board
Наш флагманский продукт — контроллер Wiren Board, который используется практически в каждой инсталляции. Летом 2023 года выходит новая версия 7.4. В неё мы добавили отдельный микроконтроллер, который управляет всеми сложными системами внутри.
Теперь вместо тумблера включения/выключения на контроллере будет кнопка. Есть возможность управления питанием, например, когда внешнее питание пропало, а заряд аккумулятора подходит к концу, можно «усыпить» контроллер на какое-то время. Скажем, через час он «проснется», выполнит какие-то функции (скажем, проверит показания датчиков и передаст их), и снова «заснет», если питания нет. То есть можно экономить заряд аккумулятора, если нет внешнего питания. Функция работает и с внутренним аккумулятором, и с внешним.
У контроллера вернули четвертый аналоговый вход A4, у старых контроллеров были доступны входы A1-A4, у линейки Wiren Board 7 — только A1-A3. Кроме того, входы стали точнее. Также опционально можно будет поставить сверхточный RTC 0.5 с/сутки.
Большие изменения коснулись Ethernet, появилась поддержка PoE 802.3af, который выполнен модулем. Проблема здесь в том, что реализация PoE довольно дорогая и сложная, поэтому ранее использовался passive PoE, работающий не со всеми источниками. Теперь можно купить модуль PoE 802.3af, который добавит стандартный гальванически изолированный PoE до 60 В.
Сейчас мы тестируем прототипы контроллера Wiren Board 7.4, в производство он пойдет летом.
Wiren Board 8 — ещё мощнее, ещё надёжнее
Разработка новой версии Wiren Board 8 уже начата, под него финализированы спецификации, скоро будет готов дизайн печатной платы.
Новый контроллер перейдет на более мощный процессор с четырьмя ядрами по 1,5 ГГц и 64-битной архитектурой. Благодаря переходу на 28-нм техпроцесс новый процессор будет меньше греться, несмотря на более высокие частоты.
Примерный облик нового Wiren Board 8
В этот раз установлен чип класса не просто Industrial Grade, а уже Automotive Grade AEC-Q100, то есть он может работать 20 лет при температуре 115 °C. Конечно, это температура ядра процессора, на корпусе она может быть 90 °C, внутри щита 80 °C, а снаружи — 50 °C. Запас здесь нужен, поскольку щиты обычно плотно скомпонованы, внутри все греется, и температура кристалла вполне может дойти до подобного уровня, когда обычный процессор «потребительского» класса выйдет из строя через пару лет. Здесь же 20-летняя гарантия работы на высоких температурах от производителя чипа.
Объем оперативной памяти увеличится до 4 Гбайт, при этом версия на 2 Гбайт будет уже дешевле, чем в случае Wiren Board 7. Также память будет работать быстрее.
Стандартные версии Wiren Board 8 будут поддерживать режим работы от -25 °C до 75 °C, расширенные — от -40 °C. При этом базовая версия контроллера будет стоить дешевле, чем сейчас.
Можно отметить добавление MOD4, то есть уже четыре наружных модуля, общий USB Type C вместо двух портов, двухдиапазонный Wi-Fi. Возможно, будет добавлен видеовыход HDMI или что-то такое. Планируем запустить к концу года.
Wiren Board 7M в металлическом корпусе
Осенью выйдет контроллер Wiren Board 7M в алюминиевом корпусе. Он отличается экранированным корпусом, который можно заземлить, что часто требуется в задачах энергетики. Контроллер относится к классу Industrial/Automotive Grade и работает в расширенном диапазоне температур от -40 °C до 85 °C. В контроллер встроены сверхточные часы реального времени RTC, опционально будут Wi-Fi, USB-A порты, а также модемы Dual SIM 4G с поддержкой GNSS, LTE450 и NB-IoT.
Вместе с контроллером будут поставляться крепления в 19» стойку формата 1U, что позволит стыковать несколько контроллеров и применять их в задачах мониторинга ЦОД, например.
После выхода Wiren Board 8 выйдет и Wiren Board 8M.
Прототип Wiren Board 7M в металлическом корпусе
Новые функции софта контроллера
Перейдем к обзору новостей софта. Разработка программного обеспечения у нас ведется в весьма быстром темпе, поэтому для оперативного получения новостей рекомендуем подписаться на канал Telegram https://t.me/wirenboard_testing.
Для нашего контроллера вышла новая версия программного обеспечения на основе Debian Linux Bullseye.
Менеджер сети
Контроллер может выйти в интернет через несколько интерфейсов: 4G (LTE) модем c двумя симками, два Ethernet порта и Wi-Fi. Всё это влечёт за собой несколько сценариев использования, которые надо как-то настраивать.
Эту задачу теперь решает новый менеджер сети и модемов — довольно важный компонент, который делает настройку сети более удобной с учетом различных сценариев.
Настройка соединений
Например, сейчас в графическом интерфейсе можно кликом мыши выставить первый Ethernet основным интерфейсом, второй Ethernet — резервным подключением с внешним модемом, встроенный в контроллер LTE-модем — еще одним резервным интерфейсом с меньшим приоритетом, причем доступны две SIM-карты с разными операторами.
А когда приезжает монтажник, он может раздать с телефона Wi-Fi, к которому контроллер подключится автоматически. Все эти опции легко выставляются в интерфейсе с учетом приоритетов. Если есть подключение к интернету через Ethernet, менеджер сам его найдет. Менеджер сети и модемов особенно полезен для тех интеграторов, которые ставят не один контроллер, а десятки и сотни.
Расстановка приоритетов для подключения к интернету
Менеджер устройств
Продолжается доработка менеджера устройств Wiren Board, в котором можно будет удобно управлять всеми имеющимися модулями, менять скорости, адреса и другие настройки. Обращение к устройствам будет по уникальным серийным номерам, поэтому можно будет устранять и коллизии адресов на шине.
Планируем добавление универсальной кнопки «Сделать хорошо», которая будет выставлять оптимальные для устройств настройки, добавлять их в конфиг контроллера — и всё это по шине RS-485 и протоколу Modbus.
Пока доступно только сканирование шины, а про техническую реализацию читайте выше.
Расширение rootfs
Исторически сложилось, что в контроллерах Wiren Board корневой раздел (rootfs) всего 1 Гбайт. Всё оставшееся свободное место eMMC монтировалось в /mnt/data и было доступно пользователю для установки софта партнёров и других нужд.
Мы расширили rootfs до 2 Гбайт, позже планируем сделать больше. Сторонний объемный софт в ближайшее время будет перенастроен, чтобы он ставился на rootfs. В конечном итоге всем будет удобнее и проще.
В корне доступно 2 Гбайта, а в /mnt/data — 4.9 Гбайт. Контроллер с 8 Гбайт eMMC и 1 Гбайт DDR3
Бэкапы
Наконец, появились бекапы. Раньше бэкапы можно было делать стандартными для Linux средствами, например, с помощью rsync. Теперь можно будет ещё и кнопкой.
В прошивке testing соответствующая функция уже добавлена, пока можно только скачать архив с rootfs, но позже можно будет и восстановить образ с резервной копией.
Ещё в ближайшие месяцы появится функция, позволяющая взять образ с одного эталонного контроллера и «развернуть» его на остальные, что облегчит жизнь инсталляторам среднего размера, когда требуется настроить десятки контроллеров на объекте. Как правило, таким клиентам некогда готовить кастомные образы прошивки и вникать в имеющийся инструментарий. Можно просто настроить эталонный контроллер, после чего «слить» с него образ, который можно будет прошивать на другие контроллеры, причем независимо от аппаратных версий, которые наверняка будут отличаться.
Функция резервного копирования уже добавлена в прошивку testing
Заключение
Мы надеемся, что описание наших новинок и быстрого Modbus было для вас полезным. Дополнительную информацию всегда можно найти на нашем сайте. Конечно, приглашаем на конференцию WBCE 2024 в следующем году, а посмотреть итоги WBCE 2023 можно по ссылке.
А ещё мы растём и нанимаем много сотрудников: программистов, инженеров, менеджеров по продажам и HR. Удаленка или офис в Москве, Астане и Ереване. Описание вакансий есть в нашем профиле на hh.ru и на сайте https://wirenboard.com/ru/pages/jobs/.
О Wiren Board
Уже более 10 лет Wiren Board выпускает оборудование для автоматизации зданий, причем здесь могут быть разные объекты: многоквартирные и частные дома, офисы, банки, магазины, заправки, производство, ЦОДы и т.д.
У нас собственная разработка и производство, в компании сегодня работают почти 80 человек, из них — более 20 разработчиков и инженеров, производственная мощность — порядка 6000 устройств в месяц. С 2013 года партнеры Wiren Board сделали уже 16 000 инсталляций нашего оборудования.