FS_WRITE_DATA_TEXT

Realizar a escrita de dados em um arquivo de dados no sistema de arquivos do SDCARD no formato Texto.

Para executar a função é necessário que o arquivo esteja aberto no modo OPEN_FILE_WRITE_TXT ou OPEN_FILE_APPEND_TXT.

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.

Bloco

          FS_WRITE_DATA_TEXT
         +-------------------+
BOOL ----|START          DONE|---- BOOL
         |                   |
 INT ----|FD           RESULT|---- INT
         |                   |
     ----|DATA_VALUE --------|----
         +-------------------+

Parâmetros

Nome

Classe

Tipo

Dim.

V. Ini.

Descrição

START

Entrada

BOOL

FALSE

Ativação da função

FD

Entrada

INT

0

Descritor do arquivo a ser relizado a escrita de dados

DATA_VALUE

Entrada/Saída

ANY

String com o texto a ser escrito no arquivo

DONE

Saída

BOOL

FALSE

Pulso de fim de execução da função

RESULT

Saída

INT

0

Código de retorno da execução da função

Detalhamento dos Parâmetros

Parâmetro

Descrição

START

Deve ser colocado em “TRUE” para iniciar a execução. Caso seu valor seja alterado para “FALSE” antes do fim da operação, o bloco irá ser resetado.

FD

Descritor do arquivo. Pode ser obtido no resultado da função FS_OPEN_FILE.

DATA_VALUE

Variável do tipo String com o texto a ser escrito no arquivo. Se desejar incluir os caracteres de controle CR + LF (’\n’) no final da string para pular de linha no arquivo texto, é necessário acrescentar estes caracteres de controle na string passada como parâmetro. Para acrescenter CR + LF no final da string basta concaternar com uma string contendo os seguinte códigos associados aos caracteres de controle CR e LF : ‘$0D$0A’.

DONE

Pulso para indicar o término da execução da função. Após este pulso (fica ativo por apenas um ciclo de scan), o resultado da execução da função deve ser consultado no parâmetro de saída “RESULT”.

RESULT

Código de retorno associado a execução da função, onde:

Se for igual a 0: Função executada com sucesso, código HILS.SUCCESS

Se for diferente de 0: Falha na execução da função [3]

Segue alguns exemplos de códigos de retorno:

RESULT

LABEL [4]

Descrição

0

HILS.SUCCESS

Função executada com sucesso.

5

HILS.GL_INV_PAR

Parâmetro(s) inválido(s).

7

HILS.GL_UNA_CMD

Comando não disponivel ou nao implementado.

8

HILS.GL_INV_STT

Estado corrente inválido.

10

HILS.GL_CMD_TMO

Timeout na execução do comando.

11

HILS.GL_CMD_CAN

Comando cancelado.

16

HILS.GL_CMD_PEND

Tratamento do comando pendente.

24

HILS.RE_NOT_AVA

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

25

HILS.RE_INV_LEN

Tamanho especificado no parâmetro “NAME” inválido.

27

HILS.RE_RES_EMP

Buffer do recurso vazio.

32

HILS.RE_WRITE_ERR

Falha no processo de escrita do recurso.

33

HILS.RE_NOT_INIT

Recurso não inicializado.

167

HILS.RC_FS_CORRUPT

Sistema de arquivo pode estar corrompido.

168

HILS.RC_FS_INV_OPER_MODE

Modo de operação incompátivel com estado do arquivo.

177

HILS.RC_FS_INVALID_HANDLE

Handle de arquivo aberto inválido.

Exemplo

Declaração de Tipos de Dados

Exemplo de declaração de uma string definida pelo usuário, a ser utilizada para especificar o texto a serem escritos no arquivo de dados no SDCARD.

Declaração de variáveis

Nome

Tipo

Valor Inicial

Opções

Descrição

STR_DATA

STRING

Texto desejado para ser escrito no arquivo

STR_LOG

STRING

Texto a ser escrito no arquivo

STR_CR_LF

STRING

‘$0D$0A’

Const

CR + LF, caracteres de controle ‘n’ (linefeed)

MY_START

BOOL

FALSE

Ativação da função

FILE_FD

INT

Descritor do arquivo a ser realizado a escrita de dados

WRITE_FILE

FS_WRITE_DATA_TEXT

Instância do bloco “FS_WRITE_DATA_TEXT”

Clique aqui para baixar a tabela de variáveis

Código ST

//======================================================
// Exemplo de escrita de uma String no arquivo
//======================================================

// Exemplo de string com o texto desejado a ser salvo no arquivo
//
// OBS.: Utilizar funções de manipulação de string para montar este texto
//       dinamicamente pela aplicação.
//
STR_DATA := '21/11/2021 09:13:32; 28.5 oC; 53.0 %;'

// Acrescenta CR + LF na string a ser logada no arquivo texto
STR_LOG := CONCAT(STR_DATA, STR_CR_LF);  // concatena '\n'


//============================================================================
// Exemplo de ativação da função FS_WRITE_DATA_TEXT
//============================================================================

// 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

(* ... *)

// Exemplo de ativação do bloco de função FS_WRITE_DATA_TEXT
WRITE_DATA_TEXT(  // FS_WRITE_DATA_TEXT
  START      := MY_START,  // [BOOL] Ativação da função
  FD         := File_FD,   // [INT] Descritor do arquivo
  DATA_VALUE := STR_LOG    // [ANY] String para salvar no arquivo

// Aguarda término da execução da função do sistema de arquivos
if (WRITE_DATA_TEXT.DONE) then

  MY_START := FALSE;     // Reseta ativação da função

  // Testa código de retorno da execução da função
  if (WRITE_DATA_TEXT.RESULT = HILS.SUCCESS) then
    // ... Função executada com sucesso
  else
    // ... Erro na execução da função
  end_if;

end_if;

(* ... *)