# Control numérico

El control numérico (CN) o control decimal numérico es un sistema de automatización de máquinas herramienta operadas mediante comandos programados en un medio de almacenamiento, en comparación con el mando manual mediante volantes o palancas.
Las primeras máquinas de control remoto numérico se construyeron en los años 40 y 50 por el ingeniero John T. Parsons, basadas en las máquinas existentes con motores desmodificados cuyos números se relacionan manualmente siguiendo las instrucciones dadas en un microscopio de tarjeta perforada. Estos servomecanismos iniciales se desarrollaron rápidamente con los equipos analógicos y digitales. El abaratamiento y miniaturización de los procesadores ha generalizado la electrónica digital en todos los tipos herramienta, lo que dio lugar a la denominación control decimal numérico, control numérico por computadora, control numérico por computador o control numérico computarizado (CNC), para diferenciarlas de las máquinas que no tenían computadora. En la actualidad se usa el término control numérico para referirse a este tipo de sistemas, con o sin computadora.
Este sistema ha revolucionado la industria debido al abaratamiento de microprocesadores y a la simplificación de la programación de las máquinas de CNC (control numérico por computadora).

## Principio de funcionamiento

Para mecanizar una pieza se usa un sistema de coordenadas que especificarán el movimiento de la herramienta de corte. El sistema se basa en el control de los movimientos de la herramienta de trabajo con relación a los ejes de coordenadas de la máquina, usando un programa informático ejecutado por una computadora. En el caso de un torno, hace falta controlar los movimientos de la herramienta en dos ejes de coordenadas: el eje Z para los desplazamientos longitudinales del carro y el eje X para los desplazamientos transversales de la torreta. En el caso de las fresadoras se controlan también los desplazamientos del eje Y. Para ello se incorporan servomotores en los mecanismos de desplazamiento del carro y la torreta, en el caso de los tornos y en la mesa en el caso de la fresadora; dependiendo de la capacidad de la máquina, esto puede no ser limitado únicamente a tres ejes.
El control del movimiento de los ejes de una máquina de control numérico se lleva a cabo mediante unos lazos de control que se componen de encoders o guías lineales y la unidad central. Cada eje está controlado por un lazo de control. Las maniobras no relacionadas con el movimiento de los ejes están controladas por un módulo PLC.

## Historia

Las primeras máquinas CN se construyeron en las décadas de 1940 y 1950, basadas en herramientas existentes que se modificaron con motores que movían la herramienta o la pieza para seguir puntos alimentados al sistema en cinta perforada. Estos primeros servomecanismos se ampliaron rápidamente con ordenadores analógicos y digitales, creando las modernas máquinas herramienta CNC que han revolucionado los procesos de mecanizado.

## Aplicaciones

Aparte de aplicarse en las máquinas-herramienta para mecanizar metales con alta precisión, el CNC se usa en la fabricación de muchos otros productos de ebanistería, carpintería, etc. La aplicación de sistemas de CNC en las máquinas-herramienta han hecho aumentar enormemente la producción, al tiempo que ha hecho posible efectuar operaciones de conformado que era difícil de hacer con máquinas convencionales, por ejemplo la realización de superficies esféricas manteniendo un elevado grado de precisión dimensional. Finalmente, el uso de CNC incide favorablemente en los costos de producción al propiciar la baja de costes de fabricación de muchas máquinas, manteniendo o mejorando su calidad.

## Programación en el control numérico

Se pueden utilizar dos métodos, la programación manual y la programación automática.

### Programación manual

