Acesso ao Sistema de Arquivos

Bloco de Controle Padrão
Função Acesso ao Sistema de Arquivos
Código 34
Caminho Programa/Editor Ladder/Elementos/Especiais/Bloco de controle Padrão
Grupo Especiais
Ícone ico
Tabela de compatibilidade de firmwares
Geração de Firmware G3, G3S

A função 34 deste bloco SCB é viabilizar o acesso ao sistema de arquivos dos controladores da HI Tecnologia. O sistema de arquivo é gerenciado em memória do próprio controlador, e disponibiliza funções para acesso de leitura/escrita de dados em arquivos.

Para inserir este bloco SCB no programa ladder, deve-se posicionar o cursor na posição desejada, selecionar no menu à esquerda o grupo Especiais e clicar no botão correspondente, ico.

As pricipais funções de manipulação de arquivos dos controladores da HI Tecnologia são de leitura e escrita. Existem duas maneiras de abordar em um programa a leitura e escrita de variáveis em arquivos:

  • A maneira mais simples consiste em realizar as operações de leitura/escrita de cada tipo de dado individualmente em arquivos. Neste caso, é possível, por exemplo, ler e/ou escrever conjuntos individuais de variáveis dos tipos R, M, L, D e X em arquivos no controlador.
  • A outra maneira consiste na utilização de registros de dados. Um registro de dados corresponde a uma estrutura de variáveis do controlador, onde cada variável é denominada de campo. Um campo pode ser qualquer tipo de variável R, M, L, D e X do controlador. As operações sobre estes registros de dados permitem leitura/escrita de todos os campos do registro de cada vez.

A primeira se faz vantajosa pela simplicidade e facilidade de uso, sendo útil quando os dados a serem armazenados em arquivo não possuem uma uma estrutura pré-definida. A segunda se faz vantajosa quando os dados podem ser organizados em uma estrutura de dados (registros), e que por sua vez se repetem por todo o arquivo.

Para utilizar os registros do Sistema de Arquivos dos controladores, é necessário configurar a quantidade de registros e os campos de cada registro. Para isso, deve-se entrar no ambiente de programação e selecionar o Setup do Programa

Para saber a capacidade de armazenamento do sistema de arquivo, deve ser verificado na especificação do controlador a ser utilizado.

Deve-se verificar a disponibilidade do Sistema de Arquivos para o modelo de controlador utilizado, pois pode ser um item opcional, ou mesmo pode não estar disponível no controlador utilizado.

O controlador realiza uma operação de flush automático no arquivo a cada 512 bytes escritos. Assim, caso o programa de aplicação não realize esta operação para salvar os dados, pode ocorrer eventuais perda de dados, por exemplo, caso ocorra uma queda de energia entre escritas no arquivo.

Aviso

Caso o arquivo não seja fechado, ou não se realize a função “flush” sobre o arquivo, os dados escritos podem não ser preservados no sistema de arquivo. Este fato pode eventualmente ocasionar a perca de alguns dados, ou ainda corromper o sistema de arquivos.

Para acesso a funções mais complexas do Sistema de Arquivos, acesse as Funções Especiais de Acesso ao Sistema de Arquivos.

Formatar o Sistema de Arquivos

Formatar o sistema de arquivos
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Format” = código 91.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

Obter Informações do Sistema de Arquivos

Obter informações do Sistema de Arquivos
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Get Info File System” = código 30.
P3 M M[y + 0]

Versão do sistema de arquivo, no formato “VRrr”, onde:

  • V – Versão do sistema de arquivo
  • R – Revisão maior do sistema de arquivo
  • rr – Revisão menor do sistema de arquivo.

Veja Obs N

M[y + 1] Capacidade de arquivos suportado por esta versão do sistema de arquivos. Veja tabela de funcionalidade do Sistema de Arquivos.
M[y + 2] Capacidade de arquivos abertos simultaneamente por esta versão do sistema de arquivos. Veja tabela de funcionalidade do Sistema de Arquivos.
M[y + 3] Quantidade de arquivos abertos atualmente no sistema de arquivos. O valor 0 (zero) indica que não existe nenhum arquivo aberto.
P4 M M[z + 0]

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

obs Exemplo: O Valor 1215 indica:
1 - Versão do sistema de arquivo.
2 – Revisão maior do sistema de arquivo.
15 – Revisão menor do sistema de arquivo.

Obter Informações sobre os Espaços de Dados em Bytes

