WB-LED v.1: Errata
ERRMRGBW-D04: Не изменяются значения «Компонент H» в MQTT при включении «Непрерывная смена цвета RGB-ленты»
Подверженные устройства
WB-MRGBW-D, WB-LED начиная с версии 3.4.1.
Описание
При включении режима «Непрерывная смена цвета RGB ленты» в режиме работы диммера «RGB + W» преднамеренно не генерируются события по регистру «Компонент H». Значение «Компонент H» слишком часто меняется, что приводило бы к большому количеству событий на шине. При такой ситуации с большой вероятностью устройства с адресом бóльшим, чем адрес WB-LED или WB-MRGBW-D, не опрашивались бы.
Пути обхода
Исправить шаблон устройства: в секции регистра RGB Strip Hue (адрес 2014) установить значение параметра sporadic в false.
Решение
Обновить контроллер Wiren Board до релиза wb-2407 или новее. Если уже установлен релиз wb-2407 - обновить пакеты. В обновлении отключены события регистра «Компонент H».
P.S. Начиная с прошивки 3.8.0 события регистра «Компонент H» снова генерируются во время непрерывной смены цвета: ошибка исправлена добавлением задержки выдачи событий во время автоматического изменения оттенка, что ограничивает их частоту и не перегружает шину. В шаблонах WB-LED и WB-MRGBW-D, начиная с версии wb-mqtt-serial 2.255.0, для регистра «Компонент H» (RGB Strip Hue, адрес 2014) снова включён тип sporadic — ручной обход из раздела «Пути обхода» больше не требуется.
ERRMRGBW-D05: Не работают должным образом действия при включении питания и при переходе в безопасный режим
Подверженные устройства
WB-MRGBW-D, WB-LED с прошивкой версий от 3.5.0 до 3.5.2 включительно.
Описание
В следующих режимах работы:
- любой режим с CCT лентой
- RGB+W
действия при включении питания и действия при переходе в безопасный режим работают некорректно.
Также в шаблоне wb-mqtt-serial перепутаны действия при включении питания. Вместо "Нет действия" следует читать "Выключить", а вместо "Выключить" - "Перевести в предыдущее состояние"
Запланированное исправление
Исправлено в прошивке 3.5.3 и в wb-mqtt-serial v2.157.1. Обновите прошивку устройства и софт контроллера.
ERRMRGBW-D06: Регистры настройки действий для различных типов нажатий работают некорректно
Подверженные устройства
WB-MRGBW-D, WB-LED с прошивкой версий от 3.5.0 до 3.5.2 включительно.
Описание
Регистры настройки действий по адресам 768-819 и 832-883 работают некорректно.
Пути обхода
Для настройки действий использовать регистры 1000-1063.
Запланированное исправление
Исправление не планируется. Неправильно работающие регистры удалены из прошивки начиная с версии 3.5.3.
ERRMRGBW-D07: При включении питания диммера регистры уровней каналов принимают значения по умолчанию
Подверженные устройства
WB-MRGBW-D, WB-LED с прошивкой версий от 3.5.0 до 3.5.2 включительно.
Описание
Из-за ошибки в прошивке при включении питания устройства уровни каналов всегда принимали дефолтное значение вместо значения, которое было на момент выключения питания.
Запланированное исправление
Исправлено в прошивке 3.5.3. Обновите прошивку устройства.
ERRMRGBW-D08: В безопасном режиме всегда работают действия со входов, независимо от настройки
Подверженные устройства
WB-MRGBW-D, WB-LED с прошивкой версий от 3.5.0 до 3.5.2 включительно.
Описание
Из-за ошибки в прошивке действия со входов (кнопок или выключателей) в безопасном режиме работают всегда, независимо от настройки "Управление с входов в безопасном режиме"
Запланированное исправление
Исправлено в прошивке 3.5.3. Обновите прошивку устройства.
ERRMODBUS001: Ответ устройства на адрес 0xFD
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.4.4.
Описание
Устройства Wiren Board с расширением "Быстрый Modbus" мешают работать сторонним устройствам на одной шине, если они используют специальные команды, начинающиеся с 0xFD.
Причины и подробное описание
В нашем расширении протокола "Быстрый Modbus" зарезервированный адрес 0xFD используется для специальных широковещательных команд. Если на шине мастер отправит какому-то стороннему устройству осмысленный пакет, начинающийся с 0xFD и командами, не использующимися в расширении протокола "Быстрый Modbus", то устройство Wiren Board отвечает MODBUS_ERR_ILLEGAL_FUNCTION, тем самым мешает обмену с другим устройством. Это происходит из-за ошибки в драйвере шины, при которой пакет с адресом 0xFD начинает обрабатываться как обычный стандартный Modbus пакет.
Пути обхода
Не использовать одну шину для устройств Wiren Board и сторонних устройств.
Запланированное исправление
Исправлено в версии прошивки 3.4.4.
ERRMODBUS002: Ошибка в ответе на сканирование командой 0x46
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.4.2.
Описание
Для работы с расширенными командами в быстром Modbus использовалась функция 0x60, которая оказалась в зарезервированном пространстве. Поэтому функция работы с расширенными командами была изменена на 0x46, но для сохранения обратной совместимости устройство может отвечать и на команду 0x60. Проблема была в том, что независимо от того, через какую команду было запрошено сканирование, устройство отвечало командой 0x60. Текущее исправление позволяет отвечать той же командой, которой был произведен запрос (0x46 или 0x60).
Возможные пути устранения
Обновить прошивку до версии 3.4.2.
Запланированное исправление
Исправлено в версии прошивки 3.4.2.
ERRMODBUS003: Неожиданное поведение при записи невалидных значений в некоторые регистры
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.5.3.
Описание
При записи значений из диапазона [256 ... 65535] в некоторые регистры происходит отсечение старших 8 битов числа и в итоге в прошивку попадает число по модулю 256. Выглядит это так, что при записи, например числа 257, происходит то же самое, что и при записи числа 1.
Одним из таких регистров является адрес устройства (регистр 128).
Отдельно стоит отметить, что в диапазоне значений, указанных в документации, все регистры работают ожидаемо. Проблема возникает при записи невалидных значений более 255.
Возможные пути устранения
Обновить прошивку до версии 3.5.3.
Запланированное исправление
Исправлено в версии прошивки 3.5.3.
ERRMODBUS004: Ошибка в ответах с битовыми полями
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.4.2.
Описание
Ответы с битовыми полями (запросы coil или discrete регистров, управление событиями) возвращали неправильные значения в старших битах.
Возможные пути устранения
Обновить прошивку до версии 3.4.2.
Запланированное исправление
Исправлено в версии прошивки 3.4.2.
ERRMODBUS005: Ошибка чтения разных coil-регистров за один запрос
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.4.4.
Описание
Если несколько разных coil-регистров расположены подряд по адресам (например, 2 и 3 в WB-MSW и WB-MWAC или 3 и 4 в WB-LED), то при чтении их одним запросом возвращались некорректные значения.
Возможные пути устранения
Обновить прошивку до версии 3.4.4.
Запланированное исправление
Исправлено в версии прошивки 3.4.4.
ERRMODBUS006: Ответы на запросы с неверным битом четности
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.5.1.
Описание
Устройство отвечало на запросы, в которых указан неверный бит четности, хотя должно игнорировать такие запросы.
Возможные пути устранения
Обновить прошивку до версии 3.5.1.
Запланированное исправление
Исправлено в версии прошивки 3.5.1.
ERRMODBUS007: Потеря событий при одновременной передаче событий двумя устройствами на одной шине
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.8.0.
Описание
При одновременном наличии событий от двух устройств, находящимися на одной шине, одно из них может передать пакет событий не полностью.
Причины и подробное описание
В быстром Modbus передача событий устроена так. Мастер отправляет запрос событий. Все устройства с накопленными событиями участвуют в арбитраже. Устройство, выигравшее арбитраж, отвечает, а проигравшие молчат до следующего запроса.
После того, как событие сгенерировано, оно ждёт отправки. После того, как устройство сформировало кадр и положило его на шину, событие считается отправленным, и в следующем запросе мастера, в котором подтверждается приём пакета от этого устройства, устройство удаляет такие события из своей очереди. Это штатный механизм «подтверждения приёма событий».
Дефект состоял в том, что переход события из состояния «ожидает отправки» в состояние «отправлено» происходил у устройства слишком рано — фактически в момент получения запроса событий от мастера, до того как был известен результат арбитража. Если устройство выигрывало арбитраж, всё шло штатно. Если устройство проигрывало арбитраж, его пакет не уходил на шину вовсе, но внутри устройства события уже были помечены как отправленные. Когда мастер при последующих циклах опроса в очередной раз отправлял подтверждение, относящееся к этому устройству, оно срабатывало и на эти псевдо-отправленные события, и они удалялись из очереди устройства, никогда не доходив до мастера.
С точки зрения пользователя в веб-интерфейсе состояние регистров не изменится, публикации сообщения в MQTT-топик не произойдет, хотя сами регистры и их значения при этом остаются корректными - теряется именно уведомление об изменении.
Например, к контроллеру на одну шину подключены два реле. Одновременно замыкаются входы обоих реле. При этом состояние входов (выходов) одного реле в веб-интерфейсе отображается корректно, тогда как у второго часть событий потеряется. Состояние второго реле будет отображаться как до момента замыкания, несмотря на то, что физически переключение произошло.
Пути обхода
Временно сделать событийные регистры обычными - в шаблоне устройства установить значение поля sporadic в false. Таким образом, регистры будут опрашиваться с установленным временным интервалом, как и обычные регистры.
Запланированное исправление
Исправлено в версии прошивки 3.8.0.
ERRMODBUS008: Неожиданное поведение при приеме длинных кадров запросов
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.8.1.
Описание
При приеме кадра длиной более 265 байт (максимальная длина кадра Быстрого Modbus) устройство зависает и перезагружается, также в отдельных случаях возможна потеря настроек.
Причины и подробное описание
Алгоритм приема не учитывает возможность поступления некорректного удлиненного кадра запроса, из-за чего происходит переполнение буфера приема, данные в соседних с буфером ячейках памяти устройства портятся, что приводит к зависанию и перезапуску по watchdog-таймеру. В отдельных случаях при поступлении очень больших кадров данных (более ~500 байт) также портятся настройки, и после перезапуска устройство переходит на стандартные параметры связи (9600-8N2, адрес 1).
Пути обхода
- Не отправлять на устройство запросы длиной более максимальной допустимой, регламентированной спецификациями протоколов Modbus RTU и Быстрый Modbus (265 байт).
- Не подключать устройство к шине, на которой могут передаваться не-Modbus сообщения или сообщения с длиной более 265 байт.
Запланированное исправление
Исправлено в прошивке версии 3.8.1.
ERRMODBUS009: Неожиданное поведение при чтении регистров вблизи адреса 0xFFFF в режиме непрерывного чтения
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.8.1.
Описание
При включенном режиме непрерывного чтения при чтении регистров вблизи адреса 0xFFFF (с его достижением или переходом через него) устройство зависает и перезагружается.
Причины и подробное описание
Алгоритм непрерывного чтения не учитывает возможное переполнение счетчика адреса регистра (разрядность 16 бит), из-за чего при чтении регистра с адресом 0xFFFF счетчик переполняется и алгоритм зацикливается, что приводит к перезагрузке устройства по watchdog-таймеру.
Пути обхода
При включенном режиме непрерывного чтения не отправлять команды на чтение регистров с диапазоном адресов, включающим 0xFFFF. У всех устройств Wiren Board в принципе отсутствуют действующие регистры с адресом 0xFFFF.
Запланированное исправление
Исправлено в прошивке версии 3.8.1.
ERRMODBUS010: Некорректная валидация запроса и некорректная обработка неверных запросов
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.8.1.
Описание
В ряде случаев устройство может успешно или некорректно обрабатывать синтаксически неверные запросы, возвращать неверный код исключения или ограничивать максимальное количество регистров в запросе.
Причины и подробное описание
Алгоритм некорректно валидирует запрос и обрабатывает следующие случаи:
1) Запросы на чтение нулевого количества регистров успешно обрабатываются и возвращают ответ с нулевым количеством данных (только заголовок и CRC). Согласно спецификации Modbus, такой запрос должен возвращать исключение 0x03 (ILLEGAL_DATA_VALUE).
2) Единый лимит в 125 регистров для всех функций чтения и записи регистров - при превышении лимита устройство возвращает исключение 0x02 (ILLEGAL_DATA_ADDRESS). Согласно спецификации Modbus, для разных функций разные лимиты количества регистров (чтение битовых значений - 2000, чтение аналоговых регистров или регистров хранения - 125, запись coil-регистров - 1968, запись регистров хранения - 123). При превышении лимита устройство должно возвращать исключение 0x03 (ILLEGAL_DATA_VALUE).
3) Поле количества байт (Byte Count) в запросах множественной записи (коды функций 0x0F и 0x10) не проверяется, запросы обрабатываются без проверки. Согласно спецификации Modbus, в случае несоответствия поля Byte Count количеству регистров устройство должно возвращать исключение 0x03 (ILLEGAL_DATA_VALUE).
4) Функция записи одиночного coil-регистра не валидирует записываемое значение, в coil-регистр записывается старший бит из значения запроса. Согласно спецификации Modbus, устройство должно принимать только значения 0x0000 и 0xFF00, а для всех остальных значений возвращать исключение 0x03 (ILLEGAL_DATA_VALUE).
5) Структурно некорректные запросы с верным CRC (например, запросы с увеличенной длиной) обрабатываются в обычном режиме. Согласно общепринятой конвенции, устройство должно игнорировать такие запросы и не пытаться их обрабатывать.
6) Структурно корректные запросы, но увеличенной длины (от 257 до 265 байт) корректно обрабатываются. Согласно спецификации Modbus, кадры длиной более 256 байт не являются корректными Modbus-кадрами, а значит должны игнорироваться.
Пути обхода
Отправлять устройству только структурно корректные запросы, соответствующие спецификации Modbus.
Запланированное исправление
Исправлено в прошивке версии 3.8.1.
ERRMODBUS011: Некорректное поведение при отправке неверного запроса настройки событий Быстрого Modbus
Подверженные устройства
Устройства WB-MRGBW-D, WB-LED с версией прошивки до 3.8.1.
Описание
При обработке команды настройки событий Быстрого Modbus (EVENT_CTRL, cmd=0x46, sub_cmd=0x18) с некорректными полями длины возможны некорректная настройка уведомлений о событиях и ответ непредсказуемой длины.
Причины и подробное описание
Алгоритм при обработке команды настройки событий Быстрого Modbus не валидирует поле размера и поле длины внутреннего блока данных, из-за чего при некорректных значениях в полях длины устройство может обрабатывать данные за пределами фактически принятого кадра. В связи с этим могут наблюдаться следующие проблемы:
1) Некорректная настройка уведомлений о событиях, из-за чего могут спонтанно меняться приоритеты/маски событий
2) Ответ на команду настройки событий может быть непредсказуемой длины
Пути обхода
Отправлять только корректные команды Быстрого Modbus, соответствующие спецификации протокола.
Запланированное исправление
Исправлено в прошивке версии 3.8.1.
ERRLED0001: У входов 1-3 не задано действие на короткое нажатие
Подверженные устройства
Все WB-LED v1.3A, v1.3A/T, v1.3C, v1.3H, v1.3I, v1.3I/1, v1.3I/2, v1.3J/1, v1.3J/1A, v1.3J/2, v1.3J/2A, v1.3K, v1.3L, v1.3M, v1.3M/1, V1.4A, V1.4A/1, v1.4A/2, v1.4B, v1.4B/1, v1.4C, v1.5A, v1.5A/1, v1.5A/2, v1.5A/3, v1.5B, v1.5B/1, v1.5B/2, v4.3M
Описание
Из-за ошибки производственного тестирования, параметры устройства не приводили к значениям по умолчанию в конце тестирования. Из-за этого они покидали производство с неправильными параметрами:
- Действие для короткого нажатия для входа 1 - "отключено" вместо "Переключить RGB"
- Действие для короткого нажатия для входа 2 - "отключено" вместо "Увеличить оттенок RGB ленты (HSV-H, по кругу)"
- Действие для короткого нажатия для входа 3 - "отключено" вместо "Переключить канал 4"
Пути обхода
- Используя веб-интерфейс контроллера выставить соответствующие настройки используя шаблон устройства
- Вручную записать значение 0x3009 в регистр 0x1000, 0x900e в 0x1001, 0x3003 в 0x1002
Запланированное исправление
Исправлено в партии v1.5B/3
ERRLED0002: Некорректно работает инверсия фазы в режиме 4W
Подверженные устройства
Все WB-LED с прошивкой версий от 3.5.0 до 3.6.0 включительно.
Актуально для режима работы диммера 4W (параллельное соединение всех каналов).
Описание
Для равномерного распределения нагрузки на источник питания пары каналов 1-2 и 3-4 работают в противофазе (кроме режима 4W).
Из-за ошибки в прошивке, при включении устройства, некорректно загружался из энергонезависимой памяти режим инверсии фазы, из-за чего пары каналов 1-2 и 3-4 всегда работали в противофазе, даже если выбран режим работы 4W (параллельное соединение всех каналов). Это могло приводить к срабатываю защиты от перегрузки по току. Инверсия фазы корректно работает после изменения режима работы на 4W и до первой перезагрузки.
Пути обхода
- предпочтительный способ: обновить прошивку до версии 3.6.1 или выше
- после перезагрузки устройства менять режим работы на любой другой, а потом снова ставить 4W
Запланированное исправление
Исправлено в прошивке 3.6.1.
ERRLED0003: Возврат в рабочий режим после срабатывания защиты по току работает некорректно для параллельных каналов
Подверженные устройства
Все WB-LED с прошивкой версий до 3.6.0 включительно.
Актуально для режимов работы диммера: 2W+W+W; W+W+2W; 2W+2W; CCT+2W; 2W+CCT; 4W.
Описание
Из-за ошибки в прошивке, после сработки токовой защиты каналы всегда включаются последовательно по одному, даже если текущий режим работы предполагает параллельное соединение каналов. Из-за этого ток из расчета на один канал может быть превышен и защита от перегрузки по току может сработать снова.
Пути обхода
Обновить прошивку до версии 3.6.1 или выше.
Запланированное исправление
Исправлено в прошивке 3.6.1. Каналы, соединенные параллельно, включаются одновременно.
ERRLED0004: Диммер не работает с полной нагрузкой в режиме параллельного соединения каналов
Подверженные устройства
Все WB-LED с прошивкой версий до 3.6.0 включительно.
Актуально для режимов работы диммера: 2W+W+W; W+W+2W; 2W+2W; CCT+2W; 2W+CCT; 4W.
Описание
Из-за ошибки в прошивке, значения ШИМ обновлялись несинхронно, из-за чего один из параллельных каналов мог включиться раньше остальных. Из-за этого ток протекал только по одному ключу (пока не включатся другие ключи в этой параллели), что приводило к срабатыванию аппаратной защиты по току.
Пути обхода
Обновить прошивку до версии 3.6.1 или выше.
Запланированное исправление
Исправлено в прошивке 3.6.1. ШИМ для каналов, соединенных параллельно, применяется синхронно.
ERRLED0005: Не нормируется суммарная мощность каналов CCT-лент
Подверженные устройства
Устройства WB-LED и WB-MRGBW-D с версией прошивки до 3.6.1 включительно
Актуально для режимов работы диммера: CCT+W+W; CCT+2W; W+W+CCT; 2W+CCT; CCT+CCT.
Описание
Алгоритм смешивания каналов CCT-ленты не учитывает необходимость сохранения постоянной суммарной мощности, из-за чего мощность возрастает при изменении цветовой температуры к центру диапазона и достигает максимума при значении 50% (оба канала работают на максимальной яркости).
Пути обхода
Обновить прошивку до версии 3.7.0 или выше. Включить режим нормализации мощности CCT-ленты.
Запланированное исправление
Исправлено в прошивке версии 3.7.0