La programación CNC es un lenguaje alfanumérico que indica a la máquina herramienta los movimientos que va a ejecutar. El CNC envía esas señales o entradas a la máquina y la máquina ejecuta unas salidas, las cuales interpreta y pueden ser desde el arranque del husillo, hasta realizar un taladro entre otras. En la entrada sobre qué es un CNC hablamos sobre ello.
La programación CNC lleva implantada en la máquina-herramienta desde los años 50, cuando fue lanzada la primera máquina CNC en el sector comercial. La programación CNC tenemos que dividirla en dos grandes grupos: por un lado el código ISO y por otro lado los lenguajes conversacionales.
Para empezar a trabajar y programar en un CNC deberemos de saber diferenciar entre cero máquina, cero pieza y cero de la herramienta.
- Cero máquina. (X,Y, Z) lo establece el fabricante y se trata del punto de origen desde dónde referencia los ejes de la máquina (X, Y, Z, A, B,C). Cuando arrancamos la máquina CNC según el software que se utilice, lo primero que hace es ir a este cero máquina para referenciar los ejes.
- Cero pieza. (X,Y ,Z) lo establece el programador o el operario según el planteamiento de la pieza. Las unidades de trabajo dependerán del control que se use, ya que en algunos tienen la opción de elegir en mm o en pulgadas y en otros casos, vienen definidas por el fabricante. La velocidad del husillo se expresa en (RPM). Dentro del cero pieza, si se trabaja con planos inclinados el programador de la máquina puede definir los ángulos del plano de trabajo, (A, B, C), pudiendo trabajar de forma manual (MDI) o en ejecución continua. En ocasiones en una misma pieza ese cero pieza pueden ser varios, sobre todo si son piezas de grandes dimensiones o si se utiliza un sistema de gestión de pallets.
- Cero herramienta. Lo establece el programador según sus necesidades, hay herramientas que trabajan en sentido negativo desde Z+ a Z- y hay herramientas que trabajan en dirección positiva de Z- a Z+ cómo en el caso de herramientas para realizar rebajes inversos.

Tabla de Contenidos
- 1 ¿Cuál es la estructura de un programa CNC?
- 2 ¿Qué es el código ISO o también llamado código G?
- 3 Programación CNC Fagor torno y fresadora
- 4 Programación CNC Fanuc fresadora
- 5 Programación CNC Fanuc torno
- 6 Programación CNC Siemens Sinumerik
- 7 Programación CNC Heidenhain
- 8 Programación CNC Haas fresadora
- 9 Programación CNC Haas torno
¿Cuál es la estructura de un programa CNC?
- Cabecera del programa. En la cabecera del programa es dónde va alojado el nombre o número del programa, la llamada a la herramienta, las rpm de la herramienta, el nombre y corrector de la herramienta.
- Bloques o líneas del programa. Aquí vamos indicando línea a línea a través de la programación CNC que movimientos queremos que realice la herramienta: trayectorias, avances, compensaciones de radio, etc.
- Fin de programa. Se puede definir mediante las funciones M02 ó M30, ambas equivalentes y de uso opcional. Con M02 paramos el programa y con M30 paramos el programa y volvemos al inicio del programa, M30 lo utilizamos sobre todo con piezas que son iguales, una vez sacada la pieza de la máquina y puesta la pieza o tocho nuevo, con pulsar start comenzaría el mecanizado de nuevo.
¿Qué es el código ISO o también llamado código G?
El código ISO o también llamado código G, es el lenguaje elemental y básico de todos los CNC. Todas las máquinas de CNC sin excepción son capaces de leer un programa CNC con código G.
La programación ISO es una estandarización del código G, el cual llegaron a un acuerdo entre los principales fabricantes de máquinas CNC, aunque después cada control puede tener diferentes variantes cómo ciclos fijos o disponer de un lenguaje conversacional.
Este código de programación lo implantan varios software como su código de programación esencial que son: Fagor, Fanuc, Haas, Sinumerik y Mazak entre otros. El código de programación ISO se usa en otra multitud de máquinas cómo pueden ser los pantógrafos, máquinas de corte por agua, maquinas de corte de piedra, máquinas de corte por láser, rooters CNC, máquinas de mesa de mecanizado entre otros muchos más.

