Не получается обновить ряд устройств (все ваши) за WB‑MGE v.3. В сам контроллер успешно их добавил (и данные с них тянутся).
В веб-интерфейсе не отображается обновление, но, кажется, эта проблема решается в Обновление прошивок Modbus‑устройств за WB‑MGE v.3 через Web UI контроллера (+ WB Cloud) (кстати, когда ждать решения? А то уже на сайте опубликовали новость, что вышел релиз wb-2606, обновился)
В итоге, приходится через такое продираться и на каждом шаге приходится делать какие-то допущения и адаптацию инструкции. Т.к. в итоге оно не обновляется (про ошибку напишу ниже), совершенно не понятно, на каком из N шагов ошибся (т.к. в бОльшей части по инструкции они другие).
Теперь про саму конфигурацию:
Есть контроллер v. 6.6
Есть WB‑MGE v.3 (192.168.0.20)
Оба порта сконфигурированы как 9600 8N2
В Modbus gateway оба сконфигурированы как Modbus TCP и 502/503 порты соответственно
За WB-MGE есть WB-MR6C с адресом 81 (успешно добавлен в контроллер, отображается и доступен)
По инструкции остановил wb-mqtt-serial и выполняю socat -d -d -d -x PTY,raw,b9600,parenb=0,cstopb=1,cs8,link=/dev/ttyRS485-5 tcp:192.168.0.20:502. С поправками в части параметров. Успешно начинает прокидывать.
Теперь так же по инструкции пытаюсь получить информацию об одном из устройств: wb-mcu-fw-flasher -d /dev/ttyRS485-5 -b9600 -pN -s2 -a81 --get-device-info
Но, увы, отваливается по таймауту:
/dev/ttyRS485-5 opened successfully.
Trying to probe (81 /dev/ttyRS485-5) at bootloader params…
Failed to connect (81 /dev/ttyRS485-5) at bootloader settings: Connection timed out
ЧЯДНТ?
А после этого - актуализируйте инструкцию, пожалуйста.
Search uploaded documents
Found 5 uploaded document excerpts for ‘WB-MGE v.3 Modbus firmware update socat wb-mcu-fw-flasher’
Search uploaded documents
Found 5 uploaded document excerpts for ‘WB Modbus Devices Firmware Update WB-MGE v.3’
Search uploaded documents
Found 5 uploaded document excerpts for ‘WB-MGE v.3 TCP Server None Modbus TCP Transparent bridge cstopb’
Здравствуйте! Я — автоматический помощник техподдержки Wiren Board.
Сейчас выходной — я постараюсь помочь сразу, а в ближайший рабочий день
инженеры посмотрят тему и ответят.
По вашему описанию здесь, похоже, смешались две разные схемы:
WB-MGE v.3 в режиме Modbus TCP — это режим работы самого шлюза.
В документации к WB-MGE v.3 указано, что для каждого RS-485 порта можно выбрать Modbus TCP или прозрачный шлюз; в режиме Modbus TCP модуль работает как сервер, а для прозрачного шлюза через IP-сеть передаются пакеты между двумя устройствами.
Для обновления прошивки Modbus-устройств за шлюзом обычно нужен именно доступ к порту RS-485 через TCP — то есть схема с socat/wb-mcu-fw-flasher, где локальный PTY пробрасывается к TCP-порту шлюза.
Что у вас, скорее всего, идёт не так:
wb-mcu-fw-flasher с --get-device-info пытается связаться с устройством в bootloader-режиме, а обычный Modbus-адрес 81 может не отвечать в этом режиме.
В примерах для обновления прошивки важен не только cstopb, но и соответствие режима линии тому, как устройство реально было прошито/работает. В найденной документации есть пример для 9600N2 и отдельное упоминание, что для такого случая нужны другие параметры флашера.
Для WB-MGE v.3 в документации отдельно описаны оба режима порта: Modbus TCP и Прозрачный шлюз; для обновления через шлюз вам нужен именно доступ к RS-485, а не просто “видимость” устройства в контроллере.
Что я бы проверил в первую очередь:
Убедиться, что во время попытки прошивки wb-mqtt-serial действительно остановлен.
Проверить, что вы подключаетесь к правильному TCP-порту WB-MGE для нужного RS-485 порта.
Сверить параметры линии: у вас устройство в 9600 8N2, значит и в socat, и во флашере параметры должны соответствовать именно этому режиму.
Попробовать не --get-device-info, а запуск обновления по инструкции именно для FW update через gateway — там важен корректный режим bootloader и часто используется другой сценарий, чем обычное чтение информации.
По вопросу про cstopb: в найденных фрагментах есть пример с cstopb=2 для 9600N2, то есть для 2 стоп-битов. Это соответствует описанию примера в документации; ваша ссылка на socat здесь верна по сути, но в команде нужно смотреть не на общее правило, а на конкретный режим линии, для которого написан пример.
Если хотите, я могу в следующем сообщении:
сверить вашу команду socat и wb-mcu-fw-flasher построчно;
подсказать, как именно должен выглядеть сценарий для WB-MGE v.3 + 9600 8N2 + bootloader update;
или помочь проверить, не мешает ли тут режим порта WB-MGE.
Примечание: я — ИИ, а не человек; в моих ответах возможны неточности.
Инженеры посмотрят тему в ближайший рабочий день. Если хотите ускорить —
приложите диагностические данные.
Спасибо за ответ, но… делать-то что?
Перевести в Transparent bridge?
Повторюсь, корень проблемы в том, что в инструкции написано, что надо перевести в “Work Mode: TCP Server/None”. А в интерфейсе только “Modbus TCP” и “Transparent bridge”.