TCP_CONNECT

A função deste bloco é abrir uma conexão TCP com um IP e porta especificados.

Bloco

              TCP_CONNECT
          +-----------------+
 BOOL ----|START         EVT|---- BOOL
          |                 |
USINT ----|SOCK    CONNECTED|---- BOOL
          |                 |
UDINT ----|IP         RESULT|---- UINT
          |                 |
 UINT ----|PORT     CONN_CNT|---- UINT
          |                 |
 BOOL ----|AUTO             |
          |                 |
 UINT ----|RETRY            |
          +-----------------+

Parâmetros

Nome

Classe

Tipo

Dim.

V. Ini.

Descrição

START

Entrada

BOOL

FALSE

Inicia a tentativa de conexão com o IP e porta destino

SOCK

Entrada

USINT

9

Socket a ser utilizado para tentativa de conexão

IP

Entrada

UDINT

0

IP destino

PORT

Entrada

UINT

0

Porta destino

AUTO

Entrada

BOOL

FALSE

Habilita autoconexão

RETRY

Entrada

UINT

15

Tempo em segundos para tentar novamente conexão se AUTO_CON habilitado

EVT

Saída

BOOL

FALSE

Pulso de processo concluído

CONNECTED

Saída

BOOL

FALSE

Indica status de conexão do socket

RESULT

Saída

UINT

0

Resultado da operação

CONN_CNT

Saída

UINT

0

Contador de conexões realizadas

START

O bloco necessita de uma transição de subida para iniciar a tentativa de conexão. Se não tiver autoconexão configurada, uma nova transição de subida deve ser gerada para que o bloco tente se conectar novamente. Caso haja autoconexão, basta uma transição de subida para que o bloco tente se conectar periodicamente ao IP e porta destinos configurados.

SOCK

O canal de comunicação utilizado é especificado por um identificador (valor númerico) conforme indicado na tabela a seguir:

ID

LABEL [4]

Tipo de canal de comunicação [5]

9

SOCK1_PORT_ID

Identificador do socket 1

10

SOCK2_PORT_ID

Identificador do socket 2

11

SOCK3_PORT_ID

Identificador do socket 3

12

SOCK4_PORT_ID

Identificador do socket 4

13

SOCK5_PORT_ID

Identificador do socket 5

14

SOCK6_PORT_ID

Identificador do socket 6

15

SOCK7_PORT_ID

Identificador do socket 7

Essa tabela considera até 7 sockets TCP para o canal Ethernet, mas deve-se verificar no equipamento utilizado os canais de comunicação efetivamente disponíveis para conexão TCP/IP.

IP e PORT

Caso esses parâmetros sejam configurados iguais a zero, o bloco irá utilizar os valores configurados nos campos “Endereço IP” e “Porta” da área “Cliente Remoto Default” da base de setup do usuário. Caso seja necessário se conectar a mais de um endereço IP ou porta, deve-se configurar nas entradas PORT e IP os valores.

A tabela a seguir apresenta um exemplo de configuração de valores.

Entrada

Valor

Valor em Hexa

IP_DEST

192.168.0.199

16#C0A8_00C7

PORT_DEST

502

16#1F6

AUTO e RETRY

É possível ativar auto-conexão no bloco mantendo a entrada AUTO igual a TRUE. Se a entrada de auto-conexão estiver ativada e o processo de conexão falhou, o bloco irá abrir uma nova conexão quando o tempo configurado em RETRY transcorrer.

EVT

Um pulso em EVT será gerado sempre que o houver alguma alteração no estado de conexão do socket especificado. Durante este pulso o parâmetro RESULT e o parâmetro CONNECTED estarão atualizados e podem ser avaliados.

CONNECTED

A saída CONNECTED reflete o estado corrente de conexão do socket associado ao bloco. Quando ativa indica que existe conexão TCP/IP aberta do socket com o PORT e IP.

RESULT

A saída RESULT indica o código de retorno da última interação do bloco com o driver de comunicação.

A tabela abaixo apresenta alguns eventos e os respectivos valores das saídas RESULT e CONNECTED associados.

RESULT

LABEL [6]

CONNECTED

Evento

Observação

0

SUCCESS

TRUE FALSE TRUE

Conexão ocorreu com SUCESSO Evento de desconexão Tentativa de conexão utilizando socket com conexão ativa, conexão ativa possui

Mantém a conexão corrente

mesmo IP e porta destino configurados no bloco

5

HIS_GL_INV_PAR

FALSE

Tentativa de conexão com socket indisponível no equipamento

36

HIS_RE_INV_CFG

FALSE

Tentativa de conxão utilizando socket configurado como UDP

Configurar socket com protocolo de transporte TCP

Tentativa de conexão utilizando socket configurado como servidor

Configurar socket como Cliente

63

HIS_CO_CONEX_FAIL

FALSE

Tentativa de conexão com IP e porta indisponíveis no equipamento remoto

71

HIS_CO_CHA_OPE

FALSE

Tentativa de conexão utilizando socket com conexão ativa, IP e porta

Não fecha a conexão

configurados no bloco diferentes dos configurados na conexão ativa

CONN_CNT

A saída CONN_CNT contabiliza o número de conexões realizadas quando o bloco esta no modo de operação com auto conexão (AUTO = TRUE). Este valor é inicializado com 0 quandoo sinal START for FALSE.

Exemplo

Declaração de Variáveis

Nome

Classe

Tipo

Valor Inicial

TCP_CONN

Entrada

TCP_CONNECT

CONN_START

Local

BOOL

FALSE

AUTOCONNECT

Local

BOOL

0

STS_CONNECTION

Local

BOOL

FALSE

PORT_DEST

Local

UINT

16#29A

IP_DEST

Local

UDINT

16#C0A800C7

Clique aqui para baixar a tabela de variáveis

Código ST

// Exemplo do bloco de abertura de conexão

TCP_CONN(
  START      := CONN_START,
  SOCK       := SOCK7_PORT_ID,
  IP         := IP_DEST,    // Ip: 192.168.0.199
  PORT       := PORT_DEST,  // Porta: 502
  AUTO       := AUTOCONNECT
  // RETRY - Mantem a entrada com o valor default (15 segundos)
  );

// Tenta abrir a conexao
IF (TCP_CONN.EVT) THEN
  IF (TCP_CONN.RESULT == SUCCESS) THEN
    // Conexão realizada com sucesso
  ELSE
    // Falha no processo de conexão
  END_IF;
END_IF;