DTC_GET_VALUE

Esta função retorna o valor do dados associado ao 1o dado inserido na cache de dados especificada.

Bloco

         DTC_GET_VALUE
        +-------------+
INT ----|CACHE        |
        |             |
ANY ----|DATA ------- |----
        +-------------+

Parâmetros

Nome

Classe

Tipo

Dim.

V. Ini.

Descrição

CACHE

Entrada

INT

[*]

0

Cache de blocos de dados utilizada

DATA

Entrada/Saída

ANY

Dado ou vetor de dados a ser lido da cache de bloco de dados

Entradas

CACHE

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

Entradas/saídas

DATA

Dado da aplicação a receber o valor do primeiro elemento inserido na cache de dados.

Retorno

Tipo

Descrição

INT

Codigo de retorno. Retorna 0 se a função foi executada com sucesso.

Podem ser retornados os seguintes códigos de falha:

  • RC_GL_INV_PAR

    • Tipo de dado inválido (ex: estrutura)

    • Tipo de dado não suportado pelo ambiente (Ex: WSTRING)

    • Indice inicial do vetor invalido

    • Quantidade de elementos do vetor invalido

  • RC_RE_FIL_OVF

    • Nro de mensagens disponíveis na cache insuficiente.

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);