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

Тема: ПЛК100+PING(ICMP)+ROUTER

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

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

    По умолчанию ПЛК100+PING(ICMP)+ROUTER

    Здравствуйте
    Вот возникла проблема для проверки надёжности сети использую пинги. На удалённом объекте стоит ADSL-роутер и через него в сеть выходит ПЛК100 для отправки текущих значений в диспетчерские.
    И вот недавно на новых объектах столкнулся с такой проблемой:
    При проверке связи с диспетчерской в случае отсутствия связи роутер возвращает от своего имени, что данная сеть не доступна и конечно при считывании ответа в буфере правильные контрольные данные и ПЛК100 считает, что с сетью все в порядке. Ведь в получаемом буфере только мусор который мы сами отправили. Ранее на других объектах такого не замечал, но там и другие модемы и оборудование провайдера. Вот хотелось с пингами разобраться получше.

    Ton_PingSend(IN:=NOT Ton_PingSend.Q, PT:=t#450ms);
    IF Ton_PingSend.Q THEN
    sock_adrPing.sin_addr:=*******; (*айпиадрес сетевоге оборудования*)
    resd:=SysSockSendTo(sockPing,ADR(my_bufs),32,0,ADR (sock_adrPing),SIZEOF(sock_adrPing)); (*Послали ICMP пакет*)
    END_IF


    tmrPing(IN:=NOT tmrPing.Q, PT:=t#0.005s);
    (*Организуем таймер для обеспечении временной задержки ожидания ответа*)
    IF tmrPing.Q THEN (*Время ожидания истекло считываем данные*)
    my_BUFr:='';
    PINGstart_TON:=FALSE;
    resd:=SysSockRecvFrom(sockPing,ADR(my_bufr),32,0,A DR(sock_adr1),SIZEOF(sock_adr1));
    IF FIND(my_BUFr, '123456')<>0 THEN (*Сравниваем переданные и принятые данные в случае идентичности Ping вернулся наш*)
    blnTestOK:=TRUE;
    qBlnConnect:=TRUE; (*Пометели что со связью всё ОК*)
    END_IF
    END_IF

    Вот этой перепроверки оказалось недостаточно:
    IF FIND(my_BUFr, '123456')<>0 THEN (*Сравниваем переданные и принятые данные в случае идентичности Ping вернулся наш*)

    Разумеется любым снифером видно кто ответил, но как в кодесис можно подглядеть кто на самом деле ответил на пинг?

    P. S. Во вложении скрин сниферра на котором видно, что ICMP пакет содержит информацию с IP-адресом отправителя. Можно как нибудь получить весь пакет целиком в кодесис?
    Изображения Изображения
    Последний раз редактировалось Gans; 01.05.2011 в 09:33. Причина: Добавил вложение
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

Ваши права

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