Archivos Mensuales: febrero 2015

Sonda cero para la fresadora X6-1500GT Parte 2

En la anterior entrada, Sonda cero para la fresadora X6-1500GT Parte 1 explicaba cómo he construido mi nueva sonda cero.
En esta entrada mostraré como la he calibrado, y podréis ver algunas pruebas de su funcionamiento.

El Script de la sonda

Mi intención es fijar la sonda en una posición de la máquina (donde no me estorbe mucho), de tal forma que con una macro podré mover el spindle sobre ella y con otra macro podré hacer el cero con la herramienta que tenga instalada en ese momento.
Todas mis macros de movimiento (ir a home, ir a sonda, etc) los he programado de tal manera que hagan movimientos seguros en lo que respecta al eje Z, es decir, si el spindle está en medio de la máquina, a pocos milímetros de la base y pulso el botón de ‘ir a posición home’, el script, en lugar de mover los 3 ejes simultáneamente hacia la posición home, lo que hace es, primero eleva el eje Z y luego, mueve los ejes X e Y.
Con esta sencilla operación, puedo estar seguro que al pulsar el botón, la herramienta no chocará con alguna posible pieza que tenga en la base de la máquina.
Dicho esto, el script de hacer el cero lo he programado de tal manera que estando el eje Z en su posición superior, al ejecutar el script sea lo más rápido posible, la para lo cual, lo que hace es script es usar dos velocidades:

  • Baja a una velocidad rápida (F800 en el ejemplo) hasta detectar la sonda
  • Retrocede una pequeña distancia (en el ejemplo, 1mm)
  • Baja de nuevo, pero a una velocidad más lenta (F20 en el ejemplo) hasta detectar la sonda
  • Toma nota de la coordenada absoluta de máquina en donde se activó la sonda y la muestra en la barra de estado (y por tanto en el log) del Mach3
  • Hace el cero del eje Z en ese punto

Por supuesto, para usar este script, la máquina tiene que tener los ejes referenciados, sino no tendrás coordenadas absolutas de máquina fiables, para lo cual, tu máquina debería tener instalados detectores de posición inicial en sus 3 ejes.
Puedes ver aquí cómo instalar sensores de ‘Home’ en tu máquina: Añadiendo detectores a la fresadora X6-1500 GT

Tambien cabe mencionar… que si vas a probar este script con tu sonda conductiva… ten cuidado y modifica la velocidad de bajada rápida, o tu máquina podría pasarse de frenada estrellando la herramienta contra la sonda. En la sonda mediante pulsador esto no tiene problemas, porque el pulsador tiene cierto margen, ya que desde su punto de activación permite que la herramienta baje por lo menos otro milímetro más sin chocar.

Este es el código del script para hacer cero a 2 velocidades:

Rem	VBScript Para hacer cero en Z con la sonda cero
Rem 	www.parecefacil.com


cRecorridoMaximo	=51		'Distancia máxima a bajar buscando la sonda (50 mm)
cRetroceso	=1		'Distancia a retroceder para hacer la pasada lenta (1mm)
cFRapido	  	=800		'F para bajar rápido
cFLento		=20		'F para bajar lento y detectar el cero 	


If GetOemLed (825) <> 0 Then 		'si la sonda está pulsada, mostramos error y no seguimos
    Message "(ERROR: La sonda cero está activada antes de empezar!!)" 'esto se vera en la status bar como mensaje
Else

	ZRef = GetOEMLed(809)			'TRUE si el eje Z NO está referenciado

	If ZRef <> 0 Then		
	  Message "ERROR: El Eje Z debe estar referenciado"
	Else
		
	  AlturaDeSonda = GetUserDRO(1151)	'Obtiene la altura de sonda
	  CurrentFeed = GetOemDRO(818) 		'Obtiene el F actual

	  Rem Primera deteccion bajando rápido:
	  Code "F" & cFRapido	  			
		  
	  ZNew = GetDro(2) - cRecorridoMaximo	'Cordenada Z meta de la sonda

	  Code "G31Z" &ZNew
	  While IsMoving()			'Esperamos a que la sonda se active
	  Wend

	  ZNew = GetVar(2002) 			'Obtenemos coordenada Z de donde ha tocado

	  Rem subimos un trozo para volver a bajar lento:
	  code "G0Z" & ZNew + cRetroceso		'Retrocedemos cRetroceso hacia arriba

	  Rem Y Bajamos lento:
	  Code "F" & cFLento			'Bajamos hacia la sonda, pero lentamente
	  ZNew = GetDro(2) - (cRetroceso+1)

	  Code "G31Z" &ZNew
	  While IsMoving()			'Esperamos a que la sonda se active
	  Wend
   
	  ZCero = GetOemDRO( 85 )			'Obtenemos Z (de máquina, no relativa) del cero detectado
	  Message "Z Absoluta detectada:" &ZCero

	  Call SetDro (2, AlturaDeSonda)		'Hacemos el cero de eje z en el alto de la sonda
	  Code "G4 P0.25" 			'Pausa

	  Code "F" &CurrentFeed 			'Volvemos a poner el F que habia antes de empezar el script

	  Rem Movemos el Z a posicion de Home:
	  z = GetOemDRO( 192 )			'Obtenemos la Z de posicion de home
	  code "G0G53Z" & z
	End If  	
