WGATE_SEND_EX

Esta função opera em conjunto com o bloco de função WGATE_MAN para enviar dados para o Portal de Telemetria utilizando uma cache de mensagens. Suporta envio de variáveis nativas, escalares ou vetores.

Bloco

          WGATE_SEND_EX
         +--------------+
 INT ----|ID            |---- INT
         |              |
BOOL ----|GEN_TS        |
         |              |
  DT ----|TS            |
         |              |
UINT ----|I_INX         |
         |              |
UINT ----|QNT           |
         |              |
 ANY ----|DATA          |
         |              |
 INT ----|MSGS          |
         +--------------+

Parâmetros

Nome

Classe

Tipo

Dim.

Descrição

ID

Entrada

INT

Identificador da mensagem no portal de telemetria

GEN_TS

Entrada

BOOL

Gera automaticamente o timestamp associado ao dado fornecido (ignora o valor do parâmetro TS)

TS

Entrada

DT

Timestamp a ser associado ao dado a ser salvo na cache

I_INX

Entrada

UINT

Indice inicial quando o dado for um vetor (nao utilizado quando o dado for escalar)

QNT

Entrada

UINT

Quantidade de dados a partir do indice inicial quando o dado for um vetor (nao utilizado quando o dado for escalar)

DATA

Entrada

ANY

Dado ou vetor de dados a ser enviado para o portal

MSGS

Entrada

INT

[*]

Cache de mensagens utilizada pela instância do bloco WGATE_MAN

Entradas

ID

Identificador do dado associado a mensagem no portal de telemetria.

GEN_TS

Se igual a TRUE, gera automaticamente o timestamp associado ao dado fornecido. Se igual a FALSE utiliza o parâmetro TS como timestamp do dado a ser enviado.

TS

Valor do timestamp do dado a ser enviado caso o parâmetro GEN_TS seja FALSE.

I_INX

Se o valor fornecido em DATA for um vetor este parâmetro especifica o indice do elemento inicial a ser enviado. Se o valor fornecido em DATA for escalar este parâmetro é ignorado.

QNT

Se o valor fornecido em DATA for um vetor este parâmetro especifica a quantidade de elementos a partir de I_INX a serem enviados. Se o valor fornecido em DATA for escalar este parâmetro é ignorado.

DATA

Dado a ser enviado para o portal de telemetria. Pode ser especificado qualquer dado nativo suportado pelo equipamento conectado, inclusive o tipo STRING. Esta função permite também os envio de vetores de dados nativos (com exceção de vetores de strings).

MSGS

Cache de mensagens. Este parâmetro representa o vetor de tipo INT utilizado no bloco de função WGATE_MAN:CACHE. Este vetor forma uma cache de mensagens utilizada para manter as informações de cada dado salvo no equipamento até que sejam coletadas pelo portal de telemetria.

Retorno

Tipo

Descrição

INT

Codigo de retorno. Retorna 0 se a função foi executada com sucesso.

Podem ser retornados os seguintes códigos de falha:

  • RC_GL_INV_PAR

    • Tipo de dado inválido (ex: estrutura)

    • Tipo de dado não suportado pelo ambiente (Ex: WSTRING)

    • Indice inicial do vetor invalido

    • Quantidade de elementos do vetor invalido

  • RC_RE_FIL_OVF

    • Nro de mensagens disponíveis na cache insuficiente.

Exemplo

Declaração de Variáveis

Nome

Tipo

Dimensão

Valor Inicial

Opções

Descrição

MY_EV

BOOL

FALSE

Flag para inserção de dado na cache

MY_DATA

UDINT

1234

valor a ser inserido na cache de mensagens

MY_ID

INT

1000

identificador do dado no portal de telemetria

RET

INT

código de retorno da função de envio de dados para o portal

WCACHE

INT

[0..200]

rent

Cache do portal com capacidade de 20 mensagens. Tamanho mínimo.

WEB_GATE

HILS.WGATE_MAN

Gerenciador de mensagens do portal de telemetria.

Clique aqui para baixar a tabela de variáveis

Código ST

(* --- Gerencia das mensagens reportadas para o portal de telemetria -----
*
* ATENCAO: Este bloco deve obrigatóriamente ser chamado no início do ciclo
*          da aplicação corrente, antes de qualquer chamada do bloco
*          WGATE_SEND.
*
*)

WEB_GATE(  // WGATE_MAN
  //EN  := ,         // [BOOL] Habilitação de entrada
  //CLR := ,         // [BOOL] Limpa o conteudo da cache de dados
  COMM  := HILS.SOCK1_PORT_ID,  // [USINT] Identificador do canal de comunicação conectado ao portal de telemetria. Ex: SOCK1_PORT_ID
  TMO   := T#40s,    // [TIME] Timeout para indicar desconexão com o portal de telemetria
  CACHE := WCACHE    // [INT] FIFO - área onde serão armazenados os registros
  );

(* Quando MY_EV for true e a cache estiver com menos de 50% envia MY_DATA para o portal *)
if (MY_EV AND (WEB_GATE.PERC < 50)) THEN
  RET := HILS.WGATE_SEND(ID := MY_ID, DATA := MY_DATA, MSGS := WCACHE);
  IF RET = 0 THEN
    MY_EV := FALSE;
  END_IF;
END_IF;
(* ... *)