Autor Tópico: CLOCK em microsegundos 2  (Lida 5509 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Guigaço

  • Visitante
CLOCK em microsegundos 2
« Online: 21 de Março de 2010, 21:04 »
Olá pessoal,


Estou com um problema muito parecido com o do nosso amigo MATRILAN1 criado no fórum GUIACNC em outubro de 2009.

Vi os espectivos códigos, e também gostaria de fazer um programa onde eu pudesse controlar o número de passos do motor em precisão de nano segundos usando o CLOCK do processador, pois apenas assim conseguiria indentificar que ponto um eixo na máquina CNC se encontra.

No Campo "Entre com um número", é um campo pre definido por mim, onde desejo que o usuário defina um valor inteiro em milímetros, e o motor ande de acordo com esse valor, exemplo:

Meu motor é um de 200 ppv 1 pulso = 0.025mm
então é só fazer um calcúlo e fazer o meu programa contar o número de pulsos, para rodar o motor de acordo com o que o usuário definiu..... essa é minha maior dúvida.... de resto para fazer o retorno e a reversão eu vou me virando mas isso ta complicado muito, pois como nosso amigo, apenas consegui uma frequência baixa com o Sleep(1); na teoria uma frequencia de 500Hz pois o pulso só ativo quando está com 5v ouse ja:

1ms
----         -----    ou seja 2ms entre um pulso ativo e outro = 500Hz
     |       |
     |1ms       |
      ------

porém na prática é algo totalmente diferente.

possíveis perguntas que vocês poderão fazer:

1) não poderia usar uma interface externa para gerar o clock?
Poderia, porém não gostaria de usar uma interface externa, gostaria de fazer em Builder c++
 
2) você pretende chegar aos 10 kHz? Ou menos que isso seria suficiente?
Menos que isso já seria o suficiente até 1KHz estaria feliz.
 
3) programa em alguma linguagem?
Eu conheço C++, e gostaria que o programa fosse feito em C++, porém como eu digo, conheço um pouco a linguagem, fiz técnico em mecatrônica, porém acabei esquencedo algumas coisas da aula que tive de c++, mas tenho certeza que com ajuda de vocês irei relembrando aos poucos
 
trabalha com eletrônica? uControladores?
Trabalho com eletrônica também.
uControladores?? não conheço

Segue uma foto de como está ficando meu programa:




« Última modificação: 21 de Março de 2010, 21:12 por Guigaço »

Offline ivancoimbra

  • Hobby
  • ****
  • Posts: 555
Re: CLOCK em microsegundos 2
« Resposta #1 Online: 21 de Março de 2010, 23:41 »
Porque não usa o laço " for next" e bem mais simples
 

Guigaço

  • Visitante
Re: CLOCK em microsegundos 2
« Resposta #2 Online: 22 de Março de 2010, 00:14 »
Porque não usa o laço " for next" e bem mais simples

É uma boa para contar os numeros de passos!!
porém gostaria de algo ara gerar os pulsos de 1000Hz

Guigaço

  • Visitante
Re: CLOCK em microsegundos 2
« Resposta #3 Online: 22 de Março de 2010, 00:48 »
Só lembrando que:

Uso 3 motores de passos 200ppv ACHO que 1 pulso = 0.025mm mas isso não vem ao caso depois descubro.

Uso 3 drivers de mercado comum pulso/direção.

Uso uma placa isoladora paralela



Offline Cláudio F.

  • Fuso
  • **
  • Posts: 222
  • Sexo: Masculino
  • Cidade - UF: São Paulo/SP
Re: CLOCK em microsegundos 2
« Resposta #4 Online: 22 de Março de 2010, 01:07 »
não está utilizando drivers para os motores?

Guigaço

  • Visitante
Re: CLOCK em microsegundos 2
« Resposta #5 Online: 22 de Março de 2010, 08:50 »
não está utilizando drivers para os motores?

sim estou usando um para cada motor, porém se me ajudarem a fazer um eixo
tipo meu código é mais ow menos assim

for (i=0, i>1000, i++) // i>1000 1000 é o número de pulso.
{
outport(0x378,1);
sleep(1);
outport(0x378,0);
sleep(1);
}

Desvantagem do código assim:
1º Programa trava, não consigo movimentar os outros eixos, preciso esperar um rodar para movimentar o outro.

2º A função sleep só chega até 1ms não consigo baixar o tempo, e este tempo é totalmente relativo.

Offline C N C N o w !

  • CNCMASTER
  • ******
  • Posts: 6300
  • Sexo: Masculino
Re: CLOCK em microsegundos 2
« Resposta #6 Online: 22 de Março de 2010, 11:39 »
... gostaria de fazer um programa onde eu pudesse controlar o número de passos do motor em precisão de nano segundos usando o CLOCK do processador, pois apenas assim conseguiria indentificar que ponto um eixo na máquina CNC se encontra.

Guilherme, nanosegundos e motor de passo não são coisas que se coloque na mesma sentença ...  ;D

Não é necessário que o jitter fique na faixa de nanosegundos e vc não vai chegar nem perto disso usando um PC, nem que trabalhe com kernel em tempo real ... sugiro que use algum prog e o estude, o TurboCNC é um excelente ponto de partida, é o que proporciona o trem de pulsos de melhor qualidade.

