FDB_RD
Lê um registro de dados do tipo DATA com índice REC_NUM da tabela TAB_ID no banco de dados em flash.
A função retorna resultado do tipo “UINT” como um valor do tipo RET_CODE, podendo este ser HILS.SUCCESS se executada com sucesso, caso contrário, indica o respectivo código de erro.
Dica
Assista ao vídeo tutorial para aprender a utilizar os blocos de função relacionados a memória flash: Banco de dados em flash.
Bloco
FDB_RD
+---------------+
INT ---|TAB_ID |--- INT
| |
UINT ---|REC_NUM |
| |
ANY ---|DATA --------- |---
+---------------+
Parâmetro
Nome |
Classe |
Tipo |
Descrição |
TAB_ID |
Entrada |
INT |
Identificador da tabela a ser acessada |
REC_NUM |
Entrada |
UINT |
Nro do registro de dados a ser acessado |
DATA |
Entrada/Saída |
Data a ser obtido |
Retorno
Tipo Dado |
Descrição |
INT |
Código de retorno na execução da função, do tipo RET_CODE, onde:
|
A tabela abaixo ilustra alguns dos possíveis códigos de retorno desta função.
RESULT |
LABEL [4] |
Descrição |
|---|---|---|
0 |
HILS.SUCCESS |
Função executada com sucesso. |
5 |
HILS.GL_INV_PAR |
Parâmetro(s) inválido(s). Por exemplo, TAB_ID inválida, Tamanho do parâmetro DATA inválido. |
39 |
HILS.RE_INV_ADDR |
REC_NUM mapeia em um endereço inválido no banco de dados. |
Este LABEL pode ser utilizado no código fonte pois está definido no tipo RET_CODE disponível na biblioteca HI_STD. |
Exemplo
Declaração de Tipos de Dados
Exemplo de declaração de uma estrutura de dados definida pelo usuário, a ser utilizada para especificar os registros de dados a serem lidos/escritos na tabela em flash.
Tipos de Dados |
Derivação |
Nome |
Tipo |
Dimensão |
Descrição |
DBF_DATA |
Estrutura |
Estrutura de especificação do registro de dados |
|||
enable |
BOOL |
Habilitação do controle |
|||
setpoint |
REAL |
Valor do set point |
|||
histerese |
REAL |
Histerese do set point |
|||
tempoON |
TIME |
Tempo de operação da máquina |
Declaração de Variáveis
Nome |
Tipo |
Descrição |
|---|---|---|
data_user |
DBF_DATA |
Variável com tipo de dados do usuário |
reg_idx |
INT |
Índice do registro dentro da tabela em flash |
tab_code |
UINT |
Identificador da tabela a ser acessada |
ret_code |
INT |
Código de retorno da execução da função |
SP |
REAL |
Valor do set point |
HS |
REAL |
Histerese do set point |
Código ST
(* ... *)
(* Le o primeiro registro de dados do tipo "data_user" na tabela em flash *)
tab_code := 0; (* identificador da tabela criada na flash, obtida da função "FDB_INIT" *)
reg_idx := 0; (* Indice do primeiro registro dentro da tabela em flash *)
ret_code := HILS.FDB_RD(TAB_ID := tab_code, REC_NUM := reg_idx, DATA := data_user);
if (ret_code = HILS.SUCCESS) then (* testa se leitura do registro com sucesso na flash *)
(* trata registro lido com sucesso da flash *)
(* ... *)
if (data_user.enable) then (* checa campo "enable" do registro lido na flash *)
SP := data_user.setpoint; (* acessa campo "setpoint" do registro lido na flash *)
HS := data_user.histerese; (* acessa campo "histerese" do registro lido na flash *)
(* ... *)
end_if;
end_if;
(* ... *)
(* Le o segundo registro de dados do tipo "data_user" na tabela em flash *)
tab_code := 0; (* identificador da tabela criada na flash, obtida da função "FDB_INIT" *)
reg_idx := 1; (* Indice do segundo registro dentro da tabela em flash *)
ret_code := HILS.FDB_RD(tab_code, reg_idx, data_user);
if (ret_code = 0) then (* testa se leitura do registro com sucesso na flash *)
(* trata registro lido com sucesso da flash *)
(* ... *)
end_if;
(* ... *)