Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print

SOFTWARES => Controle => Mach 2/3 => Tópico iniciado por: matrix em 11 de Dezembro de 2009, 08:27

Título: VB Novamente
Enviado por: matrix em 11 de Dezembro de 2009, 08:27
Ola,

Eu já postei alguns tópicos com este tema mas como a função do VB é diferente
achei que deveria abrir outro tópico, se achar que não é conveniente por favor mover.

Então é assim, eu pretendia criar uma macro para fazer um movimento continuo do eixo Z isto enquanto corre um código G.

Por Ex: quando o comando m500 for activado o eixo Z começa a fazer um movimento da posição onde se encontra ex: se o Z estiver na posição 250 e o movimento de oscilante for de 100mm
a maquina tem que oscilar entre 200 e 300 a uma velocidade predefinida Ex: G0 ou F1000.

Este movimento é feito enquanto corre um código G feito em X/Y os movimentos são independentes e as velocidades também,a velocidade do Z é fixa enquanto a do X/Y pode variar com o decorrer do trabalho , não sei se é possível fazer isto.

Sei que o nosso amigo Robinho é barra em Vb espero que possa ajudar.


Obrigado


 

Título: Re: VB Novamente
Enviado por: robsongdev em 08 de Janeiro de 2010, 14:58
buenas.. valeu ae cara.. Espero mesmo poder ajudar...

Inicialmente eu achei que era fácil... bastava uma macropump sendo ativada que fizesse o movimento oscilante. Mas desse modo, usando "Code", ele executa um movimento em Z, e uma linha de código, mais um movimento em Z e assim por diante. Tentei de várias formas e decidi que por movimentação convencional não funcionaria. Enquanto o Mach está rodando um programa, tudo que tem a ver com movimento pára. Exceto uma: o THC.

Bom.. Basicamente usa-se a mesma teoria inicial. Uma macro que ativa a macropump e uma macro que desativa a macropump. Sendo a macropump, quem de fato faz o movimento oscilante, já que ficamos preso em um laço por tempo indeterminado.

Tentei fazer do modo mais vantajoso, em que apenas emulava as entradas Up Down do THC e usava "SendKeys" pra gerar a emulação. Funciona, mas é impossível (pelo menos pra mim) manter uma velocidade uniforme.

Então restou a pior de todas as opções: Usar 2 entradas e 2 saídas pra fazer o sistema funcionar. As entradas são o THCdown e THCup. E as saídas são ligas nessas duas entradas.

Teremos uma DRO pra ajustar a velocidade do movimento e outra pra ajustar a amplitude do movimento. São elas 1000 e 1001 , respectivamente. Então é bom tê-las na tela.

Usa-se ainda uma DRO 1002 e um LED 1201. Mas não precisa ter na tela, pois é
só para uso interno. Mas esteja certo de não usar essas duas em outras funções.

A Macro M1000 ativa o sistema e a macro M1001, desativa.
Em configurações gerais, é necessário estar ativada a opção "Executar Macro Pump"

Em anexo, estão as 3 macros que devem estar na devda pasta do Mach.

Se alguém tiver alguma dúvida, posta aí.
Abraço

PS: Todos os testes foram feitos no Mach3 V2.3
Título: Re: VB Novamente
Enviado por: matrix em 08 de Janeiro de 2010, 15:27
Obrigadão Robinho,

Eu vou testar a sua macro e depois posto.


Agradeçido
Título: Re: VB Novamente
Enviado por: matrix em 08 de Janeiro de 2010, 15:52
Robinho,

Peço desculpa mas não li bem a parte das entradas e saídas, como é que uso essas entradas??

Como configuro os pinos da portas? peço desculpa mas não estou a entender bem.

Na tua macro de macropump.m1s no inicio tem codigo para output1 e output2, e eu já tenho
essas saidas configuradas.



Obrigado
Título: Re: VB Novamente
Enviado por: robsongdev em 08 de Janeiro de 2010, 16:47
Sobre Output1 e Output2, você pode trocar na macro por outras que não estão sendo usadas.

Sobre as entradas, existe dois tipos específicos de entradas para o THC (Torch Height Control), são elas THC Up e THC Down. Configure como entradas normais e deixe-as conectadas nas duas saídas mencionadas anteriormente.

Enquanto THC Up estiver em nível lógico alto, o Z fica subindo. O mesmo acontece na descida com o THC Down. As velocidades e limites estão pré-definidos nas macros, então nao precisa se preocupar com isso.

Para que esse THC funcione, você precisa habilitar uma opção em "Portas e Pinos" --> "Opções de Fresamento" --> "Permitir Controle THC Up/Down até mesmo se não em modo THC".

