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

Тема: PING удаленного компьютера через Ethernet средствами ПЛК

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Ну и непонятно использование структуры SOCKADDRESS - зачем у Владислава в примере задается порт sock_adr1.sin_port:=16#1111 ?
    Тот, кто это писал, не понимал назначения этой структуры. В неё ничего записывать не надо, т.к. туда пишет координаты отправителя функция RecvFrom.

  2. #2

    По умолчанию

    А кстати, в чем смысл:

    IF stateTimer.ET > T#1s AND state < C_ERROR THEN
    state := C_ERROR + state;
    END_IF
    ?

    И сокет не закрывается потому, что пинг бесконечный?

  3. #3

    По умолчанию

    Ну и непонятно использование структуры SOCKADDRESS - зачем в примере задается порт sock_adr1.sin_port:=16#1111 ?

    Сделано это для целей отладки - видимо создатель программы по шагам проверял работу всех функций (писал не я, могу только догадываться).
    P.S. Требовать от примера Ping совершенства, отсутствия синтаксического оверхеда, развёрнутых комментариев и тотальной обработки ошибок - это перфекционизм.
    Тролль-наседка, добрый, нежный и ласковый

  4. #4
    Пользователь Аватар для Rednaxel
    Регистрация
    15.05.2015
    Адрес
    Минск
    Сообщений
    20

    По умолчанию проверка PING нескольких устройств

    Здравствуйте!
    Оформил упомянутый в теме ICMP_TEST_PING.pro в виде блока, который после 4-х подряд успешных запросов показывает что устройство в сети:
    ICMP_block.PNG
    Используется ПЛК 110.60 старой серии.
    Блок работает, но только когда он в одном экземпляре, что впрочем вполне ожидаемо.
    По условиям задачи нужно отслеживать появление в сети 10-ти устройств с идущими подряд IP адресами, но при этом нужно знать какое именно устройство появилось в сети и какое отключилось.
    Напрашивается мысль что нужно перебирать в блоке адреса по очереди, но моего опыта в ST маловато для решения подобной задачи, к тому же отлаживать приходится на "боевом" ПЛК и случаются зависания.

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

Ваши права

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