Страница 1 из 1

Modbus 538184

Добавлено: 04 дек 2019, 20:15
Artem.spb
Знатоки modbus, подскажите.
При работе по TCP периодически (но не со строгим периодом) возникает ошибка 538184 (кто-то там failure).
Пробовал повторять попытки чтения по ошибке, не помогает, всё равно та же ошибка. После трёх попыток программа идёт на реконнект и успешно продолжает работу до следующей ошибки.
Но заказчика это смущает (меня немного тоже).
По логам сервера, там никаких сбоев нет.
Смотрю modbus pool, там проблема тоже воспроизводится: счётчик ошибок периодически увеличивается.
Вопрос: кто виноват и что делать? В чём может быть глюк?
Контроллер Бахман, там так же используется готовая Modbus-библиотека.

Re: Modbus 538184

Добавлено: 05 дек 2019, 13:46
Borjomy_1
приведите точно описание ошибки. Какая библиотека используется?

Re: Modbus 538184

Добавлено: 05 дек 2019, 18:13
ujin
ошибка 538184 (кто-то там failure)
https://forums.ni.com/t5/NI-Labs-Discus ... anguage=en
538180+the modbus error code
https://knowledge.ni.com/KnowledgeArtic ... AC&l=ru-RU
04 Slave Device Failure
Это если Вы используете Modbus библиотеку от NI.
Мало информации. Какие функции используете? Может какая либо функция подвешивает контроллер.
Какие таймауты записи в порт, чтения из контроллера, периодичность запросов, таймаут между запросами. Сколько одновременных соединений поддерживает контроллер. Может гдето коннект не закрывается. Закрывать соединение нужно даже если нет ответа на запрос соединения. Wireshark что показывает. Может что лишнее от мастера идет.
Попробовать загрузить Бахман запросами на чтение с периодичностью 20 мс и менее. Когда начнет сбоить.
Как сеть организована. Есть ли однаковые IP в сети. Могут быть одинаковые IP, но у одного из них PING отключен. Могут быть новые приборы от производителя с одинаковым MАС адресом.
Какой свич. Непромышленные могут сбоить. Все это ловили на практике в работе.
Несколько попыток до реконнекта никогда не помогают. После первой же ошибки нужен реконнект. В Библиотеке от NI я не нашел где задать поле Transaction ID и оно всегда = 0. Поэтому при пропуске ответа возможна ситуация когда придет старый пакет на новый запрос с одинаковым Transaction ID. И данные постепенно будут приходить с все большей задержкой. Воспроизводил на практике. Причем задержка может доходить в зависимости от емкости буфера сетевой карты до 2х минут.

Re: Modbus 538184

Добавлено: 11 дек 2019, 11:31
Artem.spb
Проблему решили. Оказалась на стороне контроллера. Он ходил "налево" к другому модбасу за данными, и после сбоя там отказывался и тут нормально работать