1. Introducción
En este capítulo trataremos de desmitificar a los sistemas de coordenadas. Es un concepto muy importante para comprender la operación de una máquina CNC, su configuración y su uso.
También mostraremos que es muy interesante usar un punto de referencia en el espacio o en la pieza y hacer que el programa trabaje desde este punto, sin tener en cuenta en dónde esta colocada la pieza en la mesa.
Este capítulo describe los offsets tal como los utiliza LinuxCNC. Éstos incluyen:
-
Coordenadas de la máquina (G53)
-
Nueve offsets del sistema de coordenadas (G54-G59.3)
-
Offsets globales (G92) y locales (G52)
2. Sistema de coordenadas de la máquina
Cuando se inicia LinuxCNC, las posiciones de cada eje definen el origen de la máquina. Cuando se hace home de un eje, el origen de la máquina para ese eje se establece en esa posición home. El origen máquina es el sistema de coordenadas de la máquina en el que se basan todos los demás sistemas de coordenadas. El código G53 puede usarse para moverse en el sistema de coordenadas máquina.
2.1. Movimientos en coordenadas de máquina: G53
Independientemente de cualquier offset que pudiera estar activo, un G53 en una línea de código indica al intérprete moverse a las posiciones reales de los ejes (posiciones absolutas) especificadas. Por ejemplo:
G53 G0 X0 Y0 Z0
moverá de la posición actual a la posición donde las coordenadas de máquina de los tres ejes sean cero. Puedes usar este comando si tienes una posición fija para el cambio de herramienta o si tu máquina tiene un cambiador automático de herramienta. También puedes usar este comando para despejar el área de trabajo y acceder a la pieza de trabajo en la mordaza.
G53 es un comando no modal. Debe usarse en cada bloque en el que se desee un movimiento en el sistema coordenado de la máquina.
3. Sistemas de coordenadas
-
G54 - usa el sistema de coordenadas 1
-
G55 - usa el sistema de coordenadas 2
-
G56 - usa el sistema de coordenadas 3
-
G57 - usa el sistema de coordenadas 4
-
G58 - usa el sistema de coordenadas 5
-
G59 - usa el sistema de coordenadas 6
-
G59.1 - usa el sistema de coordenadas 7
-
G59.2 - usa el sistema de coordenadas 8
-
G59.3 - usa el sistema de coordenadas 9
Los offsets del sistema de coordenadas se utilizan para desplazar cada sistema de coordenadas desde el sistema de coordenadas de la máquina. Esto permite que el código G se programe para la pieza sin importar la ubicación de la pieza en la máquina. El uso de offsets del sistema de coordenadas te permitirá mecanizar piezas en múltiples ubicaciones con el mismo código G.
Los valores de los offsets se almacenan en el archivo VAR solicitado por el archivo INI durante el inicio de LinuxCNC. En el ejemplo de abajo, el cual usa G55, la posición de cada eje para el origen G55 se almacena en una variable numerada.
En el esquema de archivo VAR, el primer número de variable almacena el offset X, el segundo, el offset Y, y así sucesivamente para los nueve ejes. Hay conjuntos numerados como este para cada uno de los offsets de sistema de coordenadas.
Cada una de las interfaces gráficas tiene una forma de establecer valores para estos offsets. También puede establecer estos valores editando el propio archivo VAR y reinicializando luego LinuxCNC para que lea los nuevos valores. Sin embargo, esta no es la forma recomendada. El uso de G10, G52, G92, G28.1, etc. son mejores formas de establecer las variables. Para nuestro ejemplo, editaremos directamente el archivo para que G55 tome los valores siguientes:
| Eje | Variable | Valor |
|---|---|---|
X |
5241 |
2.000000 |
Y |
5242 |
1.000000 |
Z |
5243 |
-2.000000 |
A |
5244 |
0.000000 |
B |
5245 |
0.000000 |
C |
5246 |
0.000000 |
U |
5247 |
0.000000 |
V |
5248 |
0.000000 |
W |
5249 |
0.000000 |
Deberías leer esto como mover las posiciones cero de G55 a X = 2 unidades, Y = 1 unidad, y Z = -2 unidades desde la posición de cero absoluto.
Una vez que hay valores asignados, una llamada a G55 en un bloque de programa desplaza la referencia cero absoluta por los valores almacenados. La siguiente línea movería cada eje a la nueva posición cero. A diferencia de G53, G54 hasta G59.3 son comandos modales. Actuarán en todos los bloques de código después de que uno de ellos se ha establecido. El programa que podría ejecutarse usando offsets de fijaciones requeriría solo una coordenada de referencia para cada una de las ubicaciones y todo el trabajo se realizaria allí. El siguiente código se ofrece como un ejemplo de cómo hacer un cuadrado usando los offsets G55 que configuramos arriba.
G55; utilizar el sistema de coordenadas 2 G0 X0 Y0 Z0 G1 F2 Z-0.2000 X1 Y1 X0 Y0 G0 Z0 G54; utilizar el sistema de coordenadas 1 G0 X0 Y0 Z0 M2
En este ejemplo, el G54 cerca del final deja el sistema de coordenadas G54 con todos los offsets a cero para que haya un código modal basado en ejes absolutos de máquina. Este programa asume que lo hemos hecho y usamos el comando final como un comando para cero máquina. Hubiera sido posible usar G53 y llegar al mismo lugar pero ese comando no habría sido modal y cualquier comando emitido después hubiera vuelto a usar los offsets G55 porque ese sistema de coordenadas todavía estaría en vigor.
[source,ngc]
G54 usa parámetros del sistema de coordenadas 1
G55 usa parámetros del sistema de coordenadas 2
G56 usa parámetros del sistema de coordenadas 3
G57 usa parámetros del sistema de coordenadas 4
G58 usa parámetros del sistema de coordenadas 5
G59 usa parámetros del sistema de coordenadas 6
G59.1 usa parámetros del sistema de coordenadas 7
G59.2 usa parámetros del sistema de coordenadas 8
G59.3 usa parámetros del sistema de coordenadas 9
3.1. Sistema de coordenadas predeterminado
Otra variable en el archivo VAR se vuelve importante cuando pensamos en sistemas de offsets. Esta variable es la 5220. En los archivos predeterminados, su valor se establece en 1.00000. Esto significa que cuando LinuxCNC se inicia, debería usar el primer sistema de coordenadas como el predeterminado. Si se configura a 9.00000 usaría el noveno sistema de offsets como predeterminado al iniciar o reiniciar. Cualquier valor que no sea un entero (decimal realmente) entre 1 y 9, o si falta la variable 5220 hará que LinuxCNC vuelva al valor predeterminado de 1.00000 al inicio.
3.2. Configuración de offsets de sistema de coordenadas
El comando G10 L2x se puede usar para establecer los offsets de sistema de coordenadas:
|
Nota
|
Aquí solo damos un vistazo, ve a las secciones de código G para una descripción completa. |
4. Offsets locales y globales
4.1. El comando G52
G52 se usa en un programa de pieza como un "offset del sistema de coordenadas local" temporal dentro del sistema de coordenadas de la pieza de trabajo. Un ejemplo de caso de uso es cuando se mecanizan varias características idénticas en diferentes ubicaciones de una pieza. Para cada una, G52 programa un punto de referencia local dentro de las coordenadas de pieza, y se llama a un subprograma para maquinar la característica relativa a ese punto.
Los offsets de ejes G52 se programan relativos a las coordenadas de offset de la pieza de trabajo G54 a G59.3. Como un offset local, G52 se aplica después del offset de la pieza de trabajo, incluida la rotación. Por lo tanto, una característica parcial será mecanizada de forma idéntica en cada parte, independientemente de la orientación de la parte en el palet.
|
Atención
|
En otros intérpretes de código G, G52 no persiste después de reinicio de la máquina M02 o M30, al asignar y desasignar un offset temporal dentro de un ámbito localizado de un programa de parte. En LinuxCNC, G52 comparte parámetros con G92, el cual por razones históricas persiste esos parámetros. Ver G92 Precauciones con persistencia a continuación. |
|
Atención
|
G52 y G92 comparten los mismos registros de offset. Por lo tanto, usar G52 anulará cualquier configuración G92 previa, y G52 persistirá después de un reinicio de máquina cuando la persistencia de G92 este activada. Estas interacciones pueden resultar en offsets inesperados. Ver Precauciones de interacción G92 y G52 abajo. |
La programación de G52 X1 Y2 da offsets al sistema de coordenadas actual de la pieza de trabajo, 1 para eje X y 2 para eje Y. Por consiguiente, en el DRO las coordenadas X e Y de la posición actual de la herramienta se reducirán en 1 y 2, respectivamente. Los ejes sin establecer en el comando, como Z en el ejemplo anterior, no se verán afectados: cualquier offset Z G52 previo permanecerá vigente, y en caso de haberlo, el offset Z será cero.
El offset local temporal puede cancelarse con G52 X0 Y0. Cualquier eje no puesto a cero explícitamente retendrá el offset anterior.
G52 comparte los mismos registros que G92, por lo que G52 es visible en el DRO y vista previa, etiquetado como G92.
5. G92 Offsets de ejes
G92 es el comando programable más incomprendido e inteligente en LinuxCNC. La forma en que trabaja ha cambiado un poco desde las primeras versiones a la actual y esos cambios han desconcertado a muchos usuarios. Debería ser visto como un comando que produce un offset temporal que aplica para todos los demás offsets.
5.1. Los comandos G92
G92 se usa típicamente de dos maneras conceptualmente diferentes: como un "offset del sistema de coordenadas global" o como un "offset del sistema de coordenadas local".
El conjunto de comandos G92 incluye:
-
G92 - Este comando, cuando se usa con nombres de eje, establece valores para las variables de offset.
-
G92.1 - Este comando establece valores cero para las variables G92.
-
G92.2 - Este comando suspende G92, pero no pone a cero las variables.
-
G92.3 - Este comando aplica los valores de offset que se suspendieron.
Como offset global, G92 se usa para cambiar todas los sistemas de coordenadas de la pieza de trabajo, G54 a G59.3. Un ejemplo de caso de uso es cuando se mecanizan varias piezas idénticas en fijaciones con ubicaciones conocidas en un palet, pero la ubicación del palet puede cambiar entre lotes o entre máquinas. Cada offset de ubicación de la fijación, relativo a un punto de referencia en el palet, está preestablecido en uno de los sistemas de coordenadas de pieza, de G54 a G59.3, y se usa G92 para hacer "touch off" en el punto de referencia en el palet. Luego, para cada parte, se selecciona el sistema de coordenadas de la pieza de trabajo correspondiente y se ejecuta el programa de pieza.
|
Nota
|
La rotación del sistema de coordenadas de la pieza G10 R- es específica del intérprete rs274ngc, y el offset G92 se aplica después de la rotación. Cuando se usa G92 como offset global, las rotaciones del sistema de coordenadas de pieza pueden tener resultados inesperados. |
Como sistema de coordenadas local, G92 se usa como offset temporal dentro del sistema de coordenadas de la pieza de trabajo. Un ejemplo de caso de uso es al mecanizar una pieza con varias características idénticas en diferentes ubicaciones. Para cada característica, se usa G92 para establecer un punto de referencia local, y se llama a un subprograma para mecanizar la característica a partir de ese punto.
|
Nota
|
Se desaconseja el uso de G92 para programar con sistemas de coordenadas locales en un programa de pieza. En su lugar, vea G52, un offset local del sistema de coordenadas es más intuitivo cuando se conoce el offset deseado relativo a la pieza de trabajo, pero es posible que no se conozca la ubicación actual de la herramienta. |
La programación G92 X0 Y0 Z0 establece la ubicación actual de la herramienta en las coordenadas X0, Y0 y Z0, sin movimiento. G92 no funciona desde coordenadas absolutas de la máquina. Funciona desde ubicación actual.
G92 también funciona desde la ubicación actual modificada por cualquier otro offset que esté vigente cuando se invoca G92. Al probar las diferencias entre los offsets de trabajo y los reales se encontró que un offset G54 podría cancelar un G92 y, por lo tanto, parecía que no había offsets en vigor. Sin embargo, G92 estaba todavía vigente para todas las coordenadas y produjo los offsets de trabajo esperados para los otros sistemas de coordenadas.
Predeterminadamente, los offsets G92 se restauran después de que se inicia la máquina. Los programadores que deseen un comportamiento tipo Fanuc, donde los offsets G92 se borran al inicio de la máquina y después de un reinicio o fin de programa, puede deshabilitar la persistencia G92 configurando DISABLE_G92_PERSISTENCE = 1 en el sección [RS274NGC] del archivo INI.
|
Nota
|
Es una buena práctica eliminar los offsets G92 al final de su uso con G92.1 o G92.2. Al iniciar LinuxCNC con persistencia G92 habilitada (el valor predeterminado), se aplicará cualquier offset en las variables G92 cuando un eje se lleve en casa. Ver G92 Precauciones con persistencia a continuación. |
5.2. Configuración de valores G92
Hay por lo menos dos maneras de asignar valores G92:
-
Con un click derecho en la posición mostrada en tklinuxcnc, se abre una ventana donde es posible introducir un valor.
-
Con el comando G92
Ambas funcionan desde la posición actual del eje que debería moverse.
La programación G92 X Y Z A B C U V W establece los valores de las variables G92 para que cada eje tome el valor asociado con su nombre. Esos valores se asignan a la posición actual de los ejes. Estos resultados satisfacen los párrafos uno y dos del documento de NIST.
Los comandos G92 funcionan desde la ubicación actual del eje y suman y restan correctamente para dar a la posición actual del eje el valor asignado por el comando G92. Los efectos funcionan a pesar de que haya offsets anteriores.
Por tanto, si el eje X muestra actualmente 2.0000 como su posición, un G92 X0 establecerá un offset de -2.0000 para que la ubicación actual de X sea cero. Un G92 X2 establecerá un offset de 0.0000 y la posición mostrada no cambiará. Un G92 X5.0000 establecerá un offset de 3.0000 para que la posición actual mostrada sea 5.0000.
5.3. Precauciones de persistencia G92
De forma predeterminada, los valores de un offset G92 se guardarán en el archivo VAR y se restaurarán después de un inicio o reinicio de la máquina.
Los parámetros G92 son:
-
5210 - Activar/desactivar bandera (1.0 / 0.0)
-
5211 - Offset eje X
-
5212 - Offset eje Y
-
5213 - Offset eje Z
-
5214 - Offset eje A
-
5215 - Offset eje B
-
5216 - Offset eje C
-
5217 - Offset eje U
-
5218 - Offset eje V
-
5219 - Offset eje W
donde 5210 es la bandera de habilitación G92 (1 para habilitado, 0 para deshabilitado) y 5211 a 5219 son los offsets de eje. Si se ven posiciones inesperadas como resultado de un movimiento ordenado, resultado de almacenar un offset en un programa anterior y no borrarlos al final, entonces hay que emitir un G92.1 en la ventana MDI para borrar los offsets almacenados.
Si existen valores G92 en el archivo VAR cuando se inicia LinuxCNC, los valores en el archivo var se aplicarán a los valores de la ubicación actual de cada eje. Si ésta es la posición casa y está establecida como cero máquina, todo estará correcto. Una vez que se ha sido establecido casa usando interruptores de máquina reales, o moviendo cada eje a una posición inicial conocida y emitiendo un comando casa de eje, cualquier offset G92 será aplicado. Si se tiene un G92 X1 vigente al llevar a casa el eje X, el DRO leerá X: 1.000 en lugar del esperado X: 0.000 porque el G92 se aplicó al origen de máquina. Si se emite un G92.1 y el DRO ahora lee solo ceros, entonces hubo un desplazamiento G92 vigente la última vez que corrió LinuxCNC.
A menos que la intención sea usar los mismos offsets G92 en el programa siguiente, la mejor práctica es emitir un G92.1 al final de cualquier archivo de código G donde se utilice offsets G92.
Cuando se aborta, durante el procesamiento, un programa que tiene offsets G92 vigentes, un inicio hará que se activen nuevamente. Como salvaguarda, tenga siempre su preámbulo estableciendo el entorno como usted lo espera. Además, la persistencia G92 puede deshabilitarse configurando DISABLE_G92_PERSISTENCE = 1 en la sección [RS274NGC] del archivo INI.
5.4. Precauciones de interacción G92 y G52
G52 y G92 comparten los mismos registros de offset. A menos que la persistencia G92 está deshabilitada en el archivo INI (ver Comandos G92), los offsets G52 también persistirán después del reinicio de la máquina, M02 o M30. Hay que tener cuidado que un offset G52 vigente durante un aborto de programa, puede dar lugar a offsets no deseados cuando se ejecute el programa siguiente. Ver G92 Precauciones con persistencia más arriba.
6. Programas de muestra usando offsets
6.1. Programa de muestra utilizando offsets de coordenadas de pieza de trabajo
Esta muestra de proyecto de grabado, fresa un grupo de cuatro círculos con radio .1 en una burda disposición de estrella alrededor de un círculo central. Podemos configurar el patrón de círculo individual como este.
G10 L2 P1 X0 Y0 Z0 (asegúrese de que G54 esté configurado en la máquina cero) G0 X-0.1 Y0 Z0 G1 F1 Z-0.25 G3 X-0.1 Y0 I0.1 J0 G0 Z0 M2
Podemos emitir un conjunto de comandos para crear offsets para los otros cuatro círculos, como esto.
G10 L2 P2 X0.5 (compensa el valor de G55 X en 0,5 pulgadas) G10 L2 P3 X-0.5 (compensa el valor de G56 X en -0.5 pulgadas) G10 L2 P4 Y0.5 (compensa el valor G57 Y en 0.5 pulgadas) G10 L2 P5 Y-0.5 (compensa el valor G58 Y en -0.5 pulgadas)
Los ponemos juntos en el programa siguiente:
(un programa para fresar cinco círculos pequeños en forma de diamante) G10 L2 P1 X0 Y0 Z0 (asegúrese de que G54 sea la máquina cero) G10 L2 P2 X0.5 (compensa el valor de G55 X en 0,5 pulgadas) G10 L2 P3 X-0.5 (compensa el valor de G56 X en -0.5 pulgadas) G10 L2 P4 Y0.5 (compensa el valor G57 Y en 0.5 pulgadas) G10 L2 P5 Y-0.5 (compensa el valor G58 Y en -0.5 pulgadas) G54 G0 X-0.1 Y0 Z0 (círculo central) G1 F1 Z-0.25 G3 X-0.1 Y0 I0.1 J0 G0 Z0 G55 G0 X-0.1 Y0 Z0 (offset primer círculo) G1 F1 Z-0.25 G3 X-0.1 Y0 I0.1 J0 G0 Z0 G56 G0 X-0.1 Y0 Z0 (offset segundo círculo) G1 F1 Z-0.25 G3 X-0.1 Y0 I0.1 J0 G0 Z0 G57 G0 X-0.1 Y0 Z0 (offset tercer círculo) G1 F1 Z-0.25 G3 X-0.1 Y0 I0.1 J0 G0 Z0 G58 G0 X-0.1 Y0 Z0 (offset cuarto círculo) G1 F1 Z-0.25 G3 X-0.1 Y0 I0.1 J0 G54 G0 X0 Y0 Z0 M2
Ahora llega el momento en que podríamos aplicar un conjunto de offsets G92 a este programa. Verás que se está ejecutando en cada caso en Z0. Si la fresa estaba en la posición cero, un G92 Z1.0000 emitido al inicio del programa desplazaría todo por una pulgada. También podrías cambiar todo el patrón en el plano XY agregando algunos offsets X e Y con G92. Si haces esto, debes agregar un comando G92.1 justo antes del M2 que finaliza el programa. Si no lo haces, otros programas que pudieras ejecutar después de éste también usarán ese offset G92. Además, guardarán los valores de G92 cuando cierres LinuxCNC y serán recargados cuando lo inicies de nuevo.
6.2. Programa de muestra usando offsets G52
(Por escribirse)