HI_FS_PUBLISH

Este bloco é utilizado para publicar dados armazenados no sistema de arquivo do equipamento para o portal de telemetria da HI Tecnologia. Estes dados a serem publicados podem ser de qualquer tipo numérico ou de tempo (DT, TIME, DATE e TOD), sendo necessário especificar além do seu valor um identificador para o portal de telemetria.

Este bloco, opera em conjunto com o bloco TEL_FS_GATEWAY que realiza a interface entre o sistema de arquivo e o portal de telemetria.

Nota

Para enviar mensagens mantidas na memória do equipamento ao invés do sistema de arquivo, utilize o bloco de função HI_PORTAL.

Importante

Ao utilizar este bloco, é necessário que a instancia do bloco TEL_FS_GATEWAY seja executada antes da chamada deste bloco, pois este bloco necessita desta instancia TEL_FS_GATEWAY como parâmetro de entrada, e desta forma já deverá estar inicializada.

Vide a sessão Exemplo para mais informações de como utilizar este bloco.

Nota

Antes de utilizar este bloco de função, consulte no manual do controlador utilizado se o mesmo possui suporte para sistema de arquivos no SDCARD.

Bloco

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

Parâmetros

Nome

Parâmetro

Tipo Dado

V. Ini.

Descrição

EV_ID

Entrada

INT

0

Identificador do tipo de dado para o portal de telemetria

RESULT

Saída

INT

0

Código de retorno do processamento

DATA

Entrada/Saída

ANY

Dado a ser publicado para o portal de telemetria

TEL_GAT

Entrada/Saída

TEL_FS_GATEWAY

Bloco de interface com o portal de telemetria

RESULT

Tipo Dado

Descrição

INT

Código de retorno na execução da função, do tipo RET_CODE, onde:

  • Se for igual a 0: Função executada com sucesso - código HILS.SUCCESS

  • Se for diferente de 0: Falha na execução da função indica o respectivo código de erro. [2]

Exemplo

Base de variáveis globais da aplicação

Estas variáveis devem ser definidas como globais para que possam ser obtidas pelo portal de telemetria da HI Tecnologia através da leitura de variáveis do tipo “Holding Register”.

Nome

Tipo

Endereço

Dimensão

V. Ini.

Descrição

TEL_COUNT

INT

%MW400

0

Nro de mensagens para serem consumidas pelo portal de telemetria

TEL_FIFO

INT

%MW401

[0..239]

0

FIFO com Buffer de mensagens do portal de telemetria

Declaração de Variáveis

Nome

Tipo

Dimensão

Valor Inicial

Opções

Descrição

EVENT

INT

Código do evento a ser publicado para o portal de telemetria

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

UINT

[0..499]

rent

Buffer para CACHE com até 50 registros de dados de entrada

TEL_ELEM

INT

0

Nro. de mensagens disponíveis para coleta pelo portal (Global)

TEL_DATA

HILS.TEL_V2_DATA_TYPE

Registros de dados para inserção no buffer do portal

TEL_GATEWAY

HILS.TEL_GATEWAY

Instancia do bloco de interface com portal de telemetria

TEL_PUBLISH

HILS.HI_FS_PUBLISH

Bloco de registros de eventos

Clique aqui para baixar a tabela de variáveis

Código ST

// ...

//   Interface com o portal de telemetria

//   Trata remoção de eventos pelo portal de telemetria
//
//   Se o nro de elementos da FIFO for menor que 0 indica que o portal de telemetria
//   removeu o nro de elementos especificados pelo valor negativo
//   Nesta condição, remove estes elementos do buffer de mensagens do portal
//
//   IMPORTANTE: Este bloco deve ser chamado antes da chamada do bloco de função
//             HI_PORTAL (caso seja utilizado) pois o mesmo recebe este bloco
//              como parâmetro.

TEL_GATEWAY (
  INS       := FALSE,      // Sem inserção de dados na FIFO
  DEL       := -TEL_ELEM,  // remove as mensagens que o portal ja coletou
  CMD       := FILE_CMD,   // Comando associado ao arquivo de dados
  DATA_FILE := FILE_NAME,  // Arquivo para armazenar dados
  CACHE     := TEL_CACHE,  // CACHE para armazenar os dados a serem publicados para o portal
  FIFO      := TEL_FIFO    // FIFO - área onde serão armazenados os registros
  );
TEL_ELEM := TEL_GATEWAY.ELEM;

// Publica o dado para o portal sempre que o evento for diferente de zero
IF (EVENT <> 0) THEN
  // Cria um registro de dados com informações de data/hora, valor do dado e evento associado.
  // Publica o dado para coleta pelo portal de telemetria.
  TEL_PUBLISH(EV_ID   := EVENT,     // Identificador do tipo de dado para o portal de telemetria
              DATA    := VALUE,     // Dado a ser publicado para o portal de telemetria
              TEL_GAT := TEL_GATEWAY); // Bloco de interface com o portal de telemetria
  EVENT := 0; // aguarda novo evento ser gerado
  // ...
END_IF;

// ...