WB-MS v.2 датчик VOC

Купил, поставил, втянул в иоброкер. Пытаюсь читать регистры:

_address deviceId name description unit type len factor offset formula role room cw isScale
0 35 Температура Температура (x0.1) °C int16be 1 0,1 0 value.temperature false false
1 35 Относительная влажность Влажность (x0.1) %RH int16be 1 0,1 0 value.humidity false false
2 35 Освещённость Освещённость (лк) лк uint16be 1 1 0 value.brightness false false
107 35 Сырое значение VOC Raw VOC signal - uint16be 1 1 0 value false false
108 35 Версия VOC датчика VOC sensor version - uint16be 1 1 0 value false false
359 35 Тип VOC датчика Модель VOC-датчика - uint16be 1 1 0 value false false
371 35 VOC датчик Наличие датчика VOC - uint16be 1 1 0 value false false

Температура, влажность, освещенность - считываются нормально. в 371 значение 1, т.е. датчик есть. А вот в 359 значение 65535, то бишь ошибка. Регистр 107 отдает значение 33085, я так понимаю это не ошибка. При попытке добавить 11й регистр адаптер вылетает с ошибкой чтения, прибор отвечает что нет такого регистра. Датчик надо как-то инициализировать?

Добрый день.
Подскажите с помощью какого устройства подключаете WB-MS v.2?

Это какой то сторонний софт, к сожалению нет опыта работы с ним.

Согласно карте регистров значения верны
image

Сырые значения так же считываются.

Здесь непонятно, есть возможность почитать этот регистр с помощью modbus_client?

WB-MIO v2.

Это какой то сторонний софт, к сожалению нет опыта работы с ним.

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

Согласно карте регистров значения верны

Почему у прибора “верным“ значением типа датчика является “ошибка“?

Сырые значения так же считываются.

Да. Что удивительно в ситуации когда тип датчика “верный“, он же “ошибка“.

Здесь непонятно, есть возможность почитать этот регистр с помощью modbus_client

не знаю, правильно ли сформировал запрос (адрес 35, ip и порт правильно, регистр 11 ):

modbus_client_1.3.0.exe --debug -mtcp -a35 -c1 -r11 -t0x04 -o300 -p23 192.168.12.65
Connecting to 192.168.12.65:23
[00][01][00][00][00][06][23][04][00][0B][00][01]
Waiting for a confirmation…
<23><04><06><00><00><00><00>
Invalid transaction ID received 0x2304 (not 0x1)
ERROR occured!

Иоброкер при добавлении 11 регистра выдает:
modbus.0 2026-01-03 18:30:23.486 error Error response: Data address of some or all the required entities are not allowed or do not exist in slave
modbus.0 2026-01-03 18:30:23.486 error Error response for FCx4: Illegal Data Address

Кстати, могу отправить запрос через веб-интерфейс преобразователя. Если напишете какой, ИИ не может сформировать, все время ошибка Can not transfer to HEX!

кажется нашел решение. Создал отдельный инстанс (экземпляр опросчика модбас), оставил в нем только 11й регистр, и получил на него данные. Получается что проблема в группировке запросов?

Т.е. показания сейчас приходят? Удалось интегрировать данные в ваш софт?

Т.е. показания сейчас приходят? Удалось интегрировать данные в ваш софт?

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

Апд: согнал все регистры в один инстанс, поставил опрос по одному регистру, вроде работает. Остается вопрос с моделью и версией.

с ошибкой версии и модели датчика, 108 и 359 регистры. у меня сейчас приходят значения 21510 и 65535, понять бы почему.

Понял про что вы, по карте так
image

в документации описаны типы по году выпуска модуля:
если до 2023 то Sensiron SGPC3 (datasheet)
после 2023 ScioSense ENS160 (datasheet)

Если это ответ, то я не понял его. Почему у меня ошибка в 359 регистре? Почему у меня значение 21510 в 108? Забить на это?

Какая ошибка? Покажите пожалуйста запрос (отправляемый байты) ну и ответ на него.

Что такое “21510”?

Какая ошибка? Покажите пожалуйста запрос (отправляемый байты) ну и ответ на него.

ответом на запрос регистра приходит 65535. Конкретный запрос отправить не могу, ПО не показывает что именно запросил. Судя по тому что все остальные регистры опрашиваются корректно, данные приходят адекватные, да и тут приходит осмысленное значение (65535 = 0xFFFF), проблема не в запросе. Почему прибор может отвечать “ошибка“ на запрос типа датчика VOC?

Что такое “21510”?

Это значение, которое прибор отправляет в ответ на опрос регистра 108. Про корректность опроса см выше, я не могу себе представить ситуацию, когда запросы для всех регистров составляются нормально, а для этого - нет.

На картинке результат опроса регистров. Как такое может быть?

modbus не работает с десятичными числами. Ответ на запрос одного input регистра - это всегда два байта.

Используйте например modbus_client.

Например в прошивке нет поддержки этого регистра.

В шестнадцатеричном виде десятичное 65535 это 0xFFFF.

Используйте например modbus_client.

У меня не получилось заставить его работать, ИИ не справился с формированием команды. Если подскажете, как опросить эти регистры, сделаю. Айпишник 192.168.12.65, порт 23, адрес слейва 35.

Например в прошивке нет поддержки этого регистра.

тогда бы прибор сваливался в ошибку, а не возвращал 0xFFFF. Прибор куплен меньше месяца назад, прошивка 4.34.

ЗЫ. убрал преобразование регистров средствами адаптера, чтобы видеть что прибор отдает. Результат на картинке.

Даже если вы опросите modbus_client то получите эти значения. В карте регистров 108 и 359 указаны значения по умолчанию 65535 соответственно при запросе должны возвращаться (65535 = 0xFFFF).
Могу предположить что VOC отдает своё значение в регистр 108, а в 359 нет, т.е. не работает с данным регистром.
Почему 108й регистр возвращает иное значение попробую уточнить у наших разработчиков после 12.01 числа.

а какой у вас S/N и версия прошивки? Рекомендую обновить, если давно покупали.

15 сообщений было перенесено в новую тему: WB-MS значение температуры обновляется только при изменении температуры

Здравствуйте.

Прошу прощения, за замешательство. Я решила подключиться помочь коллегам.

Я, признаться, не поняла, зачем вам обновлять прошивку - кажется маловероятно, что это поможет с вашей проблемой.

В этой теме вижу два вопроса:

  1. проблема с регистрами качества воздуха
  2. данные о температуре обновляются только с изменением температуры

Давайте эти вопросы разделим в разные темы.

да, это наверное понятно. только я тоже не знаю как это сделать. А главное, полностью согласен с Bringer - коллеги рекомендуют полную фигню, не имеющую отношения к решению вопроса. Сам копать не готов, если коллеги дадут нормальную инструкцию по обновлению прошивки под виндой через сеть - сделаю конечно.

да, это наверное понятно. только я тоже не знаю как это сделать. А главное, полностью согласен с Bringer - коллеги рекомендуют полную фигню, не имеющую отношения к решению вопроса. Сам копать не готов, если коллеги дадут нормальную инструкцию по обновлению прошивки под виндой через сеть - сделаю конечно.

Кстати, эта проблема никуда не делась. версия и тип по прежнему отображаются как попало. Но это некритичная проблема, конечно.