WGATE_SEND

Envia um dado para o Portal de Telemetria através de uma cache de mensagens gerenciada pelo bloco de função WGATE_MAN; é uma função.

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

Função

            WGATE_SEND
          +-------------+
  INT ----|ID           |---- INT
          |             |
 DATA ----|DATA         |
          |             |
CACHE ----|MSGS         |
          +-------------+

A função insere o dado DATA na cache de mensagens MSGS para posterior coleta pelo Portal de Telemetria. A cache é o mesmo vetor de INT informado em WGATE_MAN:CACHE; o bloco WGATE_MAN é responsável por transmitir as mensagens acumuladas ao portal.

Importante

O bloco WGATE_MAN deve ser chamado no início do ciclo da aplicação, antes de qualquer chamada de WGATE_SEND.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

ID

IN

INT

0

—

Identificador do dado associado à mensagem no Portal de Telemetria.

DATA

IN

ANY

—

—

Dado a ser enviado ao portal. Aceita qualquer tipo nativo suportado pelo equipamento, inclusive STRING.

MSGS

IN

ANY

—

—

Cache de mensagens (vetor de INT) utilizada pela instância do bloco WGATE_MAN.

Retorno / Saídas

Retorna um INT com o código de retorno da operação: 0 indica que o dado foi inserido na cache com sucesso; qualquer valor diferente de zero indica falha. Lista completa: RET_CODE - Códigos de retorno do firmware G5.

Pré-condições

  • O bloco WGATE_MAN deve ser chamado no início do ciclo, antes de WGATE_SEND.

  • MSGS deve ser o mesmo vetor de INT informado em CACHE do bloco WGATE_MAN.

Observações

  • A cache mantém as informações de cada dado salvo no equipamento até que sejam coletadas pelo portal.

  • Recomenda-se enviar novos dados apenas quando houver espaço disponível na cache (ver saída PERC do bloco WGATE_MAN).

Ver também

WGATE_MAN

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    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   : ARRAY [0..200] OF INT; (* Cache do portal com capacidade de 20 mensagens. Tamanho mínimo. *)
    WEB_GATE : HILS.WGATE_MAN;        (* Gerenciador de mensagens do portal de telemetria. *)
END_VAR

(* --- Gerência das mensagens reportadas para o portal de telemetria -----
 *
 * ATENÇÃO: Este bloco deve obrigatoriamente ser chamado no início do ciclo
 *          da aplicação corrente, antes de qualquer chamada da função
 *          WGATE_SEND.
 *)
WEB_GATE(  (* WGATE_MAN *)
  COMM  := HILS.SOCK1_PORT_ID,  (* [USINT] Canal de comunicação conectado ao portal de telemetria *)
  TMO   := T#40s,               (* [TIME] Timeout para indicar desconexão com o portal *)
  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;