DTC_PUSH
Insere (empilha) na cache de dados uma variável ou vetor da aplicação, associando um identificador, um atributo e um timestamp ao bloco de dados; não aceita estruturas nem vetores de strings. É uma função.
Biblioteca: HI_STD · Namespace: HILS · Tipo: função
Função
DTC_PUSH
+--------------+
INT ---|ID |--- INT
| |
USINT ---|ATRIB |
| |
BOOL ---|GEN_TS |
| |
DT ---|TS |
| |
ANY ---|DATA |
| |
INT ---|CACHE ------- |---
+--------------+
A cache de dados é um vetor do tipo INT mantido em memória como uma fila
(FIFO) de blocos de dados. A função DTC_PUSH insere um novo bloco na cache,
registrando para cada dado seu identificador (ID), atributo (ATRIB) e
timestamp (TS ou o relógio do equipamento, conforme GEN_TS).
Os dados armazenados podem ser consultados e removidos pelas funções DTC_GET_INFO, DTC_GET_VALUE e DTC_REMOVE. Para o dimensionamento e a estrutura da cache, consulte Estrutura da cache (CACHE).
Parâmetros
Nome |
Direção |
Tipo |
Dimensão |
Padrão |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|---|---|
ID |
IN |
INT |
— |
— |
— |
Identificador associado ao bloco de dados salvo na cache. |
ATRIB |
IN |
USINT |
— |
— |
0 .. 7 |
Atributo associado ao dado; o significado é definido pela aplicação que o consome (ex.: prioridade de alarme, importância, flag de log). |
GEN_TS |
IN |
BOOL |
— |
— |
— |
Se TRUE, gera automaticamente o timestamp do dado (ignora |
TS |
IN |
DT |
— |
— |
— |
Timestamp a associar ao bloco de dados quando |
DATA |
IN |
ANY |
— |
— |
— |
Dado ou vetor de dados nativo a ser salvo na cache (inclusive STRING; exceto vetores de strings). |
CACHE |
IN_OUT |
INT |
[*] |
— |
— |
Cache de blocos de dados utilizada (fila FIFO em memória). |
Códigos de retorno
A função retorna um código INT (RET_CODE): 0 (SUCCESS) em caso de
sucesso ou um dos códigos de falha abaixo.
Código |
Identificador |
Significado |
|---|---|---|
0 |
SUCCESS |
Dado inserido na cache com sucesso. |
5 |
GL_INV_PAR |
Parâmetro inválido: tipo de dado não suportado (ex.: estrutura, WSTRING) ou quantidade de elementos do vetor inválida. |
28 |
RE_FIL_OVF |
Espaço insuficiente na cache para salvar o dado especificado. |
Lista completa: RET_CODE - Códigos de retorno do firmware G5.
Pré-condições
A cache
CACHEdeve estar corretamente dimensionada em memória (ver Estrutura da cache (CACHE)).DATAdeve ser de um tipo nativo suportado — não são aceitos estruturas,WSTRINGnem vetores de strings.
Observações
ATRIBpode assumir valores de 0 a 7; enquanto o dado permanece na cache o atributo é irrelevante, sendo interpretado apenas pela aplicação que consome o dado. Esse parâmetro é útil, por exemplo, para o Portal de telemetria (ver Armazenamento local de registros em um equipamento G5 da HI Tecnologia).Com
GEN_TS= TRUE, o valor deTSé ignorado.
Ver também
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
MY_DATA : UDINT := 1234; (* valor escalar a ser inserido na cache *)
MY_VEC : ARRAY [0..2] OF INT := [1,2,3]; (* vetor de dados a ser inserido na cache *)
RET : INT; (* codigo de retorno da funcao *)
WCACHE : ARRAY [0..200] OF INT; (* cache de dados (tamanho minimo) *)
END_VAR
(* Salva na cache um dado escalar *)
RET := HILS.DTC_PUSH(
100, // ID: identificador do dado
0, // ATRIB: atributo associado ao dado
TRUE, // GEN_TS: obtem o timestamp do relogio do equipamento
0, // TS: nao utilizado (GEN_TS = TRUE)
MY_DATA, // DATA: dado a ser salvo
WCACHE // CACHE: cache de dados
);
(* O valor 1234 de MY_DATA sera salvo na cache *)
(* Salva na cache os valores de um dado vetorial *)
RET := HILS.DTC_PUSH(
101, // ID: identificador do dado
0, // ATRIB: atributo associado ao dado
TRUE, // GEN_TS: obtem o timestamp do relogio do equipamento
0, // TS: nao utilizado (GEN_TS = TRUE)
MY_VEC, // DATA: dado a ser salvo
WCACHE // CACHE: cache de dados
);
(* Os valores 1, 2 e 3 de MY_VEC serao salvos na cache *)