Adaptación de un postprocesador para láseres

Introducción

El módulo láser permite que nuevos tipos de herramientas representen láseres en la base de datos de herramientas y también nuevas estrategias específicas para láseres.

El módulo láser ahora proporciona registros y variables independientes para herramientas y trayectorias láser. Debido a que estas salidas se han separado del control del enrutador convencional, para la mayoría de las máquinas y controladores a menudo es posible crear un único posprocesador para trabajar sin problemas con las trayectorias de herramientas láser o enrutador, pero tenga en cuenta que es posible que aún deba asegurarse de que la configuración física del su máquina cambia dependiendo del tipo de trayectoria.

Entrada anterior Los procesadores no funcionarán correctamente con el módulo láser

Tenga en cuenta que muchos fabricantes de kits de conversión proporcionaron postprocesadores Vectric antes del lanzamiento del módulo láser. Estos utilizaron soluciones alternativas para permitir que algunas estrategias de trayectoria de herramientas del enrutador, como el perfilado, se utilicen con un cabezal láser. Los posprocesadores creados sin soporte explícito para las funciones adicionales documentadas aquí no funcionarán correctamente.

Generalmente hay 4 áreas que deben modificarse en un posprocesador convencional para ampliarlo y admitir la trayectoria de herramienta láser.

  • Agregue soporte para una nueva variable Power , que será utilizada por las nuevas estrategias láser.
  • Agregue nuevos bloques de posprocesador específicos para láser para formatear las trayectorias de herramientas láser correctamente para su máquina y controlador.
  • Modifique cualquier bloque de posprocesador existente para garantizar una potencia independiente y un comportamiento específico del láser.
  • Agregue una marca para indicarle al software de Vectric que esta publicación ahora admite estrategias de trayectoria de herramientas láser.

Las siguientes secciones tratan cada área por separado y se proporciona un ejemplo del uso del controlador GRBL gcode. Estos ejemplos son del postprocesador grbl (mm y pulgadas) proporcionado de forma predeterminada con el software de Vectric.

Variable de potencia

El software de Vectric generará la configuración de potencia para una trayectoria láser en el rango de 1-100%. Necesitamos agregar una nueva variable para mostrar cómo formatear esta configuración para su controlador particular. Esta también es la oportunidad de escalar el valor porcentual bruto al rango numérico que requiere su controlador.

Ejemplo

Para los controladores basados en GRBL, la configuración de potencia de un láser generalmente tiene un alias con el comando de control de velocidad del husillo gcode 'S'. En el modo láser, el controlador responderá a un cambio de control de velocidad del husillo ajustando la potencia del láser. Aunque se puede configurar dentro del controlador, la configuración predeterminada para el valor 'S' máximo esperado (o potencia del láser) es 1000.

Por lo tanto, para GRBL, necesitamos formatear la variable POWER para que sea un comando 'S' de gcode y escalar su valor de salida en un factor de diez para que esté en el rango de 1 a 1000 (en lugar del valor predeterminado de 1 a 100). .

La entrada de variable en el posprocesador dice:

VAR POWER = [P|C|S|1.0|10.0]

Para desglosar esta entrada en un lenguaje sencillo, decimos que la salida de POTENCIA de nuestra ruta de herramienta debe usarse en todas partes de nuestro archivo de definición de publicación posterior donde tengamos la variable [P]. Pero solo debemos emitir un comando cuando cambia el valor de POTENCIA (C). Reemplazaremos las ubicaciones de las variables [P] en nuestra salida de ruta de herramienta con el comando 'S' (S). El valor de potencia debe tener el formato de un número entero sin puntos decimales (1,0) y debe multiplicarse desde su valor predeterminado por un factor de 10.

Nuevos bloques de posprocesador láser

Para permitir el control del láser, hay nuevos bloques de posprocesador disponibles en el posprocesador. Estos son:

  • JET_TOOL_ON - Salida siempre que la ruta de herramienta necesite el láser encendido
  • JET_TOOL_POWER - Salida cada vez que la trayectoria de la herramienta necesita que la potencia del láser cambie
  • JET_TOOL_OFF - Salida cuando la ruta de herramienta necesita que el láser esté apagado

