Este capítulo cubre conceptos importantes de que deben ser entendidos por el usuario antes de intentar manejar una máquina CNC con código g.

1. Control de Trayectoria

1.1. Planificacion de trayectoria

La planificación de trayectorias, en general, es el medio por el cual LinuxCNC sigue la ruta especificada por su programa de Código G, mientras opera dentro de los límites de la maquina.

Un programa de Código G nunca puede ser completamente obedecido. Por ejemplo, imagine que especifica un programa de solo de línea con el siguiente movimiento:

G1 X1 F10 (G1 es movimiento lineal, X1 es el destino, F10 es la velocidad)

En realidad, todo el movimiento no se puede hacer a F10, ya que la máquina debe acelerar desde el reposo, avanzar hacia X=1, y luego desacelerar para parar de nuevo. A veces, parte del movimiento se realiza a F10, pero para muchos movimientos, especialmente los cortos, nunca se alcanza en absoluto la velocidad de avance especificada. Tener movimientos cortos en su Código G puede hacer que su máquina se ralentice y luego acelere para los movimientos más largos si no se emplea naive cam detector con G64 Pn.

La aceleración y desaceleración básica descrita anteriormente no es compleja y no hay ningún compromiso que tomar. En el archivo INI se han especificado las restricciones de la máquina, como la velocidad y aceleración máxima de ejes, que deben ser obedecidas por el planificador de trayectoria.

Para obtener más información sobre las opciones ini del planificador vea la <<sec:traj-section,Sección Trayectoria en el capítulo INI.

1.2. Seguimiento de ruta

Un problema menos sencillo es el seguimiento de ruta. Cuando se programa una esquina en Código G, el planificador de trayectoria puede hacer varias cosas, todas ellas correctas según el caso:

  • Puede desacelerar hasta detenerse exactamente en las coordenadas de la esquina, y luego acelerar en la nueva dirección.

  • También puede hacer lo que se llama fusión (blending), que consiste en mantener la velocidad de avance mientras pasa por la esquina, por lo que es necesario redondear dicha esquina para obedecer las restricciones de la máquina.

Puede ver que aquí si hay un compromiso; se puede reducir la velocidad para obtener un mejor seguimiento del camino, o mantener la velocidad con peor seguimiento. Dependiendo del corte particular, el material, las herramientas, etc, el programador puede querer comprometerse de una manera u otra.

Los movimientos rápidos también obedecen el control de trayectoria actual. Con movimientos suficientemente largos para alcanzar la velocidad máxima en una máquina con baja aceleración y si no se especifica la tolerancia de ruta, puede obtener una esquina bastante redonda.

1.3. Programacion del planificador

Los comandos de control de trayectoria son los siguientes:

  • G61 - (Modo de ruta exacta) visita el punto programado exactamente, aunque eso signifique que la maquina podría detenerse temporalmente para cambiar de dirección hacia el siguiente punto programado.

  • G61.1 - (Modo de parada exacta) le dice al planificador que se detenga exactamente en cada final de segmento.

  • G64 - (Fusión sin modo de tolerancia) G64 es la configuración predeterminada cuando se inicia LinuxCNC. G64 es simplemente fusión sin naive cam detector habilitado. G64 y G64 P0 le dicen al planificador que sacrifique la precisión de seguimiento de ruta para mantener la velocidad de avance. Esto es necesario para algunos tipos de materiales o herramientas donde las paradas exactas son dañinas y puede funciona bien siempre que el programador no olvide que la ruta de la herramienta será algo más curvilínea que lo que especifica el programa. Al usar movimientos G0 (rápidos) con G64, tenga cuidado con los movimientos a puntos seguros (clareance) y permita suficiente distancia para evitar obstáculos en función de las capacidades de aceleración de su máquina.

  • G64 P- Q- - (Fusión con modo de tolerancia) Esto habilita naive cam detector y permite fusiones con tolerancia. Si se programa, por ejemplo, G64 P0.05, se le dice al planificador que se desea alimentación continua, pero en esquinas programadas quiere que desacelere lo suficiente para que la ruta de la herramienta pueda mantenerse a no mas de 0.05 unidades de usuario de la ruta programada. La cantidad exacta de desaceleración depende de la geometría de la esquina programada y las limitaciones de la máquina, pero lo único de lo que el programador necesita preocuparse es de la tolerancia. Esto le da al programador control total sobre el compromiso de seguimiento de camino. La tolerancia de la fusión se puede cambiar a lo largo de todo el programa según sea necesario. Tenga en cuenta que una especificación G64 P0 tiene el mismo efecto que G64 solo, necesario para compatibilidad con los viejos programas de G Code. Vea la <<gcode:g64,sección G64 del capítulo de Código G.

  • Fusión sin tolerancia - El punto controlado tocará cada movimiento especificado en al menos un punto. La máquina nunca se moverá a una velocidad tal que no pueda llegar a una parada exacta al final del movimiento actual (o el próximo movimiento, si hace una pausa cuando la fusión ya ha comenzado). La distancia desde el punto final del movimiento sera tan grande como deba ser para mantener la mejor alimentación para el contorno.

  • Naive Cam Detector - Varios movimientos G1 sucesivos que involucran solo a los ejes XYZ y que se desvíen menos de una cantidad Q- de una línea recta que los contenga, se fusionaran en una única línea recta. Este movimiento combinado reemplaza los movimientos individuales G1 cuando se quiere fusionar con tolerancia. Entre movimientos sucesivos, el punto controlado no se desviara más de P- desde los puntos finales reales de los movimientos. El punto controlado tocará al menos un punto en cada movimiento. La máquina nunca se moverá a una velocidad tal que no puede llegar a una parada exacta al final del movimiento actual (o siguiente movimiento, si hace una pausa cuando la fusión ya ha comenzado). En movimientos G2/G3, que se muevan en el plano G17 (XY), cuando la desviación máxima de un arco desde un línea recta es menor que la tolerancia Q-, el arco se divide en dos líneas (desde el inicio del arco hasta el punto medio y desde el punto medio hasta el final). Esas líneas están entonces sujetas al algoritmo Naive Cam Detector para líneas. Por lo tanto, casos de arco a línea, arco a arco y línea a arco, así como línea a línea, podrán beneficiarse de naive cam detector. Esto mejora el rendimiento de contorneado simplificando el camino.

