Добрый день.
Пару дней назад обновил контроллер (тестовый релиз). Параллельно пришли прошивки на устройства. Стал обновлять через вебку абсолютно бОльшая часть устройств обновились с ошибками, приходилось дообновлять через wb-mcu-fw-updater recover. При этом одно устройство так и не ожило. Хотя лампочкой моргает.
Дальше начались странности. Все устройства на всех шинах ведут себя крайне нестабильно. То отваливаются, то появляются. При попытке поиска устройств могут появиться в списке настроенных, а могут и нет. Также стали появляться устройства “Unknown”, однако судя по адресу это как раз живые модули.
Опять же картина меняется. Пробовал всё ребутать. Отключать шину от устройств. Позитивных изменений нет.
В журнале много событий типа “WARNING: [serial client] Reading events failed: malformed response: invalid packet”. При этом механических изменений в систему не вносилось, началось исключительно после обновления прошивок. Короче паника. Чего делать, не понятно. Диагностические данные прилагаю. diag_output_AIVY6QRV_2024-11-01-18.47.59.zip (205,2 КБ)
Лампочка “S” то горит ровно, то начинает моргать. Потом опять ровно горит.
Устройства в списке устройств то отображаются чёрным. Потом вдруг покраснеют. Потом опять черным. Закономерности не понимаю. Например WB-LED 36, WB-MRWM2 215.
Датчики вынесены на отдельный порт (RS485-2) но также ведут себя нестабильно.
А сейчас при попытке запуска поиска вылезла вот такая штука:
Произошла ошибка во время сканирования портов: /dev/ttyRS485-1 9600-N-2. Более детальную информацию можно посмотреть в системном журнале
При этом в журнале все те же события.
В общем “всё болит”. Может есть смысл предоставить вам доступ к живому контроллеру, проще будет.
Давайте начнем с /dev/ttyRS485-2 там вижу четыре датчика WB-MSW v.4.
Остановите wb-mqtt-serial:
systemctl stop wb-mqtt-serial
Прочитайте, пожалуйста, на скорости 57600 12 holding регистров, начиная с 290. Для каждого устройства (76, 85, 94, 134). На примере датчик с адресом 76
Хм, устройство с адресом 94 не правильный ответ дало…Вернемся к нему, если будут проблемы. А теперь:
Попробуйте обновить каждый датчик через flasher. Здесь найдете файл прошивки для своих WB-MSW v.4. Выбирайте актуальную 4.31.11
root@wirenboard-AIVY6QRV:~# wb-mcu-fw-flasher -d /dev/ttyRS485-2 -a 76 -f /home/msw5G__4.31.11_master_c37be2e.wbfw
/dev/ttyRS485-2 opened successfully.
/home/msw5G__4.31.11_master_c37be2e.wbfw opened successfully, size 42328 bytes
Sending info block…
Error while sending info block: Connection timed out
Error while sending info block: Connection timed out
Error while sending info block: Connection timed out
Error while sending info block.
Check connection, jump to bootloader and try again.
root@wirenboard-AIVY6QRV:~#
Не очень понял вопроса. Судя по настройкам флешера там можно отдельно указывать частоту для загрузчика и прошивки. Видимо вы это имеете в виду? Я не знаю, на какой частоте работает загрузчик, и не знаю, как проверить. Попробовал вот так.
root@wirenboard-AIVY6QRV:~# wb-mcu-fw-flasher -b57600 -B57600 -d /dev/ttyRS485-2 -a 76 -f /home/msw5G__4.31.11_master_c37be2e.wbfw
/dev/ttyRS485-2 opened successfully.
/home/msw5G__4.31.11_master_c37be2e.wbfw opened successfully, size 42328 bytes
Sending info block…
Error while sending info block: Illegal data address
Not in bootloader mode? Try repeating with -j
root@wirenboard-AIVY6QRV:~#
результат, как я понимаю, опять не очень
root@wirenboard-AIVY6QRV:~# wb-mcu-fw-flasher -j -d /dev/ttyRS485-2 -a 76 -f /home/msw5G__4.31.11_master_c37be2e.wbfw
/dev/ttyRS485-2 opened successfully.
Send jump to bootloader command and wait 2 seconds…
Error: Connection timed out.
May be device already in bootloader, check status led
/home/msw5G__4.31.11_master_c37be2e.wbfw opened successfully, size 42328 bytes
Sending info block…
Error while sending info block: Connection timed out
Error while sending info block: Connection timed out
Error while sending info block: Connection timed out
Error while sending info block.
Check connection, jump to bootloader and try again.
root@wirenboard-AIVY6QRV:~#
те датчики, что изначально отвечали нормально, все успешно обновились
а тот, что 94, не захотел
root@wirenboard-AIVY6QRV:~# wb-mcu-fw-flasher -j -b57600 -d /dev/ttyRS485-2 -a 94 -f /home/msw5G__4.31.11_master_c37be2e.wbfw
/dev/ttyRS485-2 opened successfully.
Send jump to bootloader command and wait 2 seconds…
Error: Connection timed out.
May be device already in bootloader, check status led
/home/msw5G__4.31.11_master_c37be2e.wbfw opened successfully, size 42328 bytes
Sending info block…
Error while sending info block: Response not from requested slave
Error while sending info block: Response not from requested slave
Error while sending info block: Response not from requested slave
Error while sending info block.
Check connection, jump to bootloader and try again.
Допускаю, что там с физикой что-то не так, смогу проверить только вечером и результаты сообщить.
Честно говоря меня сильно волнуют устройства на порту 1, в частности led контроллеры. Тот, что 142, вообще кирпич. А 36 иногда выходит на связь, а потом опять пропадает. Остальные реле ведут себя подобным образом. Ту автоматику, которая завязана чисто на них (управление своими выходами со своих входов) они отрабатывают нормально. А ту, что ходит через правила контроллера, сильно через раз.
Для второго порта вам следует обновить каждое устройство через flasher аналогично тому, как вы обновляли датчики. Могу ли я как-то упростить для вас эту процедуру?
Чтобы попытаться прошить, нужно знать точную сигнатуру.
А чтобы её добыть, судя по мануалу, нужно чтобы нормально ответил modbus_client (боюсь прошить чем-нибудь не тем).
А оно отвечает криво, например:
root@wirenboard-AIVY6QRV:~# modbus_client --debug -mrtu -b115200 -pnone -s2 /dev/ttyRS485-1 -a36 -t3 -r 290 -c12
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 2)
[24][03][01][22][00][0C][E3][0C]
Waiting for a confirmation…
ERROR Connection timed out: select
<24><03><1E><00><6C><00><65><00><64><47><00><00><00><00><00><00><00><00><00><00><00><00><00>ERROR occured!
root@wirenboard-AIVY6QRV:~# modbus_client --debug -mrtu -b115200 -pnone -s2 /dev/ttyRS485-1 -a182 -t3 -r 290 -c12
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 2)
[B6][03][01][22][00][0C][FF][BE]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-AIVY6QRV:~#
Любопытно то, что все устройства на шине отвечают с ошибками, хотя она короткая, в пределах шкафа, и всё сделано последовательно, т.е. максимально соответствует требованиям.
Можете подсказать сигнатуры для WB-MR6C v.3, WB-LED, WB-MWAC v.2, WB-MRWM2?
если порт не занят - то ошибок при опросе не должно быть. Если есть - то надо смотреть на шину. Как вариант - проверить терминатор, отключить вообще все и подключать по одному. Ошибок быть не должно (ну, одна-две на несколько тысяч опросов допустимы).
Попытался прошить WB-LED, который не отвечает, вот чего написал:
root@wirenboard-AIVY6QRV:~# wb-mcu-fw-flasher -j -b115200 -d /dev/ttyRS485-1 -a 142 -f /home/ledG__3.5.1_master_cf2e899.wbfw
/dev/ttyRS485-1 opened successfully.
Send jump to bootloader command and wait 2 seconds…
Error: Connection timed out.
May be device already in bootloader, check status led
/home/ledG__3.5.1_master_cf2e899.wbfw opened successfully, size 32808 bytes
Sending info block…
Error while sending info block: Response not from requested slave
Error while sending info block: Response not from requested slave
Error while sending info block: Response not from requested slave
Error while sending info block.
Check connection, jump to bootloader and try again.
root@wirenboard-AIVY6QRV:~#
Если просто попытаться читать его регистры, вот что пишет:
root@wirenboard-AIVY6QRV:~# modbus_client --debug -mrtu -b115200 -pnone -s2 /dev/ttyRS485-1 -a142 -t3 -r 290 -c12
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 2)
[8E][03][01][22][00][0C][FB][06]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
Перетыкал в разные разъёмы на шине, в т.ч. в те, в которых устройства нормально отвечают. Оставил устройство единственным на шине.
ЗЫ: Сейчас контроллер в релизе testing. Пробовал переводить в stable. Такое ощущение, что работает лучше. Все устройства, кроме тех, что демонстрируют признаки кирпича, работают стабильнее. Может вернуться в stable?