FS_FLUSH_FILE
Grava (flush) no arquivo os dados pendentes na cache interna do sistema de arquivos do SDCARD, preservando as alterações em caso de reinicialização, sem fechar o arquivo. É um bloco de função (mantém estado entre scans; requer instância).
Biblioteca: HI_STD · Namespace: HILS · Tipo: bloco de função
Bloco de função
FS_FLUSH_FILE
+--------------+
BOOL ----|START DONE|---- BOOL
| |
INT ----|FD RESULT|---- INT
+--------------+
Nota
Antes de utilizar este bloco de função, consulte no manual do controlador utilizado se o mesmo possui suporte para sistema de arquivos no SDCARD.
Quando a aplicação abre um arquivo e o mantém aberto, escrevendo dados periodicamente, as
informações alteradas ficam armazenadas em uma cache interna do sistema de arquivos e só são
transferidas ao arquivo quando a cache se completa. FS_FLUSH_FILE força essa transferência a
qualquer momento, salvando o conteúdo da cache no arquivo. A execução inicia na ativação de
START e é concluída com um pulso de DONE (ativo por um único scan); nesse instante,
RESULT indica o estado da operação.
Nota
A função FS_CLOSE_FILE já realiza automaticamente esse flush da cache para o arquivo antes de fechá-lo.
Parâmetros
Nome |
Direção |
Tipo |
Padrão |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|---|
START |
IN |
BOOL |
FALSE |
— |
Ativa (TRUE) a execução. Se voltar a FALSE antes do término, o bloco é resetado. |
FD |
IN |
INT |
0 |
— |
Descritor do arquivo no qual será realizado o flush de dados. |
DONE |
OUT |
BOOL |
FALSE |
— |
Pulso de término da execução (ativo por um único scan); então consulte |
RESULT |
OUT |
INT |
0 |
RET_CODE |
Código de retorno da execução (ver Códigos de retorno). |
Códigos de retorno
RESULT é do tipo RET_CODE. Use os identificadores com o namespace HILS
(ex.: HILS.FS_INVALID_HANDLE). Códigos mais comuns deste bloco:
Código |
Identificador |
Significado |
|---|---|---|
0 |
SUCCESS |
Função executada com sucesso. |
5 |
GL_INV_PAR |
Parâmetro(s) inválido(s). |
7 |
GL_UNA_CMD |
Comando não disponível ou não implementado. |
8 |
GL_INV_STT |
Estado corrente inválido. |
10 |
GL_CMD_TMO |
Timeout na execução do comando. |
11 |
GL_CMD_CAN |
Comando cancelado. |
16 |
GL_CMD_PEND |
Tratamento do comando pendente. |
24 |
RE_NOT_AVA |
Recurso não disponível (sem suporte a sistema de arquivos ou SDCARD não detectado). |
33 |
RE_NOT_INIT |
Recurso não inicializado. |
167 |
FS_CORRUPT |
Sistema de arquivos pode estar corrompido. |
170 |
FS_WRITE_LOCK |
Arquivo aberto para escrita (bloqueio de escrita). |
177 |
FS_INVALID_HANDLE |
Handle de arquivo aberto inválido. |
Lista completa dos códigos de retorno: RET_CODE - Códigos de retorno do firmware G5.
Pré-condições
O controlador deve possuir suporte a sistema de arquivos no SDCARD (consulte o manual do equipamento).
FDdeve referir-se a um arquivo previamente aberto e ainda válido.
Observações
DONEfica ativo por apenas um ciclo de scan; leiaRESULTnesse mesmo scan.O flush preserva no arquivo os dados da cache, evitando perda em caso de reinicialização, sem fechar o arquivo.
Ver também
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
MY_START : BOOL := FALSE; (* Ativação da função *)
FILE_FD : INT; (* Descritor do arquivo a ser realizado o flush *)
FLUSH_FILE : HILS.FS_FLUSH_FILE; (* Instância do bloco "FS_FLUSH_FILE" *)
END_VAR
(* Preenche parâmetros para a chamada do bloco de função *)
FILE_FD := 0; (* Descritor do arquivo *)
MY_START := TRUE; (* Ativação do bloco da função *)
(* ... *)
(* Ativação do bloco de função FS_FLUSH_FILE *)
FLUSH_FILE(
START := MY_START, (* [BOOL] Ativação da função *)
FD := FILE_FD (* [INT] Descritor do arquivo *)
);
(* Aguarda término da execução da função do sistema de arquivos *)
IF FLUSH_FILE.DONE THEN
MY_START := FALSE; (* reseta ativação da função *)
(* Testa código de retorno da execução da função *)
IF FLUSH_FILE.RESULT = HILS.SUCCESS THEN
(* ... Função executada com sucesso *)
ELSE
(* ... Erro na execução da função *)
END_IF;
END_IF;
(* ... *)