En la siguiente figura, la línea azul representa la velocidad real de la máquina. Las líneas rojas son la capacidad de aceleración de la máquina. Las líneas horizontales debajo de cada grafico son el movimiento planificado. La parte superior de la gráfica muestra cómo el planificador de trayectoria ralentizará la máquina cuando se encuentren movimientos cortos para mantenerse dentro de los límites de los ajuste de aceleración de la máquina para poder detenerse exactamente al final del próximo movimiento. La gráfica inferior muestra el efecto de Naive Cam Detector al combinar los movimientos y hacer un mejor trabajo manteniendo el velocidad según lo planeado.

Naive Cam Detector
Figura 1. Naive Cam Detector

1.4. Planificacion de movimientos

Asegúrese de que los movimientos sean "lo suficientemente largos" para adaptarse a su máquina/material. Principalmente debido a la regla de que la máquina nunca se moverá a una velocidad tal que no pueda detenerse por completo al final del movimiento actual, hay una longitud de movimiento mínima que permitirá a la máquina mantener una velocidad de avance solicitada para un ajuste de aceleración dado.

Las fases de aceleración y desaceleración utilizan cada una la mitad de MAX_ACCELERATION del archivo ini. En una combinación que sea una inversión exacta, esto causara que la aceleración total del eje iguale el valor MAX_ACCELERATION del archivo ini. En otros casos, la aceleración real de la máquina es algo menor que esta aceleración ini.

Para mantener la velocidad de alimentación, el movimiento debe ser más largo que la distancia necesaria para acelerar de cero a la velocidad de avance deseada y luego detenerse de nuevo. Usando A como 1/2 del valor de MAX_ACCELERATION del archivo ini, y F como velocidad de avance en unidades por segundo, el tiempo de aceleración es ta = F/A y la distancia de aceleración es da = F * ta/2. En desaceleración, el tiempo y la distancia es la misma, haciendo que la distancia crítica sea d = da + dd = 2 * da = F2/A.

Por ejemplo, para una velocidad de avance de 1 pulgada por segundo y una aceleración de 10 pulgadas/seg2, la distancia crítica es 12/10 = 1/10 = 0.1 pulgadas.

Para una velocidad de avance de 0.5 pulgadas por segundo, la distancia crítica es 52/100 = 25/100 = 0.025 pulgadas.

2. Código G

2.1. Valores predeterminados

Cuando LinuxCNC se arranca, se cargan muchos códigos G y M de manera predeterminada. Los códigos actuales activos G y M se pueden ver en la pestaña MDI de la ventana Códigos G activos: en la interfaz AXIS. Estos códigos G y M define el comportamiento de LinuxCNC y es importante que entienda qué hace cada uno de ellos antes de ejecutar LinuxCNC. Los valores predeterminados se pueden cambiar cuando se ejecuta un archivo G-Code y pueden quedar en un estado diferente al del comienzo de sesión de LinuxCNC. La mejor práctica es establecer los valores predeterminados necesarios para el trabajo en un preámbulo de su archivo G-Code, sin suponer que los valores predeterminados no han cambiado. Imprimir la página de Referencia Rápida de códigos G puede ayudarle a recordar que es cada uno.