Obter Informações sobre os Espaços de Dados do Sistema de Arquivos em Bytes
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Get Space” = código 31.
M[x + 1] Número inicial da memória L para retornar todas as informações de tamanho associados ao sistema de arquivos. Obs Z1
P3 M M[y + 0] Quantidade de arquivos existentes atualmente na pasta raiz do sistema de arquivos.
P4 M M[z + 0]

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

Z1 As variáveis L[ k ], sendo k, o valor passado a M[x + 1] tem a seguinte distribuição.
L[k + 0]: Tamanho total do Sistema de Arquivos (bytes).
L[k + 1]: Tamanho livre do Sistema de Arquivos (bytes).
L[k + 2]: Tamanho ocupado do Sistema de Arquivos (bytes).
L[k + 3]: Tamanho com defeito no Sistema de Arquivos (bytes).
Esta função “Get Space” retorna o tamanho em variáveis do tipo “L” em Bytes, e a função “Get Space2” retorna o tamanho em variáveis do tipo “D” em MBytes.
Z2 O cóigo de erro 28 indica que o tamanho em Bytes do sistema de arquivos excede o valor de 32 bits com sinal. Neste caso utilize a função “Get Space 2” para obter o tamanho em Mbytes.

Obter Informações sobre os Espaços de Dados em MBytes

Obter Informações sobre os Espaços de Dados do Sistema de Arquivos em MBytes
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Get Space 2” = código 32.
M[x + 1] Número inicial da memória D para retornar todas as informações de tamanho associados ao sistema de arquivos. Obs N
P3 M M[y + 0] Quantidade de arquivos existentes atualmente na pasta raiz do sistema de arquivos.
P4 M M[z + 0]

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

obs As variáveis D[ k ], sendo k, o valor passado a M[x + 1] tem a seguinte distribuição.
D[k + 0]: Tamanho total do Sistema de Arquivos (MBytes).
D[k + 1]: Tamanho livre do Sistema de Arquivos (MBytes).
D[k + 2]: Tamanho ocupado do Sistema de Arquivos (MBytes).
D[k + 3]: Tamanho com defeito no Sistema de Arquivos (MBytes).
A função “Get Space” retorna o tamanho em variáveis do tipo “L” em Bytes, e esta função “Get Space2” retorna o tamanho em variáveis do tipo “D” em MBytes.

Criar Arquivo de Dados

Criar um arquivo de dados no sistema de arquivos
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Create File” = código 10.
M[x + 1] Identificador da variável string do tipo X cujo conteúdo especifica o nome do arquivo a ser criado.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

Criar Diretório de Dados

Criar um diretório no Sistema de Arquivos do Controlador
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Create Directory” = código 16.
M[x + 1]

Identificador da string cujo conteúdo especifica o texto com o caminho do diretório a ser criado, onde :

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

Nota

A funcionalidade de diretórios está apenas disponível para alguns firmwares G3S. Veja tabela de funcionalidade do Sistema de Arquivos.

Eliminar Arquivo ou Diretório

Eliminar um arquivo ou um diretório vazio no sistema de arquivos.

Eliminar um arquivo de dados
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Delete File/Directory” = código 11.
M[x + 1]

Identificador da string cujo conteúdo especifica o texto com o nome do arquivo ou do diretório a a ser eliminado, onde :

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

Nota

A funcionalidade de diretórios está apenas disponível para alguns firmwares G3S. Veja tabela de funcionalidade do Sistema de Arquivos.

Renomear Arquivo ou Diretório

Renomear um arquivo ou diretório no sistema de arquivos.

Renomear um arquivo de dados
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Rename File/Directory” = código 14.
M[x + 1]

Identificador da variável string do tipo X, cujo conteúdo especifica o nome corrente do arquivo ou diretório a ser renomeado.

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
M[x + 2]

Identificador da variável string do tipo X, cujo conteúdo especifica o novo nome para o arquivo ou diretório.

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

Nota

A funcionalidade de diretórios está apenas disponível para alguns firmwares G3S. Veja tabela de funcionalidade do Sistema de Arquivos.

Obter o Tamanho de um Arquivo

Obter o tamanho de um arquivo do sistema de arquivos.

