FDB_INIT
Cria uma tabela de dados no banco de dados em flash do controlador, alocando espaço para MAX_RECS registros do tipo DATA, para posterior acesso de leitura/escrita de registros; é uma função.
Biblioteca: HI_STD · Namespace: HILS · Tipo: função
Função
FDB_INIT
+----------------+
| |
UINT ----|MAX_RECS |---- INT
| |
ANY ----|DATA |
| |
+----------------+
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.
A cada chamada desta função é alocado um espaço no banco de dados em flash para uma tabela com capacidade para MAX_RECS registros de dados do tipo DATA. Nesta tabela podem ser armazenados diversos tipos de registros de dados, por exemplo: configuração de setup da máquina, configuração de operação do processo, receitas para produtos da máquina, etc.
Importante
Para cada tipo de registro de dados é necessário criar uma tabela distinta, sendo que em cada tabela é possível armazenar vários registros do mesmo tipo de dados.
Quando realizada com sucesso, a função retorna um identificador TAB_ID para a tabela alocada. Este identificador deve ser utilizado posteriormente pelas funções de leitura (FDB_RD) e escrita (FDB_WR) de registros no banco de dados em flash. Se a função falhar, retorna o valor -1. Os motivos de falha são:
número máximo de tabelas disponíveis no equipamento foi atingido;
sem espaço disponível no banco de dados para alocar a tabela solicitada;
quantidade de registros a serem alocados na tabela inválida, por exemplo, igual a 0;
estrutura de dados de especificação do registro de dados inválida ou vazia.
Nota
O banco de dados em flash do controlador suporta um número de tabelas de dados a serem reservadas para leitura/escrita de registros de dados. O número máximo de tabelas suportadas é função do firmware do equipamento associado e pode ser obtido no manual do controlador.
Parâmetros
Nome |
Direção |
Tipo |
Padrão |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|---|
MAX_RECS |
IN |
UINT |
— |
> 0 registros |
Quantidade de registros de dados a serem alocados nesta tabela em flash. |
DATA |
IN_OUT |
ANY |
— |
— |
Variável cujo tipo de dado será utilizado como registro de dados da tabela. |
Retorno / Saídas
Retorna um valor do tipo UINT: o identificador TAB_ID da tabela alocada no
banco de dados em flash do controlador. Em caso de sucesso, o identificador vai de 0
até a capacidade máxima de tabelas disponibilizada em cada família de controlador.
Se a função falhar, retorna o valor -1.
Pré-condições
Deve haver espaço e slots de tabela disponíveis no banco de dados em flash.
MAX_RECSdeve ser maior que 0.DATAdeve referenciar uma estrutura de registro de dados válida e não vazia.
Observações
Para cada tipo de registro de dados crie uma tabela distinta; cada tabela armazena vários registros do mesmo tipo.
O número máximo de tabelas depende do firmware/família do controlador.
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
tot_rec : UINT; (* Número de registros a serem alocados na tabela em flash *)
data_user : DBF_DATA; (* Variável do tipo estrutura "DBF_DATA" definida pelo usuário *)
tab_code : UINT; (* Identificador da tabela criada no banco dados em flash *)
END_VAR
(* Exemplo de criação de uma tabela na flash com 2 registros do tipo "data_user" *)
tot_rec := 2; (* total de registros a serem alocados nesta tabela em flash *)
tab_code := HILS.FDB_INIT(MAX_RECS := tot_rec, DATA := data_user);
IF (tab_code <> -1) THEN
(* Tabela criada com sucesso na flash *)
(* ... *)
END_IF;