.. include:: glb_defs.txt .. |ico| image:: ../shared_img/_cmd/m7.png .. _`Funções Especiais de Acesso ao Sistema de Arquivos`: Funções Especiais de Acesso ao Sistema de Arquivos ################################################### +---------------------------------------------------------------------------------+ |:ref:`Bloco de Controle Padrão` | +-------------+-------------------------------------------------------------------+ |Função |Funções Especiais de Acesso ao Sistema de Arquivos | +-------------+-------------------------------------------------------------------+ |Código |**34** | +-------------+-------------------------------------------------------------------+ |Caminho |Programa/Editor Ladder/Elementos/Especiais/Bloco de controle Padrão| +-------------+-------------------------------------------------------------------+ |Grupo |Especiais | +-------------+-------------------------------------------------------------------+ |Ícone ||ico| | +-------------+-------------------------------------------------------------------+ .. only:: hitec +-----------------------------------+ |:ref:`compatibilidade de firmware` | +-------------------+---------------+ |Geração de Firmware|G3S | +-------------------+---------------+ As funções descritas aqui são funções mais complexas que fazem uso do Sistema de Arquivos disponível no controlador. Para ter acesso as funções atômicas do Sistema de Arquivos, acesse :ref:`Acesso ao Sistema de Arquivos`. Carregar arquivo de Parâmetros ================================ Esta função carrega parâmetros no controlador, os parâmetros são descritos em um arquivo "csv" seguindo uma especificação própria, descrita abaixo. O bloco abre o arquivo, realiza o processamento no arquivo, obtendo cada parâmetro e atribuindo-o ao controlador. Após processar todos os parâmetros ou encontrar um mal especificado fecha o arquivo. +----------------------------------------------------------------------------------------------+ |Carregar arquivo de Parâmetros | +============+======+=========+================================================================+ |Parâmetros |Tipos |Valores |Descrição | +------------+------+---------+----------------------------------------------------------------+ |P1 |K |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 "Load Parameters" = código 105. | | | +---------+----------------------------------------------------------------+ | | |M[x + 1] |Identificador da variável string do tipo X, cujo | | | | |conteúdo especifica o nome do arquivo ser aberto. Obs |N|. | +------------+------+---------+----------------------------------------------------------------+ |P3 |M |M[y + 0] |Retorna a quantidade de linhas processadas. | +------------+------+---------+----------------------------------------------------------------+ |P4 |M |M[z + 0] |Código de retorno da execução da função, onde: **Igual a 0** | | | | |Indica função executada com sucesso **Diferente de 0** - | | | | |Indica condição de falha. Vide :ref:`tabela de códigos de erro`.| +------------+------+---------+----------------------------------------------------------------+ .. rst-class:: tbobs ====== ====================================================================================== |obs| O identificador do nome do arquivo segue a seguinte classificação \ * Quando maior que 0 ( > 0 ), o nome do arquivo esta em uma constante string (W) do Programa do PLC \ * Quando menor ou igual a 0 ( <= 0 ), o nome do arquivo esta em variável String (X) do PLC ====== ====================================================================================== Especificação do arquivo ------------------------- O arquivo que contém os parâmentros deve ser um arquivo "csv" padrão. Cada linha deve conter apenas um parâmetro, não sendo aceito outros campos, como por exemplo um comentário. :: .. only:: hitec or incon **Letra que identifica o campo:** +---+-------------------------------------+ | R | Memóricas do tipo R do controlador | +---+-------------------------------------+ | M | Memóricas do tipo M do controlador | +---+-------------------------------------+ | D | Memóricas do tipo D do controlador | +---+-------------------------------------+ | L | Memóricas do tipo L do controlador | +---+-------------------------------------+ | F | Memóricas do tipo R do controlador | +---+-------------------------------------+ .. only:: weg **Letra que identifica o campo:** +---+-------------------------------------+ | R | Memóricas do tipo R do controlador | +---+-------------------------------------+ | M | Memóricas do tipo M do controlador | +---+-------------------------------------+ | D | Memóricas do tipo D do controlador | +---+-------------------------------------+ | L | Memóricas do tipo L do controlador | +---+-------------------------------------+ | F | Memóricas do tipo R do controlador | +---+-------------------------------------+ | P | Parâmetros do inversor | +---+-------------------------------------+ **Indice do parâmetro:** Indice de acesso ao parâmetro. **Valor do Perâmetro:** Valor que deve ser atribuído ao parâmentro **Separador de Campo:** O separador de campo é dado pela configuração da aplicação ladder que está rodando. **Exemplo de Arquivo válido:** :: R,1,1, R,2,0, M,10,789, M,11,526, M,10,789, D,11,1.365, D,10,556.9, L,11,365512, L,10,25488, .. note:: Deve se manter o bloco SCB ativado até o final de sua execução, ou seja, até o momento em que a saída é energizada Códigos de Erro de P4 ======================== =========== =============================================================================================== Códigos de Erros de P4 ============================================================================================================= Código 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 |AMBIENTE| 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 |AMBIENTE|, 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 |AMBIENTE|. **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 |AMBIENTE|. **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`_ . | +-------+---------------+--------+-------------------------------------------------------------+