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