Acho que era isso.. continuo à disposição para eventuais dúvidas.
Abraço
Título: Re: VB Novamente
Enviado por: matrix em 08 de Janeiro de 2010, 19:39

Bom me corrija se estiver errado,

Na macro posso usar outras saídas que não estou a usar e essas saídas apenas tem de estar habilitadas
e não tem de ter nenhum pino associado, correcto.

E quanto as entradas THC, é a mesma coisa, tem de estar habilitada e tambem não tem de ter nenhum
pino associado, Correcto.

Pelo que intendo estas entradas e saidas vão ser emuladas, correcto.


Me corrija por favor,

Obrigado
Título: Re: VB Novamente
Enviado por: matrix em 09 de Janeiro de 2010, 10:13
Robinho,

Eu testei da seguinte forma,

Utilizei as duas saidas neste caso foram output19 e output20, habilitei nas configurações pin/port e configurei também os pinos de saída, depois fiz o mesmo com as duas entradas.

Depois liguei um fio da saida19 para a entrada THCup, e outro da saida20 para a entrada THCdow.

Também tenho o control THC habilitado, e o run macropump também está habilitado.

Com estas configurações não consegui que o mach3 fizesse o movimento.


Na tela do mach3 eu coloquei duas dro como referiste açima, mas não sei se estão a trabalhar porque a única opção  que tenho para a configuração é o OEM, e configurei este OEM 1000 e outra com OEM 1001.


Me corrija se fiz algo errado.


Obrigado

Título: Re: VB Novamente
Enviado por: robsongdev em 12 de Janeiro de 2010, 08:18
Citar
Na macro posso usar outras saídas que não estou a usar e essas saídas apenas tem de estar habilitadas
e não tem de ter nenhum pino associado, correcto.
Errado. Deve haver sim um pino associado a cada saída.

Citar
E quanto as entradas THC, é a mesma coisa, tem de estar habilitada e tambem não tem de ter nenhum
pino associado, Correcto.
Errado. Deve haver sim um pino associado a cada entrada.

Citar
Pelo que intendo estas entradas e saidas vão ser emuladas, correcto.
Errado. Por emulação não deu certo. As saídas e entradas deverão ser usadas de fato.

Citar
Utilizei as duas saidas neste caso foram output19 e output20, habilitei nas configurações pin/port e configurei também os pinos de saída, depois fiz o mesmo com as duas entradas.
Correto. É isso mesmo

Citar
Depois liguei um fio da saida19 para a entrada THCup, e outro da saida20 para a entrada THCdown.
Correto. É isso mesmo

Citar
Com estas configurações não consegui que o mach3 fizesse o movimento.
Ligue cada uma das saídas separadamente e teste as entradas para certificar-se de que o sinal está chegando nas entradas.

Citar
Na tela do mach3 eu coloquei duas dro como referiste açima, mas não sei se estão a trabalhar porque a única opção  que tenho para a configuração é o OEM, e configurei este OEM 1000 e outra com OEM 1001.
Correto. É isso mesmo. As macros vão ler os valores digitados nessas DRO. Se o valor delas for ZERO, não haverá movimento algum.

Testes que podem ser feitos:
1 - Testar as saídas como mencionado anteriormente.
2 - Emular as entradas THC por duas teclas do teclado (U, D, por exemplo). Ao pressionar a tecla, o eixo Z deverá se mover obrigatoriamente, pois a macropump já inicializa e configura o THC.
3 - Testar se a macropump está sendo executada inserindo o seguinte código dentro do IF inicial:
If inicio = 0 then
   '... [o que ja tinha mantem]
   msgbox "isso é um teste. Se aparecer essa mensagem a macropump está rodando"
End If
4 - Se nada disso funcionar, eu te mando uma tela de testes e diagnósticos.

Acho que está no caminho...
Abraço!
Título: Re: VB Novamente
Enviado por: matrix em 12 de Janeiro de 2010, 09:24
Olá Robinho,


Já fiz todos os testes, as entradas e saídas estão a funcionar, e a macropump também, mas quando eu emulo as entradas com as teclas o eixo z não faz qualquer movimento.

Existe um pormenor que pode ser importante, eu estou a usar uma interface da vitalsystmems , e ela usa um plugin proprio, não sei se é relevante.

Obrigado
Título: Re: VB Novamente
Enviado por: robsongdev em 12 de Janeiro de 2010, 09:53
Citar
Existe um pormenor que pode ser importante, eu estou a usar uma interface da vitalsystmems , e ela usa um plugin proprio, não sei se é relevante.
hehehe. Também não sei se é relevante. Não conheço. Fiquei curioso.

