Jump to content

WB-MAI6: Errata

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

На страницу устройства

ERRMODBUS001: Ответ устройства на адрес 0xFD

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.10.0.

Описание

Устройства Wiren Board с расширением "Быстрый Modbus" мешают работать сторонним устройствам на одной шине, если они используют специальные команды, начинающиеся с 0xFD.

Причины и подробное описание

В нашем расширении протокола "Быстрый Modbus" зарезервированный адрес 0xFD используется для специальных широковещательных команд. Если на шине мастер отправит какому-то стороннему устройству осмысленный пакет, начинающийся с 0xFD и командами, не использующимися в расширении протокола "Быстрый Modbus", то устройство Wiren Board отвечает MODBUS_ERR_ILLEGAL_FUNCTION, тем самым мешает обмену с другим устройством. Это происходит из-за ошибки в драйвере шины, при которой пакет с адресом 0xFD начинает обрабатываться как обычный стандартный Modbus пакет.

Пути обхода

Не использовать одну шину для устройств Wiren Board и сторонних устройств.

Запланированное исправление

Исправлено в версии прошивки 2.10.0.


ERRMODBUS002: Ошибка в ответе на сканирование командой 0x46

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.0.7.

Описание

Для работы с расширенными командами в быстром Modbus использовалась функция 0x60, которая оказалась в зарезервированном пространстве. Поэтому функция работы с расширенными командами была изменена на 0x46, но для сохранения обратной совместимости устройство может отвечать и на команду 0x60. Проблема была в том, что независимо от того, через какую команду было запрошено сканирование, устройство отвечало командой 0x60. Текущее исправление позволяет отвечать той же командой, которой был произведен запрос (0x46 или 0x60).

Возможные пути устранения

Обновить прошивку до версии 2.0.7.

Запланированное исправление

Исправлено в версии прошивки 2.0.7.


ERRMODBUS003: Неожиданное поведение при записи невалидных значений в некоторые регистры

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.1.4.

Описание

При записи значений из диапазона [256 ... 65535] в некоторые регистры происходит отсечение старших 8 битов числа и в итоге в прошивку попадает число по модулю 256. Выглядит это так, что при записи, например числа 257, происходит то же самое, что и при записи числа 1.

Одним из таких регистров является адрес устройства (регистр 128).

Отдельно стоит отметить, что в диапазоне значений, указанных в документации, все регистры работают ожидаемо. Проблема возникает при записи невалидных значений более 255.

Возможные пути устранения

Обновить прошивку до версии 2.1.4.

Запланированное исправление

Исправлено в версии прошивки 2.1.4.


ERRMODBUS004: Ошибка в ответах с битовыми полями

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.0.7.

Описание

Ответы с битовыми полями (запросы coil или discrete регистров, управление событиями) возвращали неправильные значения в старших битах.

Возможные пути устранения

Обновить прошивку до версии 2.0.7.

Запланированное исправление

Исправлено в версии прошивки 2.0.7.


ERRMODBUS006: Ответы на запросы с неверным битом четности

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.1.1.

Описание

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

Возможные пути устранения

Обновить прошивку до версии 2.1.1.

Запланированное исправление

Исправлено в версии прошивки 2.1.1.


ERRMODBUS008: Неожиданное поведение при приеме длинных кадров запросов

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.4.2.

Описание

При приеме кадра длиной более 265 байт (максимальная длина кадра Быстрого Modbus) устройство зависает и перезагружается, также в отдельных случаях возможна потеря настроек.

Причины и подробное описание

Алгоритм приема не учитывает возможность поступления некорректного удлиненного кадра запроса, из-за чего происходит переполнение буфера приема, данные в соседних с буфером ячейках памяти устройства портятся, что приводит к зависанию и перезапуску по watchdog-таймеру. В отдельных случаях при поступлении очень больших кадров данных (более ~500 байт) также портятся настройки, и после перезапуска устройство переходит на стандартные параметры связи (9600-8N2, адрес 1).

Пути обхода

  • Не отправлять на устройство запросы длиной более максимальной допустимой, регламентированной спецификациями протоколов Modbus RTU и Быстрый Modbus (265 байт).
  • Не подключать устройство к шине, на которой могут передаваться не-Modbus сообщения или сообщения с длиной более 265 байт.

Запланированное исправление

Исправлено в прошивке версии 2.4.2.