Obter o tamanho de um arquivo de dados
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Length File” = código 22.
M[x + 1] Identificador da variável string do tipo X cujo conteúdo especifica o nome do arquivo.
M[x + 2] Número da memória do tipo “long” L, onde será retornado o tamanho do arquivo em bytes. N
P3 M M[n + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

obs A variável L[k], sendo k, o valor passado a M[x + 2] tem a seguinte descrição.
L[k]: Se o arquivo existir, retorna o tamanho total do arquivo em bytes.

Verificar se um Arquivo ou diretório Existe no Sistema de Arquivos

Verificar se um arquivo ou diretório existe no sistema de arquivos
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos.Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Exist File/Directory” = código 21.
M[x + 1]

Identificador da variável string do tipo X cujo conteúdo especifica o nome do arquivo a ser verificado se existe no sistema de arquivo.

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
P3 M M[y + 0]

Flag de existência do arquivo/diretório no sistema de arquivos, onde:

  • 0: Não existe o arquivo/diretório especificado no sistema de arquivos.
  • 1: O arquivo/diretório especificado existe, e neste caso teremos as demais informações listadas abaixo.
M[y + 1] Se arquivo/diretório existe, retorna código associado aos “Atributos” do arquivo/diretório encontrado. Vide descrição abaixo. Obs N
M[y + 2] Se arquivo/diretório existe, retorna o índice atribuído ao arquivo no sistema de arquivo(G3 apenas) (0..31).
P4 M M[z + 0]

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

obs Descrição dos valores para o campo de “Atributos”, onde cada bit representa um atributo:
  • bit 1 (valor 2 em hexadecimal): Acesso apenas de leitura.
  • bit 3 (valor 8 em hexadecimal): Não pode ser apagado por programa Ladder apenas pelo SPDSW.
  • bit 5 (valor 20 em hexadecimal): Arquivo/diretório é um projeto do SPDSW.
  • bit 7 (valor 80 em hexadecimal): Arquivo/diretório gerenciado pela aplicação Ladder do PLC (valor default).
  • bit 10 (valor 400 em hexadecimal): Diretório.

Nota

funcionalidade de diretórios está apenas disponível para alguns firmwares G3S. Veja tabela de funcionalidade do Sistema de Arquivos.

Informações do Arquivo Associado a um Índice do Sistema de Arquivo (G3)

Obter informações do arquivo que está associado a um índice do sistema de arquivo. Função disponível apenas no firmware G3. Para o firmware G3S utilize a função “Info Name File”, código 25.

Informações do arquivo que está associado a um índice do sistema de arquivo
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Info Index File” = código 20.
M[x + 1] Índice do arquivo (0..31) a ser obtidas as informações. Este índice do arquivo é obtidocomo parâmetro de retorno da função “Exist File”.
M[x + 2] Identificador da variável string do tipo X, onde será retornado o nome do arquivo caso exista neste índice especificado.
P3 M M[y + 0]

Flag de existência do arquivo no sistema de arquivos, onde:

  • 0: Não existe arquivo no índice de arquivo especificado.
  • 1: Existe arquivo neste índice de arquivo, e neste caso têm as demais informações listadas abaixo.
M[y + 1] Se existe arquivo, retorna Dia da criação do arquivo (1..31).
M[y + 2] Se existe arquivo, retorna Mês da criação do arquivo (1..12).
M[y + 3] Se existe arquivo, retorna Ano da criação do arquivo (AAAA).
M[y + 4] Se existe arquivo, retorna Hora da criação do arquivo(0..23).
M[y + 5] Se existe arquivo, retorna Minutos da criação do arquivo (0..59).
M[y + 6] Se existe arquivo, retorna Segundos da criação do arquivo (0..59).
P4 M M[z + 0]

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

Informações do Arquivo/Diretório através de seu nome (G3S)

Obter informações do arquivo/diretório através de seu nome. Função disponível apenas no firmware G3S. Para o firmware G3 utilize a função “Info Index File/Directory”, código 20.

Informações do arquivo através de seu nome do sistema de arquivo
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Info Name File/Directory” = código 25.
M[x + 1]

Identificador da variável string do tipo X, cujo conteúdo especifica o nome do arquivo/diretório a ser obtido as informações do arquivo.

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
P3 M M[y + 0]

Flag de existência do arquivo/diretório no sistema de arquivos, onde:

  • 0: Não existe arquivo no índice de arquivo especificado.
  • 1: Existe arquivo neste índice de arquivo, e neste caso teremos as demais informações listadas abaixo.
M[y + 1] Se existe arquivo/diretório, retorna Dia da criação do arquivo (1..31).
M[y + 2] Se existe arquivo/diretório, retorna Mês da criação do arquivo (1..12).
M[y + 3] Se existe arquivo/diretório, retorna Ano da criação do arquivo (AAAA).
M[y + 4] Se existe arquivo/diretório, retorna Hora da criação do arquivo (0..23).
M[y + 5] Se existe arquivo/diretório, retorna Minutos da criação do arquivo(0..59).
M[y + 6] Se existe arquivo/diretório, retorna Segundos da criação do arquivo(0..59).
P4 M M[z + 0]

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

Nota

A funcionalidade de diretórios está apenas disponível para alguns firmwares G3S. Veja tabela de funcionalidade do Sistema de Arquivos.

Informações de Status de um Arquivo

Informações de status de um arquivo.
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Get Status File” = código 24.
M[x + 1]

Identificador da variável string do tipo X, cujo conteúdo especifica o nome do arquivo a ser obtido as informações de status, onde:

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
P3 M M[y + 0] Número total de acessos abertos para leitura do arquivo.
M[y + 1] Número total de acessos abertos para escrita do arquivo.
P4 M M[z + 0]

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

Abrir um Arquivo e Obter um Identificador

Abrir um arquivo no sistema de arquivos e obter um identificador (handle) de acesso para o arquivo aberto.

Abrir um arquivo e obter um identificador
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma onstante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Open File” = código 12.
M[x + 1] Identificador da variável string do tipo X, cujo conteúdo especifica o nome do arquivo ser aberto.
M[x + 2]

Modo de acesso ao arquivo de dados a ser aberto, onde:

  • 2: abre arquivo para leitura de dados a partir do início do arquivo.
  • 4: abre arquivo para escrita de dados a partir do início do arquivo sobrescrevendo os dados caso existam.
  • 8: abre arquivo para escrita de dados, adicionando os dados no final arquivo.
P3 M M[y + 0] Identificador (handle) do arquivo aberto no sistema de arquivos. Este identificador deve ser utilizado para diversas funções de acesso ao arquivo, tais como as funções de leitura e escrita de dados no arquivo.
P4 M M[z + 0]

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

Verificar se um Arquivo está Aberto

Verificar se um arquivo está com pelo manos um acesso aberto no sistema de arquivos. Note que um arquivo pode, por exemplo, estar aberto simultaneamente com um acesso de leitura e outro acesso de escrita.

Abrir um arquivo e obter um identificador
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma onstante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0]