La llegada del CNC fue una autentica revolución para los procesos de fabricación y manufactura, pudiendo llegar a optimizar y automatizar el proceso por completo, obteniendo con ello una mejoras de tiempos, producción y calidad más que notable.
El código G a pesar de ser un código bastante antiguo y sin disponer de los avances de los que disponen otros lenguajes conversacionales, sigue teniendo una gran respuesta. Permiten a otros programas cómo por ejemplo los sistemas CAD/CAM, seguir leyendo línea a línea de código sin problemas, pudiendo llegar a programas con un gran número de líneas o bloques de lenguaje CNC.
El nombre de código G proviene de las funciones generales y las funciones M son funciones misceláneas. Dentro de las funciones generales tenemos que dividirlo en dos tipos: funciones modales y funciones auxiliares.
¿Qué son los grupos G en la programación CNC?
Los códigos G se dividen en grupos y cada grupo se usa para un objetivo muy concreto, los códigos G de todos los software siguen este sistema de grupos. Con este sistema se hace más fácil de entender el código ya que cómo vais a ver que el código G varía de un software a otro.
- Grupo 00: funciones no modales.
- Grupo 01: ordena movimientos punto a punto de los ejes de la máquina, pueden ser programados en absoluto o incremental.
- Grupo 02: selección de plano de trabajo.
- Grupo 03: funciones de comandos de distancia.
- Grupo 05: diferentes tipos de velocidades.
- Grupo 06: tipo de unidades.
- Grupo 07: específico para la funcionalidad de compensación de la herramienta de corte.
- Grupo 08: corrector de longitud de herramienta.
- Grupo 09: diferentes ciclos fijos.
- Grupo 10: modos de retorno de ciclos fijos.
- Grupo11: factor de escala.
- Grupo 12: selección del sistema de coordenadas.
- Grupo 15: diferentes códigos de paradas.
- Grupo 16: rotaciones de programa.
- Grupo 23: corrector de piezas dinámico.
Cada grupo tiene un código G dominante; referido como el código G predeterminado. Un código G predeterminado significa que son los que la máquina utiliza en cada grupo salvo que se especifique otro código G del grupo. Por ejemplo, programando un movimiento X, Z como este, X-2. Z-4., posicionará la máquina utilizando un G00. Ten en cuenta que la técnica de programación adecuada es leer línea a línea, todas las funciones generales tienen que tener un sentido en la programación.
¿Qué es una función modal?
Una función modal es una función que permanecerá activa en todo momento hasta que se le indique lo contrario con otra función modal o por las siguientes funciones: M02, M30, RESET o EMERGENCIA . Las funciones modales son el pilar básico de la programación CNC, sin ellas no podemos programar. La gran mayoría de funciones generales G son modales además, algunas funciones modales solo podemos introducirlas en una línea de código ya que de lo contrario el programa se detendrá y nos dará un error.
Algunas funciones modales según el software que lleve el CNC (Fanuc, Haas, Siemens, Heidenhain, Mazak, Fagor, Okuma) pueden variar. Por ejemplo G20 significa lo siguiente en los diferentes controles:
- Fanuc: Medidas en pulgadas.
- Haas: Medidas en pulgadas.
- Fagor 8025: Llamada a subrutina.
- Fagor 8055: Definición limites zona de trabajo.
- Heidenhain: El cuarto eje es el eje de la herramienta.
- Siemens: Medidas en pulgadas.
- Mazak: Medidas en pulgadas.
En la programación ISO CNC, los comandos generales del código G son iguales en todos los controles CNC, aunque después cada control tiene sus propias funciones, que pueden cambiar de un control a otro. Por esto es muy importante utilizar un post procesador adecuado a la máquina con la que estamos mecanizando, sobre todo para no tener problemas en posibles incidencias a la hora de leer el programa CNC.
¿Qué es una función auxiliar?
Una función auxiliar es una función que va incorporada dentro de una función modal pero que no interviene en la función modal. Vamos a verlo en el siguiente ejemplo:
Si estamos mecanizando un contorno con una compensación de radio a derechas (G42) si desactivamos la taladrina (M09), la herramienta sigue mecanizando con compensación de radio a pesar de no tener activada la taladrina.
Las funciones auxiliares son aquellas que no se ven afectadas por funciones generales. Cómo hemos visto anteriormente todo dependera al grupo al que pertenezca.