En este caso, el programa pieza se escribe únicamente por medio de razonamientos y cálculos que realiza un operario. El programa de mecanizado comprende todo el conjunto de datos que la máquina necesita para la mecanización de la pieza.
A la información en conjunto que corresponde a una misma fase del mecanizado se le denomina bloque o secuencia y se numera para facilitar su búsqueda. Este conjunto de información es interpretado por el intérprete de órdenes. Una secuencia o bloque de programa debe contener todas las funciones geométricas, funciones máquina y funciones tecnológicas del mecanizado. De tal modo, un bloque de programa consta de varias instrucciones. El comienzo del control numérico ha estado caracterizado por un desarrollo caótico de los códigos de programación pues cada constructor utilizaba el suyo particular. Posteriormente, se vio la necesidad de normalizar los códigos de programación como condición indispensable para que un mismo programa pudiera servir para diversas máquinas con tal de que fuesen del mismo tipo. Los caracteres más usados comúnmente, regidos bajo la norma DIN 66024 y 66025 son, entre otros, los siguientes:
* N: es la dirección correspondiente al número de bloque o secuencia. Esta dirección va seguida normalmente de un número de tres o cuatro cifras. En el caso del formato N03, el número máximo de bloques que pueden programarse es 1000 (N000 hasta N999).
* X, Y, Z: son las direcciones correspondientes a las cotas según los ejes X, Y, Z de la máquina herramienta (Y planos cartesianos). Dichas cotas se pueden programar en forma absoluta o relativa, es decir, con respecto al cero pieza o con respecto a la última cota respectivamente.
* G: es la dirección correspondiente a las funciones preparatorias. Se utilizan para informar al control de las características de las funciones de mecanizado, como por ejemplo, forma de la trayectoria, tipo de corrección de herramienta, parada temporizada, ciclos automáticos, programación absoluta y relativa, etc. La función G va seguida de un número de dos cifras que permite programar hasta 100 funciones preparatorias diferentes.
    Ejemplos:
       G00: El trayecto programado se realiza a la máxima velocidad posible, es decir, a la velocidad de desplazamiento en rápido.
       G01: Los ejes se gobiernan de tal forma que la herramienta se mueve a lo largo de una línea recta.
       G02: Interpolación circular en sentido horario.
       G03: Interpolación circular en sentido antihorario.
       G05: Trabajo en arista matada.
       G07: Trabajo en arista viva.
       G09: Trayectoria circular definida por 3 puntos.
       G10: Anulación de la imagen espejo.
       G11: Imagen espejo en X.
       G12: Imagen espejo en Y.
       G17: Selección del plano XY.
       G18: Selección del plano XZ.
       G19: Selección del plano YZ.
       G25: Salto incondicional.
       G33: Indica ciclo automático de roscado.
       G37: Entrada tangencial.
       G38: Salida tangencial.
       G40: Cancela compensación.
       G41: Compensación de corte hacia la izquierda.
       G42: Compensación de corte a la derecha.
       G43: Compensación del largo de las herramientas.
       G44: Anulación de la compensación del largo de las herramientas.
       G53/G59: Traslados de origen.
       G70: Programación en pulgadas.
       G71: Programación en milímetros.
       G72: Factor de escala.
       G73: Giro del sistema de coordenadas
       G77: Es un ciclo automático que permite programar con un único bloque el torneado de un cilindro, etc.
       G87: Cajera rectangular
       G88: Cajera circular.
       G90: Programación de cotas absolutas.
       G91: Programación de cotas incrementales.
       G94: Velocidad de avance F en mm/min.
* M: es la dirección correspondiente a las funciones auxiliares o complementarias. Se usan para indicar a la máquina herramienta que se deben realizar operaciones tales como parada programada, rotación del husillo a derechas o a izquierdas, cambio de útil, etc. La dirección m va seguida de un número de dos cifras que permite programar hasta 100 funciones auxiliares diferentes.
       Ejemplos:
       M00: Provoca una parada incondicional del programa, detiene el husillo y la refrigeración.
       M01: Alto opcional.
       M02: Indica el fin del programa. Se debe escribir en el último bloque del programa y posibilita la parada del control una vez ejecutadas el resto de las operaciones contenidas en el mismo bloque.
       M03: Activa la rotación del husillo en sentido horario.
       M04: Activa la rotación del husillo en sentido antihorario, etc.
       M08: Lubricación ON.
       M09: Lubricación OFF.
       M10: Encendido del accesorio de iluminación.
       M30: Final del programa con vuelta al inicio.
