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

Тема: Зависание ФБ MB_TcpSlave

  1. #1
    Пользователь Аватар для Scenix
    Регистрация
    21.01.2022
    Адрес
    г. Гомель
    Сообщений
    21

    Angry Зависание ФБ MB_TcpSlave

    Добрый день.

    Версия библиотеки Owen Communication: 3.5.11.6.

    Функциональный блок исполняется в задаче цикличностью в 10 мс. В случае, если клиент внезапно обрывает соединение, функциональный блок навсегда зависает в попытке восстановить соединение, лечится только сбросом флага xEnable. Если исполнять ФБ в задаче с более редкой цикличностью (например, 200 мс) проблема не воспроизводится.
    Последний раз редактировалось Scenix; 12.07.2023 в 14:57.

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,612

    По умолчанию

    Добрый день.

    если клиент внезапно обрывает соединение
    Что значит "внезапно"? Когда с него снимают питание или выдергивают Ethernet-кабель?

    функциональный блок навсегда зависает в попытке восстановить соединение
    Это не так. Управление соединением является ответственностью клиента, а не сервера.

    Подробнее см. в этом посте:
    https://owen.ru/forum/showthread.php...l=1#post389894

  3. #3
    Пользователь Аватар для Scenix
    Регистрация
    21.01.2022
    Адрес
    г. Гомель
    Сообщений
    21

    По умолчанию

    Проблема возникает тогда, когда..
    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    выдергивают Ethernet-кабель
    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Это не так
    Это так. Если во время опрашивания мастером слейва, коим является ПЛК/СПК и ФБ MB_TcpSlave, выдернуть Ethernet-кабель и вставить его назад - функциональный блок на запросы не отвечает.

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,612

    По умолчанию

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

    По ссылке выше описано, что именно происходит.

  5. #5
    Пользователь Аватар для Scenix
    Регистрация
    21.01.2022
    Адрес
    г. Гомель
    Сообщений
    21

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    На мой взгляд, между фразами "функциональный блок навсегда зависает в попытке восстановить соединение" и "функциональный блок на запросы не отвечает" есть существенная разница.

    По ссылке выше описано, что именно происходит.
    Прочёл, благодарю. А то что соединение не считается закрытым при отсутствии запросов, это правильная, на ваш взгляд, реализация?

  6. #6
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,612

    По умолчанию

    Цитата Сообщение от Scenix Посмотреть сообщение
    Прочёл, благодарю. А то что соединение не считается закрытым при отсутствии запросов, это правильная, на ваш взгляд, реализация?
    Это реализация, проистекающая из стандарта TCP/IP.
    Ситуация, в которой из контроллера может быть каким-то образом выдернут кабель Ethernet, мне тоже не кажется правильной - желательно, чтобы шкаф автоматики был заперт на ключ, который не смогут получить те лица, которым не надо иметь к нему доступ.

  7. #7
    Пользователь Аватар для Scenix
    Регистрация
    21.01.2022
    Адрес
    г. Гомель
    Сообщений
    21

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    желательно, чтобы шкаф автоматики был заперт на ключ, который не смогут получить те лица, которым не надо иметь к нему доступ.
    Само собой, так и делается. Но линия связи не ограничивается пределами шкафа.

    Может быть множество ситуаций, из-за которых связь оборвётся: неисправность кабеля, перебои в работе сетевого оборудования и т. д. Так как в блоке не предусмотрен механизм автоматического разрыва соединения, то выхода два: ставить его на костыли самому (например, я сбрасываю вход xEnable при отсутствии новых запросов в теч-ии определённого времени), либо перезагружать автоматику по питанию. Какой из этих вариантов наиболее адекватным считаете вы?

  8. #8
    Пользователь Аватар для Scenix
    Регистрация
    21.01.2022
    Адрес
    г. Гомель
    Сообщений
    21

    По умолчанию

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

  9. #9
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,612

    По умолчанию

    Цитата Сообщение от Scenix Посмотреть сообщение
    Если этот функционал будет со временем реализован - тогда вопросов больше не имею.
    На мой взгляд - он должен быть реализован.
    Я приложу усилия со своей стороны, чтобы выделить на эту доработку время разработчика библиотеки после завершения нашего текущего большого проекта.

Похожие темы

  1. Вопрос по MB_TcpSlave из Owen Communication
    от hermano в разделе ПЛК2хх
    Ответов: 9
    Последнее сообщение: 10.11.2023, 09:06
  2. Библиотека OwenCommunication. МКОН + MB_TcpSlave
    от zaychenko в разделе ПЛК2хх
    Ответов: 7
    Последнее сообщение: 02.03.2023, 16:20
  3. Ответов: 6
    Последнее сообщение: 21.02.2023, 15:55
  4. Зависание OPC
    от Sergey_M в разделе Помощь Разработчикам
    Ответов: 9
    Последнее сообщение: 28.10.2009, 19:12
  5. Зависание ПИД регулятора
    от Назаров Александр в разделе ПЛК1хх
    Ответов: 40
    Последнее сообщение: 26.06.2009, 15:59

Ваши права

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