INÍCIO > Fórum > controladores SlimLine e Netsyst (LogicLab) > Como usar o SDCard para salvar arquivos de log
- Este tópico tem 19 respostas, 10 participantes e foi atualizado pela última vez 4 anos, 11 meses atrás da Sergio Bertana.
-
autorPublique
-
Agosto 4, 2011 em 8: 44 am #35074AnônimoConvidado
Acabei de atualizar o firmware no módulo da CPU SlimLine com a nova versão que suporta o sistema de arquivos. Estou tentando fazer um programa simples que salva dados em um arquivo de log SDCard, mas não consigo fazer funcionar. Você pode me dar alguma informação?
Agosto 4, 2011 em 8: 46 am #36879Sergio BertanaAdministrador do fórumO sistema operacional do SlimLine da versão SFW167C100 (para atualização, consulte Perguntas frequentes), suporta o sistema de arquivos. Dois diretórios são gerenciados Armazenamento (De 100 Kb) localizado na memória EEPROM presente no módulo da CPU, SDCard (Máx. 512 Mb) presente no cartão SD que deve ser inserido no módulo da CPU. Para acessar os diretórios, a formatação deve ser realizada Formato por Telnet. Para a lista completa de comandos Telnet, consulte manual de referência, as credenciais de login padrão para Telnet e FTP para o administrador são Nome de usuário: Administrador, Senha AdministradorEm linha com o comando Format é necessário definir o número de arquivos aceitos para cada diretório, até um máximo de 12 arquivos no total. O primeiro parâmetro refere-se aos arquivos no Storage, o segundo aos arquivos no SDCard (se não estiver presente, insira 0). Exemplo, para ter 2 arquivos no armazenamento e 4 no SDCard daremos o comando Formato 2, 4, se o comando for executado corretamente ele retornará a mensagem Formato Ok, Armazenamento: arquivos 2, SDCard: arquivos 4Conectando-se ao SlimLine com um cliente FTP (exemplo FileZilla), será possível visualizar a árvore de diretórios e acessar na leitura e escrita, criando, apagando, editando os arquivos dentro deles (Ver imagem de tela).
Agosto 4, 2011 em 10: 16 am #36880Sergio BertanaAdministrador do fórumQuanto à sua necessidade de escrever um arquivo de log no SDCard, criei um programa LogicLab simples (Baixar) que salva um arquivo nomeado CLog.txt, com dentro de 50 registros de log do valor de tensão adquirido por uma entrada analógica.
O arquivo contém registros salvos no formato CSV para serem facilmente importados para o Excel, cada registro contém 5 campos separados por ";"(Exemplo: 01;12;12;03;01.8;) O 1º campo é um registro progressivo de 0 a 49. O 2º, 3º, 4º campo mostra a hora, minutos e segundos do registro. O 5º campo mostra o valor de tensão adquirido em volts.
A gravação do registro de log é feita por este programa em ST (listagem), que "preenche" a matriz LogRecord com string log ascii (5 campos separados por ";"). A função SysVarsnprintf escreve o valor seguido pelo código terminador "0", então é necessário começar a escrever o próximo valor na posição do array onde a escrita anterior colocou o código terminador.
Terminou o registro de registro, com a função Sysfseek, o posicionamento é realizado no arquivo na posição de gravação e com a função Sysfwrite a escrita está concluída.
Junho 25, 2012 em 10: 32 am #37297MicheleparticipanteUo one SlimLine e eu gostaria de usar o SDCARD como um registrador de dados, vi neste tópico que falamos sobre cartão SD no máximo 512 MB. Este limite é devido ao uso do cartão SD como SPI Flash ou também posso usar um cartão SD com um tamanho superior a 512?
Obrigado, como sempre, pelo apoio valioso deste fórum e parabéns pelo gerenciamento eficiente do mesmo.
Junho 25, 2012 em 11: 58 am #37298Sergio BertanaAdministrador do fórumGerenciamento do sistema de arquivos no módulo da CPU SlimLine O ARM7 é limitado, portanto, um limite foi imposto ao tamanho máximo do cartão SD que pode ser gerenciado. Cartões SD com tamanho máximo de 2 Gb podem ser usados, mas o tamanho máximo da área de memória gerenciada pelo sistema de arquivos é 512 MB.
Setembro 9, 2014 em 2: 02 pm #38407OscarparticipanteObrigado pela dica, tentei seguir estes passos, mas encontrei os seguintes problemas. Eu executei o comando Formato 4, 0 como relatado nesta publicação, mas recebi uma mensagem de erro, então eu executei o comando Formato de armazenamento, 4 a partir de Manual de comando Telnet através de ferramentas. Eu leio o comando Dir Storage:
Diretório de "Armazenamento"
Espaço para 4 arquivo (s) de 67254 byte cadaTentei então conectar com o FileZilla, configurado de acordo com os parâmetros que você sugere, a conexão está corretamente estabelecida com o servidor, mas em resposta recebo a mensagem que o PLC não tem pastas para disponibilizar. Com o explorer, o ftp permanece "suspenso" sem respostas. Enviei o programa proposto, modificando
IF (SysClock1000 = Pulso) ENTÃO RETORNO; END_IF;
Pulso: = SysClock1000; (* Pulso base de tempo *)
Fp: = Sysfopen ('Armazenamento / CLog.txt', 'a'); (* Abra o arquivo no modo "anexar". *)In
Time: = sysTime;
WHILE SysTime - Tempo <60000 DO END_WHILE; (* escrever uma linha no registro a cada minuto *)
Fp: = Sysfopen ('Armazenamento / CLog.txt', 'a'); (* Indicador de arquivo *)O resto permanece inalterado. A escrita 'Storage / CLog.txt', 'a' aparece em vermelho no editor ST. Eu executo o programa na tarefa Voltar, na Tarefa Lenta tenho outros programas que funcionam corretamente.
Neste ponto o PLC para, o status vai para NÃO EXECUTAR, tentei enviar um programa que estava funcionando, mas a conexão USB foi perdida. Eu desliguei e liguei o PLC, o LED RUN começa a piscar com uma sequência fixa. Depois de uma série de tentativas de reiniciar e enviar programas, consegui reiniciá-lo com um programa antigo. Eu parei aqui.
Será que o espaço para depositar o arquivo não está disponível corretamente? Você pode me dizer o que posso ter feito de errado?
Setembro 9, 2014 em 2: 45 pm #38408Sergio BertanaAdministrador do fórumVamos tentar responder aos seus problemas em ordem. O comando Format de uma determinada versão do sistema operacional foi modificado, agora você precisa indicar qual diretório deseja formatar e quantos arquivos deseja deixar espaço. Então, seu comando Formato de armazenamento, 4 formatar o diretório de armazenamento para conter arquivos 4 que dividirão o espaço disponível (conforme relatado pelo comando VocêNão entendo porque o cliente de FTP não conecta, você não me diz qual sistema operacional está usando, com Total Commander e com o Windows 7 explorer que costumo usar nunca tive problemas (Tema) possivelmente verifique se você tem a versão mais recente do sistema operacional. O erro que você cometeu é muito sério ... você nunca pode parar um programa PLC em um ciclo fechado. WHILE (SysTime-Time) <60000 DO END_WHILE; Isso faz com que o cão de guarda do sistema intervenha e reinicialize a execução, que fecha novamente no loop infinito e é reinicializada novamente. Isso bloqueia todos os recursos do sistema, incluindo comunicações (Tema) Como é que sai ... depois de um certo número de reinicializações, o sistema para de hibernar e, portanto, é novamente possível retomar a conexão e carregar um novo programa.
Setembro 9, 2014 em 4: 30 pm #38409Sergio BertanaAdministrador do fórumComo resolver a cronometragem corretamente, no fórum você encontrará inúmeros exemplos de como usar a hora do sistema, veja como você pode fazer isso.
IF ((SysGetSysTime (TRUE) -Time)> 60000000) ENTÃO
Time: = SysGetSysTime (TRUE); (* Buffer de tempo (uS) *)
Fp: = Sysfopen ('Armazenamento / CLog.txt', 'a'); (* Abra o arquivo no modo "anexar". *)… Outras declarações do programa
END_IF;Nota: A variável Horário deve ser do tipo UDINT.
Outubro 7, 2014 em 9: 03 pm #38452LuisparticipanteBom dia, eu queria fazer um registrador de dados com um CLP SlimLine registrar os valores de 4 entradas analógicas a cada 10 segundos em formato CSV com a data (ano, mês, dia, hora, minuto, segundo) e fazer um arquivo para cada dia. Eu preciso de uma pequena ajuda.
Outubro 8, 2014 em 8: 24 am #38453Sergio BertanaAdministrador do fórumSe você baixar o programa que encontra em um dos posts deste tópico, você já tem um bom ponto de partida. No entanto, a partir do programa do post anterior, preparei um programa que percebe o que você precisa, aqui está a impressão do programa WriteLog.
Como você pode ver eu defini um array de strings para a definição dos dias da semana, então é possível escrever um arquivo CSV para cada dia (O arquivo terá o nome do dia). Quando o dia é alterado, o arquivo do mesmo dia é excluído (este é o arquivo da semana anterior) e um novo arquivo do dia é criado com os novos dados. Isso dá a você uma semana para baixar os arquivos de log armazenados para o FTP.
Eu criei o registro de log no formato 2014-10-08 09:25:58;02.8;02.8;02.8;02.8, como você pode ver, o campo data / hora é seguido pelos 4 valores analógicos. No meu exemplo, eu realizo uma única aquisição analógica para todos os 4 canais, mas deixo para você fazer as 4 aquisições e trazê-las de volta ao registro.
Acredito que com este exemplo no exemplo anterior você tenha todas as informações para construir seu DataLogger. aqui está o programa fonte.
Outubro 25, 2014 em 6: 34 am #38476AnônimoinativoO exemplo mostrado no post anterior é muito adequado ao problema que tenho que enfrentar, a única objeção é que eu gostaria de armazenar dados por um período superior a uma semana. Em um dos posts anteriores eu li que SlimLine pode gerenciar até 512 MB de memória no SDCard com até 64 arquivos.
Tendo que armazenar um arquivo de log composto por 7 valores REAIS (5 sinais 4-20mA e 2 valores lidos pelo protocolo Modbus) mais o campo de dados em formato CSV, quanto espaço em memória cada registro a ser historicizado ocupa?
Supondo armazenar um registro a cada 10 segundos, seria possível fazer arquivos com os valores de uma semana inteira (ou mesmo de um mês) e não apenas para um único dia como no exemplo?
Outra possibilidade vendo isso SlimLine está acessível via cliente FTP, seria possível agendar um programa em um PC que lê automaticamente os arquivos de log do SlimLine e fazer o backup em um servidor, aumentando drasticamente a possibilidade de registro?
Outubro 25, 2014 em 7: 23 am #38477Sergio BertanaAdministrador do fórumPresumi um registro de log com os dados de que você precisa (data / hora; 7 valores REAIS), o registro é do tipo:
25/10/2014 00:00:00;120.5;75.8;1200.0;145.76;1560.6;456.8;985.75
Como você pode ver, existem 64 bytes que arredondamos para 70. Considerando um log a cada 10 segundos, teremos 360 Registros / Hora (igual a 25Kb Hora). Mesmo assumindo um log contínuo 24 horas por dia e 24 dias por mês, teremos 31 registros todos os meses com uma quantidade de dados igual a 267840Mb. Formatando o SDCard para conter os 18 meses teremos 12Mb de dados disponíveis para cada arquivo conforme mostrado pelo comando:
Formato SDCard 12
Você tem certeza? (Y, n)
Formato Ok, Arquivos: 12, FSize: 44738688, Time: 54.290 (mS)Com relação à solução que você propõe ler de um PC através de uma conexão FTP, os arquivos de SlimLine, Eu diria que é uma excelente solução para garantir backup de dados eficaz no armazenamento corporativo. Se você optar por esta solução, eu manteria os arquivos SlimLine menor (então eu faria um armazenamento diário) e o servidor central pode todos os dias baixar o arquivo do dia anterior tendo no SlimLine um pulmão de 7 dias.
Março 22, 2016 em 4: 17 pm #39475AlbertoparticipanteApós inserir o SDCard no PLC, formatei diretamente no PLC com os procedimentos ilustrados e utilizei para gravar arquivos de dados, tudo bem.
Mas agora gostaria de copiar os arquivos para um PC mas inseridos no leitor está vazio, na prática o PC não vê os arquivos armazenados. O que eu deixei de fora? Os arquivos certamente estão presentes no SDCard.
Março 23, 2016 em 8: 24 am #39476Sergio BertanaAdministrador do fórumVocê fez tudo corretamente SlimLine para garantir que os dados não sejam corrompidos quando o sistema for desligado repentinamente, ele usa um sistema de arquivos proprietário que não é reconhecido pelo PC.
Então, para transferir dados do cartão SD para o PC e / ou vice-versa, você deve usar um cliente FTP (Tema) você também pode usar o Windows Explorer (Screenshot).
Junho 17, 2016 em 8: 05 pm #39633AnthonyparticipanteTendo atualizado uma CPU antiga slimline modelo A para a última versão de Firmware (167) disponível Eu perdi completamente a pasta System que não consigo adicionar de forma alguma (em FTP com filezilla com gerenciamento de recursos etc.) ela sempre me dá acesso negado ou operação não permitida.
Também conectar com o Toolly e tentar formatar (mesmo as duas únicas pastas em Storage e SDCard) me dá o parâmetro errado (claramente o comando não está errado).
Existe uma maneira de restaurar todo o FileSystem?
-
autorPublique
- Você deve estar logado para responder a este tópico.