DTC_GET_BLOCKS
Retorna o nro de blocos de dados (DIB´s) utilizados pelo próximo dado a ser removido da cache.
Importante
Esta função considera que existe pelo menos um bloco de dados na cache, portanto a aplicação deve garantir que a mesma não seja chamada com uma cache vazia.
Bloco
DTC_GET_BLOCKS
+-------------+
INT ----|CACHE |
+-------------+
Parâmetros
Nome |
Classe |
Tipo |
Dim. |
V. Ini. |
Descrição |
CACHE |
Entrada |
INT |
[*] |
0 |
Cache fonte das mensagens |
Entradas
CACHE
Cache de dados mantida em memória como uma fila dos blocos de dados. Para mais informações consulte CACHE.
Retorno
Tipo |
Descrição |
INT |
Nro de blocos de dados utilizado pela informaçao a ser removida. Retorna -1 se o tamanho da cache nao comporta o nro de blocos do dado |
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 |
RET |
INT |
código de retorno da função de envio de dados para o portal |
||
CACHE |
INT |
[0..200] |
Cache do portal com capacidade de 20 mensagens. Tamanho mínimo. |
Código ST
(* Limpa a cache*)
HILS.DTC_REMOVE(0);
(* Salva na cache os valores de um dado vetorial *)
HILS.DTC_PUSH(
101, // identificador do dado
TRUE, // obtem o timestamp do relógio do equipamento
0, // nao utilizado
MY_VECT, // dado a ser salvo
CACHE // cache de dados
);
// Os valores 1, 2 e 3 do dado MY_VEC serao salvos na cache
(* Obtem o nro de blcos de dados ocupados pelo vetor *)
RET = HILS.DTC_GET_BLOCKS(CACHE);
// Retorna o valor 2, indicando que o vetor MY_VEC ocupa 2 blocos de dados