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.: |
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 |
|
Canais seriais |
8 .. 15 |
|
Sockets do canal Ethernet 1 |
16 .. 23 |
|
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_IDdeve 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
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;