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 RTU позволяет нашему оборудованию взаимодействовать с «чужими» устройствами через Modbus. Например, можно подключить модули реле Wiren Board к стороннему ПЛК. Или наоборот, наши контроллеры — к «чужим» реле. Всё это дает интеграторам уверенность в завтрашнем дне – оборудование можно заменить другим таким же от стороннего вендора. Или расширить существующую экосистему Modbus-оборудованием любого производителя.
Протокол Modbus простой и надежный, за многие годы он прочно утвердился на рынке. Из сравнимых конкурентов здесь можно отметить разве что KNX.
Принцип работы классического Modbus RTU следующий: мастер инициирует все транзакции на шине. Он по очереди опрашивает все устройства. Например, если нужно прочитать значение CO₂ с датчика, то достаточно отправить сообщение по адресу устройства с запросом. В протоколе каждому устройству присваивается адрес от 1 до 247, по которому к нему можно обращаться.
Сканирование шины в обычном Modbus
Чего не хватает в обычном Modbus? Одна из задач – сканирование. Чтобы настроить инсталляцию, нужно знать пару «адрес» и «тип устройства». Например, устройство номер 26 – это реле WB-MR6C v2. Адрес обычно указывают на наклейке, хотя его можно поменять. Если же нет физического доступа к инсталляции, но все становится уже сложней – наклейку быстро не посмотреть. Особенно если в инсталляции много устройств.
Поэтому сканирование – довольно частая задача, по итогу ее выполнения будет выведен список адресов и устройств. Мы давно добавили регистры, в которых описывается тип устройства, версия прошивки и другие параметры. Если известен адрес, то можно легко понять, что это за устройство. Но спросить это необходимо у каждого устройства на шине. Получается, что требуется перебрать все 247 адресов, причем на всех скоростях, на которых устройства могут работать.
Мастер опрашивает последовательно каждое устройство и ждет ответа 100 мс. Если в сети 30 устройств, придется отправить 247 запросов, и так на всех скоростях.
Поэтому процедура вроде бы простая, но она занимает несколько минут, если нужно перебрать все скорости.
Сканирование шины в Быстром Modbus
В быстром Modbus сканирование ускорено, и после старта процедуры устройства появляются сразу. Мастер отправляет один запрос с просьбой всем устройствам ответить, а устройства последовательно отвечают мастеру и сообщают информацию о себе. Мастер управляет этой процедурой, предоставляя возможность каждому устройству «высказаться». В конце концов устройства заканчиваются, и мастеру уже никто ответить не может.
Со стороны контроллера работает некая магия, поскольку отвечает только то устройство, которое и должно, без каких-либо задержек. И если на шине 10 устройств, то запрос просто будет отправлен 11 раз. И каждый раз будет получен ответ без дополнительных задержек. На практике после нажатия кнопки «Сканировать» список устройств появляется моментально.
Быстрый Modbus изнутри
Кстати, о магии. Быстрый Modbus – это не новый протокол, а расширение стандартного Modbus. То есть это не наша проприетарная разработка, замыкающая устройства на собственную экосистему и блокирующая совместимость с обычными продуктами Modbus. Это всего лишь дополнительная функция.
В Modbus есть концепция функций, например, читать или писать регистр, либо читать/писать группу регистров. Таких функций по спецификациям около десяти, и некоторые зарезервированы за производителями. То есть производители могут добавить отсутствующую в стандартном Modbus функцию, просто используя заложенные в протоколе возможности.
Мы взяли свободную функцию 0x46, которая и используется для «магии» быстрого Modbus.
Если ПЛК, SCADA-система или старый контроллер Wiren Board ничего не знают о быстром Modbus, они будут общаться с новыми «быстрыми» устройствами в обычном режиме: с функциями записать/прочитать регистры. Расширенная функция 0x46 на старых устройствах активна не будет, поскольку они про нее не знают. Все наши новые устройства с быстрым Modbus успешно работают с любыми ПЛК на обычном Modbus. Даже если эти ПЛК не поддерживают быстрый Modbus .
Повторим еще раз: быстрый Modbus – это не какой-то отдельный режим или новый протокол, ни переключатель быстро/медленно, это просто расширение. Если функции доступны – ими можно пользоваться, если нет – все будет работать как раньше, по обычному Modbus.
На наших контроллерах расширение быстрого Modbus будет работать автоматически, поскольку дополнительные функции инициируются со стороны устройств. То есть именно со стороны устройств используется арбитраж, подобный CAN. Подробнее можно прочитать в открытой спецификации.
Все устройства начинают отвечать одновременно, но при этом они понимают, что не одни на шине. И выигрывает арбитраж (право отправить сообщение) то устройство, у которого меньше серийный номер. На примере выше три устройства начали передавать информацию, и в какой-то момент они понимают, что серийный номер больше, чем у соседей.
Сначала арбитраж проигрывает третье устройство, потом второе, остается только одно. Применительно к процессу сканирования, выигрывает устройство с меньшим серийным номером — оно передает ответ и запоминает это, после чего больше не участвует в арбитраже. И тогда в следующий раз устройство уже не передает ответ, арбитраж выигрывает другое устройство. Если на шине 10 устройств, то они 10 раз в арбитраж поиграют и 10 ответов по очереди отправят.
События
Мы рассмотрели быстрый Modbus на примере сканирования. Вторая важная функция – реакция на события.
На что нужно быстро реагировать? В основном, на пользовательские действия. Например, выключатель света. Хочется, чтобы свет включился после нажатия на выключатель. Здесь важно время между действием и реакцией на него. Причем следует учитывать максимальное время. Если система обычно реагирует за 10 мс, но иногда за 10 с, то клиент это заметит и начнет жаловаться. Можно даже пошутить: «Требуйте у продавцов новых протоколов гистограмму распределений, чтобы знать наихудшее время реакции».
Вот пример нашей гистограммы. Мы подключили много реле к одному контроллеру на одну шину, скрипт через GPIO дёргает входы реле и измеряет задержку от отправки импульса до получения обновления в MQTT. Результат занесли в таблицу и построили гистограмму.
В обычном Modbus, как показано на иллюстрации выше, мастер периодически опрашивает устройство и считывает регистр. И если регистр поменялся, то значит что-то произошло. Проблема в том, что устройство необходимо постоянно опрашивать. А также перебирать все регистры состояния и на всех устройствах. Если на реле три диапазона регистров, 30 реле в инсталляции, то придется отправить 90 запросов в каждый цикл.
Если требуется время реакции 50 мс, то за 50 мс необходимо отправить 90 запросов и получить столько же ответов, что довольно тяжело. Придется решать, какие регистры опрашивать часто, какие – медленно: в обычном Modbus все это работает не очень хорошо.
В быстром Modbus мастер просто спрашивает: что у кого есть нового? На примере выше ответило устройство 13, сообщив об изменении регистра счетчика нажатия. Мастер снова отправляет такой же запрос, ему отвечает уже другое устройство 25. На следующий запрос реакции нет. Работа мастера в данном случае – регулярная отправка подобных запросов.
На первом примере с обычным Modbus за 50 мс нужно было отправить 90 запросов, то теперь за 50 мс нужно отправить один запрос и получить один ответ. Причем это не зависит от количества устройств. В обычном Modbus чем больше устройств и регистров, тем больше время реакции и хуже гистограмма распределения. С быстрым Modbus время фиксированное, оно не зависит от количества устройств. Кроме того, фиксированное время приводит к узкому распределению без выпадений.
Здесь тоже используется дополнительная функция 0x46 и арбитраж. Обычные устройства будут работать так, как и раньше, а новые, с быстрым Modbus, – моментально.
Настройка в контроллерах Wiren Board
Как настроить быстрый Modbus в контроллере? Настраивать ничего не надо, так как вся магия — в самих устройствах и прошивках. И все существующие и написанные правила будут успешно работать и дальше.
Новые функции уже доступны в testing-релизе, поэтому вам нужно просто ввести
apt update && apt upgrade
и всё заработает само.
Поддержка в стороннем софте и устройствах
Мы планируем расширять экосистему быстрого Modbus. Для ПЛК, SCADA и контроллеров работа с быстрым Modbus очень простая – на уровне поддержки новых типов запросов. То есть в самую сложную систему поддержку можно добавить за несколько дней. У наших специалистов есть соответствующий опыт и компетенция.
Поэтому некоторые производители стороннего софта и SCADA-систем планируют добавить поддержку быстрого Modbus в ближайшем будущем. С нашей стороны им будет оказана необходимая поддержка. Также планируется поддержка быстрого Modbus в open source SCADA-системах.
С конечными устройствами все сложнее. Обычный Modbus правильно поддержать не так просто, а быстрый Modbus еще и чувствителен к таймингам. Поэтому мы предлагаем производителям конечных устройств воспользоваться нашими наработками.
Можно использовать фреймворк, включающий всю компетенцию компании в написании прошивок за 10 лет. В нём есть механизм обновления прошивок по Modbus с помощью open source инструментов. Причем реализация очень компактная. Внутри используются микроконтроллеры класса Cortex M0, на картинке выше перечислены поддерживаемые платформы. Цена микроконтроллеров сегодня – 65 центов, в результате устройства получаются очень дешевыми в производстве. Условия тоже довольно комфортные: роялти с устройства 100 рублей, потолок 500 тысяч рублей в год. Больше вы не заплатите, сколько бы устройств в год не продали.
Но использовать наш фреймворк совершенно необязательно — спецификации протокола открытые, кто угодно их может использовать, то есть цена в данном случае за фреймворк и прошивки Wiren Board.
Со стороны сторонних производителей интерес есть, два уже подключились к нашей программе быстрого Modbus. Также есть возможность производства сторонних устройств на наших мощностях, что позволит ещё и сэкономить на запуске производства.
Модельный ряд
В нашем ассортименте – контроллеры, модули ввода/вывода, датчики, счетчики, всевозможные модули для автоматизации инженерных систем.
К нашим преимуществам можно отнести полный цикл производства. То есть мы не только проектируем оборудование, но и закупаем компоненты, разрабатываем SMT-платы, производим устройства, прошиваем и тестируем их. Затем упаковываем и продаем. Благодаря этому мы по-прежнему обеспечиваем очень хорошие сроки поставки — практически все оборудование всегда есть на складе, а если каких-то позиций нет, их отгружаем за месяц-полтора.
Новые устройства
Модуль аналоговых входов WB-MAI6
Сперва про новые устройства, вышедшие в 2022-м и первой половине 2023 года.
WB-MAI6 – аналоговый модуль, который измеряет практически любые аналоговые сигналы. К нему можно подключать стандартные выходы 0-10 В/4-20 мА, различные термисторы, в том числе PT100 и с трехпроводной схемой. Также он умеет работать с «разными странными датчиками», вплоть до датчиков постоянного тока на эффекте Холла.
Модуль внутри преобразует величины, то есть выдает не милливольты и микроамперы, а градусы Цельсия, ток в амперах – непосредственно величину, которую измеряет подключенный датчик. Новая версия отличается уменьшенным размером, поэтому ее можно применять в большем спектре различных проектов.
Конвертер USB в RS-485 с выходом питания 12 В
WB-USB485 – конвертер USB в RS-485, модуль есть практически у всех производителей, но мы постарались сделать его идеальным. Кстати, рекомендуем ознакомиться с нашей статьей «Как мы изобрели велосипед: адаптер USB–RS485 с выходом питания 12 В и защитой», в которой подробно описан процесс разработки конвертера. Внимание было уделено всему, вплоть до жесткости комплектного кабеля, чтобы удобно было работать с модулем на столе.
Новый корпус для универсального датчика климата
WB-MSW v.3— настенный универсальный датчик климата с Modbus, он умеет измерять температуру и влажность, освещенность, уровень шума, VOC, честный CO2, движение. Ещё может управлять кондиционерами, тепловыми завесами и другими устройствами через ИК.
WB-MSW v.3 уже были доступны с интерфейсами Modbus и ZigBee, в прошлом году вышли новые модели с поддержкой LoRA, а скоро будут доступны варианты с Z-Wave. Датчики внесены в Государственный реестр средств измерения – есть сертификат, который можно показывать заказчику.
Версия WB-MSW v.4 точно такая же, как предшественник, только в новом корпусе: тоньше, меньше по габаритам и крепёжные отверстия точно подходят под отверстия в подрозетнике. Кроме этого плата стала компактнее и чуть лучше по схемотехнике.
Планы на 2023 год
Wiren Board 7.4
Наш флагманский продукт – контроллер 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-нм техпроцесс новый процессор будет меньше греться, несмотря на более высокие частоты.
В этот раз установлен чип класса не просто 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.
Новые функции софта контроллера
Перейдем к обзору новостей софта. Разработка программного обеспечения у нас ведется в весьма быстром темпе, поэтому для оперативного получения новостей рекомендуем подписаться на канал 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. В конечном итоге всем будет удобнее и проще.
Бэкапы
Наконец, появились бекапы. Раньше бэкапы можно было делать стандартными для Linux средствами, например, с помощью rsync. Теперь можно будет ещё и кнопкой.
В прошивке testing соответствующая функция уже добавлена, пока можно только скачать архив с rootfs, но позже можно будет и восстановить образ с резервной копией.
Ещё в ближайшие месяцы появится функция, позволяющая взять образ с одного эталонного контроллера и «развернуть» его на остальные, что облегчит жизнь инсталляторам среднего размера, когда требуется настроить десятки контроллеров на объекте. Как правило, таким клиентам некогда готовить кастомные образы прошивки и вникать в имеющийся инструментарий. Можно просто настроить эталонный контроллер, после чего «слить» с него образ, который можно будет прошивать на другие контроллеры, причем независимо от аппаратных версий, которые наверняка будут отличаться.
Заключение
Мы надеемся, что описание наших новинок и быстрого 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 инсталляций нашего оборудования.
Комментарии (50)
AlexHighTower
25.05.2023 07:40+1По поводу изменений в WB8:
- добавили mod4 и убрали один usb-c — это отлично, НО — верните второй обычный usb для подключения внешних устройств!!! место есть, вместо кнопки FW… как часто в реальной жизни её используют? её можно и внутри корпуса разместить, если очень надо будет — то снять верхнюю крышку и иглой куда нибудь тыкнуть
- что стало с А4? как в и 7 версии только D, без А? или картинка — фотошоп от 6 версии? ))
- хватит заливать проблемы увеличением ресурсов контроллера (минимум памяти увеличили, наверняка и проц другой будет), лучше оптимизируйте свой софт. уже сколько лет везде плачут что ваш же wb-rules "из коробки" без настроек пользователя проц жрёт как не в себя
- не стоит каждый год плодить новую версию контроллера, вы ж не эппл чтоб такое себе позволять, а после прочтения хвалебного поста про изобретение WB-USB485 (да и поличному опыту обмена) понимаешь что первые полгода вообще новые устройства лучше не брать, т.к. там прям гарантированно будут проблемы и будут появляться новые ревизии железа их устраняющие...
мне очень нравится сам контроллер WB с версии 3.5, но накипело!
garageman
25.05.2023 07:40+1В 7.4 будет A1-A4, как и в 6.x.
Картинка - фотошоп конечно.AlexHighTower
25.05.2023 07:40вопрос в другом и про 8.х а не про 7.4
в 6.х А1-А4 настраиваются AI\DI\DO
в 7.х без внятного объяснения сделали A1-A3 AI\DI\DO а вот A4 только DI\DO
в 8.0 что в итоге будет?evgeny_boger
25.05.2023 07:40+2без внятного объяснения
каналов АЦП в процессоре не хватило, куда уж более внятно.
WB8.x делается на базе WB7.4, и в том и в другом будут аналоговые входы на A1-A4.
AlexHighTower
25.05.2023 07:40а что поменялось в 7.4 по сравнению с 7.3 что стало хватать АЦП внезапно?
wofs
25.05.2023 07:40+1Добавили Embedded контроллер, который теперь управляет питанием контроллера и у него на борту есть свой довольно точный АЦП.
Мы в WB7 убрали A4 не от хорошей жизни. Он проектировался в 2021м году, когда с компонентами было сложно и в тот момент решение отказаться от ещё одного дефицитного компонента казалось верным. По этой же причине и пропал второй USB — хабы было сложно купить.
Ну а почему перестал выпускаться WB6, мы рассказывали весной прошлого года, хотя планировали производить ещё как минимум год: https://wirenboard.com/ru/pages/wbce2022-report-wb/
evgeny_boger
25.05.2023 07:40+2внутри теперь есть отдельный МК (у нас называется Embedded Controller), который управляет питанием. Аналоговые входы тоже заведены на него.
В линуксе, естественно, всё это скрыто: клиенты как читали готовые вольты из MQTT (ну или /sys/bus/iio), так и будут. Даже все пути и форматы остались те же.
evgeny_boger
25.05.2023 07:40+31) А что вы подключаете к USB-A в контроллере? Это правда интересно, мы не особо понимаем применение даже одному порту. Кнопка FW снаружи выведена, чтобы монтажники в полях в рукавицах могли втыкать флешку с прошивкой и обновлять контроллеры, ничего не разбирая.
2) A4 вернётся уже в WB7.4, ещё и сами входы станут точнее
3) А какие проблемы? wb-rules на чистом WB7 сейчас потребляет ну процентов 5 процессора. Если там куча правил написана и куча каналов опрашивается, то может и больше потреблять, но тоже не половину.
Ресурсы контроллера увеличиваем в первую очередь ради стороннего софта: HomeAssistant, разное коммерческое стороннее ПО. Плюс такие системы покупают обычно на многие годы эксплуатации, и, поэтому, запас по ресурсам очень нравится клиентам.
4) По-моему эппл очень даже хороший пример для подражания :) На самом деле WB7 вышел в декабре 21-ого, а WB8 планируется в декабре 23-его, это два года разницы.
5) Про первые полгода и хвалебный пост: ну так про проблемы вы знаете, потому что мы про них пишем посты и ведём публичную еррату. Да и ревизии мы делаем, чтобы исправлять найденные проблемы или решать проблемы с доступностью, а не просто разводить руками.
Не брать новые устройства первые полгода - это ваше право, но даже с этой стороны получается, что чем раньше мы устройство сделаем, тем раньше первые полгода пройдут :)
AlexHighTower
25.05.2023 07:40+1-
открою страшную тайну, если идти в промышленную автоматизацию, то там дофига железяк, который дают подключение по usb и по факту у них обычный usb-serial чип, который подхватывается ядром линуха и даёт обычный ttyUSBx интерфейс, через него можно прекрасно опрашивать это устройство. тут и экономия на внешнем интерфейсе для этого устройства (есть ещё производители которые за него отдельные деньги хотят), и ускорение опроса
так же ups подключить очень полезно, я подключаю usb ble свисток для получения данных с ble датчиков. с встроенным ble проблемы есть, даже в 7.3 (хоть и редко стало), но всё ещё есть, а вот с внешним свистком — вообще ни разу проблем не было…
и серьёзно, монтажник в поле в рукавицах обновляет прошивку контроллера???
тут я вижу два варианта, или этим вы признаёте что прошивки\софт кривой и его приходится достаточно часто обновлять в поле, или бурно фантазируете
в реальной жизни или всё работает и его никто не трогает, или на объект едет специально обученный человек с ноутбуком и без руковиц
-
всё для удобства клиента! есть типовой проект, рассчитано на железку с одними параметрами, потом тебя ставят перед фактом — всё, теперь вот так и старых железок не будет, ты тратишь время, переделываешь, доставляешь модули\шмодули и тут на тебе — теперь всё как было.
-
да ладно, 5%??? из принципа найду свободный 7.3 со стоковой прошивкой и покажу вывод что это не так.
тот же НА у меня на 6е на даче прекрасно работает. да, старт дико долгий, но потом когда всё закешировалось не более 35%, на 7е старт быстрый и 7-18% загрузка проца
вот пример с 7.3.1
и что такое делает это wb-rules, а он не трогался тут совсем, вообще, ничего пользовательского нет?
-
ну сказать… мемчик есть про это — "ни… я нового, но стоить будет в 2 раза дороже"
и если подрожать — то тому что у них софт очень сильно оптимизирован под железо, само железо зачастую слабее чем у конкурентов, но софт решает!
-
про проблемы я знаю не только из поста, а из за того что покупаешь новую железку, т.к. старая уже не производится и её нет на складе, и тут же ловишь проблему, например с каном, узнаешь что это подтверждённая проблема и надо менять.
по хорошему — вам бы внутри тестить лучше, а ещё лучше отправлять тестовые образцы своим основным заказчикам и интеграторам на тесты, так шансы узнать о проблемах выше, чем начать продавать и потом получать негативный фидбек. но, как вы говорите, это ваше право, использовать конечных пользователей как дешевых тестеров (вы платите только за две пересылки)
evgeny_boger
25.05.2023 07:40+2открою страшную тайну
ну так может вы всё-таки напишите примеры реальных устройств, которые вам нужно подключать? Мне не надо страшную тайну открывать, мне нужны сценарии использования. Дальше мы на них смотрим и думаем, как улучшать продукт.
и серьёзно, монтажник в поле в рукавицах обновляет прошивку контроллера???
тут я вижу два варианта, или этим вы признаёте что прошивки\софт кривойО господи. Мы: сделали обновление прошивки удобнее. Вы: 'ага! то есть признаёте, что софт кривой!". Ну зачем так?
Кстати у нас можно собирать готовые образы прошивку с нужным клиентским софтом и конфигами. Часто клиенты эти прошивки делают после отгрузки, часто что-то в них меняют. Если залить это может любое щитовое производство или любой электрик без специального образования, ноутбука, кабеля, софта и т.п. - это удобно.
всё для удобства клиента! есть типовой проект, рассчитано на железку с одними параметрами, потом тебя ставят перед фактом — всё, теперь вот так и старых железок не будет, ты тратишь время, переделываешь, доставляешь модули\шмодул
В феврале 2022-ого кое-что случилось, из-за этого продавать старый WB6 до последнего клиента мы не могли. Но продавали, по-моему, вплоть до июня: времени купить было достаточно.
Зато мы умудрились переделать всю логистику и перенести производство проц. модуля в Россию, и контроллеры (уже WB7) поставлялись без перерывов. Приоритетом было именно это, по-моему это лучше, чем сохранить 100% совместимость, но отправлять клиентов ждать поставок год или пока NXP снова начнёт i.mx6ull в РФ возить. Этого бы пришлось ждать долго.
По внешним интерфейсам в WB7 отличие в меньшую сторону было только по количеству аналоговых входов. Это коснулось очень мало кого, но если вас всё-таки коснулось - это действительно неприятно.
и и тут на тебе — теперь всё как было.
подождите, но ведь если кто-то не столкнётся с теми же проблемами, что и вы - это хорошо, а не плохо? Вроде как надо радоваться за коллег, а не наоборот.
ну сказать… мемчик есть про это — "ни… я нового, но стоить будет в 2 раза дороже
Новый WB8 будет дешевле WB7 в такой же конфигурации, потому что там используется более новая и дешёвая память LPDDR4.
AlexHighTower
25.05.2023 07:40ну так может вы всё-таки напишите примеры реальных устройств
конкретно — контроллеры управления дизельной электростанцией, насосом, турбиной. модель не принципиальна, важна суть, что внутри usb преобразователь на базе cp210x или подобного и ядро его видит и даёт ком порт, через который можно по модбасу устройство опрашивать. реальный кейс, тот же apc ups, чтоб с него данные снимать, а не ставить модуль mod-rs232 и через него читать. ble usb stick… но я уже повторяюсь...
часто что-то в них меняют
это не ответ на вопрос — как часто на рабочем и сданном объекте меняется прошивка?
когда идёт отладка и пусконаладка — понятно, но это всё не в поле, а на столе делается и тут можно и шнурком подключиться (даже если в поле), а вот именно в поле как часто это делается? у вас есть статистика, или это смелое предположение что ну очень нужно?это мне сейчас напоминает старую дискуссию про переход на usb-c разъёмы (вроде как все переходят на него, но многие именно промышленные железки как имели на борту usb-b так и имеют и не понимаю про что речь) и аналогично про usb-c разъём аля-сетевая карта. было объяснение что очень удобно, подключился и вот тебе сетевой интерфейс в системе… ну такое себе… и снова — как часто это используется в поле? на столе — да, для дико ленивых у кого нет usb-ethernet конвертера и лишний провод пугает — это вариант, а в остальном...
мысль посетила — сделайте на сайте у себя голосовалку, по типу "вот функция обновления прошивки с usb носителя", и вопрос "использовали ли её после сдачи объекта" + ответы "ни разу", "один раз", "постоянно". так же с usb сетевой и другими моментами, дико интересно посмотреть результаты, может действительно это дико востребованные за пределами вашего офиса функции.
Зато мы умудрились переделать всю логистику и перенести производство проц. модуля в Россию
тут молодцы, можно только порадоваться и признать что работали оперативно и на уровне
Новый WB8 будет дешевле WB7
посмотрим, хорошо если будет так!
а пока почитал новость про разработку 7.4 и две фразы заставили задуматься:Останутся четыре универсальных входа-выхода A1-A4
PoE через модули расширения. По умолчанию PoE больше нетне шаг ли это в сторону "оголения" контроллера, когда будет "дешевле" продаваться "пустая" платформа, а все остальное (что есть и к чему привыкли) исключительно в виде доп модулей за доп деньги?..
garageman
25.05.2023 07:40+1Про обновление с USB. Да. Это реально часто используется. Живой кейс: многоквартирные дома. Где есть XX вариантов настроек для каждой из XX "комплектаций" квартир.
И монтажник, подключив оборудование - заливает в контроллер готовый образз именно для этой "комплектации", просто вставляя одну из XX флешек со связки.AlexHighTower
25.05.2023 07:40так прошу прощения — это процедура заливки образов — постоянная операция в процессе эксплуатации, или же всё таки "монтажник" и "подключив оборудование" это делает один раз?
разницу в частоте использования чувствуете?если он один раз при установке оборудования это делает, то можно и крышку снять для нажатия на кнопку
а если это происходит раз в неделю или типа того — то уже проблема в другом и надо её решать иначе..garageman
25.05.2023 07:40По разному, к сожалению. Не у каждого интегратора есть понимание как оптимально оркестровать хосты. Ну и вообще осознания такой необходимости.
Да, я бы сделал проще. Монтажник подключает контроллер (адрес получается по dhcp) и сообщает его серийник (например) диспетчеру. Тот указывает в базе соответствие номера (или типа) квартиры-серийнику и ansible (например!) проводит настройку.
evgeny_boger
25.05.2023 07:40+3по хорошему — вам бы внутри тестить лучше
Тестировать лучше - это всегда полезно, мы тратим на это много ресурсов. Недавно, например, внедрили автоматизированные интеграционные тесты полного набора ПО контроллера на железках, в дополнение к обычным юнит-тестам и интеграционным тестам отдельных сервисов.
То, что доходит до клиентов и ерраты - это обычно уже фатальная комбинация нескольких маловероятных причин. Мы стараемся на такие штуки делать 8D-отчёт и вносить изменения в процессы.
На примере проблемы с CAN: отдельно проверили и поменяли трансивер, отдельно вносили изменения в схему - пропустили разные уровни. Специальный автоматизированный тест CAN все устройства проходили. Сдерживающие меры там еррата, отключение CAN в софте, отзыв и гарантийная замена контроллеров; а корректирующие - изменения в процедуру замены компонентов и явная проверка уровней внутри при тестировании образцов новых ревизий.
а ещё лучше отправлять тестовые образцы своим основным заказчикам и интеграторам на тесты
Мы двумя руками за, но как вы правильно заметили, наши клиенты не очень любят быть тестерами. К сожалению, редко кто соглашается проверять новые железки, а если и соглашаются - отзывов обычно очень мало и они приходят очень поздно.
Так что мы надеемся только на свои силы в тестировании.
-
makkarpov
25.05.2023 07:40+1А как арбитраж в процессе сканирования работает на физическом уровне? Ведь это не CAN или 1W, где есть явно выделенные доминантные и рецессивные состояния шины. В RS485 состояния равноправны, и если выходной драйвер включен, он будет очень настойчиво подтягивать шину к желаемому состоянию. Кроме того, в этот момент устройство не может принимать.
Получается, арбитраж должен работать не на уровне UART протокола, а ниже - например, устройства с нулевым и с единичным битом серийного номера должны передавать этот бит в разное время, чтобы не возникало конфликта и было время послушать остальных. Вот интересует, как именно эту проблему решили.
evgeny_boger
25.05.2023 07:40+3В статье было описание протокола, может пропустили. Если очень кратко, то на каждый бит там выделено временное окно чуть больше одного байта. В этом окне рецессивное состояние - это отсутствие передачи (idle), доминантое - передача 0xFF. Это занимает больше времени, зато не требует ни переделки железа, ни необходимости работать на уровне битов. Для мастера (ПЛК) к тому же нет и требований по таймингам, поэтому он работать может на любом железе, ОС и за шлюзами.
rsashka
25.05.2023 07:40Интересно, как это будет работать с USB - RS485 конверторами?
evgeny_boger
25.05.2023 07:40+1Если ПЛК (мастер) подключен через USB-RS485, то прекрасно работает: он в арбитраже не участвует, требований по времени к нему нет.
rsashka
25.05.2023 07:40Я про то, что у USB-RS485 вы не сможете задавать тайминги на уровне бит/байт как в ПЛК, соответственно ваш протокол прибит к вашей же аппаратной реализации. В этом нем ничего удивительно, так как вендорлок, это один из способов защиты своей поляны. Просто он не совместим со "стандартным Modbus", как вы пишите в статье.
makkarpov
25.05.2023 07:40До вендор-лока еще очень далеко, потому как для реализации слейва достаточно любого МК.
В том числе и в случае с USB-конвертером, никто не мешает этому МК отвечать на арбитраж аппаратно (где тайминги важны), а все остальное делегировать хосту.
evgeny_boger
25.05.2023 07:40+1Всё правильно, не сможем. Но это не нужно, здесь у ПЛК (мастера) нет необходимости выдерживать какие-либо тайминги. Работает и через переходник, и через шлюз, как угодно.
Вот прямо сейчас запустил с ноута референс-сканер из репозитория через USB-RS485 - работает.
evgeny_boger
25.05.2023 07:40+2вендорлок
Сейчас у нас в опенсорсе не только полные спеки, но и простая референсная реализация на C, и наш настоящий сервис, который работает на контроллере. Это более чем достаточно для поддержки протокола в своём софте на ПЛК/компьютере.
Библиотека для МК пока доступна для партнёров за деньги, но там роялти 100р с устройства и это явно сильно меньше, чем мы зарабатываем, продавая свои. Так что это явно не ради вендорлока делается.
Mitya78
25.05.2023 07:40Если уж Modbus, то TCP.
Вообще же, как по мне, то тот же Profinet намного удобнее.
evgeny_boger
25.05.2023 07:40+2У Modbus TCP, профинет и прочее это банально очень дорого. Хороший трансивер RS-485 стоит $0.2, хороший МК с UART стоит $0.65. Ethernet - это сразу МК от $1.0, физический уровень от $0.7, трансформаторы и разъём ($1). Ещё всё это занимает место на плате, разъёмы увеличивают габариты корпуса, а клиенты вынуждены ставить шкафы со свичами и коммутировать всю систему звёздочкой. Какую это создаёт ценность для пользователя? Заплатят ли они нам больше денег, если мы так сделаем?
Mitya78
25.05.2023 07:40Э нет, подождите.
Ethernet, как понимаю, у вас уже есть, на картинке вижу.
На нём можно поднять Modbus TCP или добавить устройство на Profinet?
Вообще много устройств на этих протоколах. Это и частотники, и операторские панели.
garageman
25.05.2023 07:40Первое - штатно (на контроллере), как master так и slave, второе - пакет собрать надо.
rsashka
25.05.2023 07:40Поэтому решение мне кажется надуманным. Сами придумали якобы проблему, сами её решили. Все равно эти устройства не смогут передавать одновременно, чтобы сократить время ответа, а арбитраж шины, это тоже время.
У шины Модбас, когда в ней работают более двух сотен устройств, проблема не со скоростью ответа от каждого из них, а с назначением адресов для каждого устройства (в том числе, возможные дублирования адреса в случае ошибок при конфигурации).
evgeny_boger
25.05.2023 07:40+2Все равно эти устройства не смогут передавать одновременно,
расширение протокола для того и сделано, чтобы передавало только то устройство, которому есть что передать. Если это снижает трафик на шине в сто раз и данные приходят за 50мс, то что в этом плохого?
проблема <...> с назначением адресов для каждого устройства (в том числе, возможные дублирования адреса в случае ошибок при конфигурации)
А это мы тоже решили, тоже есть в статье и в протоколе:
быстрое сканирование находит без перебора все устройства, даже с дублирующимися адресами
адресация по уникальному длинному серийнику позволяет поменять Modbus адрес при конфликте адресов
rsashka
25.05.2023 07:40расширение протокола для того и сделано, чтобы передавало только то устройство, которому есть что передать. Если это снижает трафик на шине в сто раз и данные приходят за 50мс, то что в этом плохого?
В снижении трафика ничего плохого нет.
Вот только "есть что передавать" может относится к каким нибудь умным устройствам, которые сами решают, есть данные для передачи или нет. Но это частности, а в общем случае считывается текущее значение с контроллера, которое есть всегда (например, чтение регистра).
А адресация по длинному серийнику, это уже не совместимое с Modbus расширение протокола. (которые делают практически все, кому это действительно требуется)
evgeny_boger
25.05.2023 07:40+3в общем случае считывается текущее значение с контроллера, которое есть всегда (например, чтение регистра).
Ну вот если значение регистра не изменилось с последнего опроса, то его и не надо отправлять. Всё очень просто, никакого особого ума у устройств не прибавилось, а работает сильно быстрее.
А адресация по длинному серийнику, это уже не совместимое с Modbus расширение протокола.
Эта адресация нужна только на этапе пусконаладки или вообще сборки щита, только чтобы расставить адреса.
Ну и что значит несовместимое? Естественно, если чего-то в протоколе не было, то и устройства сделанные давно это не поддерживали и работать так не будут.
Но даже это расширение совместимое с Modbus по протоколу: там зарезервированный адрес получателя + код функции для vendor-specific use + модбасовская контрольная сумма. А вот уже в полезной нагрузке сам серийник и прочие команды. Т.е. незнакомое с этим расширение устройство или ПЛК обязаны его распознать как валидный Modbus фрейм и проигнорировать, потому что это сообщение не для них, да и соответствующую функцию они не поддерживают. Шлюзы должны это как валидный Modbus-фрейм передавать дальше.
YegorP
25.05.2023 07:40+1В быстром Modbus мастер просто спрашивает: что у кого есть нового?
Окей. Мастер спросил "у кого чего нового" и затем пропустил либо не зафиксировал чей-то ответ. Как произойдёт исправление этой ошибки?
shadrap
25.05.2023 07:40а что за аналоговый сенсор - по виду металл боченок с 3\8 резьбой, левый верхний угол картинки аналоговых устройств ? Датчик давления ? Можно про него ?
wofs
25.05.2023 07:40+1Эту картинку рисовал я, но очень давно. Модель не скажу, но это был датчик давления на 4...20 мА.
shadrap
25.05.2023 07:40Эти датчики где-то живы? В своей системе я пользуюсь алишными датчиками для масла, но на воде они проявляют себя не важно , особено если остаются сухими какое-то время. Я подумываю сменить их на что-нить...
hooperer
25.05.2023 07:40Интересно про арбитраж:
" Подробнее можно прочитать в открытой спецификации.
Все устройства начинают отвечать одновременно, но при этом они понимают, что не одни на шине. И выигрывает арбитраж (право отправить сообщение) то устройство, у которого меньше серийный номер."
Правильно понимаем, что если кто то другой сделает устройство с такой же спецификацией... у него будет свой отчёт серийных номеров.
И если пересечение с одним "сторонним" производителем ещё как то достаточно сложно найти одинаковые номера,
то в случае если такую спецификацию начинают использовать "маленькие разработчики" штучных устройств с серией меньше 100, то тут уже пересечений серийников у разных производителей может быть уже достаточно много. что нивилирует преимущество открытости спецификации ? или оно как то решается другим образом?
evgeny_boger
25.05.2023 07:40+1Наш план - просто выдавать блоки серийников для организаций и очень маленькиме блоки для очень маленьких разработчиков. Битов там много, на всех хватит.
hooperer
25.05.2023 07:40Наверно тогда и эта таблица выданных блоков должна быть открыта и постоянно обновляться? ;)
Хотя я почти понимаю логику WB - что открыто а что нет, и логику формирования того что открыто а что нет. Когда нибудь надо будет засесть и поспрашивать.
evgeny_boger
25.05.2023 07:40+2Наверно тогда и эта таблица выданных блоков должна быть открыта и постоянно обновляться? ;)
Ну сейчас-то в таблице одна запись. Большой ценности в публичной таблице префиксов нет, нам наоборот важнее мотивировать производителей регистрировать префиксы, чтобы они не пересекались. А открытая таблица мотивирует выбрать себе префикс самому.
Вообще первым делом мы наверное выделим явный публичный префикс для DIY, т.к. вряд ли одна DIY железка окажется в одной сети с другой.
hooperer
25.05.2023 07:40вот я бы, конечно, сделал это поле явно конфигурируемым, с умолчательными настройками, с тем чтобы в пределах одной сети его можно было изменять.
Gryphon88
25.05.2023 07:40И выигрывает арбитраж (право отправить сообщение) то устройство, у которого меньше серийный номер.
принцип как в I2C, или как-то иначе? Т.е. молотим на шину, у кого первый нулевой бит, тот и проиграл?
Gryphon88
25.05.2023 07:40Извините за лень, но запросы "ты кто" и "что нового" получаются широковещательные?
DX168B
25.05.2023 07:40Мы на шине, типа открытого коллектора, использовали свой протокол поиска, взяв за основу алгоритм поиска 1-Wire. Всё устройства изначально не имеют короткого адреса. Неадресованные устройства отвечают на специальную команду проверки наличия неадресованных устройств зажимом линии к земле на некоторое время. Главный контроллер ожидает спада линии в течении некоторого времени. Если зажим линии произошёл, значит начинается процесс опроса битов серийного номера. Главный шлёт запрос с номером бита серийника. Если ответ зажимом линии произошёл, значит у кого-то на шине он равен нулю. Если ответа нет, значит единица. В зависимости от ответов, формируется серийник, которому посылается команда назначения адреса. Получив адрес, такое устройство становится адресованным и больше не отвечает на запрос наличия неадресованных устройств на шине. Поиск заканчивается после того, как прекратятся ответы на запрос наличия неадресованных устройств. Так как шина поддерживала горячую замену устройств, главный контроллер периодически посылал запросы в шину о наличии новых устройств.
s60
25.05.2023 07:40это правда, что WirenBoard отдает аналоговые переменные по OPC UA только как float двойной точности (double) и это никак не изменить в настройках ?
Galperin_Mark
Уважение коллегам по цеху средств автоматизации.