Bom, então adiciona o seguinte código no mesmo lugar da mensagem da macropump:
Código: [Selecionar]
SetOemDro(27, 200) 'Max height torch
SetOemDro(65,-200) 'Min height torch

Adicione as DRO's de OEM 27 e 65 na tua tela, provisoriamente e certifique-se que elas sempre tenham os valores "200" e "-200", respectivamente.
Título: Re: VB Novamente
Enviado por: matrix em 12 de Janeiro de 2010, 17:04
Ok Robinho,

Eu vou fazer isso, logo digo algo.


Sobre a interface podes encontrar mais informação neste site (http://www.vitalsystem.com/web/motion/dspmc.php#Mach3)

Basicamente é uma interface que possibilita o mach3 de trabalhar com servo-motores, pode controlar até 8 servo-motores, só tenho a dizer muito bem funciona muito bem embora o plugin ainda não esteja completo.

O que te posso adiantar é que, parte da configuração é feita no plugin e não no mach3, um exemplo é que quanto quis adicionar um MPG na minha maquina a vital teve que programar a parte do MPG no plugin, você pode baixar o plugin do site e dar uma olhadela.



Logo digo algo
Obrigado
Título: Re: VB Novamente
Enviado por: matrix em 13 de Janeiro de 2010, 09:12
Robinho,


Eu já fiz o que você disse, mas também não funcionou.

Todas as DROs estão com os valores que nós definimos, penso que deveria funcionar ao pressionar a tecla
que emula.

Começo a achar que deve ser mesmo o plugin da Vital, de qualquer forma vou enviar um email para a Vital
a explicar o caso.

Aceito mais ideias.
Título: Re: VB Novamente
Enviado por: F.Gilii em 13 de Janeiro de 2010, 09:29
Pessoal,

Eu não acompanhei de perto este assunto, mas um detalhe me chamou a atenção logo na primeira mensagem.
Fazer um movimento independente do eixo "Z" enquanto um arquivo em código-G está sendo executado.

Penso ser bem complicado usar velocidades de eixos de forma independente isto é - não tem como fazer o "Z" trabalhar continuamente numa determinada velocidade e os outros eixos em outra velocidade apenas com o interpretador (Mach3, TCNC etc), a não ser que o eixo "Z" esteja sendo controlado por outro equipamento, e aí sim, sincronizar as velocidades dele com o resto do processo (ou vice-versa).

Mesmo sabendo que é possível alterar a velocidade do eixo "Z" independentemente através das configurações para implementação de um THC, creio ser igualmente difícil quando for o momento de sincronizar os movimentos entre os eixos, pois as variações de velocidade do THC são vinculadas às velocidades de avanço geral do programa.

Talvez o caminho seja usar um CLP por exemplo que controle o "Z", pois terá pleno controle sobre o processo.
Título: Re: VB Novamente
Enviado por: matrix em 13 de Janeiro de 2010, 15:47
Olá fgilii,


Na minha empresa tem um maquina cnc que faz este movimento, mas como você disse pode ser o plc.

De qualquer maneira seria bom que o mach também o fizesse, mas se for possível isso com o mach era show de bola.
Título: Re: VB Novamente
Enviado por: robsongdev em 13 de Janeiro de 2010, 16:48
É... realmente simples não é. ^^

Mas conseguindo fazer isso pelo próprio Mach, economizaria uma boa grana evitando a compra de um clp.

Sem contar que deixa a máquinha mais enxuta, sem instalar mais parafernalhas do que as já tem de costume.

Não sei se deixei claro no tópico, mas eu não testei isso NA MÁQUINA! Eu testei no Mach, avaliando as DRO's e seu comportamento. O que teoricamente dá no mesmo.

Afinal... qual é a aplicação desse sistema?? Quem sabe não encontramos uma forma melhor de fazer isso conhecendo o problema de perto..
Título: Re: VB Novamente
Enviado por: matrix em 13 de Janeiro de 2010, 20:33


Como disse antes de vb percebo pouco, mas se o robinho diz que é possível é porque é mesmo.


Agora quanto á aplicação, esta função é usada na area do granito, normalmente utiliza varias ferramentas de polimento lateral, o facto de fazer este movimento é porque se for um movimento interpolado a ferramenta vai passar sempre no mesmo local, e isso vai começar a deixar marca.

Eu tentar procurar um pequeno vídeo para mostrar como é.
Título: Re: VB Novamente
Enviado por: F.Gilii em 14 de Janeiro de 2010, 08:26
Na minha empresa tem um maquina cnc que faz este movimento, mas como você disse pode ser o plc.

De qualquer maneira seria bom que o mach também o fizesse, mas se for possível isso com o mach era show de bola.
Das duas uma - ou é um PLC ou são comandos numéricos capazes de processamento paralelo - é como se fossem duas cnc controladas independentemente e ao mesmo tempo, coisa que o Mach3 não é capaz de fazer.
Título: Re: VB Novamente
Enviado por: marc0 em 14 de Janeiro de 2010, 11:01
Agora quanto á aplicação, esta função é usada na area do granito, normalmente utiliza varias ferramentas de polimento lateral, o facto de fazer este movimento é porque se for um movimento interpolado a ferramenta vai passar sempre no mesmo local, e isso vai começar a deixar marca.

Não seria mais fácil usar uma macro para gerar coordenadas randomicas e percursos aleatórios dentro de certos parâmetros? não manjo de VB mas acho que seria possivel.

Abraços.
Título: Re: VB Novamente
Enviado por: matrix em 14 de Janeiro de 2010, 11:20
Citar
Não seria mais fácil usar uma macro para gerar coordenadas randomicas e percursos aleatórios dentro de certos parâmetros? não manjo de VB mas acho que seria possivel.

Talvez, não sei, ma o que está a pensar??
Título: Re: VB Novamente
Enviado por: marc0 em 14 de Janeiro de 2010, 12:38
Matrix;

Pensei numa macro em se pode imputar (pré definir) os limites de Z e para cada coordenada seqüencial de X ou de Y , Z assume um valor aleatório até os limites do parametro, também pode-se imputar quantas vezes a macro vai se repetir até finalizar o acabamento presumido.

Dessa forma dentro dos limites de Z pré estabelecido para cada posição de X ou Y, sempre existirá um valor simultâneo de Z aleatório no código G gerado pela macro. Essa macro poderá ser chamada sempre que for necessária.

Abraços.
Título: Re: VB Novamente
Enviado por: marc0 em 14 de Janeiro de 2010, 13:42
Como disse Vb não é minha praia, só para exemplificar a minha idéia, veja se isso pode ajudar :

Código: [Selecionar]
'***********************************
'**    Macro for randomic CNC     **
'**         Experimental          **
'** Random 0.01  - ECM 14/01/2010 **
'***********************************

ZZ = InputBox ("valor máximo de Z")
If ZZ > 100 Then
 ZZ=100
 MsgBox ("Valor Ilegal! Considerado = 100")
End If
V = InputBox ("VELOCIDADE")
If V <= 0 Then
 V=1
 MsgBox ("Valor Ilegal! Considerado = 1")
End If
P = InputBox ("PASSO de X ou Y")
If P < 1 Then
 P=1
 MsgBox ("Valor Ilegal! Considerado = 1")
End If

OpenTeachFile "write.tap"

Code "G01 X0 Y0 Z0 F"& V &" M0"
For I=0 To 1000 Step (P)
 K=(Rnd())*ZZ
 Y = 0
 X = I
 Code "G01 X"& X &"Y0 Z"& K & "F"& V
Next
Code "M30"

LoadTeachFile ()
CloseTeachFile()             


Abra no editor Vb do Mach3 para rodar ou salve na pasta Macros com a extensão ".m1s"

No inicio pede o valor máximo de Z (poderia ter tb o mínimo), limitei em 100 presumindo o curso total de Z (pode ser qualquer valor)
Nesse caso eu assumi o valor máximo de X como 1000 (tb poderia ser outro valor ou imputar no inicio) e Y como "0" (poderia ser qualquer valor)
Coloquei um step para o movimento de X onde ocorre o variação randomica de Z ;
atingindo o final de X, poderia editar o código para gerar o movimento retrógrado  até o inicio e tb a quantidade de ciclos desejadas.

Abraços
Título: Re: VB Novamente
Enviado por: matrix em 14 de Janeiro de 2010, 16:21
Ok,

Vou dar uma olhada, logo digo algo


Obrigado
Título: Re: VB Novamente
Enviado por: robsongdev em 26 de Janeiro de 2010, 09:12
Pelo video que o matrix mostrou, não é bem isso que ele quer fazer...
o movimento em Z não é aleatório, é apenas independente e de velocidade diferente.

Mas eu tive uma idéia com o código do amigo.. Fazer uma macro que calcula os pontos de intersecção dos eixos de acordo com suas respectivas velocidades..

Ex. Z com amplitude de 100 e velocidade 500 para:
X100 Y100 F1000
quer dizer que quando os eixos x e y tiverem chegado em 100,100, o eixo z deverá estar na metade do caminho pois tem a metade da velocidade. Com esses dados, podemos calcular os pontos e gerar uma linha de código correpndente. Dessa forma, ficaria assim
X100 Y100 Z50 F1000
Z50(pq tem metade da velocidade, entao no mesmo tempo, anda metade do movimento de x,y)

dai para cada linha x,y se gera um valor de Z, automaticamente, é claro..

Será que rola???? [to sem Mach aki]
Título: Re: VB Novamente
Enviado por: F.Gilii em 26 de Janeiro de 2010, 13:39
Existe uma função de avanço por tempo inverso...

Normalmente os programas de controle de máquinas usam G94, que é avanço por tempo (mm/minuto por exemplo) ou G95, que é avanço por giro (usado em tornos) mas podem usar G93 que é Tempo inverso isto é 1/F em minutos, onde "F" é a Velocidade de Avanço..

Usando esta função, eu informo o percurso e o tempo, e o programa ajusta a velocidade automáticamente

Talvez isso ajude.
Título: Re: VB Novamente
Enviado por: marc0 em 26 de Janeiro de 2010, 13:50
Pelo video que o matrix mostrou, não é bem isso que ele quer fazer...
o movimento em Z não é aleatório, é apenas independente e de velocidade diferente.

Não foi isso que eu entendi, ele não pode repetir passes nas mesmas alturas para não criar riscos no polimento.

Mas ele foi tomar um cafezinho... ;D
Vamos esperar ele voltar . ;)

