WB путает топики?

Добрый день. Наблюдаю странное поведение WB.
Версия 8.5.1, свежие апдейты.
Через TCP порт по MODBUS снимаю информацию с 3 последовательных регистров, в которые выводится одна и та же синусоида со сдвигом. Создаётся впечатление, что WB периодически путает топики и начинает писать другие данные, что хорошо видно на приложенном скриншоте.

Провел эксперимент с параллельной записью этой же информации из соседнего порта на компьютер. На компьютере такого эффекта не наблюдалось никогда.
Сделал дамп пакетов. По нему выходит, что по крайней мере до сетевого интерфейса WB пакеты доходят корректные.
Как иcправить эту ошибку на WB?
Прилагаю схему стенда, дампы пакетов и скриншоты инцидентов.
WB путает топики.zip (1,3 МБ)

Добрый день.
Не хватает еще debug вывода из драйвера. То есть - не получается сопоставить приход пакета и его обработку. Сделаете? Ну и - параллельно попробую воспроизвести.

Включил запись отладочных сообщений. При появлении сбоя - выложу все файлы.
Для воспроизведения:
У меня не получилось воспроизвести этой сбой при проводном подключении - только через промежуточные Wi-Fi точки (WB бортовая или внешняя).
Частота запросов должна быть высокой. у меня - раз в 2 секунды. На меньших скоростях опроса эффект не проявлялся, ну или я его не дождался.
При указанных условиях и схеме эффект проявляется 1-2 раза в сутки.

Долго ждать не пришлось. сбой произошёл через минуту после включения.
В архиве - скриншоты и логи.
2025_06_17_18-52.zip (174,5 КБ)

Один в один уже тема была на форуме, помню. И так же именно в вайфай соединении была проблема. Чем решилось - не знаю, просто дежавю словил)

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

1 Like

Я занялся созданием стенда для воспроизведения.

Написал генератор, аналогичный, три синуса сдвинутые на 1/6 периода.


Публикуются с шагом 1/65536 периода, с частотой 50мс.
Сейчас доделаю скриптик, анализирующий на мастере полученные (прочитанные) значения, с целью выдать оповещение если оно резко поменялось (в норме приращение довольно мало).

Да мне кажется достаточно просто разные значения по каналам передавать и смотреть, когда они перепутаются. Я так понимаю там проблема в вайфай узле, а ему разве что частота передачи важна, как-то связать с передачей синусоиды у меня пока логически не выходит)

Не факт, что дело в WiFi.

У меня такое поведение при опросе счётчика Меркурий на WB 7 по меди/485 или радио (RF2.4Ghz-rs485). Логов не дам, сейчас это дело обесточено, но периодически - не чаще раза в сутки или даже неделю - данные из разных опросов меняются местами (ЕМНИП, мощность и cos f по одной или нескольким фазам - когда как)

У меня сигналы периодически менялись и без синусоиды и без Wi-Fi. Просто реже, может раз-два а неделю. И на синусоиде легче отследить.

Да синусоида - удобно (наглядно) и хорошо.


Ну, пока не воспроизводится.
Посмотрю еще в дампы, попробую последовательности посмотреть.

А есть возможность дать доступ именно к этому контроллеру через облако?

С такой частотой опроса у меня никогда не работало. Я опрашиваю по MODBUS over TCP, 3 рядом расположенных регистра с частотой 1-2 раза в секунду.

Только во вторник 7 июля смогу дать доступ. Сейчас в командировке. Как правильно дать доступ?

Давайте рассмотрим подробней архив, вот последний.
Что я вижу:
2025-06-17T15:53:26.259Z [wb-mqtt-serial] DEBUG: [serial client] <192.168.64.81:8899>208020455: Wait until 208020460
2025-06-17T15:53:26.256Z [wb-mqtt-serial] DEBUG: [serial port driver] channel ‘Depth’ of device ‘wb-modbus-5-0’ ← 29074
2025-06-17T15:53:26.256Z [wb-mqtt-serial] DEBUG: [register] <<192.168.64.81:8899> modbus:2:input: 523> (U16) new value: 0x7192
2025-06-17T15:53:26.256Z [wb-mqtt-serial] DEBUG: [port] 192.168.64.81:8899: ReadFrame: 02 04 02 71 92 58 cd
2025-06-17T15:53:26.256Z [wb-mqtt-serial] DEBUG: [port] 192.168.64.81:8899: Write: 02 04 02 0b 00 01 41 83
То есть запрос:

И ответ на него:


Обратите внимание, номера пакетов: 563 и 564.

Рекомендую, для проверки исключить из схемы любые устройства преобразующие пакеты (wi-fi).

А если можно - поподробнее об этой ошибке? Что именно происходит? Мой более ранний анализ показывал, что до сетевого интерфейса WB modbus пакеты добегали исправными.
Как указывали ранее ( av1024) , это происходит и при подключении проводом, просто сильно реже.

И почему с другими устройствами, считывающими информацию по этому же каналу через Wi-Fi ничего подобного замечено не было?

Пригласите пожалуйста пользователя support@wirenboard.com в организацию на облачном сервисе.
Для этого в настройках организации нажмите кнопку “Пригласить”


И укажите почтовый адрес:

После этого поддержка получит доступ к вашему контроллеру для диагностики.
Не забудьте удалить потом доступ.

Это не ошибка. Вы используете modbus over TCP.
То есть контроллер работает с устройством как с шиной, но упаковывает в TCP обычные RTU пакеты. То есть - если после отправки запроса возвращается верный ответ - считается что это запрос именно на этот ответ.
Если ответ пришел как результат прошлого запроса - то он (номер устройства верный, функция верна) - воспринимается корректным ответом.
В теории после запроса может прийти ответ на предыдущий запрос - и он будет воспринят как корректный.
Рекомендую использовать Modbus TCP. Modbus over TCP - имеет смысл только в пределах одного сегмента.