WB-MIO-E v.2 и станция хим. дозации

Добрый день, есть станция хим. дозации, подключена через WB-MIO-E v.2, шаблон

config-poolstyle-alchemist-ph-rx.json (3,8 КБ)

Данные считывает корректно но периодически отваливается часть каналов (становится красным), подключено на скорости 9600 как просит производитель, с чем может быть связано и как починить?

Здравствуйте!

Когда каналы окрашиваются красным — это драйвер говорит, что данные из устройства считать не удалось.

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

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

 "title": "PoolStyle_Alchemist_Ph_Rx",
    "device_type": "Alchemist-Ph-Rx",
    "device": {
        "name": "Alchemist-PH-RX",
        "id": "Alchemist-Ph-Rx",
        "response_timeout_ms": 500,
        "guard_interval_us": 5000,
        "max_read_registers": 18,

и результат

Есть в наличии две станции, новые, ситуация одинаковая, тк проблемы или браком первой станции исключились второй. Производитель советует только ResponseTime 1000-2000 и на этом все.

Ps все регистры только для чтения.

К сожалению, это очень общие слова — давайте конкретики: какие значения ставили и что получали.

А вы ставите 500 мс.

Попробуйте пока параметр max_read_registers убрать совсем, а остальные изменить так:

        "response_timeout_ms": 2000,
        "guard_interval_us": 5000,

Также включите отладку в настройках драйвера и покажите лог, снятый в моменты «покраснения» каналов в веб-интерфейсе — в нём мы увидим причину и сможем понять, что делать дальше:

Ещё приложите диагностический архив и используемый в эксперименте шаблон с изменёнными параметрами.

На всякий случай спрошу — вы точно уверены, что на линии нет физических проблем? Ошибки чтения могут появляться и из-за плохого контакта шины, например.

Поменял. вот журнал


Диагностика

diag_output_AY2DVMO5_2023-08-02-19.12.00.zip (171,9 КБ)

У меня кончились идеи, разве, что в логах смущает переподключение шлюза — там точно с роутером/коммутатором/проводами всё в порядке?

авг 02 19:03:22 wirenboard-AY2DVMO5 wb-mqtt-serial[21871]: INFO: [serial device] device modbus:2 is disconnected
авг 02 19:03:22 wirenboard-AY2DVMO5 wb-mqtt-serial[21871]: INFO: [serial device] device modbus:2 is connected

Поспрашиваю ещё мнение коллег утром.

Да с линией проблем нету, перепроверяли несколько раз, на всякий случай переобжимали и тд.

Спасибо, жду ответа.

        "guard_interval_us": 5000,

5 мс мало. Надо 50000 поставить. Ну и попробовать 70000. Не все, далеко не все устройства умеют отдавать ответы с той частотой с которой их может опрашивать драйвер.

Попробовал, не помогло. Видел на портале было пару тем где обсуждалось что за раз драйвер wb не может считать большое количество регистров, вот тут если не ошибаюсь станция отдает 17 регистров, считываем мы только 8. Может в эту сторону смотреть?

А где, в каком параметре 17 за один запрос?
Вижу только два вот тут:

            {
                "name": "Rx",
                "reg_type": "holding_multi",
                "address": "9",
                "type": "value",
                "format": "u16",
                "enabled": true,
                "readonly": true,
                "group": "params"
            },

Ну и лучший способ проверить - запустить в цикле чтение тех же регистров так, напрмер:

for i in {0..500}; do echo "count $i $(modbus_client -mrtu -pnone -s2 /dev/ttyRS485-1 -a111 -t0x03 -r 9 -c 2 )"; done

Ну и оценить количество ошибок. Не забудьте остановить wb-mqtt-serial.

И да, посмотрите на сообщение: WB7. "Странно" работает одна из линий ModBus - #31 от пользователя Dmitri

Хорошо, попробую проверить. Поиск в портале нашел такую же проблему, судя по шаблону и регистру станция точно такая же. Тема смотрю также ничем не решилась.

Методом перебора удалось добиться стабильной работы без ошибок с параметром

"guard_interval_us": 200000,

Это при работе одной станции на линии ID1, как только я включаю вторую станцию на этой же линии ID2 - начинают сыпаться ошибки. Убрал с шаблона и поставил дополнительную задержку на ID1 и ID2 отдельно по 200000, но проблема осталась, хоть и меньше но ошибка появляется, как в данном случае можно их подружить для корректной работы двух станций?

Пробовал ставить параметры 300000, 500000 - результата не дало, в один момент просто уже повисала передача данных.

Подскажите есть какое-то решение?

то есть станция ест запросы не чаще чем раз в 200 мс. Что ж, такое бывает…

Ошибки - те же? Таймаут? Вот я подозреваю что оборудование не умеет работать с требуемой частотой.

Оптимально, пожалуй, подключить техподдержку производителя, отправив debug лог обмена им тоже.
С формулировкой: “Ожидаю что устройство будет отвечать на каждый запрос Modbus корректно”

Здесь не вникал в чем проблема, ошибки все же иногда появляются, но намного реже. Также было пару раз горело красным одна из характеристик и не менялась.

Да

Это уже год пытался сделать, отвечают что оборудование перед продаже тестируется, и проблем нету, смотрите в сторону контроллера который стоит у вас.

Повесьте логанализатор на линии, например.
Ну и запись логанализатора на которой видно что ответа нет - это вполне аргумент.
Если устройство молчит после передачи команды - это неожиданное поведение. Хотя, такие производители как “Турков” - этим грешат.
Ну и китайцев с подобным видел много.