Показано с 1 по 6 из 6

Тема: ПЛК100 HTTP-запрос методом GET

  1. #1

    По умолчанию ПЛК100 HTTP-запрос методом GET

    Добрый день! Хотелось бы узнать, есть ли возможность ПЛК100 послать HTTP-запрос методом GET другому устройству в локальной сети?

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,225

    По умолчанию

    можно, если есть опыт
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Не подскажете, в каком направлении копать? Есть ли какие то примеры?
    Я так понимаю, это связано с библиотекой SysLibSockets.lib?

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,225

    По умолчанию

    Угу, ищите библиотеку оскат-нетворк, там есть клиент хттп
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    (* ПЕРЕМЕННЫЕ СОКЕТА *)
    CONNECT: BOOL;
    STATE: INT := 0;
    SOCK: DINT;
    SOCK_ACC: DINT;
    TCP_ADR: SOCKADDRESS;
    ACC_ADR: SOCKADDRESS;
    PADDR: DWORD;
    RES: BOOL;
    PARAM_CTRL: DINT;
    RCV_BYTES_CNT: DINT := 0;
    SND_CNT: DINT := 0;
    SYMBOL_COUNT: DWORD := 0;
    ANSVER_REQ: BOOL := FALSE;

    P_DINT: POINTER TO DINT;
    P_BYTE: POINTER TO BYTE;
    DATA: BYTE;
    (* ЗАКОНЧЕНЫ ПЕРЕМЕННЫЕ СОКЕТА *)


    (* ОТКРЫТИЕ СОКЕТА - ОБМЕН С КОМПЬЮТЕРОМ *)
    SOCK := SysSockCreate( SOCKET_AF_INET, SOCKET_STREAM, SOCKET_IPPROTO_TCP );
    TCP_ADR.sin_family := SOCKET_AF_INET;
    TCP_ADR.sin_port := 5555;
    TCP_ADR.sin_addr := SOCKET_INADDR_ANY;
    PADDR := ADR( TCP_ADR );
    RES := SysSockBind( SOCK, PADDR, SIZEOF( TCP_ADR ) );
    RES := SysSockListen( SOCK, 1 );
    PADDR := ADR( ACC_ADR );
    SOCK_ACC := SOCK;
    PARAM_CTRL := 1;
    SysSockIoctl( SOCK_ACC, SOCKET_FIONBIO, ADR( PARAM_CTRL ) );
    CONNECT := FALSE;
    (* ЗАКОНЧЕНО ОТКРЫТИЕ СОКЕТА *)


    (* СВЯЗЬ С ХОСТОМ *)
    RCV_BYTES_CNT := SysSockRecv( SOCK_ACC, ADR( RCVBUF[ 0 ] ) , 1536, SOCKET_MSG_OOB ); (* ЧИТАЕМ БУФЕР *)
    IF ( RCV_BYTES_CNT > 0 ) AND ( RCVBUF[0] = 104 ) AND ( RCVBUF[1] = 111 ) THEN (* ПРЕРЫВАЕМ ЦИКЛ ЕСЛИ НЕТ ПРИНЯТЫХ БАЙТ *)
    (* обработка принятого сообщения *)

    CASE BYTE_TO_INT( RCVBUF[4] ) OF
    0: (* УПРАВЛЕНИЕ *)
    (* ПОСЫЛКА ОТ ХОСТА В КОНТРОЛЛЕР *)
    READ_DATA();
    END_CASE

    ANSVER_REQ := TRUE;

    ELSE
    (* ОТВЕТ ГЕНЕРИРУЕМ В СЛЕДУЮЩЕМ ЦИКЛЕ ПОСЛЕ ОБРАБОТКИ ЗАПРОСА *)
    IF ANSVER_REQ THEN
    ANSVER_REQ := FALSE;
    (* ПОСЫЛКА ОТ КОНТРОЛЛЕРА В ХОСТ *)
    WRITE_DATA();
    SYMBOL_COUNT := WRITE_DATA.COUNT;
    SND_CNT := SysSockSend( SOCK_ACC, ADR( SEND_BUF[ 0 ] ), SYMBOL_COUNT, 0 );
    END_IF (* ANSVER_REQ *)
    END_IF (* RCV_BYTES_CNT > 0 *)
    (* ЗАКОНЧЕНА СВЯЗЬ С ХОСТОМ *)


    ...........
    здесь сервер, для клиента сначала нужно отправлять запрос а потом ждать ответ
    в запросе должна быть строка

    GET http://www.yandex.ru/index.htm$R$N$R$N

    ну или подобное для вашего сайта

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,225

    По умолчанию

    Дмитрий слегка перепутал, задача из плк отправить пк запрос, а не в качестве веб-сервера использовать контроллер

Похожие темы

  1. укт38 . согласно протоколу необходимо делать запрос.
    от aha в разделе Сетевые технологии
    Ответов: 0
    Последнее сообщение: 28.10.2010, 09:33
  2. запрос архивного файла по 485
    от Антон12345 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 04.03.2010, 14:33
  3. Запрос ключа при входе в Codesys
    от Назаров Александр в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 17.08.2009, 14:42
  4. Запрос ТРМ-201
    от hilih в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 13.04.2009, 12:10

Ваши права

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