PDA

Просмотр полной версии : Проблемы с закрытием сокета TCP



AlexFF
05.05.2023, 12:05
Добрый день.

Не являюсь профи в сетевых технологиях, поэтому заранее извиняюсь за возможно странный вопрос.
Реализую обмен пакетами через ethernet tcp (библиотека NBS). На стороне ПЛК реализован клиент, тестовый сервер эмулирую с помощью ПК. Изначально удается установить связь и реализовать обмен. Однако при отключении сервера установить подключение вновь не удается. Сам код у меня адаптирован (слизан) с примера дата CODESYS V3.5
Реализация обмена через сокеты.

Вопрос в следующем - имеется ли у NBS.TCP_Client какой-то способ закрыть сокет и открыть его заново? Если что, переменная fbTcpClient.xActive в случае первого подключения клиента к серверу переходит в состояние TRUE, а когда я пытаюсь подключиться во второй раз - ее состояние не меняется с FALSE.

В документации ничего подробного нет...

Евгений Кислов
05.05.2023, 12:24
Добрый день.


Вопрос в следующем - имеется ли у NBS.TCP_Client какой-то способ закрыть сокет и открыть его заново?

Да, для этого достаточно вызвать экземпляр этого блока со значением FALSE на входе xEnable (хотя бы один цикл), а потом - опять со значением TRUE.

AlexFF
05.05.2023, 15:03
Евгений, большое спасибо! Закрадывалась такая мысль, но не мог ее реализовать правильно. Спустя 1.5 часа тыканий и экспериментов всё работает как надо:)