DTC_HOW_MANY_BLKS
Retorna o nro de blocos de dados (DIB´s) necessários para inserir o dado especificado em uma cache. Suporta todos os tipos nativos e vetores dos tipos nativos (com exceção de vetores de strings). Retorna zero se o dado for inválido.
Bloco
DTC_HOW_MANY_BLKS
+-------------+
ANY ----|DATA |---- INT
+-------------+
Parâmetros
Nome |
Classe |
Tipo |
Dim. |
V. Ini. |
Descrição |
DATA |
Entrada |
ANY |
Dado a ser avaliado |
Entradas
DATA
Dado a ser avaliado. Para mais informações sobre a cache de dados consulte CACHE.
Retorno
Tipo |
Descrição |
INT |
Nro de blocos de dados utilizados para salvar o dado na cache. Retorna zero se o tipo do dado for invalido. |
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 de dados |
||
CACHE |
INT |
[0..200] |
Cache do portal com capacidade de 20 mensagens. Tamanho mínimo. |
Código ST
(* Obtem o nro de blocos de dados utilizado pelo vetor MY_VEC *)
BLKS = HILS.DTC_HOW_MANY_BLKS(MY_VEC);
// Retorna o valor 2, indicando que o vetor MY_VEC ocupa 2 blocos de dados
(* 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_VEC, // dado a ser salvo
CACHE // cache de dados
);
// Os valores 1, 2 e 3 do dado MY_VEC serao salvos na cache
(8 Obtem o nro de blcos de dados ocupados pelo vetor *)
IF (BLKS = HILS.DTC_GET_BLOCKS(CACHE)) THEN
// Validado que o dado na cache possui o mesmo tamanho obtido inicialmente
END_IF;