End If                                 

Pruebas de funcionamiento

Aqui muestro el funcionamiento de la sonda y del script, una vez montado todo:

Ajuste de la altura de la sonda

Para poder hacer el cero, el script necesita saber a que altura está el punto justo donde el pulsador hace contacto respecto del suelo. En este vídeo muestro cómo averiguar esta altura, obteniendo el dato que poner luego en el campo ‘altura de sonda’ en la pantalla correspondiente del Mach3:

Sonda cero para la fresadora X6-1500GT Parte 1

Sonda Cero para X6-1500GT con interruptor.

Sonda Cero para X6-1500GT con interruptor.

En esta máquina, al ser el cambio de herramienta manual, cada vez que haces un cambio de herramienta has de hacer el cero del eje Z, adecuándolo a la altura de la herramienta que vas a colocar.

Para simplificar el trabajo, lo mejor es no usar las utilidades del Mach3 que permiten definir las alturas de cada herramienta, ya que cada vez que coloques la herramienta cambiarás su altura, a no ser que le coloques un collarín de tope para que cada vez que la pongas la coloques a la misma altura.
Si en lugar de todo este lio de los topes, aprovechamos y hacemos el cero de la herramienta y el cero del trabajo en la misma operación… eso que salimos ganando.

Para esta operación, la máquina trae una sonda conductiva de regalo:

Sonda Conductiva de la X6-1500Gt

Sonda Conductiva de la X6-1500Gt

que no es mas que un trozo de metal de altura conocida con un cable adjunto.
La idea de hacer el cero funciona de la siguiente manera: La máquina va moviendo el eje Z hacia abajo, mirando en cada momento el estado de la entrada digital asociada a la sonda. Cuando esta entrada digital cambia de estado, la máquina para y anota la coordenada Z en donde ha parado, le suma la altura de la sonda y coloca el cero del eje Z en ese punto.

Todo esto funciona bien y es bastante repetitible, pero como todo… tiene pegas. La mayor que me he encontrado es que si la herramienta que has colocado está sucia, con algún pequeño resto de virutas, la sonda no hará contacto, haciendo que el eje Z siga bajando… hasta estrellar la herramienta con la sonda.
Esto me ha ocurrido 3 o 4 veces, y resulta algo catastrófico: o aplastas la sonda, o cascas la herramienta o fuerzas el eje Z.

Para evitar esto, se me ha ocurrido cambiar la sonda conductiva por un pulsador.
Por un lado evito el problema de la falta de conductividad y por otro me ahorro tener que colocar una pinza de cocodrilo mordiendo la herramienta.

Así que me fuí de compras por Ebay y pedí el siguiente pulsador:

Pulsador

Es metálico, antivandálico, muy barato (no llega a 2 euros).
Aqui teneis el enlace a Ebay: Pulsador Metálico antivandálico 16mm

Por supuesto, a este chisme hay que hacerle un soporte, o una caja para colocarlo en posición vertical siempre a la misma altura.

Este es el diseño que me he sacado de la manga:

Sonda cero mediante pulsador para fresadora X6-1500GT

Sonda cero mediante pulsador para fresadora X6-1500GT

Como material usaré metacrilato, que me queda algo por aqui. Es un buen material para mecanizar, y creo que será bastante estable en cuanto a sus dimensiones.

Este es el aspecto del chisme. ya construido:

Sonda Cero para X6-1500GT

Son tres piezas superpuestas de metacrilato de 9mm de espesor, atornilladas con tornillos M6 desde la parte inferior, roscados directamente en la pieza superior.

En este vídeo muestro todo el proceso de fresado y montaje del cacharro:

Para los interesados, aqui van los planos en Solidworks 2013 y en STEP por si quieres fabricarte una:

X6-SondaCero-Cad Files

En otra entrada probaré la sonda y adecuaré los scripts de Mach3 para hacer el cero de forma más cómoda.