Страница 3 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 54

Тема: СПК1хх & Сокеты

  1. #21

  2. #22

    По умолчанию

    Проблема создать простейший проект.
    Удалил визуализацию и получил кучу ошибок. Мол, нету визуализации.
    Ну неужели нельзя сделать проект для СПК без использования визуализации?

    Буду делать еще раз.

  3. #23

    По умолчанию

    Готово: DropMeFiles – бесплатный файлообменник без регистрации

    Проблема проявляется и в этом проекте.

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

    По умолчанию

    Вы указываете функции, что у вас размер буфера - 10000 байт, но в реальности под указатель подкладываете переменную типа STRING, которая занимает 81 байт
    (по умолчанию - если макс. размер строки не указан - выделяется память под 80 символов + терминирующий ноль).
    Поэтому у вас переполнение буфера происходит.

    Сделайте так:

    Код:
    ...
    sDataSend : STRING(10000);
    ...

  5. #25

    По умолчанию

    Да. Действительно заработало. Кто бы мог подумать про гребанную строку длинной в 10к символов?!

    Теперь другая проблема: у меня не открывается клиент.
    Но тут, наверное, мне нужно более фундаментально подойти к проблеме.
    Мне кажется, что я вообще не догоняю как строить эти программы.

  6. #26

    По умолчанию

    Вот можно открыть сокет так:

    Код:
    
    CASE bState OF
        05: // Формируем строку для отправки
              // Тут мы уже разобрались, оказывается надо строку делать с длинной в 10к символов.
            bState := 10;
        10: // создаем TCP-клиента
            fbTcpClient(xEnable:=TRUE, udiTimeOut:=1000, ipAddr:=stIpServer, uiPort:=uiPortServer);
            IF fbTcpClient.xActive THEN
                bState := 20;
            ELSIF bTries > 10 OR fbTcpClient.xError THEN
                bError := 10; // код шага, где произошла ошибка
                xError := TRUE; // флаг ошибки
                bState := 50; // Выход из автомата шагов
            END_IF
        20: ... // Другие шаги, через неделю до них дойдем.

  7. #27

  8. #28

    По умолчанию

    Вот такой вопрос.
    Я открываю сокет и даю время на его открытие 10 секунд.
    Но программа сразу же мне выдает ошибку TIME_OUT.
    Что я делаю не так?
    Безымянный777777.png

    Получается, что ФБ TcpClient подымает флаг xError и причина этого флага лежит в eError? Их надо контролировать?
    Последний раз редактировалось ВладОвен; 06.12.2022 в 17:08.

  9. #29

  10. #30

    По умолчанию

    А как в отладке увидеть реальное (фактическое) время открытия?

Страница 3 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя

Похожие темы

  1. UDP + Python + сокеты
    от БугиВуги в разделе Сетевые технологии
    Ответов: 0
    Последнее сообщение: 08.05.2020, 12:17
  2. PLC 110-30 v2 & сокеты
    от lazy в разделе ПЛК1хх [М02]
    Ответов: 50
    Последнее сообщение: 23.11.2018, 15:26
  3. ПЛК100 2.17 не работают сокеты
    от murdemon в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 02.07.2018, 21:15
  4. ПЛК100 + Сокеты
    от ribamuka в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 30.08.2017, 11:55
  5. Возможно ли в режиме эмуляции Codesys тестировать работу через сокеты TCP
    от Денис Бердяев в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 09.10.2014, 08:23

Ваши права

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