HI_PORTAL
Envia mensagens de dados ao portal de telemetria da HI Tecnologia. Cada mensagem
contém data/hora do evento, um identificador e um dado (qualquer tipo numérico ou
de tempo: DT, TIME, DATE, TOD). É um bloco de função (requer
instância) e opera em conjunto com TEL_BUF, que faz a interface com o portal.
Biblioteca: HI_STD · Namespace: HILS · Tipo: bloco de função
Bloco de função
HI_PORTAL
+----------------+
BOOL ----|EN ENO|---- BOOL
| |
INT ----|EV_ID RESULT|---- INT
| |
ANY ----|DATA ---------- |----
| |
HILS.TEL_BUF ----|TEL_GAT-------- |----
+----------------+
Requer instância. A instância de TEL_BUF passada em TEL_GAT deve ser executada
antes da chamada de HI_PORTAL, pois é recebida como parâmetro já inicializada.
Parâmetros
Nome |
Direção |
Tipo |
Padrão |
Descrição |
|---|---|---|---|---|
EN |
IN |
BOOL |
TRUE |
Habilitação do bloco. |
EV_ID |
IN |
INT |
0 |
Identificador da mensagem. |
ENO |
OUT |
BOOL |
FALSE |
Saída de habilitação. |
RESULT |
OUT |
INT |
0 |
Código de retorno do processamento ( |
DATA |
IN_OUT |
ANY |
— |
Dado a inserir na mensagem (numérico ou de tempo). |
TEL_GAT |
IN_OUT |
HILS.TEL_BUF |
— |
Instância do bloco |
Códigos de retorno
RESULT é do tipo RET_CODE: 0 (HILS.SUCCESS) indica sucesso; qualquer
valor diferente de 0 indica falha (consulte o catálogo de códigos RET_CODE do ambiente).
Pré-condições
A instância de
TEL_BUFpassada emTEL_GATdeve ser executada antes da chamada deHI_PORTAL(é recebida como parâmetro já inicializada).As variáveis do buffer do portal devem ser globais para serem coletadas:
PTEL_EL : INT(%MW0) — nº de mensagens disponíveis para coleta.PTEL_MSGS : HILS.TEL_V2_DATA_TYPE(%MVW1,[0..9]) — buffer de mensagens.
Ver também
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
EV : INT := 0; (* Nº do evento associado *)
DT_VALUE : UINT := 123; (* Valor do dado *)
TEL_GATEWAY : HILS.TEL_BUF; (* Interface com o portal de telemetria *)
PORTAL : HILS.HI_PORTAL; (* Bloco de registro de eventos *)
END_VAR
VAR_EXTERNAL
PTEL_EL : INT := 0; (* Nº de mensagens disponíveis p/ coleta (Global) *)
PTEL_MSGS : HILS.TEL_V2_DATA_TYPE; (* Buffer de mensagens do portal (Global) *)
END_VAR
(* Interface com o portal de telemetria.
Se o nº de elementos da FIFO for negativo, o portal removeu essa quantidade;
nessa condição, removê-los do buffer.
IMPORTANTE: TEL_BUF deve ser chamado ANTES de HI_PORTAL, pois é passado como parâmetro. *)
TEL_GATEWAY(
WR := FALSE,
REM := -PTEL_EL, (* remove as mensagens que o portal já processou *)
FIFO := PTEL_MSGS
);
PTEL_EL := TEL_GATEWAY.ELEM;
(* Insere o dado no portal sempre que o evento for diferente de zero *)
IF (EV <> 0) THEN
PORTAL(EV_ID := EV, DATA := DT_VALUE, TEL_GAT := TEL_GATEWAY);
EV := 0; (* aguarda novo evento *)
END_IF;