Programación
de máquinas de CNC con códigos G&M
La
programación nativa de la mayoría de las máquinas de Control Numérico
Computarizado se efectúa mediante un lenguaje de bajo nivel llamado G &
M.
Se
trata de un lenguaje de programación vectorial mediante el que se describen
acciones simples y entidades geométricas sencillas (básicamente segmentos de
recta y arcos de circunsferencia) junto con sus parámetros de maquinado
(velocidades de husillo y de avance de herramienta).
El
nombre G & M viene del hecho de que el programa está constituido
por instrucciones Generales y Misceláneas.
Si bien
en el mundo existen aún diferentes dialectos de programación con códigos
G&M, se dio un gran paso adelante a través de la estandarización que
promovió la ISO.
Esta
estandarización fue adoptada por la totalidad de los fabricantes industriales
serios de CNC y permite utilizar los mismos programas en distintas máquinas
CNC de manera directa o con adaptaciones menores.
A pesar
de tratarse de un lenguaje de programación muy rudimentario para los gustos
actuales, lo robusto de su comportamiento y los millones de líneas de
programación que hacen funcionar máquinas de CNC en todas las latitudes del
planeta aseguran su vigencia en los años por venir.
|
Minidiccionario de G&M para Tornos CNC
A modo
de ejemplo, presentamos los códigos de programación más utilizados en
nuestros tornos de CNC. Según el modelo de que se trate, algunos de los
códigos pueden estar inhabilitados.
![]()
Códigos
Generales
G00: Posicionamiento rápido
(sin maquinar)
G01: Interpolación lineal (maquinando) G02: Interpolación circular (horaria) G03: Interpolación circular (antihoraria) G04: Compás de espera G10: Ajuste del valor de offset del programa G20: Comienzo de uso de unidades imperiales (pulgadas) G21: Comienzo de uso de unidades métricas G28: Volver al home de la máquina G32: Maquinar una rosca en una pasada G36: Compensación automática de herramienta en X G37: Compensación automática de herramienta en Z G40: Cancelar compensación de radio de curvatura de herramienta G41: Compensación de radio de curvatura de herramienta a la izquierda G42: Compensación de radio de curvatura de herramienta a la derecha G70: Ciclo de acabado G71: Ciclo de maquinado en torneado G72: Ciclo de maquinado en frenteado G73: Repetición de patrón G74: Taladrado intermitente, con salida para retirar virutas G76: Maquinar una rosca en múltiples pasadas G96: Comienzo de desbaste a velocidad tangencial constante G97: Fin de desbaste a velocidad tangencial constante G98: Velocidad de alimentación (unidades/min) G99: Velocidad de alimentación (unidades/revolución)
Códigos
Misceláneos
M00: Parada opcional
M01: Parada opcional M02: Reset del programa M03: Hacer girar el husillo en sentido horario M04: Hacer girar el husillo en sentido antihorario M05: Frenar el husillo M06: Cambiar de herramienta M07: Abrir el paso del refrigerante B M08: Abrir el paso del refrigerante A M09: Cerrar el paso de los refrigerantes M10: Abrir mordazas M11: Cerrar mordazas M13: Hacer girar el husillo en sentido horario y abrir el paso de refrigerante M14: Hacer girar el husillo en sentido antihorario y abrir el paso de refrigerante M30: Finalizar programa y poner el puntero de ejecución en su inicio M31: Incrementar el contador de partes M37: Frenar el husillo y abrir la guarda M38: Abrir la guarda M39: Cerrar la guarda M40: Extender el alimentador de piezas M41: Retraer el alimentador de piezas M43: Avisar a la cinta transportadora que avance M44: Avisar a la cinta transportadora que retroceda M45: Avisar a la cinta transportadora que frene M48: Inhabilitar Spindle y Feed override (maquinar exclusivamente con las velocidades programadas) M49: Cancelar M48 M62: Activar salida auxiliar 1 M63: Activar salida auxiliar 2 M64: Desactivar salida auxiliar 1 M65: Desactivar salida auxiliar 2 M66: Esperar hasta que la entrada 1 esté en ON M67: Esperar hasta que la entrada 2 esté en ON M70: Activar espejo en X M76: Esperar hasta que la entrada 1 esté en OFF M77: Esperar hasta que la entrada 2 esté en OFF M80: Desactivar el espejo en X M98: Llamada a subprograma M99: Retorno de subprograma |
Programa de Ejemplo para Torno CNC
Los
programas de G&M son simples archivos de texto ASCII (sólo mayúsculas,
números y signos de puntuación tradicionales, por lo que es muy frecuente que
los programas se almacenen y comuniquen usando un formato restringido de 6
bits).
Estos
programas pueden ser cargados a pie de máquina usando su teclado o ser
transportados desde una PC con diskettes, cables seriales RS232C o USB.
Presentamos
un programa de ejemplo que efectúa una serie de operaciones básicas sobre un
tocho de material de 55mm por una pulgada de diámetro, frentéandolo primero y
cilindrándolo a 25mm después.
|
Minidiccionario de G&M para Fresadoras CNC
A modo
de ejemplo, presentamos los códigos de programación más utilizados en
nuestras fresadoras de CNC. Según el modelo de que se trate, algunos de los
códigos pueden estar inhabilitados.
![]()
Códigos
Generales
G00: Posicionamiento rápido
(sin maquinar)
G01: Interpolación lineal (maquinando) G02: Interpolación circular (horaria) G03: Interpolación circular (antihoraria) G04: Compás de espera G15: Programación en coordenadas polares G20: Comienzo de uso de unidades imperiales (pulgadas) G21: Comienzo de uso de unidades métricas G28: Volver al home de la máquina G40: Cancelar compensación de radio de curvatura de herramienta G41: Compensación de radio de herramienta a la izquierda G42: Compensación de radio de herramienta a la derecha G50: Cambio de escala G68: Rotación de coordenadas G73: Ciclos encajonados G74: Perforado con ciclo de giro antihorario para descargar virutas G76: Alesado fino G80: Cancelar ciclo encajonado G81: Taladrado G82: Taladrado con giro antihorario G83: Taladrado profundo con ciclos de retracción para retiro de viruta G90: Coordenadas absolutas G91: Coordenadas relativas G92: Desplazamiento del área de trabajo G94: Velocidad de corte expresada en avance por minuto G95: Velocidad de corte expresada en avance por revolución G98: Retorno al nivel inicial G99: Retorno al nivel R G107: Programación del 4o eje
Códigos
Misceláneos
M00: Parada
M01: Parada opcional M02: Reset del programa M03: Hacer girar el husillo en sentido horario M04: Hacer girar el husillo en sentido antihorario M05: Frenar el husillo M06: Cambiar de herramienta M08: Abrir el paso del refrigerante M09: Cerrar el paso de los refrigerantes M10: Abrir mordazas M11: Cerrar mordazas M13: Hacer girar el husillo en sentido horario y abrir el paso de refrigerante M14: Hacer girar el husillo en sentido antihorario y abrir el paso de refrigerante M30: Finalizar programa y poner el puntero de ejecución en su inicio M38: Abrir la guarda M39: Cerrar la guarda M62: Activar salida auxiliar 1 M67: Esperar hasta que la entrada 2 esté en ON M71: Activar el espejo en Y M80: Desactivar el espejo en X M81: Desactivar el espejo en Y M98: Llamada a subprograma M99: Retorno de subprograma |
La
seguridad primero
Ahora
sí, la secuencia:
|