1. Introducción

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.

3. Sistemas de coordenadas

Ejemplo de sistemas de coordenadas
Figura 1. Ejemplo de sistemas de coordenadas

Desplazamientos del sistema 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 - usar 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 piezas iguales sin importar la ubicación de la pieza en la máquina. El uso de offsets del sistema de coordenadas le permitirán 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 esquema de archivo VAR, el primer número de variable almacena el desplazamiento X, el segundo, el desplazamiento Y, y así sucesivamente para los nueve ejes. Hay juegos numerados así 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.

Ejemplo de parámetros G55.

| ==== | 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ía 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 sería mover 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.

3.1. Sistema de Coordenadas Predeterminado

Otra variable en el archivo VAR se vuelve importante cuando pensamos sobre 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 configura esto a 9.00000 usaría el noveno sistema de compensación como predeterminado al iniciar o reiniciar. Cualquier valor que no sea un entero (decimal realmente) entre 1 y 9, o si la variable 5220 falta, hará que LinuxCNC vuelva al valor predeterminado de 1.00000.

3.2. Configuración de Offsets del Sistema de Coordenadas

El comando G10 L2x se puede usar para establecer los offsets del sistema de coordenadas:

  • G10 L2 P (1-9) - Establece los offsets a un valor. La posición actual es irrelevante.                          (vea G10 L2 para más detalles)

  • G10 L20 P (1-9) - Establece los offsets de modo que la posición actual se convierte en un valor.                          (vea G10 L20 para más detalles)

4. Offsets Locales y Globales

4.1. El comando G52

G52 se usa en un programa de pieza como un "Offset temporal del sistema de coordenadas local" dentro del sistema de coordenadas de la pieza de trabajo. Un ejemplo de uso es el caso cuando se mecanizan varias características idénticas en diferentes ubicaciones del material. Para cada una, G52 programa un punto de referencia local dentro de las coordenadas de pieza, y un subprograma es llamado para maquinar la característica relativa a ese punto.

Los offsets de ejes G52 se programan relativos a la coordenada de offset de la pieza de trabajo G54 a G59.3. Como compensación 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, como offset temporal, al establecer y salir del alcance localizado de una parte del programa, no persiste después del reinicio de la máquina, M02 o M30. En LinuxCNC, G52 comparte parámetros con G92 que, por razones históricas, hace persistir a estos parámetros. Ver G92 Precauciones con Persistencia a continuación.

La programación de G52 X1 Y2 da offsets al sistema de coordenada actual de la pieza de trabajo, 1 para X y 2 para 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 anterior ejemplo, no se verán afectados; cualquier offset Z G52 anterior permanecerá en efecto o, si no lo habia, el offset Z será cero.

El desplazamiento 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 y, por lo tanto, G52 es visible en el DRO y vista previa etiquetado como G92.

4.2. 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 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 fijacion, relativo a un punto de referencia en el palet, está preestablecido en uno de los sistemas de coordenadas de pieza, de G54 hasta G59.3, y G92 se usa para "touch off" del 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 desplazamiento 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 uso es al mecanizar una pieza con varias características idénticas en diferentes ubicaciones. Para cada función, G92 se usa 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 coordina 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. Mientras se testeaban las diferencias entre los offsets de trabajo y los actuales se encontró que un offset G54 podría cancelar un G92 y, por lo tanto, parecia que no habia 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.

Por defecto, 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 finalización del 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 tenga home. Ver G92 Precauciones con Persistencia a continuación.

4.3. Configuración de valores G92

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 se convierta 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 visualizada se convierte en 5.0000.

4.4. Precauciones de Persistencia G92

Por defecto, los valores de un desplazamiento G92 se guardarán en el archivo VAR y se restaurará 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 emita 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 esta es la posición home y la posición home esta establecida como cero máquina, todo será correcto. Una vez que home ha sido establecido usando interruptores de máquina reales, o moviendo cada eje a una posición inicial conocida y emitiendo un comando de home del eje, cualquier desplazamiento G92 será aplicado. Si tiene un G92 X1 en efecto cuando da home al 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 emite un G92.1 y el DRO ahora lee todos los ceros, entonces tuvo un desplazamiento G92 vigente la última vez corrió LinuxCNC.

A menos que su intención sea usar los mismas offsets G92 en el próximo programa, la mejor práctica es emitir un G92.1 al final de cualquier archivos de código G donde utiliza offsets G92.

Cuando un programa se aborta durante el procesamiento y tiene offsets G92 en efecto, el inicio hará que se activen nuevamente. Como salvaguarda, tenga siempre su preámbulo estableciendo el entorno como usted espera. Además, la persistencia G92 puede deshabilitarse configurando DISABLE_G92_PERSISTENCE = 1 en la sección [RS274NGC] del archivo .ini.

4.5. Precauciones de Interacción G92 y G52

G52 y G92 comparten los mismos registros de desplazamiento. A menos que la persistencia G92 está deshabilitada en el archivo .ini (vea Comandos G92), los offsets G52 también persistirán después del reinicio de la máquina, M02 o M30. Tenga en cuenta que un offset G52 en efecto durante un programa abortado puede dar lugar a desplazamientos no deseados cuando se ejecuta el siguiente programa. Ver G92 Precauciones con Persistence más arriba.

5. Programas de Muestra usando Offsets

5.1. Programa de Muestra utilizando Offsets de Coordenadas de Pieza

Este proyecto de grabado de muestra moldea un conjunto de cuatro círculos de radio .1 en una forma aproximadamente 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 reunimos en el siguiente programa:

-------------------------------------------------- ------------------- (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á que se está ejecutando en cada caso en Z0. Si la fresa estaban en la posición cero, un G92 Z1.0000 emitido al inicio del programa cambiaría todo una pulgada. También puede cambiar todo el patrón en el plano XY agregando algunos desplazamientos X e Y con G92. Si hace esto, debe agregar un comando G92.1 justo antes de M2 que finaliza el programa. Si no lo hace, otros programas que podría ejecutar después de este también usará ese desplazamiento G92. Además, lo harían en un nuevo inicio ya que se guardan los valores de G92 cuando se cierra LinuxCNC y serán recargados cuando se inicia de nuevo.

5.2. Programa de muestra usando offsets G52

(Para ser escrito)