Código da função “File Is Open” = código 42.

Veja Obs N

M[x + 1]

Identificador da variável string do tipo X, cujo conteúdo especifica o nome do arquivo a ser verificado se possui um acesso aberto, onde :

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
P3 M M[y + 0]

Flag se arquivo possui acesso aberto no sistema de arquivos, onde:

  • 0: Não existe acesso aberto ao arquivo especificado no sistema de arquivos.
  • 1: Existe pelo menos um acesso aberto ao arquivo especificado no sistema de arquivos.
P4 M M[z + 0]

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

obs Função disponivel apenas nos controladores da geração G3S.
. P7C G3S - firmware versão 1.6.12 ou superior (CPU302)
. ZAP91X G3S - firmware versão 2.6.09 ou superior
. NEON G3S - firmware versão 1.6.10 ou superior

Reposicionar o Ponto de Acesso para Leitura/Escrita de um Arquivo

Reposicionar o ponto de acesso para leitura/escrita de um arquivo que foi aberto pela função “Open File”.

Reposicionar o ponto de acesso para leitura/escrita de um arquivo
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Seek File” = código 15.
M[x + 1] Identificador(handle) do arquivo a ser reposicionado o acesso. Este identificador é obtido através da, função “Open File”.
M[x + 2]

Referência para reposicionar o acesso ao arquivo, onde:

  • 0 = offset a partir do início do arquivo.
  • 1 = offset a partir da posição corrente de acesso do arquivo.
  • 2 = offset a partir do fim do arquivo.
M[x + 3] Número da memória do tipo “long” L, cujo conteúdo deve conter o valor do offset para reposicionar o acesso ao arquivo.
M[x + 4] Número da memória do tipo “long” L, onde será retornado o parâmetro de saída. N
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

obs A variável L[ k ], sendo k, o valor passado a M[x + 4] tem a seguinte descrição.
L[ k ]: Retorna o total de bytes, considerando como referência o inicio do arquivo até a nova posição de acesso do arquivo. Para calcular esta quantidade de bytes, sempre é utilizado como referência o início do arquivo.

Escrever um Conjunto de Variáveis em Arquivo

Escrever um conjunto de variáveis da base de dados da aplicação Ladder em um arquivo do sistema de arquivos.

Escrever um conjunto de variáveis da aplicação Ladder em um arquivo de dados.
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Write Variable” = código 2.
M[x + 1] Identificador (handle) do arquivo a serem escritos os dados. Este identificador é obtido através da função “Open File”.
M[x + 2] Tipo de variável do controlador onde serão lidos os dados a serem escritos no arquivo, onde: Obs N
M[x + 3] Número inicial da variável (R, M, D, L, X) da base de dados do controlador com os dados a serem escritos no arquivo.
M[x + 4] Quantidade de variáveis (R, M, D, L, X) a serem escritos no arquivo a partir da variável inicial especificada no parâmetro anterior.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

