DTC_REMOVE
Remove da cache de dados o número de blocos especificado (ou todos os blocos, se o valor for zero). É uma função.
Biblioteca: HI_STD · Namespace: HILS · Tipo: função
Função
DTC_REMOVE
+--------------+
UINT ----|BLOCKS |---- INT
| |
INT ----|CACHE ------- |----
+--------------+
Remove da fila de CACHE a quantidade de blocos de dados indicada em BLOCKS,
a partir do início da fila. A função retorna o número de blocos de dados ainda
disponíveis na cache após a remoção.
Atenção
Se BLOCKS for igual a zero, todos os blocos de dados são removidos da cache.
A cache de dados é mantida em memória como uma fila dos blocos de dados inseridos. Para mais informações consulte Estrutura da cache (CACHE).
Parâmetros
Nome |
Direção |
Tipo |
Dimensão |
Padrão |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|---|---|
BLOCKS |
IN |
UINT |
— |
0 |
0 = remove todos |
Número de blocos de dados a serem removidos da cache. |
CACHE |
IN_OUT |
INT |
[*] |
— |
— |
Cache de dados mantida em memória como uma fila dos blocos inseridos. |
Retorno / Saídas
Retorna um INT com o número de blocos de dados ainda disponíveis na cache
após a remoção.
Ver também
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
MY_VEC : ARRAY [0..2] OF INT := [1,2,3]; (* dado a ser salvo na cache *)
BLKS : INT; (* Nro de blocos *)
WCACHE : ARRAY [0..200] OF INT; (* Cache de dados. Tamanho mínimo. *)
END_VAR
(* Limpa a cache *)
HILS.DTC_REMOVE(0, WCACHE);
(* 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(WCACHE);
// Retorna o valor 2
(* Copia o valor do dado da cache *)
HILS.DTC_GET_VALUE(WCACHE, MY_VEC);
(* Remove o dado da cache *)
HILS.DTC_REMOVE(BLKS, WCACHE);