Здраствуйте.
ПЛК200 и пример NBS.TCP_Server из "Реализация обмена через сокеты" не видит отключение клиента, "fbTcpConnection.xDone" не происходит и xActive = TRUE.
?
Вид для печати
Здраствуйте.
ПЛК200 и пример NBS.TCP_Server из "Реализация обмена через сокеты" не видит отключение клиента, "fbTcpConnection.xDone" не происходит и xActive = TRUE.
?
hercules_3-2-8 кнопка Отключить.
Oтключением кабеля, потеря соединения.
У меня проблема не воспроизводится:
https://disk.yandex.ru/i/zJ1itrdvtEuePw
В упомянутом вами в первом посте документе и моем видео используется библиотека CAA NetBaseServices.
По вашим скриншотам видно, что вы добавили в проект библиотеку NetBaseServices (без CAA). Это другая библиотека с несколько иным принципом использования.
Замените ее на CAA NetBaseServices и повторите эксперимент.
В soc10.project вы не полностью повторили пример из моего видео. В рамках подключения нужно производить какие-то операции (например, вызывать экземпляр TCP_Read), чтобы получать на выходах экземпляра TCP_Connection актуальные значения.
В soc11.project есть ряд ошибок:
1. При вызове fbTcpRead не передается указатель на буфер данных (pData)
2. Фрагмент кода
у вас продублирован.Код:IF astClients[i].fbTcpConnection.xDone THEN
usiActiveClientCounter := usiActiveClientCounter - 1;
END_IF
3. Есть недочет в исходном примере - нужно делать так:
Также в примере есть неудачный момент в вызове fbTcpWrite - вместо SIZEOF там разумнее использовать LEN.Код:// регистрируем отключение одного из клиентов
IF astClients[i].fbTcpConnection.xDone THEN
usiActiveClientCounter := usiActiveClientCounter - 1;
astClients[i].fbTcpConnection(xEnable := FALSE);
END_IF
В ближайшее время внесем правки в документацию и примеры.
// регистрируем отключение одного из клиентов
IF astClients[i].fbTcpConnection.xDone THEN
usiActiveClientCounter := usiActiveClientCounter - 1;
astClients[i].fbTcpConnection(xEnable := FALSE);
END_IF
Это событие никогда не происходит, при отключении клиента всегда astClients[i].fbTcpConnection.xDone = FALSE.
https://disk.yandex.ru/i/URHv3XRjdw_cYw
Это событие никогда не происходит, при отключении клиента всегда astClients[i].fbTcpConnection.xDone = FALSE.
Вы исправили п. 1?
https://owen.ru/forum/showthread.php...l=1#post415242
Судя по вашему видео - еще нет.
Спасибо! Заработало по вашим рекоендациям.