Abraços.
Título: Re: VB Novamente
Enviado por: robsongdev em 26 de Janeiro de 2010, 16:48
ehuehueuee   ;D

pois eh.. chega ae matrix!!!

Fabio... essa informação pode ajudar muito sim. Não fazia idéia que existia isso.
Vou colocar o tico e o teco pra funcionar aqui e ver o que consigo enquanto o matrix termina o café...  ;)
Título: Re: VB Novamente
Enviado por: matrix em 30 de Janeiro de 2010, 22:29
Peço desculpa pessoal.

Tenho andado bastante ocupado nem tempo de ver o fórum tenho, mas vamos lá.

Citar
Pelo video que o matrix mostrou, não é bem isso que ele quer fazer...
o movimento em Z não é aleatório, é apenas independente e de velocidade diferente.

Sim está correcto.


Citar
Não foi isso que eu entendi, ele não pode repetir passes nas mesmas alturas para não criar riscos no polimento.


E sim também está correcto.


Posso dizer que as duas estão correctas, sei que se o movimento do Z e a velocidade for independente o trabalho final será muito bom, agora penso que se criar movimentos aleatórios para o eixo Z o trabalho final também será bom mas este tenho que fazer testes para confirmar, como disse antes este tipo de trabalho embora não pareça é bastante complexo.