obs 0 - Tipo R - Contato auxiliar (booleana).
1 - Tipo M - Variável inteira de 16 bits.
2 - Tipo D - Variável em ponto flutuante.
3 - Tipo L - Variável inteira de 32 bits.
10 - Tipo X: texto no formato padrão dos Controladores da HI Tecnologia.
11 - Tipo X: texto com tamanho fixo e com delimitador de fim de texto.
12 - Tipo X: texto com tamanho reduzido e com delimitador de fim de texto.
13 - Tipo X: texto com tamanho reduzido e sem o delimitador de fim de texto.

Ler um Conjunto de Variáveis de um arquivo.

Ler um conjunto de variáveis de um arquivo do sistema de arquivos e armazená-los em variáveis da base de dados da aplicação Ladder

Ler um conjunto de variáveis da aplicação Ladder de um arquivo.
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Read Variable” = código 1.
M[x + 1] Identificador (handle) do arquivo a serem lidos os dados. Este identificador é obtido através da função “Open File”
M[x + 2] Tipo de variável do controlador onde serão armazenado os dados lidos do arquivo, onde: Obs N
M[x + 3] Número inicial da variável (R, M, D, L, X) da base de dados do controlador onde serão salvos os dados lidos do arquivo.
M[x + 4] Quantidade de variáveis (R, M, D, L, X) a serem lidas do arquivo.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

obs 0 - Tipo R - Contato auxiliar (booleana).
1 - Tipo M - Variável inteira de 16 bits.
2 - Tipo D - Variável em ponto flutuante.
3 - Tipo L - Variável inteira de 32 bits.
10 - Tipo X: texto no formato padrão dos controladores. 11 - Tipo X: texto com tamanho fixo e com delimitador de fim de texto.

Escrever um Conjunto de Registros de dados do controlador e Armazená-los

Escrever um conjunto de registros de dados do controlador e armazená-los em variáveis da Base de dados da Aplicação Ladder
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Write Register” = código 6.
M[x -+ 1] Identificador (handle) do arquivo a serem escritos os dados. Este identificador é obtido através da função “Open File”.
M[x + 2] Identificador da especificação do registro de dados a ser escrito no arquivo. Esteidentificador é especificado no aplicativo SPDSW, e pode assumir valor entre [0..3].
M[x + 3] Quantidade de registros de dados a serem escritos no arquivo [1..5]. Esta função permite escrever até 5 registros de dados consecutivos no arquivo.

M[x + 4]

M[x + 5]

Número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão lidos os dados associados ao campo 1 do registro e que serão escritos no arquivo. Se existir campo de dados 2 na especificação do registro de dados, este parâmetro indica o número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão lidos os dados associados a este campo 2 do registro, e que serão escritos no arquivo.
M[x + 6] Se existir campo de dados 3 na especificação do registro de dados, este parâmetro indica o número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão lidos os dados associados a este campo 3 do registro, e que serão escritos no arquivo.
M[x + 7] Se existir campo de dados 4 na especificação do registro de dados, este parâmetro indica o número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão lidos os dados associados a este campo 4 do registro, e que serão escritos no arquivo.
M[x + 8] Se existir campo de dados 5 na especificação do registro de dados, este parâmetro indica o número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão lidos os dados associados a este campo 5 do registro, e que serão escritos no arquivo.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

Ler um Conjunto de Registros de dados de Arquivo e Armazená-los

Ler um conjunto de registros de dados de um arquivo e armazená-los em variáveis da Base de dados da Aplicação Ladder.

