FS_GET_SPACE

Obtém informações sobre o espaço do sistema de arquivos do SDCARD (memória total, livre, usada, com defeito e total de arquivos na raiz), exigindo um controlador com suporte a sistema de arquivos no SDCARD. É 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_GET_SPACE
         +----------------------+
BOOL ----|START             DONE|---- BOOL
         |                      |
         |                RESULT|---- INT
         |                      |
         |          SD_MEM_TOTAL|---- ULINT
         |                      |
         |           SD_MEM_FREE|---- ULINT
         |                      |
         |           SD_MEM_USED|---- ULINT
         |                      |
         |            SD_MEM_BAD|---- ULINT
         |                      |
         |        ROOT_TOT_FILES|---- INT
         +----------------------+

A execução é iniciada ao colocar START em TRUE. Caso START volte a FALSE antes do término, o bloco é resetado. O fim da operação é sinalizado por um pulso de um scan em DONE; nesse ciclo o resultado deve ser consultado em RESULT (SUCCESS = 0 indica sucesso). As demais saídas trazem os tamanhos em bytes e a contagem de arquivos da raiz.

ROOT_TOT_FILES contabiliza apenas os arquivos existentes no diretório raiz (não conta subdiretórios nem pastas); o valor -1 indica erro na contabilização. Para contar os arquivos de um diretório específico utilize FS_DIR_INFO.

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.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

START

IN

BOOL

FALSE

—

Ativação da função. Em TRUE inicia a execução; se voltar a FALSE antes do fim, reseta o bloco.

DONE

OUT

BOOL

FALSE

—

Pulso de um scan indicando o término da execução. Consulte RESULT neste ciclo.

RESULT

OUT

INT

0

RET_CODE

Código de retorno da execução (ver Códigos de retorno).

SD_MEM_TOTAL

OUT

ULINT

0

bytes

Tamanho total do cartão de memória do SDCARD.

SD_MEM_FREE

OUT

ULINT

0

bytes

Quantidade de memória livre no cartão de memória do SDCARD.

SD_MEM_USED

OUT

ULINT

0

bytes

Quantidade de memória utilizada no cartão de memória do SDCARD.

SD_MEM_BAD

OUT

ULINT

0

bytes

Quantidade de memória com defeito no cartão de memória do SDCARD.

ROOT_TOT_FILES

OUT

INT

0

—

Total de arquivos criados na pasta raiz do sistema de arquivos no SDCARD (-1 = erro na contagem).

Códigos de retorno

RESULT é do tipo RET_CODE. Use os identificadores com o namespace HILS (ex.: HILS.RE_NOT_AVA). 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.

11

GL_CMD_CAN

Comando cancelado.

16

GL_CMD_PEND

Tratamento do comando pendente.

24

RE_NOT_AVA

Sem suporte para o sistema de arquivos ou SDCARD não detectado.

25

RE_INV_LEN

Tamanho do buffer do recurso inválido.

33

RE_NOT_INIT

Recurso não inicializado.

34

RE_BUSY

Recurso ocupado (em processamento).

167

FS_CORRUPT

Sistema de arquivos pode estar corrompido.

174

FS_NOTFOUND

O arquivo não foi encontrado.

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.

  • O SDCARD deve estar presente e detectado (caso contrário RESULT retorna RE_NOT_AVA).

Observações

  • DONE fica ativo por apenas um ciclo de scan; leia RESULT e as saídas de memória nesse ciclo.

  • Os tamanhos de memória são expressos em bytes.

  • ROOT_TOT_FILES não contabiliza subdiretórios; para um diretório específico use FS_DIR_INFO.

Ver também

FS_DIR_INFO, FS_GET_INFO

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    MY_START  : BOOL := FALSE; (* Ativação da função *)
    GET_SPACE : HILS.FS_GET_SPACE;  (* Instância do bloco "FS_GET_SPACE" *)
END_VAR

(* Preenche parâmetros para a chamada do bloco de função *)
MY_START := TRUE;        (* Ativação do bloco da função *)
(* ... *)

(* Exemplo de ativação do bloco de função FS_GET_SPACE *)
GET_SPACE(
  START := MY_START      (* [BOOL] Ativação da função *)
  );

(* Aguarda término da execução da função do sistema de arquivos *)
IF GET_SPACE.DONE THEN

  MY_START := FALSE;     (* reseta ativação da função *)

  (* Testa código de retorno da execução da função *)
  IF GET_SPACE.RESULT = HILS.SUCCESS THEN
    (* ... Função executada com sucesso.
       As informações podem ser acessadas conforme abaixo:

         GET_SPACE.SD_MEM_TOTAL   = Tamanho total do SDCARD [bytes]
         GET_SPACE.SD_MEM_FREE    = Memória livre no SDCARD [bytes]
         GET_SPACE.SD_MEM_USED    = Memória utilizada no SDCARD [bytes]
         GET_SPACE.SD_MEM_BAD     = Memória com defeito no SDCARD [bytes]
         GET_SPACE.ROOT_TOT_FILES = Total de arquivos na pasta raiz do SDCARD *)

  ELSE
    (* ... Erro na execução da função *)
  END_IF;

END_IF;

(* ... *)