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); se FALSE, usa TS.

TS

IN

DT

—

—

—

Timestamp a associar ao bloco de dados quando GEN_TS = FALSE.

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 CACHE deve estar corretamente dimensionada em memória (ver Estrutura da cache (CACHE)).

  • DATA deve ser de um tipo nativo suportado — não são aceitos estruturas, WSTRING nem vetores de strings.

Observações

Ver também

DTC_GET_INFO, DTC_GET_VALUE, DTC_REMOVE, DTC_MAN

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 *)