Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print
SOFTWARES => Controle => Mach 2/3 => Tópico iniciado por: cesarbackes em 19 de Outubro de 2015, 13:55
-
Boa tarde,
Gostaria de saber se teria como adicionar na macro M5, um comando para Aguardar um sinal de entrada para executar o comando?
Exemplo, programação chama o M5, mas ele só execute após receber um sinal na entrada 1 que vai ser manda por um sensor.
a parte de ligação já fiz, Só gostaria de saber como ficaria a linha de comando.
Desde já agradeço pela atenção.
-
Tem como fazer, mas não seria aconselhável na macro M5, pois esta é padrão para desligar o spindle.
Explique melhor oi que quer fazer (ou o que precisa) e quem sabe possa te apontar um caminho.
-
Coloquei um servo motor ASD-B2 na função de internal speed, ele vai fazer a função de uma punçonadeira, só que ele precisa parar sempre numa mesma posição para que o punção não fique para baixo.
Ideia era colocar um sensor para quando eu mandasse parar o servo, só executasse o comando quando passar pelo sensor.
-
Imagino que tenha que usar dois sensores dispostos de forma a informar quando o punção está no alto, e um circuito que informe ao drive que irá ter uma parada - nesse momento deve existir um comando que diz ao drive para frear até a parada completa e que deve parar com um sensor acionado isto é, com o punção no alto.
Uma vez parado, o outro sensor informa ao Mach3 que está acionado (ou ao contrário, informa que está aberto), e este libera a movimentação do cnc...
Já não lembro mais de todas as funções do drive desse servo, mas se não me engano ele tem como sinalizar quando o servo está parado (via software) - acho que se pode programar para informar "Zero Speed" por uma das saídas digitais...
Talvez ainda (como alternativa) dê para configurar o drive para parar sempre na posição de index do encoder, mas não sei se funcionaria caso estiver usando alguma redução na saída no servo...
-
O modelo ADB - B2 não tem a função de HOME, caso tivesse faria por ele, dessa linha o modelo A2 tem essa função.
Mas se tivesse como implementar a função somente parar aguar um sinal do INPUT, já resolveria meu problema.
-
Para implementar na macro o código seria mais ou menos este.
SystemWaitfor(18) 'Aguarda a Entrada 1
-
Falando de linguagem de macro, o Mach3 tem um comando que espera por um sinal de entrada para executar algo...
Por exemplo:
...
SystemWaitFor(input1) 'aguarda um sinal na entrada 1
DoOEMButton 1000 'executa o comando RUN
...
-
Fiz alguns testes aqui
Mas não obtive resultado
-----
SystemWaitFor(input1)
DoSpinStop()
------
-
Mas aconteceu alguma coisa ou não aconteceu nada?
-
Ele desativou o spindle mesmo a input 1 desativada.
fiz outro teste também não obtive resultado.
rem #define INPUT1 30
SystemWaitFor(30)
DoSpinStop()
-
Mas voce configurou algum pino de entrada para o sensor? se sim, qual o pino usado?
Eu te dei um exemplo que usa a entrada 1 - precisa acertar a entrada meu caro!
-
Bom dia,
Sim define o sinal de entrada na INPUT #1 pino 10 da porta paralela 1
-
Usando o Automated Setup of inputs
-
Bom dia pessoal,
Boas novas, o problema foi resolvido.
Obrigado à todos pelas dicas.
Colocando o comando SystemWaitFor(INPUT1) ele funciona, mas como na mesma macro tinha o comando de DoSpinStop ()
ele executava toda a macro e ficava aguardando pelo sinal na entrada 1.
Solução: criei uma macro nova "M800" colocando Somente o comando SystemWaitFor(INPUT1) e fazendo com que ela execute antes do m5 no programa.
Cabeçaria final do G-code ficou
m800
m5
m30
%
%