ERRMODBUS009: Неожиданное поведение при чтении регистров вблизи адреса 0xFFFF в режиме непрерывного чтения

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.4.2.

Описание

При включенном режиме непрерывного чтения при чтении регистров вблизи адреса 0xFFFF (с его достижением или переходом через него) устройство зависает и перезагружается.

Причины и подробное описание

Алгоритм непрерывного чтения не учитывает возможное переполнение счетчика адреса регистра (разрядность 16 бит), из-за чего при чтении регистра с адресом 0xFFFF счетчик переполняется и алгоритм зацикливается, что приводит к перезагрузке устройства по watchdog-таймеру.

Пути обхода

При включенном режиме непрерывного чтения не отправлять команды на чтение регистров с диапазоном адресов, включающим 0xFFFF. У всех устройств Wiren Board в принципе отсутствуют действующие регистры с адресом 0xFFFF.

Запланированное исправление

Исправлено в прошивке версии 2.4.2.


ERRMODBUS010: Некорректная валидация запроса и некорректная обработка неверных запросов

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.4.2.

Описание

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

Причины и подробное описание

Алгоритм некорректно валидирует запрос и обрабатывает следующие случаи:

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.

Запланированное исправление

Исправлено в прошивке версии 2.4.2.


ERRMODBUS011: Некорректное поведение при отправке неверного запроса настройки событий Быстрого Modbus

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.4.2.

Описание

При обработке команды настройки событий Быстрого Modbus (EVENT_CTRL, cmd=0x46, sub_cmd=0x18) с некорректными полями длины возможны некорректная настройка уведомлений о событиях и ответ непредсказуемой длины.

Причины и подробное описание

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

1) Некорректная настройка уведомлений о событиях, из-за чего могут спонтанно меняться приоритеты/маски событий

2) Ответ на команду настройки событий может быть непредсказуемой длины

Пути обхода

Отправлять только корректные команды Быстрого Modbus, соответствующие спецификации протокола.

Запланированное исправление

Исправлено в прошивке версии 2.4.2.


ERRMAI601: Входной импеданс при измерении напряжения ниже заявленного в характеристиках

Подверженные устройства

Все модели MAI6.

Описание

При измерении напряжения в одноканальном режиме входное сопротивление MAI6 составляет ~4 кОм на режиме 0..2 В (вместо 1 МОм) и ~2 кОм на режимах >5V (вместо 4 кОм). Возможно влияние низкого входного сопротивления на измеряемый сигнал.

Причины и подробное описание

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

Запланированное исправление

Исправлено в прошивке 2.0.5.

Рекомендации

  • Обновить прошивку устройства до версии 2.0.5.
  • Проверять совместимость MAI6 и источника сигнала, особенно при измерении напряжений >5В, например, датчики с выходом 0-10 В.

ERRMAI602: Некорректные измерения напряжения от источников с высоким выходным сопротивлением

Подверженные устройства

Все модели MAI6.

Описание

При измерении напряжения в диапазоне 2-10 В от источника с высоким выходным сопротивлением показания могут быть заниженными.

Причины и подробное описание

Входное сопротивление измерительных каналов модуля в диапазоне напряжений 0…2 В составляет ~1 МОм, а в диапазоне 2…10 В — 4 кОм. Для корректных измерений выходное сопротивление источника должно быть как минимум в 10 раз меньше, т.е. в диапазоне 2…10 В оно должно быть не более 400 Ом. Если это не так, то показания будут занижены.

Рекомендации

Использовать резистивный делитель, приводящий напряжение в диапазон 0…2 В. Выходное сопротивление делителя должно быть не более 100 кОм.

ERRMAI603: Невозможность измерения сопротивлений более 1000 Ом по трёхпроводной схеме

Подверженные устройства

Все модели WB-MAI6 с прошивкой до 2.0.6 включительно.

Описание

В режиме измерения сопротивления по трёхпроводной схеме не измерялись сопротивления более 1000 Ом. Также это влияло на работу RTD по трёхпроводной схеме: не измерялась температура, если сопротивление термодатчика превышало 1000 Ом.

Причины и подробное описание

Из-за ошибки в прошивке не происходило переключение на другой метод измерения при измерении сопротивлений более 1000 Ом.

Рекомендации

Обновить прошивку до версии 2.0.7 либо использовать двухпроводную схему для измерения сопротивлений более 1000 Ом.

ERRMAI604: Постоянный ответ на расширенные запросы с адресом 0xFD

