Добрый день. Давайте с доп. модулем возиться не будем. я оставил вент. установку одну на порту и с ним можно экспериментировать.
Хорошо, что есть возможность оставить одно устройство на порту, спасибо!
Я со следующей недели буду отсуствовать, передам тему коллегам.
Проблема:
При коммуникации с для вентустановкой TURKOV Capsule wb-mqtt-serial периодически ловит ошибки чтения Modbus вида Serial protocol error: illegal data value. После этого контролы в веб-интерфейсе “краснеют” и помечаются как unavailable. Даже когда дальше обмен, похоже, восстанавливается, “покраснение” у не снимается, а местами чтение вообще прекращается, хотя запись продолжает работать.
На каком этапе диагностика сейчас:
- Контроллер доступен техподдержке в облаке.
- Шаблон вентустановки правильный, без ошибок, с ним все в порядке.
- Снижали скорость до 9600, увеличивали задержку между соообщениями о 100 мс и минимальный интервал между запросами к устройству, до 500 мс.
- Вентустановка подключена через WB-BUSHUB коротким кабелем, ~3 метра. Сейчас одна на порту.
- Отключение/включение питания вентустановки ошибки не устранило.
- При общении с TURKOV по-прежнему на шине ошибки CRC/timeout и через какой-то момент регистры помечаются как
unavailable - Есть гипотеза, что контролы остаются “покрасневшими” в веб-интерфейсе, даже после последующих успешных чтений, но поймать такой момент и получить дебаг wb-mqtt-serial сложно, потому что объем отладочных данных очень большой.
- Гипотетическая же причина ошибок обмена данными – медленный модбас-стек вентустановки.
Сейчас, когда устройство осталось одно на порту, предлагаю настроить так:
-
Снизить скорость до 9600 бит/с
-
Для устройства задайте:
Минимальный интервал между запросами к устройству (мс) – 500
Максимальное число регистров, считываемых за один запрос – 20
Задержка между сообщениями (мс) – 50
Таймаут ответа (мс) – 1000
Максимальное число неудачных циклов опроса – 10
Период опроса у отдельных каналов TURKOV поробуйте установить побольше, 5 секунд

А зачем все это делать? Ну будет обмен с ней работать стабильнее, может она начнёт всегда успевать ответить. Но проблему того что топики полностью краснеют и перестают опрашиваться это не решит. Поэтому кажется что наоборот нужно настроить опрос так, чтобы ошибки появлялись быстрее и можно было поймать причину почему они “краснеют в конец”, кажется что mqtt-serial не должен их переставать их читать совсем, пусть хотя бы пробует еще, а сейчас после нескольких неудачных попыток он “полностью опускает руки”.
Идея такая: если наладить успешную коммуникацию с вентусановкой, не будет останавливаться ее опрос. Мы сможем точно отследить момент, когда показания меняются, но контролы остаются красными.
Я поговорил с нашими разработчиками – вариантов отладки на “живой” системе не так много. Разработчики приняли решение сделать отдельную версию wb-mqtt-serial, которая сможет выводить отладочную информацию только по одному порту, тогда данных будет не так много, и будет проще понять, что и как происходит при общении с устройством. Через одну-две недели должно быть готово.
Я буду отсуствовать со следующей недели, передам тему кому-то из коллег, пока предлагаю попробовать добиться коммуникации с минимальным количестовм ошибок.
Немного не понимаю. Если наладится “нормальный” режим коммуникации, то топики и не покраснеют, и мы просто не сможем дождаться того момента когда и чтение идёт и топики красные.
Судя по логам что я видел, Проблема возникает когда приходит ошибка illegal data. может в качестве отладки можно попробовать вызывать это исключение принудительно?
Мне, конечно же, в первую очередь хочется добится что бы наладить у вас более-менее стабильную коммуникацию с устройством и уменьшить количество действий, которо вам, как пользователю нашего контроллера, пришлось бы выполнять в процессе диагностики – и так уже долго мы разбираемся.
Правильным мне кажется добится стабильной работы устройства, потом, когда появится диагностический инструмент – быстро снять еще раз диагностику, а дальше воспроизводиться все у себя, не тратя вашего времени и усилий.
Illegal data value может быть причиной того, что регистр перестает опрашиваться и последующие его чтения будут отключены до перезагрузки. Уточнил у разработчиков – отключить такой механизм сейчас нельзя.
Я подумал, что в вашем случае есть альтернативный вариант – не полагаться на wb-mqtt-serial, а читать и писать значения в движке правил через modbus_client_rpc – это решит вопрос с прекращением опроса из-за неверно считанных значений.
Попросил для иллюстрации этой концепции написать ИИ правило с виртуальным устройством на основе вашего шаблона.
turkov.txt (11.0 KB)
Сейчас особых проблем с управлением установкой нет.
Просто когда она осталась одна на порту, вот уже сутки работает и возникает только ошибки контрольной суммы, и не один топик не покраснел. Вот я и думаю что теперь мы будет долго ждать момента пока один из топиков покраснеет.
Хорошо!
Я вернусь через две недели, на это время тема будет у кого-то из коллег. Могу поросить “испортить” настроки снова и коллега поробует исследовать краснеющие топики. Либо, другой вариант, к моему возвращению будет готов релиз с отладчиком на отдельном порту, и мы так или иначе воспроизведем кейс и получим информацию об отладке. Как вам удобнее?
Для меня вопрос не к спеху, делайте как вам будет удобнее.
Хорошо, спасибо! Напишу, как появится инструмент для диагностики.
Добрый день! Хотел уточнить как сейчас работает вентустановка? К сожалению, пока новоц версии ПО для диагностики вашей проблемы не собрали еще, и как-то это не быстро происходит.
в одиночку на отдельном порту работает без проблем описанных выше. Иногда происходят ошибки при чтении, но они разовые и топики недоступными не помечаются.
