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

Título: Relatório ( log ) de Produção para EMC2
Enviado 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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: clodoaldo_Ferreira em 29 de Novembro de 2011, 21:03
ninguem topou o desafio?
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 29 de Novembro de 2011, 23:07
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)
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 30 de Novembro de 2011, 08:34
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

Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: C N C N o w ! em 30 de Novembro de 2011, 14:07
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 ]:

Código: [Selecionar]
#!/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 ]

Código: [Selecionar]
#!/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.
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 30 de Novembro de 2011, 16:11
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= `?`).


Código: [Selecionar]

#!/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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 30 de Novembro de 2011, 22:34
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...
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 01 de Dezembro de 2011, 08:02
Bom dia Cientista,

Com certeza sua dica ajuda, obrigado

Vou testar

Grato

Evan F. Gois
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 08 de Dezembro de 2011, 16:17
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.
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 08 de Dezembro de 2011, 22:42
Que bom que conseguiu.

Estaremos aguardando. Vai ser de grande utilidadepara todos.

abraços
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 09 de Dezembro de 2011, 11:09
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.
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 10 de Dezembro de 2011, 10:16
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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 10 de Dezembro de 2011, 12:20
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.
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 10 de Dezembro de 2011, 18:09
Boa tarde Evan

segue os arquivos
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 11 de Dezembro de 2011, 12:03
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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 11 de Dezembro de 2011, 22:28
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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Alebe em 12 de Dezembro de 2011, 01:19
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í.
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 12 de Dezembro de 2011, 08:25
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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 12 de Dezembro de 2011, 11:22
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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 12 de Dezembro de 2011, 12:32
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


Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 12 de Dezembro de 2011, 14:50
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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 12 de Dezembro de 2011, 15:09
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.
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: cientista13 em 13 de Dezembro de 2011, 11:52
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

Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Evan F. Gois em 13 de Dezembro de 2011, 13:24
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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: Blackmore em 21 de Dezembro de 2011, 10:34
excelente tópico! muito prático o resultado e bem didática sua implementação.
Parabéns !
Título: preciso baixar unbunto cnc 2.3.0
Enviado por: andrerefberg em 16 de Abril de 2014, 21:26

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
Título: Re:Relatório ( log ) de Produção para EMC2
Enviado por: rymaeda em 18 de Abril de 2014, 00:08
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