DTC_REMOVE

Esta função remove da cahe de dados o nro. de blocos de dados especificado.

Bloco

            DTC_REMOVE
         +--------------+
UINT ----|BLOCKS        |---- INT
         |              |
 INT ----|CACHE ------- |----
         +--------------+

Parâmetros

Nome

Classe

Tipo

Dim.

V. Ini.

Descrição

BLOCKS

Entrada

UINT

0

Número de blocos a ser removidos da cache

CACHE

Entrada/Saída

INT

[*]

0

Cache de blocos de dados utilizada

Entradas

BLOCKS

Número de blocos de dados a serem removidos da cache.

Atenção

Se o valor for igual a zero todos os blocos de dados serão removidos da cache.

Entradas / Saídas

CACHE

Cache de dados mantida em memória como uma fila dos blocos de dados inseridos. Para mais informações consulte CACHE.

Retorno

Tipo

Descrição

INT

Nro de blocos de dados ainda disponíveis na cache após a remoção.

Exemplo

Declaração de Variáveis

Nome

Tipo

Dimensão

Valor Inicial

Descrição

MY_DATA

UDINT

1234

valor a ser inserido na cache de mensagens

MY_VEC

INT

[0..2]

[1,2,3]

identificador do dado no portal de telemetria

BLKS

INT

Nro de blocos

WCACHE

INT

[0..200]

Cache do portal com capacidade de 20 mensagens. Tamanho mínimo.

Clique aqui para baixar a tabela de variáveis

Código ST

(* Limpa a cache*)
HILS.DTC_REMOVE(0);

(* Salva na cache um dado escalar *)
HILS.DTC_PUSH(
  100,  // identificador do dado
  TRUE, // obtem o timestamp do relógio do equipamento
  0,    // nao utilizado
  MY_VEC, // dado a ser salvo
  WCACHE // cache de dados
  );

  // O valor do dado MY_VEC será salvo na cache

(* Obtem o nro de blocos de dados ocupados pelo proximo dado a ser lido *)
BLKS = HILS.DTC_GET_BLOCKS(CACHE);

  // Retorna o valor 2

(* Copia o valor do dado da cache*)
HILS.DTC_GET_VALUE(CACHE, MY_VEC);

(* Remove o dado da cache*)
HILS.DTC_REMOVE(BLKS);