Banco de dados em flash

Nos controladores da HI Tecnologia está disponível o recurso de banco de dados em flash. Este recurso permite que a aplicação defina uma área em flash, que não perde informação quando o equipamento for desligado, para:

Armazenar parâmetros de setup de máquina

Geralmente neste cenário há uma tabela alocada no banco de dados que possui uma única linha e diversas colunas que definem as variáveis de setup utilizadas pela aplicação na inicialização do processo.

Armazenar receitas de algum processo

Neste cenário é possível existir uma tabela alocada no banco de dados que possui diversas linhas onde cada linha permite manter informações sobre uma etapa da receita do processo.

Funcionamento do banco de dados em flash

O banco de dados é formado por uma ou mais tabelas de dados. Cada tabela é criada na inicialização da aplicação utilizando-se a função FDB_INIT, recebe um ID quando inicializada e deve estar associada a um tipo de dado qualquer disponível na aplicação. Com este ID obtido é possível realizar a leitura de registros e escrita de registros na tabela associada.

  FDB (FLASH DATA BASE)
+-----------------------+
|                       |
|  TABELA id=0          |
|                       |
+-----------------------+
|  TABELA id=1          |
|                       |
+-----------------------+
|  TABELA id=2          |
+-----------------------+

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 fimware do equipamento associado e pode ser obtido no manual do controlador.

Para desenvolver aplicações utilizando o banco de dados em flash estão disponíveis na biblioteca HI_STD as seguintes funções:

  • FDB_INIT - inicializa uma tabela de dados

  • FDB_GET_INFO - obtém informações sobre a estrutura do banco de dados

  • FDB_RD - lê um registro em uma tabela de dados

  • FDB_WR - escreve um registro em uma tabela de dados

Inicialização de tabelas (FDB_INIT)

Para inicializar uma tabela de dados a ser alocada no banco de dados em flash do controlador utilize a função FDB_INIT. Esta função cria uma tabela a partir de dois parâmetros: quantidade de receitas (número de linhas) e a estrutura de dados utilizada (definição de colunas).

Obtenção de informações (FDB_GET_INFO)

Para obter informações e status associados ao banco de dados em flash do controlador utilize a função FDB_GET_INFO. Ao executar esta função a aplicação irá retornar o número máximo de tabelas suportadas, número de tabelas utilizadas e o status de banco de dados bloqueado para escrita.

Leitura de registros de dados (FDB_RD)

Para ler um registro de uma tabela alocada no banco de dados em flash utilize a função FDB_RD. Esta função realiza a leitura de um registro de dados a partir do índice da linha, do identificador da tabela associada e da estrutura de dados utilizada.

Escrita de registros de dados (FDB_WR)

Para escrever um registro em uma tabela alocada no banco de dados em flash utilize a funçãO FDB_WR. Esta função realiza a escrita de um registro de dados a partir do índice da linha, do identificador da tabela associada e da estrutura de dados utilizada.

Atenção

De modo geral é considerado um limite de 10.000 ciclos de escrita no banco de dados em flash, porém não existem limites de acesso nos ciclos de leitura.

O intervalo entre escritas consecutivas em um mesmo registro de dados deve ser maior que 2 segundos, caso contrário será retornado o código de erro HILS.RE_BLOCKED e as operações de escrita no banco de dados em flash estarão bloqueadas até o controlador ser reinicializado.