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: