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 | ![]() |
| 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,
.
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: |
| 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:
|
![]() |
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 ![]() |
||
| 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:
|
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 ![]() |
||
| 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:
|
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 :
|
||
| 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 :
|
||
| 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.
|
||
| M[x + 2] | Identificador da variável string do tipo X, cujo conteúdo especifica o novo nome para o arquivo ou diretório.
|
||
| 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. ![]() |
||
| 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:
|
![]() |
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.
|
||
| P3 | M | M[y + 0] | Flag de existência do arquivo/diretório no sistema de arquivos, onde:
|
| M[y + 1] | Se arquivo/diretório existe, retorna código associado
aos “Atributos” do arquivo/diretório encontrado.
Vide descrição abaixo. Obs ![]() |
||
| 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:
|
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:
|
| 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.
|
||
| P3 | M | M[y + 0] | Flag de existência do arquivo/diretório no sistema de arquivos, onde:
|
| 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:
|
||
| 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:
|
||
| 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. |
| 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 :
|
||
| P3 | M | M[y + 0] | Flag se arquivo possui acesso aberto no sistema de arquivos, onde:
|
| P4 | M | M[z + 0] | Código de retorno da execução da função, onde:
|
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:
|
||
| 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. ![]() |
||
| 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:
|
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 ![]() |
||
| 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:
|
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 ![]() |
||
| 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:
|
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”. |
| M[x + 1] | Identificador da variável string do tipo X, cujo conteúdo especifica o nome do arquivo ser fechado.
|
||
| 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 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. |
| 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:
|
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.
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.