Ler um conjunto de registros de dados de um arquivo e armazená-los em variáveis da Base de dados da Aplicação Ladder
Par. Tp Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Read Register” = código 5.
M[x + 1] Identificador (handle) do arquivo a serem lidos os dados. Este identificador é obtido através da função “Open File”.
M[x + 2] Identificador da especificação do registro de dado a ser lido do arquivo. Este identificador é especificado no aplicativo AMBIENTE|, e pode assumir valor entre [0..3].
M[x + 3] Quantidade de registros de dados a serem lidos do arquivo [1..5]. Esta função permite ler até 5 registros de dados consecutivos do arquivo.
M[x + 4] Número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão armazenados os dados associados ao campo 1 do registro que serão lidos do arquivo.
M[x + 5] Se existir campo de dados 2 na especificação do registro de dados, este parâmetro indica o númeroinicial da variável (R,M,D,L,X) na base de dados do controlador onde serão armazenados os dados associados a este campo 2 do registro que serão lidos do arquivo.
M[x + 6] Se existir campo de dados 3 na especificação do registro de dados, este parâmetro indica o número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão armazenados os dados associados a este campo 3 do registro que serão lidos do arquivo.
M[x + 7] Se existir campo de dados 4 na especificação do registro de dados, este parâmetro indica o número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão armazenados os dados associados a este campo 4 do registro que serão lidos do arquivo.
M[x + 8] Se existir campo de dados 5 na especificação do registro de dados, este parâmetro indica o número inicial da variável (R,M,D,L,X) na base de dados do controlador onde serão armazenados os dados associados a este campo 5 do registro que serão lidos do arquivo.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

O Processo de Escrita em Arquivos

O processo de escrita em arquivos armazena temporariamente os dados em uma base interna na memória do controlador. Esta função salva efetivamente os dados desta base interna do arquivo na memória não volátil do arquivo, sem que seja necessário fechar o arquivo. Cabe lembrar que este procedimento para salvar os dados efetivamente na memória é realizado automaticamente pelo controlador, e se necessário para a aplicação Ladder, também está disponibilizada esta funcionalidade através desta função “Flush”.

O processo de escrita em arquivos
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Flush File” = código 3.
M[x + 1] Identificador (handle) do arquivo a ser realizado o flush dos dados. Este identificador é obtido através da função “Open File”.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

Fechar um Arquivo de Dados pelo seu Identificador

Fechar um arquivo de dados no sistema de arquivos através do seu identifciador, garantindo que todos os dados escritos sejam efetivamente persistidos.

Fechar um arquivo de dados
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0] Código da função “Close File by Handle” = código 13.
M[x + 1] Identificador (handle) do arquivo a ser fechado. Este identificador é obtido atravé da função “Open File”.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

Fechar um Arquivo de Dados pelo seu Nome

Fechar um arquivo de dados no sistema de arquivos através do seu nome, garantindo que todos os dados escritos sejam efetivamente persistidos. Note que se o mesmo arquivo possuir mais de um acesso aberto, por exemplo, um acesso de leitura e outro de escrita, todos os acessos abertos serão fechados.

Fechar um arquivo de dados
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0]

Código da função “Close File by Name” = código 41. Note que se um mesmo arquivo pode possuir mais de um acesso, por exemplo, um acesso de leitura e outro de escrita, e neste caso, todos oa acessos abertos associados a este arquivo são fechados. Para fechar arquivos por tipo de acesso utilize a função “Close File by Handle”.

Veja Obs N

M[x + 1]

Identificador da variável string do tipo X, cujo conteúdo especifica o nome do arquivo ser fechado.

  • Se identificador maior ou igual a 0: a string é obtida de uma variável string X da aplicação ladder. Por exemplo: X0, X1, etc.
  • Se identificador menor que 0: a string é obtida de uma constante string W da aplicação ladder. Por exemplo: W1, W2, W3, etc.
P3 M M[y + 0] Parâmetro não utilizado para esta função (parâmetro dummy).
P4 M M[z + 0]

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

obs Função disponivel apenas nos controladores da geração G3S.
. P7C G3S - firmware versão 1.6.12 ou superior (CPU302)
. ZAP91X G3S - firmware versão 2.6.09 ou superior
. NEON G3S - firmware versão 1.6.10 ou superior

Fechar Todos os Arquivos de Dados

Fechar todos os arquivos de dados no sistema de arquivos que possuem um acesso aberto, seja para leitura e/ou escrita.

Fechar um arquivo de dados
Parâmetros Tipos Valores Descrição
P1 K 0..Max(K) Função do bloco SCB de acesso ao sistema de arquivos. Deve ser uma constante inteira (Knn) cujo valor deve ser 34.
P2 M M[x + 0]

Código da função “Close All Files” = código 40. Note que um mesmo arquivo pode possuir mais de um acesso, por exemplo, um acesso de leitura e outro de escrita, e neste caso todos oa acessos abertos a todos os arquivos são fechados.

Veja Obs N

P3 M M[y + 0] Quantidade de acessos fechados associados aos arquivos existentes no sistema de arquivos do controlador.
P4 M M[z + 0]

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

obs Função disponivel apenas nos controladores da geração G3S.
. P7C G3S - firmware versão 1.6.12 ou superior (CPU302)
. ZAP91X G3S - firmware versão 2.6.09 ou superior
. NEON G3S - firmware versão 1.6.10 ou superior