Подверженные устройства

Устройства WB-MAI6 с версией прошивки до 2.0.8.

Описание

Широковещательный адрес 0xFD используется для отправки команд Быстрого Modbus, на которые устройство должно ответить пакетом с данными. Кроме этих команд широковещательный адрес используется для других запросов. Устройство отвечало на все пакеты с адресом 0xFD, даже те которые не содержали команд быстрого Modbus.

Возможные пути устранения

Обновить прошивку до версии 2.0.8.

Запланированное исправление

Исправлено в версии прошивки 2.0.8.


ERRMAI605: Ложные срабатывания датчика "сухой контакт"

Подверженные устройства

Все модели WB-MAI6 с прошивкой до 2.1.4 включительно.

Описание

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

Причины и подробное описание

Из-за ошибки в прошивке при разомкнутом датчике (вход висит в воздухе) происходило переполнение переменной в промежуточных расчетах, что приводило к ложным срабатываниям. Есть зависимость от времени сэмплирования: чем оно меньше, тем чаще ложные срабатывания. Например, при Data Rate = 20 (время сэмплирования 50 мс) ложных срабатываний практически не наблюдается. При Data Rate = 1000 (время сэмплирования 1 мс) ложные срабатывания частые, около 1 раза в минуту.

Также в режиме измерения сопротивления при неподключенном входе в регистре измеренного значения могло появляться случайное число (в том числе отрицательное) по тем же причинам.

Пути обхода

  • обновить прошивку до версии 2.1.5 или новее - проблема устранена программно.
  • при невозможности обновления прошивки - подключить резистор сопротивлением от 100 кОм до 1000 кОм между iGND и входом. Тем самым вход не будет висеть в воздухе и не будут происходить переполнения при расчетах.

ERRMAI606: Ошибочно валидные данные сопротивления по трёхпроводной схеме при отсутствии контакта с датчиком

Подверженные устройства

Все модели WB-MAI6 с прошивкой до 2.3.0 включительно.

Описание

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

Причины и подробное описание

Из-за особенностей схемотехники определение обрыва датчика не всегда работало надежно, т.к. на это влияли токи утечки и допуски электронных компонентов. Также не определялся обрыв проводов N и/или GND.

Пути обхода

Обновить прошивку до версии 2.3.2 или новее

Запланированное исправление

Исправлено в прошивке 2.3.2. Добавили отдельное измерение сопротивления N-GND для детектирования обрыва проводов N и/или GND.

ERRMAI607: Взаимопроникновение напряжения между каналами

Подверженные устройства

Все модели WB-MAI6 с прошивкой до 2.4.0 включительно.

Описание

При измерении напряжения больше +5 В наводится фантомное напряжение на соседние каналы, которые ни к чему не подключены.

Причины и подробное описание

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

Пути обхода

Обновить прошивку до версии 2.4.1 или новее

Запланированное исправление

Исправлено в прошивке 2.4.1

ERRMAI608: Ошибки измерения из-за повышенного переходного сопротивления клеммника

Подверженные устройства

WB-MAI6 с партии 1.6D (с 03.2025) до 1.7D (до 06.2026) включительно.

Описание

Из-за повышенного переходного сопротивления клеммника (чаще на 4-пиновых), появляется дополнительная ошибка измерения. Дефект плавающий: после переподключения клеммника обычно пропадает. На NTC-датчики и термопары практически не влияет. Максимальная дополнительная погрешность:

  • подключение по двум проводам:
    • сопротивление — до +0.4 Ом
    • Pt100 — до +1.0 °C
    • Pt1000 — до +0.1 °C
  • подключение по трём проводам:
    • сопротивление — ±0.2 Ом
    • Pt100 — ±0.5°C
    • Pt1000 — ±0.05°C

Причины и подробное описание

Напаиваемая и ответная части клеммника — от разных производителей. Несмотря на внешнюю схожесть, они имеют разную геометрию, из-за чего ответная часть может встать неправильно. Тогда переходное сопротивление на отдельных контактах доходит до 0.2 Ом. Заметно чаще это происходит на 4-контактных клеммниках; на 3-контактных воспроизвести не удалось.

Пути обхода

  • Переподключить клеммник (снять и плотно установить обратно) — обычно помогает.
  • Запросить в техподдержке правильную ответную часть клеммника.

Запланированное исправление

Исправлено в партии 1.7D/1 (06.2026)