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

Тема: ПЛК200 и NBS.TCP_Server не видит отключение клиента.

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

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

    По умолчанию ПЛК200 и NBS.TCP_Server не видит отключение клиента.

    Здраствуйте.
    ПЛК200 и пример NBS.TCP_Server из "Реализация обмена через сокеты" не видит отключение клиента, "fbTcpConnection.xDone" не происходит и xActive = TRUE.
    ?
    Вложения Вложения

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

    По умолчанию

    Цитата Сообщение от vasgai Посмотреть сообщение
    Здраствуйте.
    ПЛК200 и пример NBS.TCP_Server из "Реализация обмена через сокеты" не видит отключение клиента, "fbTcpConnection.xDone" не происходит и xActive = TRUE.
    ?
    Добрый день.
    А каким именно образом происходит отключение TCP-клиента? Он присылает FIN или RST?

  3. #3

    По умолчанию

    hercules_3-2-8 кнопка Отключить.
    Oтключением кабеля, потеря соединения.

  4. #4

  5. #5

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    У меня проблема не воспроизводится:
    https://disk.yandex.ru/i/zJ1itrdvtEuePw
    Ваш пример на библиотеке 3.5.17 с плк 200 не работает, сервер на запускается информируя об ошибке.
    Изображения Изображения

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

    По умолчанию

    В упомянутом вами в первом посте документе и моем видео используется библиотека CAA NetBaseServices.
    По вашим скриншотам видно, что вы добавили в проект библиотеку NetBaseServices (без CAA). Это другая библиотека с несколько иным принципом использования.
    Замените ее на CAA NetBaseServices и повторите эксперимент.

  7. #7

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    В упомянутом вами в первом посте документе и моем видео используется библиотека CAA NetBaseServices.
    По вашим скриншотам видно, что вы добавили в проект библиотеку NetBaseServices (без CAA). Это другая библиотека с несколько иным принципом использования.
    Замените ее на CAA NetBaseServices и повторите эксперимент.
    Заменил на CAA NetBaseService, проблема осталась не видит отключение клиента.
    Вложения Вложения

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

    По умолчанию

    В soc10.project вы не полностью повторили пример из моего видео. В рамках подключения нужно производить какие-то операции (например, вызывать экземпляр TCP_Read), чтобы получать на выходах экземпляра TCP_Connection актуальные значения.

    В soc11.project есть ряд ошибок:

    1. При вызове fbTcpRead не передается указатель на буфер данных (pData)
    2. Фрагмент кода

    Код:
    IF astClients[i].fbTcpConnection.xDone THEN
       usiActiveClientCounter := usiActiveClientCounter - 1;
    END_IF
    у вас продублирован.

    3. Есть недочет в исходном примере - нужно делать так:

    Код:
    // регистрируем отключение одного из клиентов
    IF astClients[i].fbTcpConnection.xDone THEN
       usiActiveClientCounter := usiActiveClientCounter - 1;
       astClients[i].fbTcpConnection(xEnable := FALSE);
    END_IF
    Также в примере есть неудачный момент в вызове fbTcpWrite - вместо SIZEOF там разумнее использовать LEN.

    В ближайшее время внесем правки в документацию и примеры.

  9. #9

    По умолчанию

    // регистрируем отключение одного из клиентов
    IF astClients[i].fbTcpConnection.xDone THEN
    usiActiveClientCounter := usiActiveClientCounter - 1;
    astClients[i].fbTcpConnection(xEnable := FALSE);
    END_IF

    Это событие никогда не происходит, при отключении клиента всегда astClients[i].fbTcpConnection.xDone = FALSE.

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

    По умолчанию

    Цитата Сообщение от vasgai Посмотреть сообщение
    // регистрируем отключение одного из клиентов
    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/v3dNzEg_T2jl_g

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

Похожие темы

  1. Ошибка веб-клиента
    от Asgardian в разделе Master SCADA 3
    Ответов: 0
    Последнее сообщение: 05.09.2022, 11:32
  2. CODESYS 3,5 не видит плк200
    от Aflubin в разделе ПЛК2хх
    Ответов: 1
    Последнее сообщение: 14.11.2021, 14:32
  3. Определение свойств экрана клиента
    от karden в разделе ПЛК (среда MasterSCADA 4D)
    Ответов: 0
    Последнее сообщение: 18.12.2020, 09:41
  4. Ответов: 1
    Последнее сообщение: 19.03.2020, 10:28
  5. MasterOps доступ клиента по DCOM
    от Brewer в разделе Master SCADA 3
    Ответов: 6
    Последнее сообщение: 16.04.2015, 08:04

Ваши права

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