Isto tb não tem absolutamente nada a ver com identificar a posição do eixo, o que é feito meramente pela contagem de pulsos.

Citar
Meu motor é um de 200 ppv 1 pulso = 0.025mm

Isto não faz qualquer sentido, a resolução de um motor é indicada pelo número de passos por revolução ou desvio angular, jamais por uma dimensão linear (mm). Um motor de 200 ppr oferece resolução de 1,8o em passo cheio e 0,9o em meio passo ...

Citar
apenas consegui uma frequência baixa com o Sleep(1); na teoria uma frequencia de 500Hz ... porém na prática é algo totalmente diferente.

É, na prática é diferente e sem embasamento teórico vc vai ficar como barata tonta ... tô achando que vc precisa estudar um pouquinho mais sobre motores de passo ...

A velocidade alcançável depende tremendamente do driver e vc sequer menciona qual está usando ... portanto não dá pra comentar nada ...

Citar
Eu conheço C++, e gostaria que o programa fosse feito em C++ ...

O prob para obtenção de um acionamento confiável pouco tem a ver com a linguagem de programação, o prob é manter a latência relativamente baixa, o que é um bocado chato quando se usa Windows, é preciso recorrer a algumas mandrakarias para evitar a interferência do SO. Apesar disto, creio que para até 1 kHz não fique mal ...
 

Offline Cláudio F.

  • Fuso
  • **
  • Posts: 222
  • Sexo: Masculino
  • Cidade - UF: São Paulo/SP
Re: CLOCK em microsegundos 2
« Resposta #7 Online: 22 de Março de 2010, 15:08 »
Anest,

procure se informar sobre thread.

acredito q com uma thread para o clock e uma para cada motor, resolva seu problema.

o código para gerar o clock já esta pronto no tópico do matrixlan.

o que esta acoplado ao eixo do motor? como conseguiu chegar a 0,025?

vtrx

  • Visitante
Re: CLOCK em microsegundos 2
« Resposta #8 Online: 27 de Março de 2010, 13:57 »
Olá,sou novo neste forum,se eu entendí direito,voce precisa de um programa para Windows com precisão (delay) em µs?
Eu programo em Delphi,tambem,e um de meus programas envia para a paralela audio wav entre 8000hz a 24khz com precisão.
As rotinas de tempo estão em Assembler.

matrixlan1

  • Visitante
Re: CLOCK em microsegundos 2
« Resposta #9 Online: 01 de Abril de 2010, 21:27 »
oa amigo, vc pode disponibilizar o seu codigo pra gente da uma olhada?

Offline marc0

  • CNCMASTER
  • ******
  • Posts: 2788
  • Sexo: Masculino
  • Não dirigimos o vento, podemos ajustar as velas.
    • Máquinas & Equipamentos
Re: CLOCK em microsegundos 2
« Resposta #10 Online: 01 de Abril de 2010, 23:35 »
Se for por esporte reinventar a roda, tudo bem...
Mas porque vc não usa o Mach3 ou o EMC2?
Abraços...

Offline Barusso

  • Hobby
  • ****
  • Posts: 707
  • Sexo: Masculino
Re: CLOCK em microsegundos 2
« Resposta #11 Online: 02 de Abril de 2010, 21:10 »
Olá Vitor(vtrx), eu também gostaria de ver seu soft em Delphi.

Marco, se ninguém tivesse essa iniciativa estávamos todos no TurboCNC, ele já estava pronto , pro que fazer o Mach ?

Barusso

Offline marc0

  • CNCMASTER
  • ******
  • Posts: 2788
  • Sexo: Masculino
  • Não dirigimos o vento, podemos ajustar as velas.
    • Máquinas & Equipamentos
Re: CLOCK em microsegundos 2
« Resposta #12 Online: 03 de Abril de 2010, 09:52 »
Barusso;

Não tenha nada contra ao desenvolvimento de softwares, quem tiver condições de produzir algo melhor ou contribuir para o aperfeiçoamento do Mach3 ou do EMC2, será bem vindo e a comunidade agradece.  ;)

Modo geral, gosto mais de projetos coletivos, a união não faz só açúcar...

Abraços...

vtrx

  • Visitante
Re: CLOCK em microsegundos 2
« Resposta #13 Online: 03 de Abril de 2010, 21:51 »
Como citei,sou novato neste forum e me parece que ele é específico em algo que não percebí.
Gostaria de saber se é específico mesmo.
Sobre meu código,é de um programa fechado,mas essa parte da paralela posso explicar,só falta o Barusso responder se conseguiu instalar o componente.

Offline Barusso

  • Hobby
  • ****
  • Posts: 707
  • Sexo: Masculino
Re: CLOCK em microsegundos 2
« Resposta #14 Online: 05 de Abril de 2010, 08:34 »
Sobre meu código,é de um programa fechado,mas essa parte da paralela posso explicar,só falta o Barusso responder se conseguiu instalar o componente.
Opa, instalei sim,   já tinha testado esses componentes de microsegundos, porém o processamento vai lá nas alturas e ai o sinal não chega legal na lpt, muita latência.
Ta certo, respeito sobre o programa fechado, é que você tinha dito que utilizava o som e pensei que com isso você ia postar a rotina, não foi minha intenção em solicitar fontes de soft fechado.

Barusso

 

/** * */