Показано с 1 по 10 из 41

Тема: ПЛК для обмена 700 словами по Ethernet UDP

Древовидный режим

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

    По умолчанию

    После команды SysSockRecvFrom, ПЛК ожидает данных и видимо поэтому время цикла улетает в небо и происходит обрыв связи. Но если после пуска программы (полный код ниже) сразу из HerculesTerminal (например) послать данные, то ПЛК принимает данные и время цикла остается в разумных пределах и работа, и связь с ПЛК продолжается. Чтобы это избежать применил команду SysSockIoctl (неблокирующие сокеты, третий параметр 1 INT). Но это не помогло, если посылку с ПК не послать, то ПЛК блокируется и не реагирует на команды через 10 секунды КДС сообащет о потере связи. Как это обойти? И как отправлять данные командой SysSockSendTo? Пробовал отправлять ею заполненный массив на HerculesTerminal ничего не приходит. Почему NumberOfBytes не меняет свое значение, всегда (-1), хотя Recv прошел успешно

    IF start THEN
    IF HandleSocket<0 THEN (*нет сокета, тогда создаем*)
    HandleSocket:=SysSockCreate(SOCKET_AF_INET, SOCKET_DGRAM, 0); (*создали сокет DGRAM для которого третий параметр 0 означает UDP *)
    sa.sin_family:=SOCKET_AF_INET; (* заполняем структуру sa типа SOCKADDRESS*)
    sa.sin_addr:=SOCKET_INADDR_ANY;
    sa.sin_port:=SysSockHtons(1300);

    result_bind:=SysSockBind(HandleSocket, ADR(sa), SIZEOF(sa)) ; (*связываем сокет*)
    ELSE
    numberOfBytes := SysSockRecvFrom (HandleSocket,ADR(MessageFromPC),1600,0,ADR(sa),SI ZEOF(sa));

    IF numberofbytes<>-1 THEN SysSockClose(HandleSocket);
    END_IF

    END_IF

    ELSE
    IF HandleSocket<>SOCKET_INVALID THEN (* сокет закрываем, если START переведен в FALSE*)
    SysSockClose(HandleSocket);
    HandleSocket:=SOCKET_INVALID;
    MessageFromPC:=Zero;
    END_IF
    END_IF
    Последний раз редактировалось Maestro777; 29.01.2017 в 19:07.

Похожие темы

  1. Преобразователи 232-Ethernet, 485-Ethernet
    от and909 в разделе Разработки
    Ответов: 23
    Последнее сообщение: 13.04.2023, 00:21
  2. Настройка обмена с МСД 200
    от Евгений Гераськин в разделе Сетевые технологии
    Ответов: 6
    Последнее сообщение: 22.12.2016, 17:01
  3. Скорость обмена ИП-320
    от desperadoes в разделе Панели оператора (HMI)
    Ответов: 21
    Последнее сообщение: 15.04.2013, 09:52
  4. Возможность обмена ПКП
    от o_nik в разделе Подбор Оборудования
    Ответов: 1
    Последнее сообщение: 20.08.2009, 08:45
  5. Время обмена
    от Трефилов в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 20.07.2009, 06:43

Ваши права

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