Foro MetalAficion
CNC => CNC - Software y Controladores => Mensaje iniciado por: delichon en 15 Mayo 2014, 00:15
-
Hola a todos. Como dice el enunciado estoy liado buscando un macro para un ATC de 8 herramientas. En la busqueda encontre un macro https://www.machsupport.com/forum/index.php?topic=25198.0 , no hay mucha información y lo peor en ingles, no me llevo bien con el.
El macro es el siguiente lleva al eje X y Z a una posición (0.2 mm), seguidamente desbloquea la torreta para poder girar. La segunda parte ubica donde esta cada herramienta ( en rojo) el eje A girara a la herramienta seleccionada para luego el amarre de la torreta.
Cargo este macro en el M6Start del Mach. En Confi. Gen. activo el cambio automatico.
Solicito una herramienta, X y Z se ubican a 0.2 mm y hay me quedo, el eje A no se mueve. El eje A esta bien configurado ya que me permite realizar movimientos de grados en manual.
Alguien domina este tema?, falta algo que se me escapa.
Gracias
Code"G53 X0.2" 'Mover ejes a pocisción
While Ismoving()
Wend
Code"G53 Z0.2"
While Ismoving()
Wend
If GetCurrentTool() = 1 then ' Verificar herramienta#
Code"G0 A0.000" ' mover a posición
While Ismoving() 'esperar a que el movimiento se detenga
Wend
End If
If GetCurrentTool() = 2 then
Code"G0 A45"
While Ismoving()
Wend
End If
If GetCurrentTool() = 3 then
Code"G0 A90"
While Ismoving()
Wend
End If
If GetCurrentTool() = 4 then
Code"G0 A135"
While Ismoving()
Wend
End If
If GetCurrentTool() = 5 then
Code"G0 A180"
While Ismoving()
Wend
End If
If GetCurrentTool() = 6 then
Code"G0 A225"
While Ismoving()
Wend
End If
If GetCurrentTool() = 7 then
Code"G0 A270"
While Ismoving()
Wend
End If
If GetCurrentTool() = 8 then
Code"G0 A315"
While Ismoving()
Wend
End If
End
-
Siento no poder ayudarte..aggggggg haber si algun guru del CNC se pone las pilas y te echa un cable...lo que si me gustaria es ver ese ATC .baba .baba
-
Buenas!
Veamos, el problema en si no esta en la macro, tienes que tener una línea que active la macro, y otra línea que prosiga el programa una vez finalizada la macro.
Un saludo
-
Buenas.
Michel el ATC esta en fase de diseño, lo único que te puedo decir es que llevara un servo de 200W con encoder absoluto, pero como soy un pejilleras prefiero tener lo que me cuesta mas probado, ósea la electrónica. Sera parecido al del maestro tessen con 8 estaciones
Anino la macro entra ya que me realiza los posicionamientos de los dos ejes, lo que no entera que herramienta coger.
Gracias
-
Haber yo de esto ni zorra..pero vamos a ver tu llamas al G53 que es para variar el decalaje de origen..osea el cero de origen..con g53 lo llmas a una nueva posicion segura definida por ti para que cambie de herramienta y luego utilizas el cambiador como un 4 eje mandandole girar los grados de las distintas posiciones de las herramientas de la torreta..haz una prueba en el mach3 y en vez de usar el mach3 de torno usa el de fresa y prueba a ver si ejecuta bien el asunto...normalmente el cambio de herramienta va asociado a la letra T y el numero de la herrameinta a usar..por ejemplo T1..claro esta que eso va asociado a una macro interna del control que hace girar la torreta ATC hasta los grados que tiene asociados la llamada de herramienta en funcion del numero de estaciones del ATC..lo que no se es como decirle a mach3 como hacer eso directamente..en modo fresadora esta claro que lo va a hacer sin macro ni leches nada mas que programes el numero de grados que quieres que gire y la velocidad de avance a la que quieres que lo haga..prueba a hacer una cosa en la macro que tienes y que en vez G0 A45 POR EJEMPLO..ponle A45 F300 HABER SI ASI SE TE MUEVE A 45 GRADOS OSEA A LA SEGUNDA HERRAMIENTA DEL ATC..no se es que esto me queda bastante grande la verdad..
-
Buenas.
Michel el eje A funciona de maravilla muevo A45 F3000 y lo clava, el problema viene que la macro entra ya que posiciona los ejes a 0.02
Code"G53 X0.2" 'Mover ejes a posición
While Ismoving()
Wend
Code"G53 Z0.2"
While Ismoving()
Wend
A partir de este punto no avanza, no se si falta algo en la macro o que leches pasa pero no posiciona la herramienta pedida.
Lo que es una virgeria es el encoder cortas alimentación paras el pc, lo vuelves a arrancar todo y pones un A0 sin realizar origen y lo clava, el servo lleva una alimentación de 5v para hacer un backup de la posición del encoder y el encoder lleva su batería, por eso no pierde datos cuando se para.
Saludos
-
No se es que esa macro no la acabo de entender muy bien por eso mi respuesta estaba claro que era equivocada..todavia me queda demasiado que aprender en tema CNC..a ver si alguien que sepa que en este foro ay mucho crack del CNC coño se moja y pierde un poco el tiempo haber si se logra resolver tu problema ya que es un tema de mucho interes para cuando se quiere poner un cambiador de herramientas..yo la verdad es que no puedo aportar nada mas por absoluta falta de conocimientos.
-
Yo estoy igual que Michel, no se cual es tu problema realmente, que se te mueve el x y el z ? .confuso2 .confuso2 .confuso2
Un saludo.
-
Yo estoy igual que Michel, no se cual es tu problema realmente, que se te mueve el x y el z ? .confuso2 .confuso2 .confuso2
Un saludo.
Hola anino el problema es que no se posiciona el eje A, que es el cambiador , a la herramienta solicitada imagínate pido la T5, eje X y Z se posicionan a 0.02mm (PRIMERA PARTE DE LA MACRO) y ya esta el eje A ni se cosca a que posición tiene que ir, que seria a A180.0 que es la ubicación de la T5.
Code"G53 X0.2" 'Mover ejes a posición
While Ismoving()
Wend
Code"G53 Z0.2"
While Ismoving()
Wend
Michel, esta parte es donde esta ubicadas las herramientas desde la T1 a la T8 en grados, y por comparación la macro busca la herramienta y te posiciona el eje A, el =1 ten se refiere a la T1, así sucesivamente.
If GetCurrentTool() = 1 then ' Verificar herramienta#
Code"G0 A0.000" ' mover a posición
While Ismoving() 'esperar a que el movimiento se detenga
Wend
End If
If GetCurrentTool() = 2 then
Code"G0 A45"
While Ismoving()
Wend
End If
If GetCurrentTool() = 3 then
Code"G0 A90"
While Ismoving()
Wend
End If
If GetCurrentTool() = 4 then
Code"G0 A135"
While Ismoving()
Wend
End If
If GetCurrentTool() = 5 then
Code"G0 A180"
While Ismoving()
Wend
End If
If GetCurrentTool() = 6 then
Code"G0 A225"
While Ismoving()
Wend
End If
If GetCurrentTool() = 7 then
Code"G0 A270"
While Ismoving()
Wend
End If
If GetCurrentTool() = 8 then
Code"G0 A315"
While Ismoving()
Wend
End If
End
No se explicarlo mejor, pero funciona así, luego faltarían las señales de seguridad que si piston adelante o atrás, el 0 cargador, pero no lo e puesto para no liarlo.
Saludos y gracias
-
Buenas, ahora ya lo tengo claro.
Bien, la estructura del If está correcta, por lo que tienes que comprobar si la variable GetCurrentTool toma algún valor distinto de 0, si no es así está claro que no te funcionará.
prueba a poner en vez de:
If GetCurrentTool() = 1 then
Code"G0 A0.000"
While Ismoving()
Wend
End If
esto otro:
If GetCurrentTool() = 0 then
Code"G0 A5.000"
While Ismoving()
Wend
End If
-
Gracias anino lo probare mañana ya que ahora estoy trabajando .idea
-
OK ahora comprendo la macro...lo que no se como resolver el problema que tienes..ja ja .brinda
-
Hola delinchon , yo no estoy muy puesto en programación pero , te puedo recomendar que leas los manuales de programación de los FAGOR En donde vienen diferentes macros y recuerdo haber visto alguna de la índole que mencionas, con la particularidad de que viene en perfecto español y ademas vienen las diferentes posibilidades de errores mas comunes que se cometen al programar, a lo mejor tienes la solución o un rayo de luz a tu problema.
Tendrás que registrarte en la pagina de inicio si no no te deja descargar.
http://www2.fagorautomation.com/_bin/descargas.php
Un saludo .brinda .brinda .brinda .brinda
-
Hola, no soy ningún experto (ni novato casi) en programación, pero esto lo he probado y funciona bien
pon esto dentro de M6Start.m1s
tool = GetSelectedTool()
SetCurrentTool( tool )
ActivateSignal(output2) 'desbloqueo de torreta, la electrovalvula esta comandada por la salida 2 en este caso
Sleep(1000) 'tiempo en ms dado para que acabe el movimiento
If GetCurrentTool() = 1 Then ' comprueba la herramienta #
Code"G0 A0" 'mueve el eje A
While Ismoving() 'espera que el movimiento acabe
Wend
End If
If GetCurrentTool() = 2 Then
Code"G0 A45"
While Ismoving()
Wend
End If
If GetCurrentTool() = 3 Then
Code"G0 A90"
While Ismoving()
Wend
End If
If GetCurrentTool() = 4 Then
Code"G0 A135"
While Ismoving()
Wend
End If
If GetCurrentTool() = 5 Then
Code"G0 A180"
While Ismoving()
Wend
End If
If GetCurrentTool() = 6 Then
Code"G0 A225"
While Ismoving()
Wend
End If
If GetCurrentTool() = 7 Then
Code"G0 A270"
While Ismoving()
Wend
End If
If GetCurrentTool() = 8 Then
Code"G0 A315"
While Ismoving()
Wend
End If
DeactivateSignal(output2) 'vuelve a bloquear la torreta
Sleep(2000)
End
salud 2 .brinda
-
Bueno la macro empieza a funcionar pero a dado guerra. Gracias a tessen a salido, a el le funcionaba a la primera pero yo tenia unos fallos. El probaba sobre la versión fresadora y en MDI las ordenes se le ejecutaban T2 M6 ejemplo.
Al probar yo su macro no conseguía ningún movimiento del eje, solo funcionaba repitiendo la orden T202. Leyendo con mi penoso ingles el manual del torno del Mach intuí que no hace caso al T2 M6 por eso ni se inmutaba en los movimientos, solo cuando se pone con el factor de corrección de la herramienta el puñetero T202.
Pero por que tenia que duplicar la entrada de herramienta. Pues el puto Mach, yo tenia una versión un poco antigua y en español, ha sido cambiar a la nueva y todo perfecto.
Ahora queda depurar la macro como la señales de seguridad, redes del pistón neumático etc,, pero ya estoy contento.
Gracias tessen
-
Si es que entre cracks como vosotros solucionais todo lo que se os ponga delante..aqui estoy aprendiendo y por supuesto calladito..ja ja .bien .brinda
-
no hay de que, la verdad es que me extrañaba el fallo que te daba y yo por mas que instalaba el mach y la macro en otros ordenadores y veia que en todos funcionaba, me tenia loco el fallo
otro pasito mas! .brinda