IS_SOCKET_CONNECTED

Retorna TRUE se o socket Ethernet associado ao canal indicado estiver com conexão TCP/IP estabelecida. É uma função (avaliação imediata, sem estado entre scans).

Biblioteca: HI_STD · Namespace: HILS · Tipo: função

Função

          IS_SOCKET_CONNECTED
          +------------------+
USINT ----|CHANNEL_ID        |---- BOOL
          +------------------+

A função consulta o estado da conexão TCP/IP do socket identificado por CHANNEL_ID e devolve o resultado imediatamente no mesmo scan.

Nota

Se o socket associado estiver configurado para operação como UDP, a função retorna TRUE sempre, pois nesse contexto não existe um processo de conexão.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

CHANNEL_ID

IN

USINT

0

Canais Ethernet (ver abaixo)

Id do canal Ethernet associado (ex.: HILS.SOCK1_PORT_ID).

Os identificadores de canal estão definidos no tipo COMM_CHAN_ID da biblioteca HI_STD (namespace HILS). Cada equipamento disponibiliza um subconjunto destes canais; consulte o manual do equipamento utilizado.

IDs

Identificadores

Tipo de canal

0 .. 7

HILS.COM1_PORT_ID .. HILS.COM8_PORT_ID

Canais seriais

8 .. 15

HILS.SOCK0_PORT_ID .. HILS.SOCK7_PORT_ID

Sockets do canal Ethernet 1

16 .. 23

HILS.ETH2_SOCK0_PORT_ID .. HILS.ETH2_SOCK7_PORT_ID

Sockets do canal Ethernet 2

Retorno / Saídas

BOOL — TRUE quando o socket associado a CHANNEL_ID está com conexão TCP/IP estabelecida (ou sempre TRUE quando o socket opera em UDP); FALSE caso contrário.

Pré-condições

  • O canal informado em CHANNEL_ID deve corresponder a um socket Ethernet disponível no equipamento.

Observações

  • A leitura reflete o estado corrente da conexão no instante da chamada.

Ver também

TCP_CONNECT, TCP_DISCONNECT, HTTP_QUERY

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    TCP_DISCONN   : HILS.TCP_DISCONNECT;
    DISCONN_START : BOOL := FALSE;
END_VAR

IF (HILS.IS_SOCKET_CONNECTED(HILS.SOCK7_PORT_ID)) THEN
  DISCONN_START := TRUE;
END_IF;

(* Fecha a conexao *)
TCP_DISCONN(
    START  := DISCONN_START,
    SOCK   := HILS.SOCK7_PORT_ID
    );

(* Aguarda evento *)
IF (TCP_DISCONN.EVT) THEN
  IF (TCP_DISCONN.RESULT = HILS.SUCCESS) THEN
    (* desconexao realizada com sucesso *)
    DISCONN_START := FALSE;
  END_IF;
END_IF;