Показано с 1 по 5 из 5

Тема: ПР100. Теряется связь при опросе с ПК

  1. #1

    По умолчанию ПР100. Теряется связь при опросе с ПК

    Добрый день.
    Столкнулся со странным поведением ПР100 при опросе их с ПК. Есть 3 ПР100 подключенные к компьютеру через конвертер RS485 - USB к компьютеру. ПР100 в режиме "СТОП", без программы и используются как модули ввода/вывода. Порт каждой сконфигурен на скорость 19200, 8 бит, без четности, 1 стоповый (19200 8N1). Адреса им заданы 16 64 и 128. Конвертер RS485 - USB в системе виден как компорт, с которым работает пользовательская программа. Задача программы в фоне обновлять состояния входов/выходов всех трех ПР100 и по команде включать или выключать дискретные выходы. По началу все хорошо - система работает, состояния ПР обновляются их выходы переключаются по требованию. Так система может проработать например 2 часа, а потом связь теряется без видимых причин. Я логирование добавил и вижу что команда в порт записана а ответ не пришел. Я не могу прочитать из порта. И ладно бы ответ с кодом ошибки modbus или мусор, так ничего нет. В таком состоянии система может пробыть до 5 минут а потом ответ приходит, связь восстанавливается и все снова работает. Я не останавливаю опрос а пытаюсь восстановить связь хоть как-то. В этом поведении нет никакой систематики: система может проработать и 2 часа и больше а потом 10 минут работает и 5 висит без ответа от ПР в попытках открыть/закрыть порт и восстановиться. Порт из системы не пропадает.
    Вот так соединение было с ПК через USB
    pr100.drawio_usb.jpg
    Потом переделали через конвертер в Ethernet, думали помехи и вот так поможет:
    pr100.drawio_eth.jpg
    Не помогло. Стало как будто бы лучше но все равно отваливается связь. Перед переводом в ethernet обновили прошивки всех трех ПР до версии 2.70 (скачал последнюю версию лоджика и через нее обновил прошивки)
    Помогите! Я уже не понимаю что происходит. Притом что рядом по такой же схеме через USB на 30-40 метрах кабеля в пучке с силовыми вперемешку на комп уходят 2 ПР102 и 2 ICP DAS M7017C на скорости 115200, тоесть 4 устройства на одной нитке RS485 и вся эта связка работает без нареканий.

  2. #2

    По умолчанию

    Вероятно выходы только записываются, то есть обмена долго нет и связь отваливается.
    А должны постоянно читаться (циклически) и записываться когда надо (по изменению или по биту).

  3. #3

    По умолчанию

    Чтение идет постоянно. алгоритм в псевдокоде вот такой:
    Код:
    // цикл крутится в отдельном потоке
    пока не остановлен опрос делаем:
      пока в очереди есть команды делаем:
        // из команды узнаем какой ПР, какой выход в какое состояние перевести
        найти пр
        установить выход
      конец
      
      для каждого ПР в списке делаем:
       прочитать регистры дискр.входов// получить маску дискрвходов
       задержка(32 милисек)
       прочитать регистры дискр.выходов// получить маску дискрвыходов
       задержка(32 милисек)
       прочитать регистры аналог.входов
       задержка(время_милисек)
      конец
    конец
    время задержки (в псевдокоде это время_милисек) между опросом ПР и переходом на следующий оборот цикла я пробовал и маленькое (50 75 100 мс) и большое (от 1 до 5 секунд). всеравно связь ломается. причем если таки связь сломалась ни писать маску выходов в регистр ни читать регистры не получается пока не оживет

  4. #4

    По умолчанию

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

  5. #5
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,047

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    При диагностике на компьютере состояния прерывания связи - прервите цикл опроса, закройте порт, и снова начните (открыть порт и начать опрашивать).
    Если при этом связь восстановится - ошибка в программе компьютера, где-то большой таймаут ожидания потерянного байта или всей посылки.
    Если про com, то я бы добавил что переокрывать порт только если все девайсы в списке показали таймаут. Ессно это подразумевает отсутствие блокирующих операций и диких таймаутов больших среднего времени транзакции + 10...15мс. Ну и по таймауту переходить не по списку а к другому девайсу.

    Общий алгоритм описал выше kondor3000, я б добавил про выяснить, можно ли прочитать сразу все входы, а если нет, положить болт на режим ввода-вывода и написать простейший проект ПР складывающий все в одну область (слейва)

    Ну и не заниматся ерундой а перейти на 115200 (если вернётесь к com)

    И накой хрен там какие-то задержки в 32 мс?
    Последний раз редактировалось Валенок; Вчера в 09:31.

Похожие темы

  1. теряется связь
    от Ollema в разделе ПВ210
    Ответов: 9
    Последнее сообщение: 18.11.2023, 10:57
  2. Теряется связь с ПЛК210
    от M.Juanito в разделе ПЛК2хх
    Ответов: 8
    Последнее сообщение: 09.07.2022, 08:15
  3. Теряется связь с модулями.
    от Sergelectro в разделе Программируемые реле
    Ответов: 10
    Последнее сообщение: 03.11.2021, 12:18
  4. Теряется связь с МВ210-101
    от _Pavel_ в разделе Мх210
    Ответов: 1
    Последнее сообщение: 22.10.2020, 12:20
  5. МВ110-8АС и RS-485 теряется связь
    от erfinder в разделе Сетевые технологии
    Ответов: 0
    Последнее сообщение: 26.03.2017, 11:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •