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 |
MSGS |
IN |
ANY |
— |
— |
Cache de mensagens (vetor de |
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
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
PERCdo bloco WGATE_MAN).
Ver também
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;