WB-MCM8 - при нажатии сильная задержка (3-8сек)

Возможно похожая история?

При нажатии прилетает состояние с сильной задержкой (3-8сек).
mosquitto_sub регистрирует тоже с такой же задержкой.
modbus_client считывает без задержки.
Если поставить опрос 100мс, то задержка пропадает.
Удалил устройство, поставил заново, но задержка сохраняется.
Пока оставлю 100мс, но как заставить работать с Быстрым модбасом?

приложен диагностический архив, доступен только сотрудникам поддержки
(357,9 КБ)

Здравствуйте!
Согласно правилам портала перенёс ваш вопрос в отдельную тему.
Так будет удобнее отслеживать обсуждение и быстрее получить помощь.

Пока изучаю ваши логи.

Пока что связываю это с большим количеством регистров в опросе.
Входы на другом устройстве (например WB-MR3) ведут себя нормально? Задержка возникает только с WB-MCM8?

Да, только с mcm8 задержка

Не нахожу в логах ничего, относящегося к это проблеме.
Какая версия прошивки у вашего модуля WB-MCM8?
Может быть вы заметили после каких действий стали наблюдаться задержки?
Если временно отключить опрос остальных устройств на шине, то поведение изменится?

Версия прошивки 1.7.0
При отключении опроса остальных устройств и выставлении опроса на mcm8 “в порядке очереди” поступление отклика нормальное - без задержки.

Не могу точно сказать сколько именно ответ длится. Заметил, что на остальных каналах приходит уведомление, что время отклика не укладывается в заданное (100мс)

Что можно еще проверить?

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

А что за уведомление, можете показать?

Такие восклицательные знаки

Может помочь увеличение скорости или уменьшение регистров в опросе. Если есть возможность, то переключите WB-MCM8 на менее нагруженный порт /dev/ttyRS485-1.
Актуальная версия прошивки WB-MCM8 сейчас 1.8.0, рекомендую обновить, но это не решит проблему с откликом.

Обновил до 1.8.0
Не помогает.
Буду пробовать поменять на другой mcm8

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

Jan 15 14:13:02 wirenboard-AYLUOIWL wb-mqtt-serial[9028]: WARNING: [serial device] device modbus:31 is disconnected
Jan 15 14:14:12 wirenboard-AYLUOIWL wb-mqtt-serial[9028]: WARNING: [serial client] Failed to enable events for modbus:31: Serial protocol error: request timed out
Jan 15 14:14:14 wirenboard-AYLUOIWL wb-mqtt-serial[9028]: WARNING: [modbus] failed to read 9 input(s) @ 3 of device modbus:56: Serial protocol error: malformed response: invalid crc

Чтобы подробнее посмотреть лог опроса, включите отладку в wb-mqtt-serial, а затем через 15 минут соберите и пришлите диагностический архив.

Просканируйте шину, чтобы исключить наличие устройств с одинаковыми адресами.

Также имеет смысл проверить прокладку линии RS-485: наличие силовых кабелей рядом и других источников помех.

Добрый день! Ожидаю информацию.

Для заявленной скорости реакции нужно добиться отсутствия ошибок на шине.

Отключили опрос устройств, которые не отвечают
Одинаковых нет при сканировании
Включили отладку

приложен диагностический архив, доступен только сотрудникам поддержки
(360,1 КБ)

Добрый день!

Понадобится время для изучения логов, отвечу на следующей неделе.

Добрый день! Благодарю за ожидание.

Выставляя любое значение отличное от «В порядке очереди» вы повышаете приоритет опроса событий. При этом регистры входов модуля так и продолжают опрашиваться по Быстрому Modbus.

Проверьте в шаблоне к WB-MCM8 чтобы был включен параметр “sporadic”: true,

Быстрый Modbus ⚡ — Wiren Board?

Так же еще можно присвоить для WB-MCM8 меньший slave ID. WB-MR6CU имеет “slave_id” : “1”, а WB-MCM8 “slave_id” : “39”. Поменяйте их и проверьте результат.

В логе несколько раз зафиксированы ошибки времени ожидания, такие как Poll time for <modbus:2:coil: 0> is too long, что свидетельствует о том, что запросы не успевают обработаться за допустимое время. (у вас поэтому и уведомления в виджете).

Так же присутствуют следующие значения:

DEBUG: [port] /dev/ttyRS485-2: ReadFrame: ff ff ff ff ff ff ff fd 46 12 52 5d что похоже на наличие некорректных данных в результате неправильно работающего устройства или помех.

    {
      "channels" : 
      [
        {
          "enabled" : false,
          "name" : "Input 5 Single Press Counter"
        },
        {
          "enabled" : false,
          "name" : "Input 5 Long Press Counter"
        },
        {
          "enabled" : false,
          "name" : "Input 5 Shortlong Press Counter"
        },
        {
          "enabled" : true,
          "name" : "FW Version"
        }
      ],
      "device_type" : "WB-MCM8",
      "enabled" : true,
      "in5_mode" : 1,
      "slave_id" : "39"
    }

Принудительно подставить в каждый Input “sporadic”: true?

Шаблоны хранятся на контроллере в директории /usr/share/wb-mqtt-serial/templates .

Если не изменяли, то по умолчанию там у регистров с быстрым модбасом этот параметр должен быть в true.

Добрый день!

Вам еще нужна моя помощь?