FDB_RD
Lê o registro de índice REC_NUM da tabela TAB_ID de um banco de dados em
memória flash para a estrutura DATA, retornando um código RET_CODE que
indica sucesso ou o erro ocorrido. É uma função.
Biblioteca: HI_STD · Namespace: HILS · Tipo: função
Função
FDB_RD
+---------------+
INT ---|TAB_ID |--- INT
| |
UINT ---|REC_NUM |
| |
ANY ---|DATA --------- |---
+---------------+
O tipo de DATA deve ser compatível com o registro definido na criação da tabela
(ver FDB_INIT). O valor de retorno é do tipo RET_CODE: 0 ( HILS.SUCCESS )
quando a leitura ocorre com sucesso, caso contrário o respectivo código de erro.
Dica
Assista ao vídeo tutorial para aprender a utilizar os blocos de função relacionados à memória flash: Banco de dados em flash.
Parâmetros
Nome |
Direção |
Tipo |
Padrão |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|---|
TAB_ID |
IN |
INT |
— |
— |
Identificador da tabela a ser acessada (obtido de FDB_INIT). |
REC_NUM |
IN |
UINT |
— |
— |
Número do registro de dados a ser acessado dentro da tabela. |
DATA |
IN_OUT |
ANY |
— |
— |
Estrutura que recebe o registro lido; seu tipo deve ser o da tabela. |
Códigos de retorno
O retorno é do tipo RET_CODE. Use os identificadores com o namespace HILS
(ex.: HILS.RE_INV_ADDR). Códigos mais comuns desta função:
Código |
Identificador |
Significado |
|---|---|---|
0 |
SUCCESS |
Registro lido com sucesso. |
5 |
GL_INV_PAR |
Parâmetro inválido (ex.: |
39 |
RE_INV_ADDR |
|
Lista completa: RET_CODE - Códigos de retorno do firmware G5.
Retorno / Saídas
Retorna um INT do tipo RET_CODE: 0 (HILS.SUCCESS) indica leitura bem-sucedida;
valor diferente de 0 indica falha, com o respectivo código de erro.
Pré-condições
A tabela
TAB_IDdeve ter sido criada previamente com FDB_INIT.O tipo da variável ligada a
DATAdeve coincidir com o tipo de registro da tabela.
Observações
REC_NUMé indexado a partir de 0 (0 = primeiro registro).
Ver também
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
TYPE
DBF_DATA : STRUCT (* 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 *)
END_STRUCT;
END_TYPE
VAR
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 *)
END_VAR
(* ... *)
(* 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;
(* ... *)