Объявление

Свернуть
Пока нет объявлений.

Получить Ip-адрес устройства при обмене по slave-протоколу

Свернуть
В этой теме есть сообщения, помеченные как ответы.
X
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Получить Ip-адрес устройства при обмене по slave-протоколу

    Есть много одинаковых контроллеров с одинаковой программой, контроллеры общаются с OPC благодаря вручную задаваемому адресу, чтобы автоматизировать процесс есть идея получать IP адрес устройства, и последний байт адреса преобразовать в адрес устройства в блоке с настройкой обмена по TCP-Slave.

    Есть ли способ достать IP устройства внутри программы?
  • Выбрано как ответ пользователем Александр Кондр 06-09-2024, 10:19 AM.

    Сообщение от Александр Кондр Посмотреть сообщение
    Есть много одинаковых контроллеров с одинаковой программой, контроллеры общаются с OPC благодаря вручную задаваемому адресу, чтобы автоматизировать процесс есть идея получать IP адрес устройства, и последний байт адреса преобразовать в адрес устройства в блоке с настройкой обмена по TCP-Slave.

    Есть ли способ достать IP устройства внутри программы?
    Получить IP адрес устройства можно с помощью биб-ки syssocket, например так:

    var
    hostName, strg: string;
    in_addr: INADDR;
    host: SysSocket.SOCK_HOSTENT;
    pIPAddress: pointer to dword;
    end_var


    // Определяем IP Адрес ПЛК.
    // Get own hostname.
    SysSockGetHostName( hostName, sizeof( hostName ) );
    // Get own IP address by its name.
    SysSockGetHostByName( hostName, adr( host ) );
    // select the adapter of addrList[].
    pIPAddress := Host.pAddrList[0];
    in_addr.ulAddr := pIPAddress^;
    SysSockInetNtoa( adr( in_addr ), strg, sizeof( strg ) );



    Комментарий


    • #2
      Сообщение от Александр Кондр Посмотреть сообщение
      Есть много одинаковых контроллеров с одинаковой программой, контроллеры общаются с OPC благодаря вручную задаваемому адресу, чтобы автоматизировать процесс есть идея получать IP адрес устройства, и последний байт адреса преобразовать в адрес устройства в блоке с настройкой обмена по TCP-Slave.

      Есть ли способ достать IP устройства внутри программы?
      Получить IP адрес устройства можно с помощью биб-ки syssocket, например так:

      var
      hostName, strg: string;
      in_addr: INADDR;
      host: SysSocket.SOCK_HOSTENT;
      pIPAddress: pointer to dword;
      end_var


      // Определяем IP Адрес ПЛК.
      // Get own hostname.
      SysSockGetHostName( hostName, sizeof( hostName ) );
      // Get own IP address by its name.
      SysSockGetHostByName( hostName, adr( host ) );
      // select the adapter of addrList[].
      pIPAddress := Host.pAddrList[0];
      in_addr.ulAddr := pIPAddress^;
      SysSockInetNtoa( adr( in_addr ), strg, sizeof( strg ) );



      Комментарий

      Обработка...
      X