Controles CNC
GRBL y LinuxCNC: lo que cambia respecto a Fanuc y Haas
Los routers de escritorio con GRBL y las máquinas con LinuxCNC, Mach3 o Mach4 hablan el mismo código G de base (RS-274/NGC) que Fanuc y Haas, pero no todo lo que funciona en un centro de maquinado funciona en un router de escritorio. Esta guía resume las diferencias que más errores causan y cómo verlas en el simulador.
Elige el control correcto
En el selector Control elige GRBL (routers / CNC de escritorio) o LinuxCNC / Mach3 / Mach4. El simulador revisa el programa con las reglas de ese control: un código que no existe aparece como error con la explicación y la alternativa. GRBL solo está para fresadora (router); LinuxCNC tiene fresadora y torno.
Para un router, en Pieza quita la prensa de 6″ con paralelas (la pieza queda sobre la mesa de sacrificio) y elige el material, por ejemplo madera o MDF. El ejemplo GRBL (router): marco redondeado y círculo en hélice ya viene así.
Diferencias de un vistazo
| Tema | Fanuc / Haas | LinuxCNC / Mach | GRBL 1.1 |
|---|---|---|---|
| Ciclos fijos G81–G89, G73, G83 | Sí | Sí | No: el CAM debe generar los G0/G1 |
| Compensación de radio G41/G42 | Sí | Sí | No: usa una trayectoria ya compensada |
| Subprogramas | M98 P / M99 (Haas también M97) | O-words: o100 sub … o100 endsub, o100 call [a] [b]; también M98 | No |
| Variables y control de flujo | #1, IF/GOTO, WHILE/DO (macro B) | #1 y #<nombre>; o… if/else/endif, while, repeat | No |
| Longitud de herramienta | G43 H01 obligatorio | Opcional; G43 sin H usa la herramienta cargada; G43.1 Z dinámico | Z0 se toca con cada herramienta; G43.1 Z dinámico |
| Cambio de herramienta | M06 automático | M6 (automático o manual según la máquina) | M6 pausa para cambiar a mano y volver a fijar Z0 |
G4 P | Milisegundos sin punto (P500 = 0.5 s) | Segundos (P1.5 = 1.5 s) | Segundos |
G10 L20 | Ceros extendidos (Fanuc G54.1 Pn, Haas G154 Pn) | La posición actual pasa a valer X/Y/Z en el sistema Pn | Igual que LinuxCNC |
| Arcos con I/J | Incrementales | Incrementales (G91.1); G90.1 los hace absolutos | Incrementales |
| Comentarios | ( … ) | ( … ) y ; | ( … ) y ; |
GRBL en la práctica
- Encabezado mínimo:
G21 G90 G17, luegoG0 Z10(altura segura),M3 S18000y a cortar. Termina conM5yM30. - El cero se fija en la máquina: con los botones de tu programa de envío o con
G10 L20 P1 X0 Y0 Z0(«donde está la punta ahora es el cero»). En el simulador el cero es el origen que eliges en Pieza; si tu programa traeG10 L20, se aplica a partir de esa línea. - Sin ciclos ni compensación: un barreno se escribe como
G0al punto,G1 Z-yG0 Zde regreso; un contorno se manda ya desplazado el radio de la fresa (el CAM lo hace por ti). - Cambio de herramienta manual: en
M6el simulador te deja una nota; en la máquina el programa se pausa, cambias la fresa, vuelves a tocar Z0 y sigues. - Hélices para círculos y cajeras: un
G2con Z final distinta baja en rampa helicoidal, mucho más amable con una fresa chica que bajar recto (mira el ejemplo GRBL). - Los comandos
$H,$Xo$$son del firmware, no del programa: no van en el archivo .nc. El palpadoG38.2no se simula (aparece como nota). - Los husillos de router giran de 10 000 a 24 000 rpm: si el simulador avisa que S excede las rpm máximas, ajusta la máquina en Ajustes.
LinuxCNC y Mach en la práctica
LinuxCNC acepta casi todo lo de Fanuc y agrega su propio lenguaje de subrutinas. Este fragmento hace un círculo de seis barrenos con una subrutina que recibe las coordenadas como argumentos:
#<radio> = 25
#<n> = 6
o100 sub
G0 X[#1] Y[#2]
G1 Z-3 F100
G0 Z5
o100 endsub
T1 M6
G43
S3000 M3
G0 Z10
#<i> = 0
o101 while [#<i> LT #<n>]
o100 call [50 + #<radio> * cos[#<i> * 360 / #<n>]] [40 + #<radio> * sin[#<i> * 360 / #<n>]]
#<i> = [#<i> + 1]
o101 endwhile
M5
M2
- Los argumentos de
callllegan a la subrutina como#1,#2… #<nombre>son variables con nombre: más fáciles de leer que#100.o… if [ ]/else/endif,o… while/endwhileyo… repeat [3]/endrepeatcontrolan el flujo; el número de la O-word debe ser el mismo en la apertura y el cierre.G64 P0.02fija la tolerancia de suavizado de trayectoria: en la máquina cambia cómo redondea las esquinas a alta velocidad; el simulador sigue la trayectoria programada.G4 P1.5espera 1.5 segundos. En Haas o Fanuc,G4 P1500sería lo mismo.- Mach3 y Mach4 usan la misma base (con M98/M99 para subprogramas); elige también LinuxCNC / Mach3 / Mach4.
El ejemplo LinuxCNC / Mach3: subrutina O-word, while, if y repeat tiene el programa completo con una ranura en pasadas.
Llevar un programa de Fanuc o Haas a un router
- Cambia el control a GRBL y simula: cada
G81,G83,G41,M98o línea con#aparece como error con la alternativa. - Sustituye los ciclos por movimientos
G0/G1(o vuelve a postprocesar desde el CAM con el post de GRBL). - Quita
G43 Hy los cambios automáticos: en un router cada herramienta se cera en Z. - Revisa las unidades de
G4 Py las velocidades: un router corta madera a 1000–3000 mm/min con 18 000 rpm, no a 300 mm/min con 3000 rpm.
Prueba lo que aprendiste: pega tu programa y revisa el reporte.
Abrir el simulador CNC