Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print
SOFTWARES => Controle => EMC-Linux => Tópico iniciado por: Evan F. Gois em 28 de Novembro de 2011, 17:36
-
Boa tarde!
Preciso desenvolver um Shell Script para o EMC2, gostaria de saber se alguem do forum já fez algo pareciso e se poderia me ajudar ...
O que eu preciso é:
Registrar em um arquivo de texto o LOG diario da maquina, data, nome do arquivo ngc que está sendo executado na maquina e o status ( iniciado - concluido).
Exemplo:
DATA/HORA | NOME DO ARQUIVO .NGC | STATUS |
28/11/2011 17:13 P001 -corte interno.ngc iniciado
28/11/2011 17:50 P001 -corte interno.ngc concluido
Quando eu executar um arquivo .ngc no EMC2 ao iniciar o trabalho preciso que gere a informação da primeira linha do exemplo e quando terminar adicione a segunda linha no arquivo de texto, assim respectivamente durante todo a dia.
Este arquivo será utilizado para fazer o calculo de custo de produção e para calcular o tempo ocioso da maquina durante o periodo de expediente.
Já estou fazendo alguns teste e estarei postando aqui conforme for desenvolvendo, e conto com a ajuda de vocês..
Abraço
Evan F. Gois
-
ninguem topou o desafio?
-
A algum tempo atrás foi falado sobre isso no tópico "contador de tempo". Eu até tentei, mas não consegui fazer funcionar. Se conseguir diz como fez, pois tem muita gente querendo ter arquivo de log no emc2.
Chega até ser estranho não ter sido implementado no Emc2, pois até o TurboCnc tem.
tópico do "contador de tempo"
http://www.guiacnc.com.br/index.php/topic,6931.msg123151.html#msg123151 (http://www.guiacnc.com.br/index.php/topic,6931.msg123151.html#msg123151)
-
Bom dia Cientista e Clodoaldo!
Eu também já me perguntei porque ainda não tem isso no EMC2 e senti a necessidade de fazer algo para resolver isso, então vamos lá ...
Hoje eu estarei implementando um Shell Script para gerar este log, depois é só localizar as variáveis do EMC2 que contem a informação do status e pronto... vamos ver se vai dar certo.
Falou pessoal, qualquer informação que achar importante posta aqui que eu implemento junto no script se conseguiu ..
t+
Evan F. Gois
-
Cometi um script com base na idéia de usar códigos M mencionada em
http://www.guiacnc.com.br/index.php/topic,6931.msg123151.html#msg123151 (http://www.guiacnc.com.br/index.php/topic,6931.msg123151.html#msg123151)
M150 [ início ]:
#!/bin/bash
#
# M150 script -- hora do inicio do trabalho
#
test -d $HOME/cnc || mkdir $HOME/cnc
echo -e "\nInício: `date`" >> $HOME/cnc/cnc-job-time.txt
M151 [ fim ]
#!/bin/bash
#
# M151 script -- hora do fim do trabalho
#
echo -e "Fim: `date`" >> $HOME/cnc/cnc-job-time.txt
Use de acordo com
http://www.linuxcnc.org/docs/html/gcode_main.html#sec:M100-to-M199: (http://www.linuxcnc.org/docs/html/gcode_main.html#sec:M100-to-M199:)
O registro é cumulativo, novas linhas são acrescidas ao arquivo. Aqui funfa perfeitamente.
-
Boa tarde CNCNow
Utilizando também como base os script comentado no link que o cientista e vc passou cheguei neste escript que está funcionando da seguinte forma:
Variáveis:
ARQUIVO= `?` ## Recebe como valor o nome do Arquivo.ngc (Ainda não descobri como alimentar esta variavel)
STRING=`date +%d_%m_%Y`## Recebe o valor data dia_mês_ano( este será o nome do arquivo de log - um para cada dia)
HORAS=`date +%H:%M` ## Recebe o valor hora
O script abaixo é apenas o do M150 já testei e funcionou perfeitamente, ainda preciso adicionar a variavel com o nome do arquivo que está sendo executado ( ARQUIVO= `?`).
#!/bin/bash
#M150
INICIO() {
ARQUIVO= `?`
STRING=`date +%d_%m_%Y`
HORAS=`date +%H:%M`
test -d $HOME/cnc || mkdir $HOME/cnc
echo "| " $HORAS " | " " Arquivo: " $ARQUIVO " | " "INÍCIO" " | " >> $HOME/cnc/$STRING
}
INICIO &
Assim que eu descobrir como adicionar o nome do arquivo.ngc e vou postar arqui o passo-a-passo para gerar este log, que pelo menos pra mim é muito importante.
Grato
Evan F. Gois
-
Evan no arquivo .ngc é muito fácil ter o nome do arquivo na primeira linha.
Eu tenho no cabeçalho de todos os meus arquivos. Quando salvo o percurso o pos processador já faz. Se for no Artcam é só colocar a linha no pos
START = "(Nome do arquivo: [FILENAME])"
No arquivo xxxxx.Ngc vai aparecer
(Nome do arquivo: xxxxx.Ngc)
Não sei se ajuda, mas estamos na torcida...
-
Bom dia Cientista,
Com certeza sua dica ajuda, obrigado
Vou testar
Grato
Evan F. Gois
-
Boa tarde!
Até que enfim terminei de fazer as alterações necessárias no axis para finalizar meu relatório com todos os dados necessários.
Vou providenciar um tuto e colocar aqui.
Obrigado pela ajuda de todos, assim que terminar o tuto vou postar aqui.
Obrigado pela ajuda de todos.
-
Que bom que conseguiu.
Estaremos aguardando. Vai ser de grande utilidadepara todos.
abraços
-
Bom dia Cientista13
Segue o Passo-a-passo:
RELATÓRIO DE PRODUÇÃO PARA EMC2
Testado na versão EMC2 - 2.4.6 , mas pode ser implementado em outras versões com poucas ou nehuma alterações.
Objetivo:
Gerar um relatorio de trabalho diário.
Será gerado um arquivo por dia com a data do trabalho como parte do nome, exemplo: R01_09_12_2011.txt , R01_10_12_2011.txt, R01_11_12_2011.txt.
Cada aquivo terá as seguintes informações, podendo ter varios trabalhos no mesmo arquivo:
******************************************************************
* ARQUIVO DE TRABALHO *
******************************************************************
/home/evan/emc2/nc_files/ARQUIVO 01.ngc
INICIADO : 18:05:24
FINALIZADO : 18:09:43
******************************************************************
******************************************************************
* ARQUIVO DE TRABALHO *
******************************************************************
/home/evan/emc2/nc_files/ARQUIVO 02.ngc
INICIADO : 18:20:24
FINALIZADO : 18:39:43
******************************************************************
Vamos iniciar o trabalho:
Observações Iniciais:
Vou considerar que o EMC2 está instalado tudo em suas pastas padões e sem nenhuma mudança adicional em seus fontes.
Os comonado que vamos executar no terminal, precisa estar logado com o usuario root para evitar possiveis problemas de permissão.
Abra o terminal como root #
acesse a pasta tmp com o seguinte comando:
cd /tmp/
Em seguida, vamos baixar e descompactar os arquivos necessários que já deixei pronto para facilitar o processo.
wget http://www.gois.ind.br/guiacnc/gois.tar.gz (http://www.gois.ind.br/guiacnc/gois.tar.gz)
tar -xvzf gois.tar.gz
Vamos acessar o diretório que descompactamos.
cd /tmp/gois/
Vamos deixar os arquivos originais exis e axis-remote como cópia de segurança apenas para garantir uma possivel restauração.
mv /usr/bin/axis /usr/bin/axis_backup
mv /usr/bin/axis-remote /usr/bin/axis-remote_backup
Agora vamos colocar no lugar dos originais os arquivos que baixamos anteriormente.
cp /tmp/gois/axis /usr/bin/
cp /tmp/gois/axis-remote /usr/bin/
Agora vamos dar as permissões necessárias para estes arquivos serem executados
chmod 755 /usr/bin/axis
chmod 755 /usr/bin/axis-remote
Vamos fazer uma pequena mudança no arquivo /usr/bin/axis na linha 2779. Precisamos mudar o nome do usuario especidicado no camiho do arquivo.
Fassamos o seguinte:
nano /usr/bin/axis
Vai abrir o editor de texto nano, procure a linha 2779 e faça a alteração conforme solicitado.
Na linha 2778 eu coloquei um comentário e um exemplo de como deve ficar.
Salve o arquivo e feche o editor.
Neste momento tente acessar o EMC2 , ele deve abrir normalmente se tudo estiver correto.
Se você abriu o EMC2 feche novamente e vamos continuar aqui no terminal.
Vamos criar o arquivo filename.txt e a pasta onde vai ficar armazenado nosso relatório
Substitua <NOME_DO_USUARIO> colocando seu usuario como já fez no arquivo axis acima.
mkdir /home/NOME_DO_SEU_USUARIO/cnc
touch /home/NOME_DO_SEU_USUARIO/cnc/filename.txt
chmod 777 /home/NOME_DO_SEU_USUARIO/cnc/filename.txt
Feito isso vamos para o proximo passo.
cp /tmp/gois/M150 /home/NOME_DO_USUARIO/emc2/nc_files
chmd 755 /home/NOME_DO_USUARIO/emc2/nc_files/M150
Este arquivo M150 é responsavel por salvar a hora de início e fim do nosso trabalho.
também vamos ter que alterar onde estiver <NOME_DO_USUARIO> dentro deste arquivo.
nano /home/NOME_DO_USUARIO/emc2/nc_files/M150
Mude onde precisar em seguida salve e feche o arquivo.
Agora já está tudo preparado no sistema.
Você vai precisar adicionar o comando ( M150 P1 )no inicio do seu arquivo.ngc e no final o comando ( M150 P2 )
M150 P1 ( Grava a informação de nome do arquivo e horas do inicio do trabalho ).
M150 P2 ( Grava a hora que o trabalho foi conluido ).
Au aconselho editar seu pos-processador para adicionar o M150 P1 e M150 P2 para incluir este comando de forma altomática em todos os arquivos .ngc.
Os relatórios são criados dentro da pasta /home/NOME_DO_SEU_USUARIO/cnc/ .
É isso ai galera, aqui eu testei e está funcionando tudo corretamente, conforme planejado.
Obrigado pela ajuda de vocês e qualquer dúvida posta ai.
-
Olá Evan
estou tentando.
cheguei na parte que:
Vamos fazer uma pequena mudança no arquivo /usr/bin/axis na linha 2779. Precisamos mudar o nome do usuario especidicado no camiho do arquivo.
Fassamos o seguinte:
nano /usr/bin/axis
Vai abrir o editor de texto nano, procure a linha 2779 e faça a alteração conforme solicitado.
Na linha 2778 eu coloquei um comentário e um exemplo de como deve ficar.
Salve o arquivo e feche o editor.
Neste momento tente acessar o EMC2 , ele deve abrir normalmente se tudo estiver correto.
Se você abriu o EMC2 feche novamente e vamos continuar aqui no terminal.
Ai deu erro (imagem abaixo)
Uso a versão 2.2.5 do EMC2
A principio fiz a instalação normal do ubuntu e do EMC
-
Bom dia Cientista13
Me manda o seu arquivo axis_backup o seu arquivo original, que eu faço a alteração e lhe envio novamente.
-
Boa tarde Evan
segue os arquivos
-
Bom dia Inácio!
Fiz uma alteração utilizando o seu arquivo axis_backup, não tenho esta versão instalada aqui, devido a isso não testei ... mas creio que vai dar certo.
Segue arquivo anexo, é só renomear para axis , colocar na pasta /usr/bin e dar a permissão 755.
Qualquer erro posta aqui a imagem do Debug.
Att: Evan F. Gois
-
Boa noite Evan
Agora abriu o EMC2 normal.
Coloquei M150 P1 no inicio e M150 P2 no final do arquivo .ngc. Rodou todo programa, mas no arquivo filenatme.txt somente apareceu o nome do arquivo. Não apareceu a hora de inicio e fim. Rodei o programa novamente e continuo com uma só linha
/home/inacio/emc2/nc_files/teste.ngc
Não sei falta mais alguma coisa na minha instalação, ou se fiz algo de errado. A principio segui a risca o tutorial.
Abraço
-
Inácio,
Estas mudanças e arquivos criados são um dos poucos casos em que é necessário reiniciar o sistema no linux.
Tente aí.
-
Bom dia Inácio!
Este arquivo "filename.txt" serve apenas para isso mesmo, receber o nome e caminho do arquivo.
Você precisa editar o arquivo "M150" e mudar onde está <NOME DO USUARIO> para o seu nome de usuário.
Fazendo isso o "M150" vai criar no caminho especificado um arquivo de relatório para cada dia com as devidas informações.
Vai o arquivo M150 com as mudanças que comentei. ( Apenas substitui NOME DO USUARIO por inacio.
Outro detalhe importante verifique se o M150 está com a permissão 755.
Att. Evan F. Gois
-
Bom dia Evan
Ainda não consegui.
Eu já tinha mudado o NOME_DO_USUARIO no arquivo M150, mesmo assim substitui pelo que voce me enviou.
chmod 755 /home/inacio/emc2/nc_files/M150
PS. no tutorial está faltando o "o" de chmod
O arquivo aparece com um cadeado fechado, não sei deveria estar lá. Em propriedades aparece como somente leitura (não consegui mudar sou menos que novato no Linux)
Abraço
-
Então faz um teste ai:
No terminal execute o comando: chown inacio.inacio /home/inacio/emc2/nc_files/M150
Abra o AXIS ( EMC2) na aba MDI no modo manual execute o comando M150 P1 e depois M150 P2, depois verifique se foi criado o arquivo de relatório (R01_12_12_2011.txt) na pasta /home/inacio/cnc .
A parte mais difícil é as mudanças do AXIS para salvar o caminho do arquivo que está sendo utilizado, e pelo visto ela já está funcionando, o M150 P1 e P2 é apenas um script simples para escrever as informações de tempo, ( Inicio e fim do arquivo ).
Aguardo um resultado do teste pra continuar.
Att. Evan F. Gois
-
Fiz o teste e continua igual, não gerou o arquivo de relatório
executei o comando chown ... /M150 , abri o AXIS executei o comando M150 P1, depois M150 P2 não apareceu o arquivo. Reinicei o computador e executei de novo os comandos M150 P1 e P2 e nada.
Cada vez que executo o comando M150 P1 o arquivo filename.txt é atualizado.
abs
-
Então vamos fazer o teste de forma diferente, para tentar descobrir o que está de errado:
através do terminal execute o arquivo M150 P1 e M150 P2
sh /home/inacio/emc2/nc_files/M150 P1
sh /home/inacio/emc2/nc_files/M150 P2
se aparecer alguma mensagem de erro posta aqui. ( Provavelmente vai aparecer).
Qualquer coisa me adicione no msn para agilizar, depois postamos como foi resolvido aqui no forum.
-
Olá Evan
Resolvido o problema. Agora funciona direitinho.
O problema erra de permissões mesmo.
Quando criei a pasta CNC crie como root e o meu usuário não tinha permissão para criar arquivo dentro dela. Criei nova pasta como usuário comum e funcionou beleza.
Agora é só editar meu posprocessador para incluir os comandos M150 P1 no inicio e M150 P2 no final do arquivo .ngc . Mas isso é fácil, nem preciso pedir ajuda ;D ;D
Fica a dica para quem quiser usar. É só seguir o tutorial e ter o cuidado de deixar as pastas e arquivos criados com permissões necessárias.
Obrigado Evan pelos arquivos e pela atenção aqui no forum e também pelo MSN.
Abraços
-
Boa tarde Inácio!
Fico feliz que meu pequeno tutorial tenha sido útil para você.
Quando precisar estamos a disposição, afinal o forum serve para isso, nos ajudar e compartilhar soluções e possíveis melhorias para nossas tarefas, maquinas e equipamentos.
Um Grande abraço.
Evan F. Gois
-
excelente tópico! muito prático o resultado e bem didática sua implementação.
Parabéns !
-
Pessoal preciso baixar o unbunto cnc na versao 2.3.0 pois formataram meu pc e instalou a versao mais nova mas a router nao esta legal
-
André,
Segue um link com versões do LinuxCNC, EMC2...
http://dsplabs.upt.ro/~juve/emc/ (http://dsplabs.upt.ro/~juve/emc/)
Boa sorte
Ricardo Maeda