¿Qué son las funciones tecnológicas?
Las funciones tecnológicas son las funciones principales de un programa CNC. Las que vamos a mencionar son del código ISO CNC, son las siguientes:
- F, avance de mecanizado: El avance de mecanizado puede ser seleccionado por programa mediante el código «F», manteniéndose activo mientras no se programe otro valor. Las unidades
de programación dependen del modo de trabajo activo (G93, G94 ó G95), y del tipo de eje que se desplaza (lineal o rotativo). - S, velocidad de cabezal: La velocidad del cabezal se selecciona por programa mediante el nombre del cabezal seguido de la velocidad deseada. La velocidad programada se mantiene activa mientras no se programe otro valor. Las unidades de programación, si no se selecciona lo contrario, serán en rpm. Si G96 está activa, las unidades de programación serán m/min.
- T, número de herramienta: El código «T» identifica la herramienta que se quiere seleccionar. Las herramientas pueden estar en un almacén gestionado por el CNC o en un almacén manual (lo que se denomina herramientas de tierra).
- D, número de corrector: En el corrector de herramienta se encuentran definidas las dimensiones de la herramienta. Cada herramienta puede tener asociados varios correctores. Para activar un corrector, este debe haber sido definido previamente. Para ello, el CNC dispone en la tabla de herramientas de una sección en las que se pueden definir varios correctores. Ejemplo: T3 D5, T3 D7.
¿Qué es un ciclo fijo?
Un ciclo fijo es una subrutina definida por unos parámetros, que ya vienen definidos en el software CNC y nos permite realizar operaciones de cierta dificultad de manera sencilla. Los parámetros de los ciclos fijos de CNC , la gran mayoría dispondrá de una cota de seguridad, una cota de inicio, una cota final y una cota de la carga a la herramienta entre otros parámetros. Todo es muy variable según el ciclo de mecanizado que estemos programando. Por ejemplo Fanuc viene con muy poco ciclos fijos y requiere de programación paramétrica para realizar ciclos o también llamados macros. Sin embargo, hay otros programas con un gran abanico de ciclos fijos cómo en el caso de Heidenhain. Dónde con un simple ciclo fijo podemos realizar cajeras con interpolación helicoidal entre otros.
¿Qué es una subrutina?
¿Qué es un lenguaje conversacional?
Un lenguaje conversacional, es un lenguaje de programación CNC propio de un software concreto. Lo que se busca con el lenguaje conversacional, es una programación más rápida, más fluida y con más ayudas en la programación CNC. Hacernos la vida más facíl realizando operaciones complicadas con pocos recursos, Heidenhain es un claro ejemplo de un buen lenguaje conversacional. Aunque también hay otros softwares que disponen de lenguaje conversacional cómo Mazak entre otros.
¿Qué necesitamos para realizar una programación CNC?
Para realizar un programa CNC necesitamos de varios fundamentos antes d mecanizar. Aparte de disponer de la máquina, la herramienta, el material y el plano.
- Origen pieza. El origen pieza es el lugar desde dónde vamos a iniciar nuestro programa CNC. Te invito a que veas nuestra entrada dónde hablamos sobre el planteamiento de piezas en mecanizado.
- Herramienta patrón. La herramienta patrón o herramienta de referencia, es el palpador 3D. Con está herramienta referenciamos la altura del resto de herramientas, tenemos que hacer un buen decalaje de las herramientas para evitar colisiones y que el programa pueda funcionar sin problemas.
- Calcular velocidades. Otro factor importante para la programación CNC es el cálculo de velocidades tanto de avance (mm/min) cómo de revoluciones por minuto del husillo (rpm). La velocidad de corte nos lo da el fabricante de la herramienta, nosotros tendremos que ajustar los valores que nos den las formulas en función del material y la carga de corte de la herramienta.
- Calcular las distancias de seguridad. Un factor muy importante el contar con los radios de las herramientas y las longitudes, sobre todo para posicionamientos rápidos y trabajos de gran profundidad.
- Cargas de corte a la herramienta. Las cargas de corte radial (Ae) y cargas de corte de profundidad (Ap) de ello va a depender tanto la herramienta cómo el material con el que estemos trabajando. Los fabricantes de herramientas nos dan una visión general de cómo trabajar con diferentes herramientas.
Una vez visto los factores más referentes de la programación CNC, a continuación vamos a ver las diferentes tablas de código G de los principales softwares CNC.
Programación CNC Fagor torno y fresadora
A pesar de tener diferentes versiones los códigos G generales van a ser los mismos, exceptuando ciclos fijos y algún ciclo de translación de coordenadas. Nuestra misión con esta entrada es que encuentre el código G que buscas, para que puedas realizar una programación CNC sin problemas. Fagor tiene diferentes versiones, dónde se añaden alguna G más a la tabla que hemos publicado del modelo 8060. Más adelante iremos publicando más tablas del código G.
Tabla código G Fagor 8060 torno y fresadora
¿Quieres descargar la tabla de programación CNC del código G, para torno y fresadora del control Fagor 8060?
Programación CNC Fanuc fresadora
Fanuc es uno de los controles CNC más extendidos tanto en torno como en centro de mecanizado. Su principal código de programación es el código G o también llamado ISO, es uno de los lenguajes con menos ciclos de programación en comparación con otros software CNC. Para poder realizar una programación más fluida con Fanuc en comparación con otros software CNC, es necesario tener grandes conocimientos de programación paramétrica.
En Fanuc a la programación paramétrica se les llama macros, hay empresas externas que venden este tipo de programas ya que su programación es mas compleja, ya que requiere de grandes de conocimientos tanto matematicos como en programación CNC. Más adelante hablaremos sobre programación paramétrica.
Tabla código G y funciones auxiliares Fanuc fresadora
¿Quieres descargar la tabla de programación CNC del código G, para el control Fanuc con sus funciones auxiliares para fresadora?
Programación CNC Fanuc torno
Tabla código G y funciones auxiliares Fanuc torno
¿Quieres descargar la tabla de programación CNC del código G, para el control Fanuc y sus funciones auxiliares para torno?
Programación CNC Siemens Sinumerik
Sinumerik es el control CNC de Siemens, su principal código CNC es el código G añadiendo sus propios ciclos de mecanizado con diferentes G. Además también consta de su propio lenguaje conversacional. Los dos controles más extendidos de Siemens son Sinumerik 820D y Sinumerik 840D.
Códigos de programación CNC Siemens 840D
En el siguiente enlace, podrás descargarte el resto del manual de programación CNC Siemens 840D. En el encontrarás además su lenguaje conversacional.
Programación CNC Heidenhain
Heidenhain en su programación con código G es exactamente igual en todos sus software CNC. Con Heidenhain se ha querido pasar sus ciclos fijos a código G, hay algunos ciclos que según el modelo de la máquina puede que nos de error en su ejecución. Ya que hay modelos que no soportan ciertos ciclos fijos por dos formas diferentes, una de ellas porque el software sea moderno y no lea ciclos más antiguos y otra forma sería a la inversa. Ciclos que son modernos que no son capaces de leer software antiguos. Es algo muy especifico que tenemos que aclarar, pero que también pasa exactamente igual en su programación conversacional.
Heidenhain su principal lenguaje es conversacional, uno de los más completos del mercado. Dispone de numerosos ciclos fijos y ayudas en la programación CNC.
Programación DIN/ISO ITNC 530 y funciones auxiliares
¿Quieres descargar la tabla de programación CNC, DIN/ISO Heidenhain del control ITNC530 con sus funciones auxiliares?
Programación CNC Haas fresadora
Haas es otro de los software CNC más conocidos, su lenguajes de programación es el código G y su software de programación es muy similar a Fanuc. La programación Haas la tenemos tanto en torno como en centro de mecanizado, tiene algunas variantes en ciclos fijos y funciones auxiliares respecto a Fanuc. Quitando lo que sería la programación CNC, la forma de introducir el código y las softkeys para moverse por el software es muy similar a Fanuc.
Tabla código G y funciones auxiliares Haas fresadora
¿Quieres descargar las tablas de programación CNC del código G y funciones auxiliares para el control CNC de Haas para fresadora?
Programación CNC Haas torno
Tabla código G y funciones auxiliares Haas torno
¿Quieres descargar las tablas de programación CNC, del código G con sus funciones auxiliares, para el control Haas para torno?
Resumen
La programación CNC cómo veis es muy similar con ciertas limitaciones tanto en software cómo en máquina. No es necesario aprenderse el código entero de un software en concreto, pero es importante conocerlo para poder realizar operaciones a pie de máquina y resolver posibles problemas que nos puedan surgir. Iremos añadiendo el resto de códigos cómo Mazak u Okuma entre otros. Estas tablas os serán de gran ayuda sobre todo cuando estáis por primera vez en una máquina en la que no habíais estado antes o incluso en una máquina CNC por primera vez. Si te ha gustado publica un comentario o danos tu valoración! Nos vemos en la próxima.
Excelente trabajo, bien estructurado, preciso, conciso y sencillo. Gracias.
Muchas gracias por tu comentario Juan, intentamos explicarlo de la mejor forma posible. Estamos realizando una serie de videos en Youtube, que seguro te podrán resultar interesantes. Un saludo.
Muy buen trabajo me sirve de gran ayuda . Graciad
Hola Manuel, gracias por tus palabras, seguimos trabajando para dar información de calidad a las nuevas generaciones. Saludos.
Muy buen trabajo , informacion bien detallada y precisa
de gran ayuda.
Muchas gracias por tu comentario Leonardo. Solo publicamos información de calidad y que a los técnicos en mecanizado y nuevos técnicos les sirva en su día a día en el taller. Saludos