Demais funções

Para acesso a funções mais complexas do Sistema de Arquivos, acesse as Funções Especiais de Acesso ao Sistema de Arquivos.

Códigos de Erro de P4

Códigos de Erros de P4
Código de erro Descrição
0 Função executada com sucesso. Nenhuma falha identificada no processo.
4 Controlador não possui o hardware que corresponde ao Sistema de Arquivos. É necessário atualizar o hardware. Exemplo: Chamada da função “Open File” e o controlador não possui suporte para Sistema de Arquivos.
5 Parâmetros inválidos passados para a função de acesso ao sistema de arquivo. Exemplo: Código do identificador (handle) inválido para acesso ao sistema de arquivo.
6 Função inválida de acesso ao sistema de arquivo. Exemplo: Código da função de acesso ao sistema de arquivo inválido. Por exemplo, um código de função diferente de “Create File”, “Open File”, “Read Variable”, “Read Variable”, etc.
7 Função não implementada no sistema de arquivo. Exemplo: Código da função de acesso ao sistema de arquivo não disponível na versão corrente do sistema de arquivo.
16 Não é uma situação de erro, significa que a operação solicitada foi iniciada mas ainda não foi concluída. O resultado da operação está pendente.
17 Senha inválida foi fornecida na abertura de arquivo (“Open File”). Exemplo: O SPDSW criou um arquivo com senha de acesso e a aplicação Ladder tentou ler o arquivo sem fornecer a senha (ou vice-versa).
24 Programa Ladder não está com o acesso ao sistema de arquivo disponível. Outro aplicativo está acessando o mesmo, por exemplo, o aplicativo SPDSW, ou algum coletor de dados.
26 Atingido limite de arquivos suportado pelo sistema de arquivos. Exemplo: Chamada da função “Create File” e o sistema de arquivo está com a capacidade máxima de arquivos.
27 Sem dados disponíveis para acesso. Exemplo: Chamada da função “Read File” e o arquivo está vazio, ou não existem mais dados para serem lidos (atingiu o final do arquivo).
31 Erro no acesso à leitura do arquivo no sistema de arquivo. Exemplo: Chamada da função “Read” e ocorreu erro no acesso a leitura no arquivo no sistema de arquivo.
32 Erro no acesso à escrita do arquivo no sistema de arquivo. Exemplo: Chamada da função “Write” e ocorreu erro no acesso a escrita do arquivo no sistema de arquivo.
33 Sistema de arquivo não está formatado. Exemplo: Chamada da função “Open File” e sistema de arquivo não está inicializado e formatado. Deve-se realizar uma formatação do Sistema de Arquivos para inicialização, por exemplo, através do aplicativo SPDSW.
34 Sistema de arquivo está em processamento de alguma outra função de acesso ou está em processo de inicialização. Exemplo: Chamada da função “Write” logo no primeiro ciclo de scan do controlador, pois o Sistema de Arquivos necessita de um tempo inicial para sua respectiva inicialização. Exemplo: Aplicação Ladder solicita operação, mas o sistema de arquivos está ocupado executando solicitação prévia do aplicativo SPDSW.
165 Falha na alocação de recursos internos do controlador para a gerência do sistema de arquivos.
166 Falha na operação de apagar uma página do Sistema de Arquivos do controlador.
167 Sistema de arquivos corrompido. O usuário deve tentar recuperar os arquivos existentes, mas não há garantia de sucesso nesta operação, e a seguir, o sistema de arquivos deve ser formatado novamente para retornar a um estado consistente.
168 Função de acesso ao arquivo incompatível com modo de acesso especificado para o arquivo. Por exemplo, abriu arquivo no modo de escrita, e está realizando operação de leitura, e vice-versa.
169 Sistema de arquivos parcialmente corrompido. O usuário deve tentar apagar os arquivos comprometidos, e se o erro persistir após a remoção de arquivos suspeitos de corrupção será necessário formatar o Sistema de Arquivos para retornar a um estado consistente.
170 Arquivo está aberto para acesso a escrita, não permitindo a realização da função especificada.
173 Nome de arquivo inválido ou excede o limite de 48 caracteres.
174 O arquivo solicitado não foi encontrado. Isso significa que o parâmetro de identificação do arquivo (nome ou índice ou handle) está com valor incorreto.
175 Tentativa de criar um novo arquivo utilizando um nome de arquivo que já existe no sistema de arquivos, logo um nome diferente deve ser escolhido para o novo arquivo, ou o arquivo pré-existente deve ser apagado antes da criação do novo arquivo.
176 Tentativa de abrir um arquivo quando o limite de arquivos abertos já foi atingido. É necessário fechar um ou mais arquivos antes que seja possívelabrir um novo arquivo.
177 O valor do parâmetro handle, que identifica um arquivo aberto não corresponde a nenhum arquivo efetivamente aberto.
205 Base de dados associada à variável R, M, D, L ou X, acessada na base de dados de aplicação, não possui nenhuma variável alocada. Exemplo: Solicitar a leitura de dados de um arquivo e as variáveis R, M, D, L ou X indicadas como destino dos dados não possuem nenhuma variável alocada na base de dados da aplicação. Por exemplo,solicitou a leitura de um registro de dados composto por variável M e X, e não existe base de variáveis X alocadas na aplicação Ladder. Exemplo: Solicitar a escrita de dados em um arquivo e as variáveis R, M, D, L ou X indicadas como origem dos dados não possuem nenhuma variável alocada na base de dados da aplicação. Por exemplo, solicitou a escrita de um registro de dados composto por variável R e X, e não existe base de variáveis X alocadas na aplicação Ladder.
206 Variável R, M, D, L ou X acessada na base de dados de aplicação não está alocada. Exemplo: Solicitar a leitura de dados do arquivo e nem todas as variáveis R, M ou D indicadas como destino dos dados estão alocadas na base de dados da aplicação. Por exemplo, solicitar a leitura de 100 memórias M que serão salvas nas memórias M200 a M299, mas na base de dados da aplicação têm-se alocadas até a memória M250. Exemplo: Solicitar a escrita de dados do arquivo e nem todas as variáveis R, M ou D indicadas como origem dos dados estão alocadas na base de dados da aplicação. Por exemplo, solicitar a escrita de 50 memórias D, cujos valores estão nas memórias D100 a D149, mas na base de dados da aplicação têm-se alocadas até a memória D120.
215 Sem dados disponíveis para acesso. Exemplo: Especificar uma variável string para um nome de arquivo, e a mesma não foi alocada no controlador ou está como uma string nula, representando um nome de arquivo inválido ou nulo.

