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.

Clique aqui para baixar a tabela de variáveis

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;