IngSimulatorIngeniería Crea tu cuenta

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

TemaFanuc / HaasLinuxCNC / MachGRBL 1.1
Ciclos fijos G81–G89, G73, G83SíSíNo: el CAM debe generar los G0/G1
Compensación de radio G41/G42SíSíNo: usa una trayectoria ya compensada
SubprogramasM98 P / M99 (Haas también M97)O-words: o100 sub … o100 endsub, o100 call [a] [b]; también M98No
Variables y control de flujo#1, IF/GOTO, WHILE/DO (macro B)#1 y #<nombre>; o… if/else/endif, while, repeatNo
Longitud de herramientaG43 H01 obligatorioOpcional; G43 sin H usa la herramienta cargada; G43.1 Z dinámicoZ0 se toca con cada herramienta; G43.1 Z dinámico
Cambio de herramientaM06 automáticoM6 (automático o manual según la máquina)M6 pausa para cambiar a mano y volver a fijar Z0
G4 PMilisegundos sin punto (P500 = 0.5 s)Segundos (P1.5 = 1.5 s)Segundos
G10 L20Ceros extendidos (Fanuc G54.1 Pn, Haas G154 Pn)La posición actual pasa a valer X/Y/Z en el sistema PnIgual que LinuxCNC
Arcos con I/JIncrementalesIncrementales (G91.1); G90.1 los hace absolutosIncrementales
Comentarios( … )( … ) y ;( … ) y ;

GRBL en la práctica

  • Encabezado mínimo: G21 G90 G17, luego G0 Z10 (altura segura), M3 S18000 y a cortar. Termina con M5 y M30.
  • 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 trae G10 L20, se aplica a partir de esa línea.
  • Sin ciclos ni compensación: un barreno se escribe como G0 al punto, G1 Z- y G0 Z de regreso; un contorno se manda ya desplazado el radio de la fresa (el CAM lo hace por ti).
  • Cambio de herramienta manual: en M6 el 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 G2 con 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, $X o $$ son del firmware, no del programa: no van en el archivo .nc. El palpado G38.2 no 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 call llegan 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 / endwhile y o… repeat [3] / endrepeat controlan el flujo; el número de la O-word debe ser el mismo en la apertura y el cierre.
  • G64 P0.02 fija 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.5 espera 1.5 segundos. En Haas o Fanuc, G4 P1500 serí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

  1. Cambia el control a GRBL y simula: cada G81, G83, G41, M98 o línea con # aparece como error con la alternativa.
  2. Sustituye los ciclos por movimientos G0/G1 (o vuelve a postprocesar desde el CAM con el post de GRBL).
  3. Quita G43 H y los cambios automáticos: en un router cada herramienta se cera en Z.
  4. Revisa las unidades de G4 P y 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