Entradas

Descrição das Entradas
Entrada Função Estado Descrição
A1 Ativação Inativo Neste estado o bloco não executa nenhuma ação, repassando apenas o estado inativo para a saída B1.
Ativo Neste estado o bloco executa a funcionalidade associada ao mesmo. OBS: Cabe ressaltar que, para o bloco SCB, esta entrada opera por transição ou seja, o bloco é executado apenas quando a entrada A1 muda do estado inativo para o estado ativo. Uma vez ativada, a entrada A1 deverá permanecer ativa até o término da execução da função que é sinalizado através da ativação da saída B1 do bloco.

Saída

Descrição das Saídas
Saída Função Estado Descrição
B1 Ativação/Falha Inativo A saída B1 sempre estará inativa se a entrada A1 estiver inativa. Quando a entrada A1 for ativada a saída B1 permanecerá inativa enquando o bloco estiver executando o comando associado indicando que o processo ainda não terminou.
Ativo Indica fim de execução do processo associado ao bloco. Para identificar se a função foi executada com sucesso é necessário examinar o parâmetro P4, que contém o código indicando o resultado da execução do processo associado. Para mais informações sobre os códigos disponíveis para esta função consulte a tabela de Códigos de Erro de P4 .

Funcionalidade do Sistema de Arquivos

A tabela abaixo, mostra a lista de funcionalidades para geração de controladores.

Funcionalidades G3 G3S
Número Máximo de Arquivos
  1. Z1
Sem limites pré-definidos. Depende do tamanho da memória disponível no controlador utilizado.
Número Máximo de Arquivos abertos
  1. Z1
Suporte a Diretórios Não. Sim. Z2
obs Z1 O limite de arquivos mudou para 32 e o limite de arquivos abertos simultaneamente de 5 para 16 a partir das versões:
  • ZAP 91X: 1.0.00
  • P7C CPU301: 1.1.05
  • P7C PPU 305: 1.0.01
Z2 O Suporte a diretórios na geração G3S surgiu com as versões:
  • NEON: 1.3.16
  • ZAP 91X S: 2.3.10
  • P7C G3S: 1.3.12

Nota

A execução dos comandos de Sistema de Arquivos pode levar vários ciclos de scan para ser concluído. Portanto, verifique a condição da saída do bloco para certificar-se que o processo está terminado e, avalie o valor para parâmetro P4 para identificar possíveis falhas.