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.: TAB_ID inexistente ou tamanho de DATA incompatível).

39

RE_INV_ADDR

REC_NUM mapeia em um endereço inválido no banco de dados.

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_ID deve ter sido criada previamente com FDB_INIT.

  • O tipo da variável ligada a DATA deve coincidir com o tipo de registro da tabela.

Observações

  • REC_NUM é indexado a partir de 0 (0 = primeiro registro).

Ver também

FDB_INIT, FDB_WR, FDB_GET_INFO

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