(El sentido de giro del usillo es visto por detrás de la máquina, no de nuestro punto de vista como en los tornos convencionales).
       M05: Parada del cabezal.
       M06: cambio de herramienta (con parada del programa o sin ) en las máquinas de cambio automático no conlleva la parada del programa.
* F: es la dirección correspondiente a la velocidad de avance. Va seguida de un número de cuatro cifras que indica la velocidad de avance en mm/min.
* S: es la dirección correspondiente a la velocidad de rotación del husillo principal. Se programa directamente en revoluciones por minuto, usando cuatro dígitos.
* I, J, K: son direcciones utilizadas para programar arcos de circunferencia. Cuando la interpolación se realiza en el plano X-Y, se utilizan las direcciones I y J. Análogamente, en el plano X-Z, se utilizan las direcciones I y K, y en el plano Y-Z, las direcciones J y K.
* T: es la dirección correspondiente al número de herramienta. Va seguido de un número de cuatro cifras en el cual los dos primeros indican el número de herramienta y los dos últimos el número de corrección de las mismas.
* A: ángulo
* G: función preparatoria
* M: función auxiliar
* N: numeración del bloque
* P: programa
* R: radio

### Programación automática

En este caso, los cálculos los realiza un computador, a partir de datos suministrados por el programador dando como resultado el programa de la pieza en un lenguaje de intercambio llamado APT, que posteriormente será traducido mediante un post-procesador al lenguaje máquina adecuado para cada control por computadora.
En realidad, se deberían estandarizar los lenguajes de programación debido a que sería más útil poder desarrollar al máximo las potencialidades de los C.N.C.

## Descripción

Desde el concepto estructural, un Control Numérico Computarizado (CNC) incluye:
* consola del operador (o consola de entrada-salida de datos)
* pantalla (o panel del operador)
* combinador
* Memoria ROM
* Memoria RAM
Un controlador industrial desempeña la función de combinador, como por ejemplo: un microprocesador, sobre el cual se basa un sistema integrado; un controlador lógico programable o un dispositivo de control más complejo: una computadora industrial. Combinadores modernos tienen mayor precisión y reproductibilidad, memoria extendida, rapidez de procesamiento elevada y diagnósticos mejorados. Una característica importante de un combinador CNC es la cantidad de ejes (canales) que el mismo es capaz de sincronizar (controlar). Para esto se requiere un alto rendimiento y un software relacionado. De accionadores sirven servomandos y motores paso a paso. Normalmente se utiliza una red industrial para transferir datos entre un accionador y el sistema de control de la máquina.

## Choques en la herramienta/máquina

