Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print
SOFTWARES => Controle => Tópico iniciado por: dck em 29 de Dezembro de 2014, 20:49
-
Olá pessoal,
Estou trabalhando na edição da tela do mach3 para uma máquina para cortar somente em oxicorte.
Segue abaixo a macro m3 que estou usando para o pre-aquecimento da chapa e tempo de retardo da perfuração.
DRO1 = GetUserDRO(2222) * 1000 //Tempo de pre-aquecimento
DRO2 = GetUserDRO(2223) * 1000 //Tempo de Retardo da perfuração
ActivateSignal(OUTPUT2) //Ativa a saída 2 de pre-aquecimento
Sleep (DRO1) //Aguarda o tempo de pre-aquecimento
DoSpinCW() //Ativa a saída 1 para o jato de corte
DeactivateSignal(OUTPUT2) //Desativa a saída 2 de pre-aquecimento
Sleep (DRO2) // Aguarda o tempo de retardo da perfuração e libera a máquina para andar.
A macro funciona normalmente porém quando coloco um tempo superior a 32s que da o total de 32000ms no DRO1 ele não funciona e apresenta um erro.
Eu gostaria de saber se algum dos colegas tem alguma dica para resolver este problema.
Abraço a todos e fico no aguardo de alguma dica...
-
Uma solução, mas por outro caminho: Fazer com que o CAM gere a pausa no G-code.
-
Coloque uma pausa com 32s e logo após outra(s) com o tempo restante.
-
Só depois vi que está pegando o tempo digitado, desconsidere a resposta acima.
-
Não pretendo gerar a pausa no CAM, pois este tempo pode variar de acordo com o ajuste dos gases ou aquecimento da chapa entre outros fatores.
Consegui resolver o problema da seguinte forma.
DRO1 = GetUserDRO(2222) * 1000
DRO2 = GetUserDRO(2223) * 1000
ActivateSignal(OUTPUT2)
while (DRO1 > 0) //Fica rodando o While ate que o tempo for menor que zero
call setoemDro(2224, DROV) //Mostra a contagem regressiva na tela
SLEEP (100) //Aguarda 100ms
DRO1 = DRO1 - 105 //Apos aguardar 100ms diminui 105
DROV = DRO1 / 1000
if (DRO1 < 0) then
call setoemDro(2224, 0)
end if
Wend
DoSpinCW()
DeactivateSignal(Output2)