Ejemplo

En nuestro ejemplo de GRBL, agregamos los 3 nuevos tipos de bloques. Para encender el láser, GRBL utiliza el comando gcode M4 (normalmente destinado a la dirección del husillo, pero GRBL lo 'reutiliza' para soporte del láser). Ahora podemos hacer uso de nuestra variable POTENCIA, definida anteriormente como [P], para proporcionar el valor de potencia requerido. El bloque JET_TOOL_ON es así:

+---------------------------------------------------

+ Commands output when the jet is turned on

+---------------------------------------------------

begin JET_TOOL_ON

"M4[P]"

Para apagar el láser, GRBL utiliza el comando gcode M5:

+---------------------------------------------------

+ Commands output when the jet is turned off

+---------------------------------------------------

begin JET_TOOL_OFF

"M5"

Finalmente, para configurar la potencia en sí, para GRBL simplemente generamos la potencia:

+---------------------------------------------------

+ Commands output when the jet power is changed

+---------------------------------------------------

begin JET_TOOL_POWER

"[P]"

Modificar bloques existentes

También queremos que cuando realicemos un movimiento de alimentación también emitamos energía, por lo que para hacer esto actualizamos los bloques FEED_MOVE para incluir [P].

Tenemos que hacer eso para todo de los diferentes tipos de movimientos de alimentación.

Además, debemos evitar que se produzcan movimientos de inmersión cuando el láser está encendido. Para fresado o fresado convencional, necesitamos que el husillo esté encendido antes de realizar un movimiento de inmersión, pero para un láser es crucial que solo lo encendamos después cuando nos hayamos movido al nivel Z correcto (este problema se manifiesta como ' sobregrabar' al comienzo de cada segmento de trayectoria). Para garantizar que podamos separar correctamente estos requisitos, es posible que debamos eliminar cualquier comando del husillo de los movimientos de inmersión u otros tipos de bloques (algunos pueden tenerlos en el encabezado, por ejemplo) y dividirlos en SPINDLE_ON & explícitos. PLUNGE_MOVE bloques. Esto garantizará que estos movimientos solo se realicen para estrategias de trayectorias que no sean láser y en la secuencia correcta.

Ejemplo

Para GRBL, esto es una simple adición al final de la declaración de movimiento del feed:

+---------------------------------------------------

+ Commands output for feed rate moves

+---------------------------------------------------

begin FEED_MOVE

"G1[X][Y][Z][P]"

Recuerde que configuramos nuestra variable POTENCIA para que solo emita en caso de cambio (C), así que tenga en cuenta que en la salida para movimientos de alimentación a potencia constante, solo se incluirá un comando de potencia inicial y cambiante. Para algunos controladores, la cantidad de comandos que se pueden procesar es un factor limitante en la velocidad de la trayectoria de la herramienta y, para las imágenes láser, en particular, esto se puede mitigar un poco no enviando comandos innecesarios siempre que sea posible.

Para el husillo GRBL separado y el control de inmersión, los bloques son:

+---------------------------------------------------

+ Command output after the header to switch spindle on

+---------------------------------------------------

begin SPINDLE_ON

"[S]M3"

+---------------------------------------------------

+ Commands output for the plunge move

+---------------------------------------------------

begin PLUNGE_MOVE

"G1[X][Y][Z][F]"

Notarás que GRBL usa el M3 para controlar el enrutador o fresadora. También tenga en cuenta que el movimiento de inmersión requiere la capacidad de mover la máquina en X e Y para soportar la rampa.

Marcar explícitamente el posprocesador como compatible con láser

Por último, un posprocesador requerirá que se agregue la nueva Declaración de archivo global LASER_SUPPORT="YES" para que esté disponible para su selección como posprocesador láser dentro del software.
Esto solo se agrega a los posprocesadores para uso general una vez que el posprocesador haya recibido pruebas completas por parte del creador.

Ejemplo

LASER_SUPPORT = "YES"