Una referencia de códigos G y M para múltiples controles, organizada por operación — lo que realmente se quiere que haga la máquina — en lugar de por número de código. Cada fila es una operación (un movimiento de avance, un arco, un palpado, un ciclo de taladrado, una selección de decalaje de origen…) y la columna de cada control muestra el código exacto que ese control utiliza para ella.
Cubre LinuxCNC, GRBL (1.1), Centroid (CNC12 — Acorn / Allin1DC / Oak; fresadora salvo que se indique lo contrario), FANUC (0i / 30i, con enfoque en fresadora y las particularidades de torno señaladas), Mach 3 (Mill Rev 1.84-A2) y Mach 4 (Mill v1.0).
Cómo leer las tablas:
- Una celda muestra el o los códigos que ese control usa para la operación — p. ej.,
la fila «palpar hacia la pieza» muestra
G38.2para LinuxCNC,G31para FANUC yM115/M116para Centroid. —significa que el control no tiene un código equivalente para esa operación.- Un código con subrayado punteado tiene una salvedad específica de ese control; la nota completa está en la columna Notas de esa fila (y al pasar el cursor por encima).
- Utilice el filtro de controles en la parte superior de las tablas para ocultar todas las columnas excepto la del suyo.
Las fuentes utilizadas para la verificación de datos se listan al final de este documento.
#Códigos por operación
Movimiento e interpolación
Los movimientos que realmente cortan. Son los códigos más portables — G0–G3 significan lo mismo en todos los controles aquí listados.
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Posicionamiento rápido | G0 |
G0 |
G0 |
G0 |
G0 |
G0 |
Desplazamiento sin corte a la velocidad máxima de la máquina. |
| Movimiento lineal en avance | G1 |
G1 |
G1 |
G1 |
G1 |
G1 |
Corte recto a velocidad de avance controlada; requiere una palabra F. |
| Arco / hélice en sentido horario | G2 |
G2 |
G2 |
G2 |
G2 |
G2 |
Offsets de centro I/J/K o radio R, en el plano activo. Añada un movimiento en Z para una hélice. |
| Arco / hélice en sentido antihorario | G3 |
G3 |
G3 |
G3 |
G3 |
G3 |
Mismas convenciones que el arco horario, en dirección opuesta. |
| Temporización (pausa) | G4 |
G4 |
G4 |
G4 |
G4 |
G4 |
Mach3/4: P con decimales = segundos, P entero = milisegundos. |
| Círculo completo horario (posición actual como centro) | — | — | — | — | G12 |
G12 |
Mach3: parcial |
| Círculo completo antihorario | — | — | — | — | G13 |
G13 |
Mach3: parcial |
| Interpolación por spline cúbica | G5 |
— | — | — | — | — | Solo LinuxCNC. NO es lo mismo que el G5 de FANUC (look-ahead) — vea la nota de falsos amigos. LinuxCNC: G5 = spline cúbica a través de puntos de control |
| Designación de eje imaginario | — | — | — | G7.1 |
— | — | Preparación de interpolación cilíndrica / polar de FANUC. |
Selección de plano
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Seleccionar plano XY | G17 |
G17 |
G17 |
G17 |
G17 |
G17 |
Por defecto. Los arcos usan I/J. |
| Seleccionar plano ZX | G18 |
G18 |
G18 |
G18 |
G18 |
G18 |
Los arcos usan I/K. |
| Seleccionar plano YZ | G19 |
G19 |
G19 |
G19 |
G19 |
G19 |
Los arcos usan J/K. |
Coordenadas de trabajo y decalajes de origen
Dónde vive el cero de pieza. Los amarres ampliados más allá de los seis primeros son donde más divergen los controles.
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Seleccionar sistema de coordenadas de trabajo 1–6 | G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 / G55 / G56 / G57 / G58 / G59 |
G54 es el sistema activo por defecto tras el encendido en la mayoría de los controles. |
| Sistemas de coordenadas de trabajo 7–9 | G59.1 / G59.2 / G59.3 |
— | — | — | G59.1 / G59.2 / G59.3 |
G59.1 / G59.2 / G59.3 |
La forma de LinuxCNC / Mach de obtener tres amarres más. |
| Banco de amarres ampliado (direccionado por P) | — | — | — | G54.1 |
— | G54.1 |
FANUC: P1–P48 (0i) o P1–P300 (30i). Mach4: P1–P248. Centroid usa una forma distinta, SIN decimal, indicada más abajo. FANUC: G54.1 P1–P48 (0i) / P1–P300 (30i) Mach4: G54.1 P1–P248 |
| Decalajes de origen ampliados (Centroid) | — | — | G54 P1–P12 |
— | — | — | Los 12 amarres ampliados opcionales de Centroid (WCS n.º 7–18). Observe el espacio y la AUSENCIA de decimal — distinto del G54.1 Pn de FANUC. Centroid: también direccionables como E7–E18 |
| Fijar el valor del decalaje de origen (absoluto) | G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
G10 L2 |
P1 = G54 … P6 = G59. El WCS activo no tiene por qué coincidir con P. |
| Fijar el decalaje de origen en la posición actual | G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
G10 L20 |
La forma de «fijar aquí». |
| Decalaje de coordenadas local | G52 |
— | G52 |
G52 |
G52 |
G52 |
Desplazamiento temporal del sistema sobre el WCS activo. |
| Movimiento en coordenadas de máquina (no modal) | G53 |
G53 |
G53 |
G53 |
G53 |
G53 |
Movimiento puntual en el sistema de la máquina. |
| Fijar posición / decalaje de coordenadas | G92 |
G92 |
G92 |
G92 |
G92 |
G92 |
FANUC tiene G92.1 / G92.2 para borrar o restaurar; Mach tiene G92.1. |
Unidades y modos de distancia
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Programar en pulgadas | G20 |
G20 |
G20 |
G20 |
G20 |
G20 |
|
| Programar en milímetros | G21 |
G21 |
G21 |
G21 |
G21 |
G21 |
|
| Modo de distancias absolutas | G90 |
G90 |
G90 |
G90 |
G90 |
G90 |
|
| Modo de distancias incrementales | G91 |
G91 |
G91 |
G91 |
G91 |
G91 |
|
| Modo de centro de arco absoluto | G90.1 |
— | G90.1 |
— | G90.1 |
G90.1 |
I/J/K pasan a ser coordenadas absolutas, no offsets. Centroid: varía según la versión de CNC12 |
| Modo de centro de arco incremental (por defecto) | G91.1 |
G91.1 |
G91.1 |
G91.1 |
G91.1 |
G91.1 |
Modos de avance y velocidad
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Avance por minuto | G94 |
— | G94 |
G94 |
G94 |
G94 |
Por defecto en fresadoras. En un TORNO FANUC este papel lo desempeña G98 — vea la nota de falsos amigos. |
| Avance por revolución | G95 |
— | G95 |
G95 |
G95 |
G95 |
En un TORNO FANUC este papel lo desempeña G99. |
| Modo de avance en tiempo inverso | G93 |
G93 |
G93 |
G93 |
G93 |
G93 |
F = 1/minutos; necesario para algunos movimientos rotativos. Centroid: G93 activa, G94 desactiva. |
Longitud de herramienta y compensación de radio
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Compensación de radio DESACTIVADA | G40 |
G40 |
G40 |
G40 |
G40 |
G40 |
Estado por defecto. |
| Compensación de radio a la IZQUIERDA de la trayectoria | G41 |
— | G41 |
G41 |
G41 |
G41 |
La palabra D selecciona el registro de corrección. |
| Compensación de radio a la DERECHA de la trayectoria | G42 |
— | G42 |
G42 |
G42 |
G42 |
|
| Compensación de radio dinámica (valor en el código fuente) | G41.1 / G42.1 |
— | — | — | — | — | LinuxCNC pone el valor D en la propia línea del programa en lugar de en un registro. |
| Estilo de esquina de la compensación de radio | — | — | — | — | — | G40.1 / G40.2 |
Solo Mach4: G40.1 redondeo por arco, G40.2 esquina recta. |
| Compensación de longitud de herramienta (positiva) | G43 |
— | G43 |
G43 |
G43 |
G43 |
La palabra H selecciona el registro de longitud. |
| Compensación de longitud de herramienta (negativa) | — | — | G44 |
G44 |
— | — | De uso raro; estilo FANUC. Centroid documenta G44 en CNC12. |
| Compensación de longitud dinámica (en el código fuente) | G43.1 |
G43.1 |
— | — | — | — | |
| Cancelar la compensación de longitud de herramienta | G49 |
G49 |
G49 |
G49 |
G49 |
G49 |
|
| Fijar directamente una entrada de la tabla de herramientas | G10 L1 |
— | G10 L1 |
G10 L1 |
G10 L1 |
G10 L1 |
P = número de herramienta, R = valor. Centroid lo documenta en CNC12. LinuxCNC: parcial |
| Fijar la longitud de herramienta para que la posición actual = valor | G10 L10 |
— | G10 L10 |
G10 L10 |
G10 L10 |
G10 L10 |
LinuxCNC: parcial |
| Fijar longitud / desgaste de radio y radio de herramienta | — | — | G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
G10 L11 / G10 L12 / G10 L13 |
Centroid CNC12 documenta explícitamente la familia L11/L12/L13; el soporte varía en los demás. FANUC: varía Mach3: varía Mach4: varía |
Ciclos de taladrado, mandrinado y roscado
Ciclos fijos (ciclos enlatados) de agujereado. GRBL no tiene ninguno — los posprocesadores CAM los expanden en movimientos G1 simples.
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Cancelar ciclo fijo | G80 |
— | G80 |
G80 |
G80 |
G80 |
Necesario para salir de los modos de taladrado/mandrinado/roscado. |
| Taladrado estándar | G81 |
— | G81 |
G81 |
G81 |
G81 |
Z baja en avance, sale en rápido. |
| Taladrado con temporización en el fondo | G82 |
— | G82 |
G82 |
G82 |
G82 |
Para punteado / abocardado. |
| Taladrado por picoteo (retracción completa) | G83 |
— | G83 |
G83 |
G83 |
G83 |
Q = profundidad de pasada; la retracción completa evacúa la viruta. |
| Taladrado por picoteo de alta velocidad (retracción corta) | G73 |
— | G73 |
G73 |
G73 |
G73 |
|
| Roscado con macho a derechas | G84 |
— | G84 |
G84 |
G84 |
G84 |
Mach3: requiere plugin del OEM para roscado rígido |
| Roscado con macho a izquierdas | G74 |
— | G74 |
G74 |
G74 |
G74 |
El TORNO FANUC reasigna G74 a un ciclo de ranurado frontal — vea falsos amigos. |
| Roscado rígido | G33.1 |
— | — | — | — | G84.2 / G84.3 |
Códigos dedicados de roscado rígido; en los demás casos el modo rígido es una opción de G84. LinuxCNC: código de roscado rígido de LinuxCNC |
| Mandrinado (entrada en avance, salida en avance) | G85 |
— | G85 |
G85 |
G85 |
G85 |
|
| Mandrinado (entrada en avance, parada, salida en rápido) | — | — | — | G86 |
G86 |
G86 |
El juego de ciclos fijos de Centroid CNC12 es G81–G85 + G89; G86/G87/G88 no figuran en el manual. |
| Mandrinado inverso | — | — | — | G87 |
G87 |
G87 |
|
| Mandrinado con retracción manual | — | — | — | G88 |
G88 |
G88 |
|
| Mandrinado con temporización (salida en avance) | G89 |
— | G89 |
G89 |
G89 |
G89 |
|
| Mandrinado fino (parada orientada, desplazamiento, retracción) | — | — | G76 |
G76 |
G76 |
G76 |
El TORNO FANUC reasigna G76 a un ciclo de roscado — vea falsos amigos. Centroid: parcial; verificar según la versión |
Palpado y medición de herramientas
La mayor divergencia de la página. LinuxCNC/GRBL usan G38.x, FANUC/Mach usan G31 y Centroid usa exclusivamente códigos M.
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Palpar hacia la pieza, error si no hay contacto | G38.2 |
G38.2 |
M115 / M116 |
G31 |
G31 |
G31 |
Sintaxis FANUC: G31 P1–P4 para salto (skip) multietapa. Centroid NO tiene G31/G38 — palpa con códigos M de movimiento protegido. Centroid: palpado con movimiento protegido; M115 en sentido negativo, M116 en positivo |
| Palpar hacia la pieza, sin error si no hay contacto | G38.3 |
G38.3 |
M115/M116 L1 |
— | — | — | Centroid: L1 suprime el error por falta de contacto |
| Palpar alejándose de la superficie | G38.4 / G38.5 |
G38.4 / G38.5 |
M125 / M126 |
— | — | — | G38.4 da error si sigue en contacto; G38.5 no. Centroid: variantes de palpado en alejamiento |
| Múltiples entradas de palpador | — | — | — | — | — | G31.1 / G31.2 / G31.3 |
Selecciona entre varias entradas de palpador. |
| Mover un eje hasta que actúe un interruptor | — | — | M105 / M106 |
— | — | — | Desplaza el eje indicado hasta que un interruptor/entrada del PLC se abra (P > 0) o se cierre (P < 0). Centroid: M105 en sentido negativo, M106 en positivo |
Transformaciones de coordenadas — rotación, escalado, espejo, polares
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Rotación de coordenadas ACTIVADA | G68 |
— | G68 |
G68 |
G68 |
G68 |
Rota el plano activo alrededor de un centro. Solo plano XY en Mach3/4. |
| Rotación de coordenadas DESACTIVADA | G69 |
— | G69 |
G69 |
G69 |
G69 |
|
| Escalado ACTIVADO | — | — | G51 |
G51 |
G51 |
G51 |
P o I/J/K = factores de escala. Mach4 advierte de que el escalado de arcos puede ser impredecible. Centroid: Centroid integra el escalado Y el espejo en G51 |
| Escalado DESACTIVADO | — | — | G50 |
G50 |
G50 |
G50 |
El TORNO FANUC reasigna G50 por completo — vea falsos amigos. Centroid: también desactiva el espejo; parcial/depende de la versión |
| Imagen espejo ACTIVADA / DESACTIVADA | — | — | — | G51.1 / G50.1 |
— | — | Centroid no tiene códigos de espejo separados — el espejo va integrado en G50/G51. |
| Coordenadas polares ACTIVADAS / DESACTIVADAS | — | — | — | G16 / G15 |
— | G16 / G15 |
Codifica X como radio e Y como ángulo. |
Look-ahead, suavizado y parada exacta
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Parada exacta (no modal, un bloque) | G9 |
— | G9 |
G9 |
G9 |
G9 |
Versión puntual de G61. |
| Parada exacta (modal) | G61 |
G61 |
G61 |
G61 |
G61 |
G61 |
Decelera por completo en cada punto final. |
| Parada exacta (variante) | G61.1 |
— | — | — | G61.1 |
G61.1 |
|
| Fusión de trayectoria / modo continuo | G64 |
G64 |
G64 |
G64 |
G64 |
G64 |
LinuxCNC: G64 P<tol>. FANUC ajusta esto mediante G5.1 HPCC en su lugar. FANUC: parcial; el ajuste HPCC es distinto |
| Control de contorno con IA / HPCC (look-ahead) | — | — | — | G5.1 |
— | — | Look-ahead de FANUC: Q1 activa, Q0 desactiva. NO es lo mismo que el G5 spline de LinuxCNC — vea falsos amigos. |
| Suavizado nano / variante de HPCC | — | — | — | G5.4 |
— | — | FANUC: solo algunos 30i-B |
| Activar acel/decel con look-ahead (FANUC antiguos) | — | — | — | G8 |
— | — | G8 P1 activa, G8 P0 desactiva. |
Referenciado y retornos a referencia
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Retorno a la posición de referencia (home) | G28 |
G28 |
G28 |
G28 |
G28 |
G28 |
GRBL/Mach: posición predefinida almacenada. |
| Almacenar el punto de referencia G28 | G28.1 |
G28.1 |
— | — | G28.1 |
G28.1 |
|
| Retorno desde la referencia (vía punto intermedio) | G29 |
— | G29 |
G29 |
G29 |
G29 |
|
| Retorno a la referencia secundaria | G30 |
G30 |
G30 |
G30 |
G30 |
G30 |
|
| Almacenar el punto de referencia G30 | G30.1 |
G30.1 |
— | — | G30.1 |
G30.1 |
|
| Comprobación de posición de referencia | — | — | — | G27 |
— | — | Verifica que la máquina está en la referencia. |
Flujo de programa y subprogramas
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Parada de programa obligatoria | M0 |
M0 |
M0 |
M0 |
M0 |
M0 |
Ciclo-inicio (cycle start) para continuar. |
| Parada opcional | M1 |
M1 |
M1 |
M1 |
M1 |
M1 |
Se omite salvo que el conmutador de parada opcional esté activado. |
| Fin de programa (sin rebobinado) | M2 |
M2 |
M2 |
M2 |
M2 |
M2 |
|
| Fin de programa + rebobinado | M30 |
M30 |
M30 |
M30 |
M30 |
M30 |
Lo que la mayoría de los CAM emiten al final del archivo. |
| Llamar a subprograma | — | — | M98 |
M98 |
M98 |
M98 |
FANUC/Centroid/Mach: P<archivo> L<repeticiones>. LinuxCNC usa O-codes en su lugar. |
| Retorno de subprograma / fin de macro | — | — | M99 |
M99 |
M99 |
M99 |
|
| Subrutinas con nombre / numeradas | O-codes |
— | — | — | — | — | El modelo de LinuxCNC: o100 sub / o100 endsub / o100 call. LinuxCNC: o<n> sub / endsub / call |
| Llamada a macro (puntual) | G65 |
— | G65 |
G65 |
— | G65 |
Centroid: L = número de repeticiones, no avance. Mach4: el archivo de macro debe ser .nc; los argumentos A–Z se asignan a #1–#26. LinuxCNC: mediante subrutinas O-code |
| Llamada a macro modal / cancelación | — | — | — | G66 / G67 |
— | G66 / G67 |
La lista CNC12 de Centroid documenta solo el G65 puntual — sin G66/G67. |
| Reejecutar el programa desde el inicio | — | — | — | — | M47 |
M47 |
Mach4: parcial |
Macros, variables y control de flujo
Cómo hace cada control las bifurcaciones y los bucles. Son construcciones del lenguaje, no códigos G — se muestran para portar macros. Centroid es el caso notable: sin WHILE/DO.
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Variables paramétricas | #<named> |
— | #vars |
#vars |
VBScript |
Lua |
LinuxCNC: parámetros con nombre y numerados Centroid: estilo Macro-B FANUC: Macro-B Mach3: Param1/2/3() Mach4: por script |
| Condicional (IF / THEN) | O… if/elseif/else/endif |
— | IF/THEN/ELSE |
IF[…] THEN / GOTO |
VBScript |
Lua |
Centroid: soportado |
| Bucle (WHILE / DO) | O… while/endwhile |
— | — | WHILE[…] DO / END |
VBScript |
Lua |
Centroid CNC12 NO tiene bucle WHILE/DO — use IF + GOTO en su lugar. |
| Salto (GOTO) | — | — | GOTO Nnnn |
GOTOn |
— | — | Centroid: salta a un número de bloque |
| Fijar un parámetro interno del control | — | — | G10 P_ R_ |
— | — | — | Específico de Centroid. P. ej., G10 P73 R0.02 configura la retracción del picoteo de G73 antes de llamar al ciclo. Centroid: sin palabra L |
Husillo y refrigerante
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Husillo en marcha, sentido horario | M3 |
M3 |
M3 |
M3 |
M3 |
M3 |
La palabra S fija la velocidad. |
| Husillo en marcha, sentido antihorario | M4 |
M4 |
M4 |
M4 |
M4 |
M4 |
Modo láser de GRBL: potencia dinámica. |
| Parada de husillo | M5 |
M5 |
M5 |
M5 |
M5 |
M5 |
|
| Orientación de husillo (parada orientada) | — | — | M19 |
M19 |
M19 |
M19 |
Centroid: requiere una macro M19 personalizada. Mach3: depende del VBScript del fabricante. Mach3: depende del fabricante de la máquina |
| Refrigerante por niebla activado | M7 |
M7 |
M7 |
M7 |
M7 |
M7 |
|
| Refrigerante por inundación activado | M8 |
M8 |
M8 |
M8 |
M8 |
M8 |
|
| Todo el refrigerante desactivado | M9 |
M9 |
M9 |
M9 |
M9 |
M9 |
Cambio de herramienta
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Cambio de herramienta | M6 |
— | M6 |
M6 |
M6 |
M6 |
Se empareja con un Tn previo. GRBL pausa y avisa. |
| Fijar el número de herramienta actual (sin cambio) | M61 |
— | — | — | — | — | Declara la herramienta cargada sin realizar el cambio. |
Correctores de avance y de husillo
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Habilitar los correctores de avance y velocidad | M48 |
— | M108 |
M48 |
M48 |
M48 |
Centroid usa M108 para esto en lugar de M48. |
| Deshabilitar los correctores de avance y velocidad | M49 |
— | M109 |
M49 |
M49 |
M49 |
Se usa a menudo dentro de los ciclos de roscado. Centroid usa M109. |
| Control granular de correctores (LinuxCNC) | M50 / M51 / M52 / M53 |
— | — | — | — | — | Avance (M50), husillo (M51), avance adaptativo (M52), parada de avance (M53). |
E/S digitales y analógicas
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Activar salida digital | M62 / M64 |
— | M94 |
— | M62 / M64 |
M62 / M64 |
Centroid usa M94 (p. ej., M94/1 activa la salida 1). Mach3: normalmente mediante scripts del OEM. Centroid: M94/n Mach3: parcial |
| Desactivar salida digital | M63 / M65 |
— | M95 |
— | M63 / M65 |
M63 / M65 |
Centroid usa M95 (p. ej., M95/1 desactiva la salida 1). Centroid: M95/n Mach3: parcial |
| Esperar una entrada | M66 |
— | M100 / M101 |
— | M66 |
M66 |
Centroid usa M100/M101 (espera de bit PLC). Mach4: P<entrada> L<tiempo-límite-seg>. Mach3: parcial |
| Salida analógica | M67 / M68 |
— | — | — | — | M67 / M68 |
M67 sincronizada, M68 inmediata. Mach4: parcial |
| Espera de bit PLC (Centroid) | — | — | M100 / M101 |
— | — | — | M100 espera hasta que un bit PLC esté abierto/off; M101 hasta que esté cerrado/on. Los MISMOS números ejecutan scripts de usuario en LinuxCNC/Mach — vea falsos amigos. Centroid: M100 abierto, M101 cerrado |
| Salida directa / familia de macros de E/S (Mach4) | — | — | — | — | — | M200–M219 / M220–M224 / M228 |
Estado modal (LinuxCNC)
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Guardar / restaurar el estado modal | M70 / M71 / M72 / M73 |
— | — | — | — | — | M70 guarda, M71 invalida, M72 restaura, M73 guarda con retorno automático. |
Ciclos de torneado / torno
Territorio de torno (serie T). Las columnas anteriores describen el comportamiento en FRESADORA; varios códigos significan otra cosa en un torno.
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Modo diámetro / radio (torno LinuxCNC) | G7 / G8 |
— | — | — | — | — | |
| Límite de RPM máximas del husillo (CSS) | G50 |
— | G50 |
G50 |
G50 |
G50 |
Torno FANUC: G50 S____ limita las RPM bajo G96. En fresadora G50 significa escalado desactivado — un falso amigo de manual. LinuxCNC: parcial Centroid: parcial FANUC: G50 S____ Mach3: parcial |
| Fijar el origen de coordenadas de trabajo (torno FANUC) | — | — | — | G50 |
— | — | G50 X_ Z_ en un torno FANUC fija el origen de la pieza (el otro sub-uso de G50). FANUC: G50 X_ Z_ |
| Velocidad de corte constante (CSS) activada | G96 |
— | G96 |
G96 |
G96 |
G96 |
S en m/min (G21) o pies/min (G20). Centroid: parcial Mach3: parcial |
| RPM de husillo constantes (cancela CSS) | G97 |
— | G97 |
G97 |
G97 |
G97 |
Centroid: parcial Mach3: parcial |
| Roscado sincronizado (paso constante) | G33 |
— | G33 |
G33 |
— | — | Centroid: opcional |
| Ciclo de torneado de acabado | — | — | G70 |
G70 |
— | G70 |
Usa un perfil definido por G71/G72. Centroid: solo serie T Mach4: parcial |
| Torneado de arranque de material (desbaste) | — | — | G71 / G72 |
G71 / G72 |
— | G71 / G72 |
G71 longitudinal, G72 refrentado. FANUC: sintaxis Tipo I o Tipo II. Centroid: solo serie T Mach4: parcial |
| Ranurado frontal (G74 de torno FANUC) | — | — | G74 |
G74 |
— | — | El mismo G74 que en fresadora significa roscado a izquierdas. Centroid: serie T |
| Ciclo de roscado (G76 de torno FANUC) | G76 |
— | G76 |
G76 |
— | — | El mismo G76 que en fresadora significa mandrinado fino. Tipo I (bloque único) o Tipo II (P/Q/R). LinuxCNC: torno Centroid: serie T |
| Avance por minuto (torno FANUC) | — | — | — | G98 |
— | — | En un TORNO FANUC, G98 significa avance/min — el papel que G94 desempeña en la fresadora. FANUC: solo torno |
| Avance por revolución (torno FANUC) | — | — | — | G99 |
— | — | En un TORNO FANUC, G99 significa avance/rev — el papel que G95 desempeña en la fresadora. FANUC: solo torno |
Modo de retorno de ciclo fijo (fresadora)
| Operación | LinuxCNC | GRBL | Centroid | FANUC | Mach3 | Mach4 | Notas |
|---|---|---|---|---|---|---|---|
| Retorno al Z inicial tras un ciclo | G98 |
— | G98 |
G98 |
G98 |
G98 |
El TORNO FANUC reasigna G98 a avance por minuto — vea el grupo de torneado y los falsos amigos. |
| Retorno al plano R tras un ciclo | G99 |
— | G99 |
G99 |
G99 |
G99 |
El TORNO FANUC reasigna G99 a avance por revolución. |
#Falsos amigos — mismo número, distinto significado
Las tablas de operaciones anteriores ya resuelven el caso de «código distinto, mismo trabajo» — cada fila lista la forma exacta de cada control, así que es imposible pasarlo por alto. Esta sección trata el caso opuesto y más peligroso: el mismo número hace cosas fundamentalmente distintas según el control o el modo. Un programa que corre sin problemas en uno producirá un resultado erróneo — o un choque — en otro.
Si está portando código G entre plataformas, esta es la sección que hay que leer dos veces.
#M100 / M101 — espera de bit PLC vs ranura de script de usuario
Un operador formado en FANUC y un operador formado en Centroid escribirán
M100 por dos razones completamente incompatibles.
| Control | M100 | M101 |
|---|---|---|
| Centroid CNC12 | Pausa el programa hasta que el bit PLC / la entrada referenciada esté abierta (off / 0). Se empareja con M101. Mensaje personalizado mediante cncxmsg.txt |
Pausa hasta que el bit PLC esté cerrado (on / 1) |
| LinuxCNC | Ejecuta un archivo de script de usuario externo llamado M100 desde el directorio de configuración (todo el rango M100–M199 está reservado de esta manera) |
Ejecuta el script de usuario M101 |
| FANUC | Sin asignación en el estándar. Normalmente lo define el fabricante de la máquina mediante el ladder del PMC | Igual |
| Mach 3 | Ranura libre — ejecuta la macro VBScript M100.M1S si existe; de lo contrario, indefinido |
Igual para M101.M1S |
| Mach 4 | Ranura libre — ejecuta la macro Lua M100.mcs si existe; de lo contrario, indefinido |
Igual para M101.mcs |
| GRBL | No compatible | No compatible |
Impacto en la portabilidad: un programa Centroid que usa M100 /5000 para
esperar una señal PLC de vacío listo intentará, en LinuxCNC, ejecutar un script
externo literalmente llamado M100 — un comportamiento en tiempo de ejecución
completamente distinto. En una instalación estándar de Mach3 sin un M100.M1S
escrito, la misma línea no hace nada en silencio. Reescriba siempre las esperas
explícitas de PLC al pasar de un control a otro.
#G98 / G99 — retorno de ciclo fijo (fresadora) vs modo de avance (torno FANUC)
La mayor trampa fresadora-vs-torno en FANUC.
| Control / modo | G98 | G99 |
|---|---|---|
| FANUC fresadora | Retorno de ciclo fijo al Z inicial | Retorno de ciclo fijo al plano R |
| FANUC torno (serie T) | Avance por minuto (el papel que G94 desempeña en la fresadora) | Avance por revolución (el papel que G95 desempeña en la fresadora) |
| LinuxCNC (fresadora o torno) | Retorno de ciclo fijo al Z inicial | Retorno de ciclo fijo al plano R |
| Centroid CNC12 (fresadora) | Retorno de ciclo fijo al Z inicial | Retorno de ciclo fijo al plano R |
| Mach 3 / Mach 4 | Retorno de ciclo fijo al Z inicial | Retorno de ciclo fijo al plano R |
Impacto en la portabilidad: un programa de torno FANUC serie T que
programa G98 esperando avance por minuto será interpretado, en todas las
demás plataformas aquí listadas, como un cambio de modo de retorno de ciclo
fijo. La interpretación como modo de avance de torno es exclusiva de la
serie T de FANUC.
#G50 — tres significados completamente distintos según la plataforma/el modo
| Control / modo | G50 |
|---|---|
| FANUC fresadora | Escalado DESACTIVADO (cancela G51) |
| FANUC torno | Dos sub-usos distintos en el mismo control: G50 X_ Z_ fija el origen de coordenadas de trabajo; G50 S_____ limita las RPM máximas del husillo bajo el modo CSS de G96 |
| Mach 3 / Mach 4 | Escalado desactivado (fresadora) |
| LinuxCNC | No implementado (LinuxCNC no soporta el escalado G50/G51 al estilo FANUC) |
| Centroid CNC12 fresadora | Soporte parcial de desactivación de escalado; varía entre versiones de CNC12 |
| Centroid CNC12 torno (serie T) | Sigue la convención de torno FANUC |
| GRBL | No compatible |
Impacto en la portabilidad: un programa de torno FANUC que emite G50 S3000
para limitar un husillo gobernado por CSS será una instrucción sin efecto o un
error en los controles de fresadora, porque el G50 del lado fresadora no acepta
palabra S.
#G74 — roscado a izquierdas (fresadora) vs ranurado frontal (torno FANUC)
| Control / modo | G74 |
|---|---|
| FANUC fresadora | Ciclo fijo de roscado a izquierdas (inverso) |
| FANUC torno | Ciclo de ranurado frontal / refrentado con picoteo |
| LinuxCNC | Roscado a izquierdas (fresadora) |
| Centroid CNC12 fresadora | Roscado a izquierdas |
| Centroid CNC12 torno (serie T) | Ranurado frontal |
| Mach 3 / Mach 4 | Roscado a izquierdas (fresadora) |
| GRBL | No compatible |
Impacto en la portabilidad: mismo código, mismo fabricante de control (FANUC), operación de mecanizado totalmente distinta según el control sea de fresadora o de torno. Los posprocesadores dirigidos a torno asumen siempre el significado de torno FANUC.
#G76 — mandrinado fino (fresadora) vs roscado (torno FANUC)
| Control / modo | G76 |
|---|---|
| FANUC fresadora | Ciclo de mandrinado fino (parada de husillo orientada en el fondo, retracción con desplazamiento lateral para no rayar la pared) |
| FANUC torno | Ciclo de roscado multipasada — Tipo I (sintaxis antigua de bloque único) o Tipo II (sintaxis moderna multibloque P_ Q_ R_). La estructura del bloque es completamente distinta de la versión de fresadora |
| LinuxCNC fresadora | No compatible |
| LinuxCNC torno | Ciclo de roscado |
| Centroid CNC12 fresadora | Parcial — verificar con la versión concreta del control |
| Centroid CNC12 torno (serie T) | Ciclo de roscado |
| Mach 3 / Mach 4 fresadora | Mandrinado fino |
| GRBL | No compatible |
Impacto en la portabilidad: un bloque G76 de roscado de torno tiene una lista de argumentos completamente diferente de la de un bloque G76 de mandrinado de fresadora. No son intercambiables.
#G5 / G5.1 / G5.4 — implementaciones distintas de look-ahead de alta velocidad
| Control | Familia G5 |
|---|---|
| FANUC | G05.1 Q1 = control de contorno con IA activado; G05.1 Q0 = desactivado. Algunas variantes 30i-B usan G05.4. Los controles más antiguos usan G05 (sin decimal) o G08 P1 para el mismo suavizado de aceleración/look-ahead |
| LinuxCNC | G5 (sin decimal) = interpolación por spline cúbica — una operación totalmente distinta, no un conmutador de look-ahead HSM |
| Centroid / Mach 3 / Mach 4 / GRBL | No compatible |
Impacto en la portabilidad: mismo número, matemáticas completamente
distintas. Un bloque G5 de LinuxCNC define una curva spline a través de
puntos de control; un G05 de FANUC conmuta un modo de aceleración con
look-ahead. Los resultados no tienen relación alguna.
#Hoja rápida de diferencias
GRBL omite intencionadamente los ciclos fijos, la compensación de radio, las coordenadas polares, el escalado, la rotación, las macros y los subprogramas. Los posprocesadores CAM dirigidos a GRBL expanden los ciclos en movimientos G01 simples y omiten G41/G42 por completo.
FANUC es el linaje que todos los demás copian, pero es donde más divergencia se produce en la gama alta. La mayor trampa entre controles: G98/G99 son modos de retorno de ciclo fijo en la fresadora, pero modos de avance en el torno. G50 y G70–G76 también se reasignan en el torno. Las opciones de mecanizado de alta velocidad (G05.1, G05.4, G08, ajuste de G64) varían según la generación del controlador y el fabricante de la máquina.
LinuxCNC es lo más parecido a un superconjunto limpio del estándar RS-274/NGC. Añade variantes de palpado de primera clase (G38.2–G38.5), códigos M de E/S digital/analógica de HAL (M62–M68), scripts de usuario M100–M199, y usa O-codes para las subrutinas en lugar de M98/M99 al estilo FANUC.
Centroid (CNC12) es mayormente compatible con FANUC en los códigos
canónicos de taladrado, mandrinado y macros. La programación de macros
usa #-variables con IF/THEN/ELSE y saltos GOTO a número de
bloque — no tiene bucles WHILE/DO. El palpado se hace con códigos M (M105/M106,
M115/M116/M125/M126), no con G31/G38. Los decalajes de origen
ampliados usan G54 Pn (sin decimal), no G59.1+ ni G54.1. Los ciclos de
torno G70–G76 solo aplican en la serie T. El juego canónico de ciclos fijos de
fresadora es G81–G85 + G89; el mandrinado inverso G86/G87/G88 y las macros
modales G66/G67 no figuran en el manual de CNC12.
Mach 3 es el control comercial con menos prestaciones de esta lista — sin
macros G65 (los códigos M personalizados son archivos VBScript .M1S), sin
coordenadas polares, sin decalajes de amarre ampliados más allá de G59.3, sin
palpado múltiple G31. M62–M66 suelen requerir scripts del OEM en lugar de
funcionar de forma nativa. Las subrutinas mediante M98/M99 sí funcionan.
Mach 4 es un superconjunto sustancial de Mach 3: añade macros G65 (con
extensión de archivo de macro .nc obligatoria), decalajes ampliados
G54.1 P1–P248, palpado múltiple G31.0–G31.3, círculo completo G12/G13,
coordenadas polares, roscado rígido G84.2/G84.3, estilos de esquina de
compensación de radio G40.1/G40.2, E/S nativa M62–M68 y una familia
M200–M228. Lua sustituye a VBScript para los códigos M personalizados — las
macros de Mach3 no se portan directamente.
#Cómo maneja esta aplicación los códigos no compatibles
El analizador de G54.APP es permisivo — los códigos G o M no reconocidos se
conservan textualmente en el código fuente y simplemente no afectan a la
visualización. Así, un archivo escrito para FANUC con rotación G68 o
llamadas a subprograma M98 renderizará los movimientos lineales y de arco
que sí entiende y omitirá el resto en silencio. Verifique siempre la
simulación contra el comportamiento esperado del control de destino antes de
cortar.
#Fuentes
Estas son las referencias públicas consultadas al construir esta tabla. Los manuales de los fabricantes (FANUC, Centroid) se entregan con el controlador y pueden no estar archivados públicamente; cuando se usó un PDF del fabricante, la URL es la que estaba en servicio en el momento de la redacción.
LinuxCNC (gratuito, en línea):
- G-code quick reference — https://linuxcnc.org/docs/html/gcode/g-code.html
- M-code quick reference — https://linuxcnc.org/docs/html/gcode/m-code.html
- Main user manual — https://linuxcnc.org/docs/
GRBL 1.1 (código abierto):
- Supported commands wiki — https://github.com/gnea/grbl/wiki/Grbl-v1.1-Commands
commands.mdfuente de referencia — https://github.com/gnea/grbl/blob/master/doc/markdown/commands.md
Centroid CNC12 (PDF del fabricante):
- Macro Programming guide — https://www.centroidcnc.com/centroid_diy/downloads/acorn_documentation/centroid_cnc_macro_programming.pdf
- M-Series (Oak / Allin1DC) Operator's Manual v4.14 — https://www.centroidcnc.com/centroid_diy/downloads/CNC12-v414_operator_manuals/centroid-cnc12-oak-allin1dc-mill-operator-manual-v4.14.pdf
- v3.16 Mill Operator Manual — https://www.centroidcnc.com/downloads/centroid_v3.16_mill_operator_manual.pdf
- G and M codes extract — https://www.centroidcnc.com/centroid_diy/downloads/centroid_G_and_M_codes.pdf
- PLC + CNC Functions Programming Manual (CNC12 v5.x+) — https://www.centroidcnc.com/centroid_diy/downloads/centroid_plc_programming_manual.pdf
- Réplica en Helman CNC de la lista de códigos M de fresadora Centroid — https://www.helmancnc.com/centroid-m-code-cnc-mill/
- Publicación del foro de Centroid sobre la forma de ajuste de parámetros G10 P/R — https://centroidcncforum.com/viewtopic.php?t=3429
FANUC (agregadores de terceros de manuales del fabricante; los PDF del fabricante generalmente no se alojan de forma gratuita):
- FanucWorld "Ultimate M-Code & G-Code List for Fanuc Controls" — https://content.fanucworld.com/m-code-g-code-list/
- REACO CNC FANUC Machining Center G/M codes — https://reacocnc.com/blogs/fanuc-g-code-m-code-list/g-code-m-code-machining-center
- REACO CNC FANUC CNC Lathe G/M codes — https://reacocnc.com/blogs/fanuc-g-code-m-code-list/g-code-m-code-lathe
- Helman CNC "Fanuc 31i G Codes Machining Center" — https://www.helmancnc.com/fanuc-31i-g-codes-machining-center-fanuc-30i-31i-32i/
- Contrastado con: FANUC Series 0i-MD Operator's Manual, FANUC Series 30i/31i/32i-MODEL B Operator's Manual, FANUC Macro Compiler / Macro Executor Programming Manual (solo títulos — no están alojados abiertamente)
Mach 3 (ArtSoft / MachMotion):
- MachMotion "G and M-code Reference Using Mach3Mill Rev 1.84-A2" — https://machmotion.com/documentation/Software/Mach3/Mach3%20GCode%20Language%20Reference.pdf
- Mach3 G-Code Manual (MachMotion) — https://machmotion.com/documentation/Software/Mach3/Mach3%20G-Code%20Manual.pdf
- Mach3 V3.x Macro Programmer's Reference (ArtSoft) — https://www.machsupport.com/wp-content/uploads/2013/02/Mach3_V3.x_Macro_Prog_Ref.pdf
- Helman CNC "Mach3 Mill G Code List" — https://www.helmancnc.com/mach3-mill-g-code-list/
- CNCCookbook sobre Mach3 + G65 — https://www.cnccookbook.com/m98-m99-g-code-cnc-subprograms/
Mach 4 (ArtSoft / MachMotion):
- Mach4 Mill GCode Manual v1.0 (ArtSoft) — https://www.machsupport.com/wp-content/uploads/2014/05/Mach4%20Mill%20GCode%20Manual.pdf
- MachMotion Mach4 G & M Code Reference Manual — https://machmotion.com/documentation/Software/Mach4/Mach4-G-and-M-Code-Reference-Manual.pdf
- MachMotion BookStack Mach4 G/M Code Reference — https://support.machmotion.com/books/software/page/mach4-g-code-and-m-code-reference
- Mach4 Lathe Programming Guide — https://www.machsupport.com/wp-content/uploads/2014/05/Mach4%20Lathe%20GCode%20Manual.pdf
- Warp9 Mach3 vs Mach4 FAQ — https://www.warp9td.com/index.php/faq/faq-g-code-m-code
#Entradas inciertas o no verificables conocidas
- Suavizado nano FANUC G05.4 — presente en algunas variantes 30i-B, no universal en toda la familia 30i.