HI_FS_PUBLISH

Publica dados armazenados no sistema de arquivo do equipamento para o portal de telemetria da HI Tecnologia. O dado pode ser de qualquer tipo numérico ou de tempo (DT, TIME, DATE, TOD) e requer um identificador para o portal. É um bloco de função (requer instância) e opera em conjunto com TEL_FS_GATEWAY, que faz a interface entre o sistema de arquivo e o portal.

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

Bloco de função

                     HI_FS_PUBLISH
                   +----------------+
           INT ----|EV_ID     RESULT|---- INT
                   |                |
               ----|DATA ---------- |----
                   |                |
TEL_FS_GATEWAY ----|TEL_GAT --------|----
                   +----------------+

Publica um dado numérico ou de tempo do sistema de arquivo para o portal de telemetria, usando a instância de TEL_FS_GATEWAY (recebida em TEL_GAT) como interface e devendo esta ser executada antes da chamada deste bloco.

Parâmetros

Nome

Direção

Tipo

Padrão

Descrição

EV_ID

IN

INT

0

Identificador do tipo de dado para o portal de telemetria.

RESULT

OUT

INT

0

Código de retorno do processamento (RET_CODE; ver Códigos de retorno).

DATA

IN_OUT

ANY

—

Dado a publicar (numérico ou de tempo).

TEL_GAT

IN_OUT

HILS.TEL_FS_GATEWAY

—

Instância do bloco TEL_FS_GATEWAY (interface arquivo ? portal).

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

  • Requer equipamento com sistema de arquivo disponível.

  • A instância de TEL_FS_GATEWAY passada em TEL_GAT deve ser executada antes da chamada de HI_FS_PUBLISH (é recebida como parâmetro já inicializada).

  • As variáveis do buffer do portal devem ser globais (lidas como Holding Register):

    • TEL_COUNT : INT (%MW400) — nº de mensagens a consumir pelo portal.

    • TEL_FIFO : INT (%MW401, [0..239]) — FIFO com o buffer de mensagens.

Observações

  • Para enviar mensagens mantidas na memória do equipamento (em vez do sistema de arquivo), use HI_PORTAL.

Ver também

TEL_FS_GATEWAY, HI_PORTAL

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    EVENT       : INT;                    (* Código do evento a publicar *)
    VALUE       : REAL;                   (* Valor do registro de dado *)
    FILE_NAME   : STRING := 'Dados.dat';  (* Nome do arquivo de dados *)
    FILE_CMD    : INT;                    (* Comando associado ao arquivo de dados *)
    TEL_CACHE   : ARRAY [0..499] OF UINT; (* CACHE com até 50 registros de entrada *)
    TEL_ELEM    : INT;                    (* Nº de mensagens disponíveis p/ coleta (Global) *)
    TEL_DATA    : HILS.TEL_V2_DATA_TYPE;  (* Registros para inserção no buffer do portal *)
    TEL_GATEWAY : HILS.TEL_FS_GATEWAY;    (* Interface com o portal via sistema de arquivo *)
    TEL_PUBLISH : HILS.HI_FS_PUBLISH;     (* Bloco de registro de eventos *)
END_VAR

(* Interface com o portal de telemetria.
   Se o nº de elementos da FIFO for negativo, o portal coletou essa quantidade;
   nessa condição, removê-los do buffer.
   IMPORTANTE: TEL_FS_GATEWAY deve ser chamado ANTES de HI_FS_PUBLISH. *)
TEL_GATEWAY(
  INS       := FALSE,      (* Sem inserção de dados na FIFO *)
  DEL       := -TEL_ELEM,  (* remove as mensagens já coletadas pelo portal *)
  CMD       := FILE_CMD,   (* Comando associado ao arquivo de dados *)
  DATA_FILE := FILE_NAME,  (* Arquivo para armazenar dados *)
  CACHE     := TEL_CACHE,  (* CACHE dos dados a publicar *)
  FIFO      := TEL_FIFO    (* FIFO - área dos registros *)
  );
TEL_ELEM := TEL_GATEWAY.ELEM;

(* Publica o dado sempre que o evento for diferente de zero *)
IF (EVENT <> 0) THEN
  TEL_PUBLISH(
    EV_ID   := EVENT,       (* Identificador do dado no portal *)
    DATA    := VALUE,       (* Dado a publicar *)
    TEL_GAT := TEL_GATEWAY  (* Interface com o portal *)
    );
  EVENT := 0; (* aguarda novo evento *)
END_IF;