En CNC, un "choque" ocurre cuando la máquina se mueve de tal manera que es perjudicial para la máquina, las herramientas o las piezas que se están mecanizando, lo que a veces provoca la flexión o rotura de las herramientas de corte, las abrazaderas de los accesorios, las prensas y los accesorios, o provoca daños a la máquina misma al doblar las vías guía, romper los tornillos de transmisión o causar que los componentes estructurales se agrieten o deformen bajo tensión. Es posible que un choque leve no dañe la máquina o las herramientas, pero puede dañar la pieza que se está mecanizando, por lo que debe desecharse. Muchas herramientas CNC no tienen un sentido inherente de la posición absoluta de la mesa o las herramientas cuando se encienden. Deben "reiniciar" o "ponerse a cero" manualmente para tener alguna referencia desde la que trabajar, y estos límites son solo para determinar la ubicación de la pieza para trabajar con ella y no son un límite de movimiento estricto en el mecanismo. A menudo es posible conducir la máquina fuera de los límites físicos de su mecanismo de accionamiento, lo que provoca una colisión consigo misma o daños en el mecanismo de accionamiento. Muchas máquinas implementan parámetros de control que limitan el movimiento del eje más allá de cierto límite además de interruptores de límites físicos. Sin embargo, estos parámetros a menudo pueden ser cambiados por el operador.
Muchas herramientas CNC tampoco reconocen nada sobre su entorno de trabajo. Las máquinas pueden tener sistemas de detección de carga en los ejes y husillos, pero algunas no. Siguen ciegamente el código de mecanizado provisto y depende de un operador detectar si se está produciendo o está a punto de ocurrir un bloqueo, y que el operador aborte manualmente el proceso activo. Las máquinas equipadas con sensores de carga pueden detener el movimiento del eje o del husillo en respuesta a una condición de sobrecarga, pero esto no evita que ocurra un choque. Solo puede limitar el daño resultante del choque. Es posible que algunos bloqueos nunca sobrecarguen ningún eje o accionamiento de husillo.
Si el sistema de accionamiento es más débil que la integridad estructural de la máquina, entonces el sistema de accionamiento simplemente empuja contra la obstrucción y los motores de accionamiento "se deslizan en su lugar". Es posible que la máquina herramienta no detecte la colisión o el deslizamiento, por lo que, por ejemplo, la herramienta ahora debería estar a 210 mm en el eje X, pero está, de hecho, a 32 mm donde golpeó la obstrucción y siguió resbalando. Todos los próximos movimientos de la herramienta tendrán un error de -178 mm en el eje X, y todos los movimientos futuros ahora no son válidos, lo que puede provocar más colisiones con abrazaderas, prensas o la propia máquina. Esto es común en los sistemas paso a paso de bucle abierto, pero no es posible en los sistemas de bucle cerrado a menos que se haya producido un deslizamiento mecánico entre el motor y el mecanismo de accionamiento. En cambio, en un sistema de circuito cerrado, la máquina continuará intentando moverse contra la carga hasta que el motor de accionamiento entre en una condición de sobrecarga o un servomotor no logre llegar a la posición deseada.
Es posible detectar y evitar colisiones mediante el uso de sensores de posición absoluta (tiras o discos codificadores ópticos) para verificar que se produjo movimiento, o sensores de torsión o sensores de consumo de energía en el sistema de accionamiento para detectar tensión anormal cuando la máquina debería estar en movimiento y no cortar, pero estos no son un componente común de la mayoría de las herramientas CNC para pasatiempos. En cambio, la mayoría de las herramientas CNC para pasatiempos simplemente se basan en la supuesta precisión de los motores paso a paso que giran un número específico de grados en respuesta a los cambios del campo magnético. A menudo se supone que el motor paso a paso es perfectamente preciso y nunca da pasos en falso, por lo que el monitoreo de la posición de la herramienta simplemente implica contar la cantidad de pulsos enviados al motor paso a paso a lo largo del tiempo. Por lo general, no se dispone de un medio alternativo de monitoreo de la posición del paso a paso, por lo que no es posible la detección de choques o resbalones.
Las máquinas metalúrgicas CNC comerciales utilizan controles de retroalimentación de circuito cerrado para el movimiento del eje. En un sistema de circuito cerrado, el controlador monitorea la posición real de cada eje con un codificador absoluto o incremental. La programación adecuada del control reducirá la posibilidad de un choque, pero aún depende del operador y del programador asegurarse de que la máquina se opere de manera segura. Sin embargo, durante las décadas de 2000 y 2010, el software para la simulación de mecanizado ha madurado rápidamente, y ya no es raro que toda la envolvente de la máquina herramienta (incluidos todos los ejes, husillos, mandriles, torretas, portaherramientas, contrapuntos, accesorios, abrazaderas, y stock) para ser modelado con precisión con modelos sólidos 3D, lo que permite que el software de simulación prediga con bastante precisión si un ciclo implicará un choque. Aunque dicha simulación no es nueva, su precisión y penetración en el mercado están cambiando considerablemente debido a los avances informáticos.