2.2. Velocidad de Alimentacion

La forma en la que se aplica la velocidad de alimentación depende de si un eje involucrado con el movimiento es un eje giratorio. Lea y comprenda la sección Velocidad de Avance si tiene un eje giratorio o un torno.

2.3. Offset del radio de la herramienta

El offset del radio de la herramienta (G41/G42) requiere que la herramienta sea capaz de tocar en algún lugar a lo largo de cada movimiento programado sin estropear los dos movimientos adyacentes. Si eso no es posible con el diámetro actual de la herramienta, se obtendrá un error. Una herramienta de menor diámetro puede trabajar sin error en el mismo camino. Esto significa que puede programar una herramienta para pasar por un camino que es más estrecho que la herramienta sin ningún error aparente. Para más información, ver la Sección Compensación de la Herramienta.

3. Homing

Después de iniciar LinuxCNC, cada eje debe tener definida una posición home antes de ejecutar un programa o un comando MDI.

Si su máquina no tiene interruptores home, una marca de coincidencia en cada eje puede ayudar a colocar las coordenadas de la máquina en el mismo lugar.

Una vez que los ejes están en home, se usarán los límites software establecidos en el archivo ini.

Si desea desviarse del comportamiento predeterminado, o desea usar el interfaz Mini, necesitará configurar la opción NO_FORCE_HOMING = 1 en la sección [TRAJ] de su archivo ini. Se puede obtener más información sobre homing en Velocidad de Avance.

4. Cambios de herramientas

Hay varias opciones al hacer cambios de herramientas manuales. Ver la Sección [EMCIO] para obtener información sobre la configuración de estas opciones. Ver también las secciones G28 y G30 del capítulo de Código G.

5. Sistemas de coordenadas

Los sistemas de coordenadas pueden ser confusos al principio. Antes de manejar una máquina CNC debe comprender los conceptos básicos de los sistemas de coordenadas utilizados por LinuxCNC. La información detallada sobre los sistemas de coordenadas está en la sección Sistema de Coordenadas de este manual.

5.1. Coordenadas Maquina G53

Al hacer una secuencia homing, LinuxCNC configura el sistema de coordenadas de la máquina, G53, a cero para cada uno de los eje en la secuencia.

  • Ningún otro sistema de coordenadas u offsets de herramientas se cambian por la secuencia homing.

La única forma de moverse en el sistema de coordenadas de la máquina es cuando se programa un G53 en la misma línea que el movimiento. Normalmente se está en el sistema de coordenadas G54.

5.2. Coordenadas de usuario - G54 a G59.3

Normalmente se usa el sistema de coordenadas G54. Cuando se aplica un offset al actual sistema de coordenadas de usuario, una pequeña bola azul con líneas estará en el origen de maquina cuando su DRO esté mostrando Posición: Relativa Actual en Axis. Si sus offsets son temporales, use Zero Coordinate System del menú o programe la máquina con G10 L2 P1 X0 Y0 Z0 al final de su archivo de código G. Cambie el número P para que se adapte al sistema de coordenadas en el que desea borrar el offset.

  • Los offsets almacenados en un sistema de coordenadas de usuario se conservan cuando LinuxCNC se apaga.

  • Usando el botón Touch Off en Axis, se establece un offset para el Sistema de coordenadas elegido de usuario.

5.3. Cuando este perdido

Si tiene problemas para obtener 0,0,0 en el DRO cuando piense que debería mostrarse, puede que tenga algunos offsets programados y necesita eliminarlos.

  • Muévase al origen de la máquina con G53 G0 X0 Y0 Z0

  • Borre cualquier offset de G92 con G92.1

  • Use el sistema de coordenadas G54

  • Establezca el sistema de coordenadas G54 para que sea el mismo que el sistema de coordenadas máquina con G10 L2 P1 X0 Y0 Z0 R0

  • Desactivar los offsets de herramienta con G49

  • Activar la pantalla de coordenadas relativas desde el menú

Ahora debe estar en el origen de la máquina X0 Y0 Z0 y el sistema de coordenadas relativo debe ser el mismo que el sistema de coordenadas de máquina.

6. Configuraciones de la maquina

El siguiente diagrama muestra una fresadora típica que muestra la dirección del recorrido de la herramienta, la mesa y los interruptores de límite. Observe cómo la mesa se mueve en la dirección opuesta a las flechas del sistema de coordenadas cartesianas mostrado por la imagen Dirección Herramienta. Esto hace que la herramienta se mueva en el dirección correcta en relación con el material.

Configuración de fresadora
Figura 2. Configuración de fresadora

El siguiente diagrama muestra un torno típico que muestra la dirección del recorrido de la herramienta y los interruptores de límite.

Configuración de torno
Figura 3. Configuración de Torno