Страница 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

    По умолчанию

    Как тогда мне быть?
    Я вижу два варианта.

    1. KeepAlive. То есть я должен постоянно посылать какой-нибудь запрос на ПЛК. Например, читать какой-нибудь регистр. Причём когда запускается осмысленный запрос, этот keepalive нужно прерывать, так как ПЛК параллельные запросы не выдерживает и рушит соединение.

    2. В начале каждого обращения к ПЛК устанавливать соединение, а в конце - разрывать. Но тут ПЛК опять капризничает: между разрывом соединения и последующим его установлением должно пройти несколько секунд, иначе ПЛК откажется его устанавливать. Для наших задач это ожидание неудобно.

    То есть первый вариант? Другого выхода нет?

  6. #6

    По умолчанию

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

  7. #7

    По умолчанию

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

  8. #8

    По умолчанию

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

  9. #9

    По умолчанию

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

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

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

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

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

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

  10. #10

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Насколько быстром ? Ваш ПЛК вытягивает не больше 200..250 запросов/сек.
    Сейчас проверил - быстрые запросы обрабатывает нормально.

    Цитата Сообщение от Валенок Посмотреть сообщение
    слали не раньше получения ответа на предыдущий и будет нескончаемое счастье.
    Именно так и происходит.


    А куда делись сообщения второго участника?

Страница 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

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

Ваши права

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