Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13

Тема: ПЛК 154 разрывает TCP-соединение

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию ПЛК 154 разрывает TCP-соединение

    ПЛК 154
    Прошивка 2.17.0
    Наше ПО использует протокол Modbus-TCP, соответственно устанавливается TCP-соединение с портом 502.
    Проблема в том, что если в течение 7-и секунд не было отправки пакетов, ПЛК разрывает соединение (присылает пакеты с флагами FIN и RST).
    Последний раз редактировалось bidoc; 29.07.2020 в 18:54.

  2. #2

    По умолчанию

    Ну, если описана проблема, то, очевидно, вопрос: "Как решить проблему?". То есть как сделать так, чтобы ПЛК не разрывал соединение.
    И не совсем понял, что значит "всё верно"? Это не ошибка? Так себя ПЛК и должен вести?

  3. #3

    По умолчанию

    Так а сам ПЛК можно заставить не разрывать соединение?
    Зачем он это делает? Это ошибка или так задумано?

  4. #4

    По умолчанию

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

    PS А откуда указанная цитата?

  5. #5

    По умолчанию

    Почему первый вариант мутный? Вы же тоже его предложили.
    Про второй тоже претензию не понял. Что значит "семь секунд на переустановку соединения"? Через семь секунд ПЛК сам разорвёт соединение. А я говорю про инициативу с наше стороны. То есть когда мы хотим совершить какой-то обмен, мы устанавливаем соединение, а в конце сами его разрываем. Только вот потом быстро заново его установить ПЛК не даст.

  6. #6

    По умолчанию

    Цитата Сообщение от bidoc Посмотреть сообщение
    Почему первый вариант мутный? Вы же тоже его предложили.
    Про второй тоже претензию не понял. Что значит "семь секунд на переустановку соединения"? Через семь секунд ПЛК сам разорвёт соединение. А я говорю про инициативу с наше стороны. То есть когда мы хотим совершить какой-то обмен, мы устанавливаем соединение, а в конце сами его разрываем. Только вот потом быстро заново его установить ПЛК не даст.
    Если закрывать соединение правильным образом (с вызовом shutdown()), то переоткрыть соединение можно сразу. Если же по привычке просто бросить имеющееся и открывать новое - то ждем 7 секунд пока ПЛК не закроет забытое Вами старое. Убираем мусор правильным образом!
    Тролль-наседка, добрый, нежный и ласковый

  7. #7

    По умолчанию

    Что именно мутного в исполнении?
    Что в этом же соединении? Чтение регистра для поддержки соединения конечно происходит в этом же соединении, которые мы поддерживаем этим чтением.

  8. #8

    По умолчанию

    Если я не прерву чтение регистра для поддержки соединения и параллельно ему начну ещё читать регистр, то ПЛК соединение разорвёт. И как быть?

  9. #9

    По умолчанию

    Я не понимаю, почему решили (да ещё и уверены), что я использую несколько TCP-соединений? Для доступа к Modbus все потоки используют один объект и соответственно одно TCP-соединение. Да и как вы это представляете? Для поддержки одного соединения я создаю другое?

    Также не понял, причём здесь конфликт при доступе нескольких потоков к одному ресурсу, если речь идёт о том, что при быстром чтении регистров из параллельных потоков соединение может разорвать именно сам ПЛК.

    Про внутренне устройство ПЛК я ничего не знаю, поэтому ничего настраивать и программировать там не могу. Производители могли бы предусмотреть работу Modbus по UDP.

    Ну и еще раз про реконнект, вначале было через семь секунд рвется соединение если нет запроса, далее если разорвать соединение, то было высказано утверждение что соединиться только через несколько секунд, так если не нужны запросы быстрее чем произойдет принудительный разрыв соединения, разве не хватает времени чтоб пересоединиться, где тут проблема?
    Запросы происходят в случайные моменты времени.

    Как написать два параллельных потока, чтобы они не слали одновременно, я разобрался. Вопросы больше про поведение ПЛК.

    PS Странная у вас манера общения.

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

    нет никаких секундных задержек после пересоединения к модбас слейву на плк, скрипт даже не регистрирует разницу. owen.png
    Время разрыва действительно стало между 7 и 8 секундами, раньше 10с было. Вывод - кривое ПО клиента
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Соединение ПК с СПК 107
    от Сергей Обрусник в разделе СПК1хх
    Ответов: 1
    Последнее сообщение: 20.04.2018, 19:41
  2. Соединение
    от gen30 в разделе ПЛК1хх
    Ответов: 23
    Последнее сообщение: 28.12.2015, 12:02
  3. Соединение PC и ПЛК73
    от fzr125 в разделе ПЛК63/73
    Ответов: 4
    Последнее сообщение: 12.06.2014, 00:10
  4. Соединение ПЛК 154 и ПК по ТСР
    от ivankolya в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 18.04.2011, 19:55
  5. соединение с плк 100 и плк 150
    от vvu2011 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 12.11.2010, 12:16

Метки этой темы

Ваши права

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