Залипание rs-485

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

Имеем проблемы с WB6 с линиями rs485 на борту. Проблема проявилась у нескольких заказчиков.
Суть проблемы - через некоторое время, обычно довольно продолжительное (30+ суток) постоянной работы и обчитывания устройств по modbus протоколу через 485 интерфейсы пропадает с ними связь. Могут отвалиться оба 485 интерфейса, а может только один.
Лечится - исключительно сбросом питания с WB, отключение линии 485 и reboot проблемы не решает!!!
При этом, если ручками отправить запросы через modbus_client, то выглядит всё так, как будто rx замкнут на tx, т.е. в ответ приходит сам же запрос

Opening /dev/ttyRS485-1 at 19200 bauds (N, 8, 1)
[01][03][01][02][00][02][64][37]
Waiting for a confirmation…
<01><03><01><02><00><02>
ERROR CRC received 2 != CRC calculated 7189
ERROR occured!

пробовал “переиницилизировать” порты используя магию ваших скриптов

[info] Deinitializing wb6-rs485-1:wb6-can-rs485.
[info] Deinitializing wb6-rs485-2:wb6-can-rs485.
и потом
[info] Initializing wb6-rs485-1:wb6-can-rs485.
…failsafe bias enabled
[info] Initializing wb6-rs485-2:wb6-can-rs485.
…failsafe bias enabled

инфа по последнему случаю:
кабель для 485 линии - КИПЭВ
длина линии - 6 и 20 метров
устройства на другом конце - SHUFT UniMAX-P 800CE, Овен ПВТ 100, конвертер DSE 857
питание конечных устройств - или отдельное, или от тоже линии что и WB

как можно диагностировать эту проблему?

2 лайка

Добрый день! Звучит очень интересно.

Несколько уточняющих вопросов:

  1. Что именно вы делали при “отключении линии 485”?
  2. Как питаются устройства, подлкюченные по 485? От клеммника Vout или нет?

здравствуйте.

а то ж ))
вот сейчас есть доступ по ssh к устройству, которое не читает 485-1, пока не передёргиваем питание, оно уже в таком состоянии не первый раз оказывается, и всегда помогало имеет снять\вернуть питание именно на wb

  1. отключал процесс который читает 485 порт (свой скрипт)
    своим скриптом обёрткой на вашим /usr/share/wb-hwconf-manager/functions.sh на баше дёргал функции
    module_deinit “wb6-rs485-1”
    а потом
    module_init “wb6-rs485-1” “wb6-can-rs485”

  2. или имеют своё в принципе независимое питание, или от одного преобразователя 220->12/24. Vout от wb вообще не используется

ещё раз уточню, сброса питания от 485 устройств для восстановления работы не производится, только откидывается клеенки Vin с самого WB, без обесточивания самого источника питания ac-dc

  1. То есть физически линию вы не отключали?

Эти действия с init/deinit мало что делают на самом деле. В лучшем случае, они драйвер переинициализируют.

  1. У вас прямо сейчас есть доступ к контроллеру, где всё повисло? Если будет - отправьте пожалуйста реквизиты в boger@wirenboard.com или @evgeny_boger в телеграме
  1. как в самом первом сообщении писал, отключении линии 485 (читай проводов из клемника) при запитанном wb - не помогает
    ну я вот и думал что залипает драйвер и пытался его таким образом переиниализировать, но выглядит как более железная проблема, нужно что то внутри именно обесточить
    у нас была схожая проблема с иными устройствами “модемами” с 485 портом… в новой партии производитель поставил другие, чем обычно драйвера контроллера 485 (железная микросхема) и умирала связь аналогично, через рэндамный промежуток времени просто на 485 линии была тишина, при этом на борту есть 232 мультиплексированный с 485, так вот на нём во время проблем данные были видны… производитель признал проблемы, перепаял микросхемы на всей партии и проблемы ушли…
    может вы тоже у китайцев дешевые 485 шолобушки в тоже время прикупили? тогда это по осени прошлого года было…

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

этих трансиверов в природе штук 200 моделей бывают. Мы покупаем не китайские и у одного и того же официального дистрибьютора в России, так что вряд ли та же самая история. Что, конечно, не исключает возможности брака или конструктивного недостатка чипа приёмопередатчика и у нас.

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