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:
|
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 |
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;
// ...