Só ainda não fiz teste porque neste momento ando ocupado e a maquina está sempre a trabalhar e eu preciso algumas horas para fazer o teste.


Agradeço as todos a atenção, mais uma vez peço desculpa mas o café estava um pouco quente eheheh.






Título: Re:VB Novamente
Enviado por: matrix em 11 de Fevereiro de 2011, 08:41
Olá pessoal,

Volto novamente á carga neste tópico, agora com mais algum tempo fiz uns testes com as macros do nosso amigo marc0martim ECM, as ideia é um pouco essa.

Embora o esse o movimento do z tenha que correr enquanto corre um codigo G, Ex:

Se fizer um corte em circulo que previamente foi gerado no cam (mas sem movimento alegórico Z ) a ideia é, ao
longo desse mesmo corte o eixo Z faça um movimento alegórico ex: z10 a z-10.

Alguém ai tem ideia?? ;D

 
Título: Re:VB Novamente
Enviado por: F.Gilii em 11 de Fevereiro de 2011, 16:21
é uma curva assim?
(http://www.guiacnc.com.br/w2box/data/Fabio%20Gilii/curva.PNG)
Título: Re:VB Novamente
Enviado por: matrix em 11 de Fevereiro de 2011, 19:29
Sim pode-se considerar uma curva desse género, mas vale a pena frisar que o movimento alegórico Z pode tambem funcionar em linhas rectas, ou quadrados etc.

Mas o conceito é esse mesmo Fábio, enquanto percorre um percurso gerado pelo cam exercer o movimento Z alegórico continuamente até ao final do código G.

Só uma questão, não existe já uma função para fazer isto?, penso que esta funcionalidade se adapta a outras situações, ex:
cortar com uma frese no sentido lateral em que o movimento Z seja continuo de forma a facilitar e diminuir o esforço da ferramenta.
Título: Re:VB Novamente
Enviado por: F.Gilii em 11 de Fevereiro de 2011, 20:13
Desculpe, mas eu não estou conseguindo ver o que pretende com isso.

Movimentos aleatórios são tudo que não se deseja numa cnc..
Título: Re:VB Novamente
Enviado por: matrix em 11 de Fevereiro de 2011, 20:48
Ok, vou tentar explicar melhor.

O movimento alegórico é apenas no eixo Z, ou posso estar a complicar um pouco quando falo em movimento alegórico.

Simplificando um pouco mais, você tem um percurso XY que foi gerado em um cadcam, não importa se é arco ou recto, você coloca o código no mach, esse código só tem coordenadas XY mas eu quero que simultaneamente enquanto correr o código o eixo Z se movimente para para cima e para baixo.

Agora, talvez não tenha que ser alegórico, Ex: se tiver uma coordenada X200 automaticamente o eixo Z tem de subir e descer umas 10 vezes. 
Título: Re:VB Novamente
Enviado por: F.Gilii em 11 de Fevereiro de 2011, 21:11
Matrix,

Hmmm, creio que entendí o que voce quer...

Creio que o que voce quer é uma tática de usinagem que se chama "Desbaste em Mergulho" ("Plunge Roughing").

Alguns programas como o Visual Mill tem este tipo de tática - o desbaste é feito em mergulhos sucessivos, sempre seguindo o contorno ou área a ser desbastada., como se fosse diversos movimentos verticais em paralelo, e são feitos até que se desbaste doa área que se deseja...
Título: Re:VB Novamente
Enviado por: matrix em 11 de Fevereiro de 2011, 21:37
Não conheço essa táctica mas acho que é isso mesmo.

Já vi cnc profissionais a fazer isso, mas utilizam uma macro para o fazer o movimento Z não é gerado no cam.

Acha que é possivel no mach?
Título: Re:VB Novamente
Enviado por: F.Gilii em 12 de Fevereiro de 2011, 08:16
Não sei se é possível, pois depende muito dos percursos... eu não consigo imaginar uma rotina assim...
Título: Re:VB Novamente
Enviado por: matrix em 12 de Fevereiro de 2011, 09:01
É possivel fazer uma macro que assumisse o comando apenas no eixo Z?

Ou seja ex: m500 será activar a macro, m501 será desactivar a macro.

M3
G0 x10 y10
G0 z5
m500 ( activa o movimento continuo Z)
 
O programa corre com as coordenadas xy geradas pelo cadcam e no final...

m501 (desactiva o movimento continuo Z)
m5
g53 z0
m30

Envio um pequeno filme para ver um exemplo.
Título: Re:VB Novamente
Enviado por: matrix em 12 de Fevereiro de 2011, 09:21
Só uma questão fora o contexto do tópico, eu instalei o mach3 no meu pc pessoal só para fazer alguns testes com macros, acontece que quando digito uma macro na caixa MDI não se passa nada, o mesmo acontece com a macro do toolchange, eu já verifiquei as configurações e não encontrei nada.

o que poderá ser?
Título: Re:VB Novamente
Enviado por: F.Gilii em 12 de Fevereiro de 2011, 09:55
Matrix,

As macros são arquivos que contém os comandos - sejam escritos em VB sejam em código-G, e que são interpretador pelo programa durante uma usinagem ou mesmo numa execução de um comando externo, como por exemplo um botão.

Se voce quer rodar uma macro, escreva-a como preferir, e salve com a extensão " *, m1s" e grave-a na pasta "macros" , pasta com o nome do perfil que está usando (por exemplo "Mach3mill"
Título: Re:VB Novamente
Enviado por: matrix em 15 de Fevereiro de 2011, 07:25
Fabio,

Estive a pensar um pouco e se em vez de macros para fazer este movimento, utilizar as formulas?

Podemos com uma macro activar uma formula que, enquanto o eixo X e Y estiver em movimento fará com que o eixo Z
se movimente continuamente, e com outra macro podemos desactivar essa mesma formula.


O que achas??
Título: Re:VB Novamente
Enviado por: Eneias Eringer em 15 de Fevereiro de 2011, 07:45
Acho que pra fazer este movimento seria melhor um motor normal, não necessáriamente um motor de passo , acho que seria mais facil ...ou com acho que ja foi dito ... um pic ou clp programado para isso ...
Título: Re:VB Novamente
Enviado por: matrix em 15 de Fevereiro de 2011, 07:55
Eneias, obrigado pela tua resposta, a ideia era usar o mach assim como está, sem hardware adicional, eu penso que as formulas são uma solução.

Só preciso de uma formula certa e uma macro para activar e desactivar as formulas.
Título: Re:VB Novamente
Enviado por: F.Gilii em 15 de Fevereiro de 2011, 09:12
Matrix,

Deve servir sim...
Título: Re:VB Novamente
Enviado por: F.Gilii em 15 de Fevereiro de 2011, 09:48
Matrix,

Eu respondí que deve servir, mas temo que fique uma coisa fixa isto é - sempre que qualquer código-G for executado, a rotina estará ativa...

Creio que o melhor seja uma rotina inserida numa macro que pode ser chamada a qualquer momento e em qualquer parte do código-G.
Título: Re:VB Novamente
Enviado por: matrix em 15 de Fevereiro de 2011, 09:57
E o Fábio tem ideia de como fazer isso?
Título: Re:VB Novamente
Enviado por: F.Gilii em 15 de Fevereiro de 2011, 10:27
Matrix,

Nunca usei fórmulas, e preciso estudar mais para entender como poderia implementar essa coisa...
Título: Re:VB Novamente
Enviado por: matrix em 15 de Fevereiro de 2011, 10:54
Ok Fabio, agradeço
Título: Re:VB Novamente
Enviado por: matrix em 16 de Fevereiro de 2011, 19:29
Oi Fábio, como disse no outro fórum, contactei o Scott da Artsoft, e ele disse que não é possível ligar ou desligar as formula através de script , a ideia da macro para activar a formula fica um pouco de lado.

Título: Re:VB Novamente
Enviado por: F.Gilii em 16 de Fevereiro de 2011, 19:43
Matrix,

Mas creio que poderia fazer a fórmula dentro da macro, e esta só seria chamada quando fosse necessária...

Eu não conheço uma fórmula que possa ser usada neste caso porque há diversas variáveis, mas creio que se fizer por exemplo uma repetição de um movimento alternativo em "Z", deveria dar resultado.

Estou um tanto atarefado este momento, mas assim que puder eu tento fazer algo assim e posto aqui.
Título: Re:VB Novamente
Enviado por: Bruno Gomes em 13 de Setembro de 2011, 22:19
Boa noite, pegando carona no tópico. Preciso criar uma rotina muito parecida.
No meu caso, é o seguinte:
Estou tendo problemas com os pinos de saída do motor (passo/dir). Então preciso de uma rotina que quando o eixo "Z" se movimentar para "+" é ativado um pino de saida da porta paralela.  E quando o mesmo eixo se movimentar para o lado "-", o pino desativa. Executando a rotina em movimentos G0, G1, G2, e G3. Todos os tipos de comando de movimento.
Preciso dessa configuração para o eixo "X" e "Z". Para funcionar como o pino de direção.

Quem puder ajudar, agradeço.
Título: Re:VB Novamente
Enviado por: matrix em 14 de Setembro de 2011, 04:34
Só um pergunta, que problema estás a ter?

Isso não deveria acontecer.
Título: Re:VB Novamente
Enviado por: Bruno Gomes em 14 de Setembro de 2011, 07:59
Estou utilizando servomotor, e para se ter a direção é necessário um sinal digital nível alto e baixo no servodrive.
É justamente nesse sinal, o mach3 esta mandando um sinal em pulsos para o pino de direção. Por isso meu servodrive não esta conseguindo entender o sinal, só consigo controle de direção em execução de linha G0 onde o movimento é mais rápido, e o sinal esta vindo em pulsos, como o sinal de passo.
Título: Re:VB Novamente
Enviado por: matrix em 14 de Setembro de 2011, 09:04
A sua interface deve enviar um sinal 0v/5v, o sinal de passo é enviado por pulsos mas o sinal de direcção não, ou seja
tem 5V quando toma uma direcção e 0v quando toma a direcção contraria, acho um pouco esquisito ele estar aceitando
o passo e não a direcção.

Já verificou possíveis problemas na sua interface?

Já verificou se as especificações do seu servo drive tem como sinal de ref. 5v, ou ele precisa de mais?

Já agora qual é a marca e modelo?

Penso que para fazer isso que você quer o brains seria indicado, mas como disse antes penso que isso vais gerar um atraso
da direcção que certamente levará a erro.

Título: Re:VB Novamente
Enviado por: F.Gilii em 14 de Setembro de 2011, 09:11
Bruno,

Qual é o drive e servo que voce está usando?

Título: Re:VB Novamente
Enviado por: Bruno Gomes em 14 de Setembro de 2011, 12:50
É da marca WEG, SCA05.
Existe alguma configuração no mach3, para o pino de direção ficor com 0V e 5V?
Já instalei o mach3 em 2 computadores diferentes e tive o mesmo resultado. Não é possível conseguir os 5v contínuos no pino de direção.
Por favor seria possível informar um link conhecido, onde eu possa baixar o mach3 sem problemas?

Obrigado.
Título: Re:VB Novamente
Enviado por: matrix em 14 de Setembro de 2011, 13:38
Espera um pouco, agora fiquei confuso.

Você está a usar alguma interface entre o pc e o drive??

Esse 5v não deveriam ter nada a ver com o pc, a sua interface deve proporcionar essa tensão sem problema.
Título: Re:VB Novamente
Enviado por: Bruno Gomes em 14 de Setembro de 2011, 14:03
Poderia explicar-me apenas uma dúvida.
Se eu medir diretamente a saida da porta paralela, no pino dir. eu consigo medir variações de pulsos e testando com led's, fica aparente os pulsos, pois o led fica mais intenso em linhas de programa G0 e mais fraco nas linhas de baixa rotação G1.
A dúvida é:
O mach3 faz com que as saidas de direção sejam ligadas em nível alto e baixo ou seja 0V e 5V. Correto?
Título: Re:VB Novamente
Enviado por: Bruno Gomes em 14 de Setembro de 2011, 14:06
Não estou usando direto na saida do pc.
utilizo um isolador óptico, interfaceando, não á nenhum tipo de tentativa de usar o saida do pc como potencia, utilizo apenas para comando.
Título: Re:VB Novamente
Enviado por: F.Gilii em 14 de Setembro de 2011, 15:09
Bruno,

Me parece que este servodrive poderia funcionar com sinais de passo/direção através de um módulo opcional - suponho que voce tenha este módulo, pois não?

Não conheço este drive muito bem, mas me parece que ele tem nativo comunicação serial RS232 ou opcionalmente RS485 através de módulo comprado à parte.
Provavelmente ele funciona com rede serial (ModBusRTU por exemplo) ou rede CAN (CANopen, DeviceNet)

Por exemplo, o Mach3 poderia se comunicar com ele através de ModBus...

Teria que olhar os manuais de comunicação desse servo para saber oi que se pode fazer, mas tenho a impressão que voce não pode simplersmente conectar um sinal TTL proveniente de uma paralela e injetar nele.

Fabio Gilii
Título: Re:VB Novamente
Enviado por: Bruno Gomes em 14 de Setembro de 2011, 15:16
Agradeço, toda ajuda.
Sei que CANopen esta disponível.
Poderia passar algum link de manuais que explique essa comunicação no mach3
Título: Re:VB Novamente
Enviado por: matrix em 14 de Setembro de 2011, 15:18
Provavelmente é esse o problema, verifique esse seu interface.


Pode me passar um esquema?


Citar
O mach3 faz com que as saidas de direção sejam ligadas em nível alto e baixo ou seja 0V e 5V. Correto?

Sim está correcto, 0v em  sentido  5v em sentido contrario, e o pulso é igual 0v nenhum pulso 5V um pulso, também tem á hipótese de inverter estes pulso, ou seja 0V um pulso e 5V nenhum pulso, embora isso não tenha nada a ver com o seu problema. 
Título: Re:VB Novamente
Enviado por: F.Gilii em 14 de Setembro de 2011, 15:23
Bruno,

Veja se isso ajuda um pouco:
http://www.machsupport.com/MachCustomizeWiki/index.php?title=Modbus_in_Mach (http://www.machsupport.com/MachCustomizeWiki/index.php?title=Modbus_in_Mach)

http://henriksplace.se/cnc/cnc_mach3_modbus_1.html (http://henriksplace.se/cnc/cnc_mach3_modbus_1.html)


Mas verifique juntpo à documentação do servo se há um módulo adaptador para ele ler sinais de passo/direção.

Fabio Gilii
Título: Re:VB Novamente
Enviado por: matrix em 14 de Setembro de 2011, 18:46
Fabio, eu não verifiquei os drives dele, mas se não tem onde ligar step/dir como é que ele consegui colucar o eixo a rodar?


Alem de mais esse problema de tensão não é normal, ele tem de ter 5V contínuos e não oscilações. 
Título: Re:VB Novamente
Enviado por: matrix em 15 de Setembro de 2011, 04:59
Ok Fabio, eu consegui algum tempo e fui ver as especificação do drive, de facto ele tem como opcional o cartão para step/dir,

Bruno, você tem esse cartão?

Título: Re:VB Novamente
Enviado por: Bruno Gomes em 15 de Setembro de 2011, 11:36
Agradeço muito a ajuda de todos.
Hoje pela manhã, fiz um teste em outro pc, e peguei o mach3 em outro site. E funcionou perfeitamente.
Agradeço mais uma vez.
Resumindo o problema estava no pc que usava.