Добрый день!
На одном объекте образовалась у нас интересная проблема
Сеть Modbus RTU (RS485). Скорость 9600. Мастер в 100 метрах от первого слейва. Слэйвов всего 10. Между слэйвами есть сегмент 100 метров. Общая длина сети 400 - 600 метров. Всю кабельную линию перебрали и проверили.
Возникают ошибки связи частые: от раза в несколько минут (5...10 минут), до раза в 15...30 минут.
Каждый слэйв опрашивается в три посылки. Связь пропадает со слэйвами случайным образом, закономерности не выявлено.
Мониторили трафик на стороне Мастера с Portmon/Modbus slave. Ошибки выглядят так: у ответов от слэйвов "битые" первые два байта - те, в которых ID и функция. В ответе слейва эти байты либо присутствуют искажённые (явно неправильное значение, но не код ошибки), либо первого байта нет вообще. Остальная часть телеграммы корректная - в ней данные - включая CRC. Т.е. ответ от устройства правильный, но что-то ломает по пути первые два байта.
Кабель - правильный, лишних терминальных резисторов нет, положенные - на своих местах, топология - шина, как положено. Настройки по стоп-биту, и контролю чётности в слейвах нам не доступны. Со стороны мастера настроено следующее: бит данных 8, контроль чётности отключён, один стоп-бит. Изменить эти настройки нельзя - специфика аппаратной части мастера. Со стороны слэйвов производитель говорит, что у них настройки идентичные, но проверить пока нельзя.
Вот куда копать? Буду признателен за мысли.
Про осциллограф можно не напоминать, пока не можем им посмотреть.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
RS 485 ModBUS - теряем байты
Модератор: Глоб.модераторы
-
- эксперт
- Сообщения: 1035
- Зарегистрирован: 31 мар 2018, 12:05
- Имя: Вячеслав
- Благодарил (а): 100 раз
- Поблагодарили: 141 раз
RS 485 ModBUS - теряем байты
Немного непонятно - то ли связь теряется совсем,то ли пакеты битые,которые не обрабатываются соответственно..
Ладно, моя мысля вот о чем - от всех слейвов такое происходит? Может их можно по одному поотсекать? Чисто на аппаратном уровне же могут эти байты ломаться?... Но это чисто теоретически ))Никогда не вдавался в схемотехнику.
-
- почётный участник форума
- Сообщения: 1073
- Зарегистрирован: 29 апр 2014, 09:57
- Имя: Рыбкин Владимир Геннадьевич
- Страна: Россия
- город/регион: Тверь
- Благодарил (а): 73 раза
- Поблагодарили: 147 раз
RS 485 ModBUS - теряем байты
При таком наборе симптомов первое, что я заподозрил бы - неисправность Мастера, задержка отключения режима вывода, удержание линии после запроса в течение случайного времени. Но это можно увидеть только по осциллографу.
-
- эксперт
- Сообщения: 1146
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 49 раз
- Поблагодарили: 134 раза
RS 485 ModBUS - теряем байты
Если у слэйвов есть параметр типа "Delay between frames" (задержка между кадрами), можно попробовать его увеличить
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
RS 485 ModBUS - теряем байты
Пакеты битые, которые мастер не принимает и соответственно для мастера это ошибка таймаута.
Согласен Мне эта мысль тоже сразу в голову пришла. Но пока добраться до таких настроек слейва нет возможности (и неизвестно есть ли они вообще). Работаем над этим.
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
RS 485 ModBUS - теряем байты
Бывает, одно устройство глючит в середине линии. И вызывает такие симптомы. согласен с rwg.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.