Introducción al control numérico computarizado (CNC)

De Casiopea




Caso de Estudio
NombreJuan José Peters
AutorJuan José Peters
PeríodoNoviembre«Noviembre» no es un número.-Diciembre«Diciembre» no es un número.
Palabras ClaveCNC, Electrónica, Juan José Peters, Código G, GRBL, DIYLILCNC, Drivers, Arduino, cnt, MadLab
RelacionadoDesarrollo Electrónica DIYLILCNC, CNC_DIY, Funcionamiento del driver CNC DIY para motores paso a paso (Marco teórico)
Estudiado porJuan José Peters

Artículos Previos

Desarrollados por el MADLAB

  1. Proyecto DIYLILCNC
  2. Proyecto RepRap
  3. CNC_DIY
CNC2.gif

Introducción al Control Numérico Computarizado

Antecedentes históricos

El CNC tuvo su origen a principio de los años 50 en el Instituto Tecnológico de Massachusets (MIT), en donde se automatizó por primera vez una gran fresadora.

En esta época, las computadoras estaban en sus inicios y eran tan grandes que el espacio ocupado por la computadora era mayor que el de la máquina.

PrimeraCNC.jpg


Hoy día las computadoras son cada vez mas pequeñas y económicas, con lo que el uso del CNC se ha extendido a todo tipo de maquinaria: Tornos, rectificadoras, electroerosionadoras, máquinas de coser, etc.

CNC Significa "Control Numérico Computarizado". En una máquina CNC, a diferencia de una máquina convencional o manual, una computadora controla la posición y velocidad de los motores que accionan los ejes de la máquina. Gracias a esto puede hacer movimientos que no se pueden lograr manualmente como círculos, lineas diagonales y figuras complejas tridimensionales.

Las máquinas CNC son capaces de mover la herramienta al mismo tiempo en los 3 ejes para ejecutar trayectorias tridimensionales como las que se requieren para el maquinado de moldes y troquueles, como se muestra en la siguiente imagen.

MoldeFabricadoEnCNC.jpg

En una máquina de mecanizados en CNC una computadora controla el movimiento de la mesa, el carro y el husillo. Una vez programada la máquina esta ejecuta todas las operaciones por sí sola, sin necesidad de que el operador esté manejándola. En el caso de una industria o un taller, esto permite aprovechar mejor el tiempo del personal para que sea mas productivo.

El término "Control Numérico" se debe a que las órdenes dadas a la máquina son indicadas mediante códigos numéricos. Por ejemplo, para indicarle a la máquina que mueva la herramienta describiendo un cuadrado de 10 mm por lado se le darían los siguientes códigos:

CodigoG.png
EsquemaCodigoG.png

Un conjunto de órdenes que siguen una secuencia lógica constituyen un programa de maquinado. Dándole las órdenes o instrucciones adecuadas a la máquina, esta es capaz de maquinar una simple ranura, una cavidad irregular, la cara de una persona en autorrelieve o bajorrelieve, un grabado artístico, un molde de inyección de una cuchara o el de una botella... lo que se quiera.

Al principio hacer un maquinado era muy dificil y tedioso, pues había que planear e indicarle manualmente a la máquina cada uno de los movimientos que tenía que hacer. Era un proceso que podía durar horas, días o semanas. Aún así, era un ahorro de tiempo comparado con los métodos convencionales.

Actualmente, muchas de las máquinas modernas trabajan con lo que se conoce como "lenguaje conversacional" en el que el programador escoje la operación que desea y la máquina le pregunta los datos que se requieren. Cada instrucción de este lenguaje conversacional puede representar decenas de códigos numéricos. Por ejemplo, el maquinado de una cavidad completa se puede hacer con una sola instrucción que especifica el largo, alto, profundidad, posición, radios de las esquinas, etc. Algunos controles incluso cuentan con graficación en pantaya y funciones de ayuda geométrica. Todo esto hace la programación mucho mas rápida y sencilla.

También se emplean sistemas CAD/CAM que generan el programa de maquinado de forma automática.

Para la realización de un programa de maquinado se pueden utilizar dos métodos:

  • Programación Manual: En este caso, el programa pieza se escribe únicamente por medio de razonamientos y cálculos que realiza un operario.
  • Programación Automática: En este caso, los cálculos los realiza un computador, que suministra en su salida el programa de la pieza en lenguaje máquina. Por esta razón recibe el nombre de programación asistida por computador. De este método hablaremos más adelante.


Programación Manual

El lenguaje máquina comprende todo el conjunto de datos que el control necesita para la mecanización de la pieza. Al conjunto de informaciones que corresponde a una misma fase del mecanizado se le denomina bloque o secuencia, que se numeran para facilitar su búsqueda. Este conjunto de informaciones es interpretado por el intérprete de órdenes. El programa de mecanizado contiene todas las instrucciones necesarias para el proceso de mecanizado. 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 anárquico de los códigos de programación. 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 a N999).

X, Y, Z son las direcciones correspondientes a las cotas según los ejes X, Y, Z de la máquina herramienta. 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 lineal en sentido horario.

G03: Interpolación lineal en sentido antihorario.

G33: Indica ciclo automático de roscado.

G77: Es un ciclo automático que permite programar con un único bloque el torneado de un cilindro, etc.

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.

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: Permite programar la rotación del husillo en sentido horario.

M04: Permite programar la rotación del husillo en sentido antihorario, etc.

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.

LOS BLOCKS (Bloque de instrucciones) en Control Numérico

Estructura de Bloque

Es el modo de dar ordenes a la maquina para que se los ejecute. Esto tiene ciertas características que se debe cumplir. La maquina ejecuta las ordenes (operaciones) de acuerdo a los datos entregados por dicha operación, por lo que cada orden tiene una estructura definida. A cada orden se le denomina block o bloque de programa.

De manera general cada bloque tiene la siguiente estructura:

a) Numero de bloque (número de linea de programa)

b) Código de orden de configuración (función de maquinado)

c) Parámetros de la función de maquinado (Coordenadas X, Y, Z y parámetros complementarios)

d) Comentarios

Formato de Bloque

El modo básico de comunicarse con la maquina herramienta es a través de los elementos que forman la estructura de un bloque de instrucciones, en donde cada uno de los caracteres alfanuméricos tienen un significado y una representación propia.

BloqueDePrograma.png

Comandos G (funciónes de desplazamiento de la fresa)

Los comandos G son las órdenes mas utilizadas. Son las órdenes de movimientos de las herramientas. Son las funciones básicas del lenguaje de programación G y las que determinarán las coordenadas y la forma final de la pieza mecanizada.

ArcoG2.png



Ejemplo:

G2: Arco de circunferencia

Datos requeridos:

  • Coordenada de punto final
  • Radio de la curva


G2 X100 Y100 I100 F1000

Funcionamiento de DIYLILCNC como máquina CNC (Marco teórico)

La siguiente presentación reúne los conceptos principales para comprender el funcionamiento de la máquina fresadora CNC DIYLILCNC, prototipo desarrollado para fines de investigación y diseño de piezas. Esto es el preámbulo para comprender el funcionamiento de esta máquina herramienta.

El proceso para transformar un modelo virtual de 2 o 3 dimensiones en una pieza de maquinado final pasa por seis etapas, las cuales son realizadas de forma individual o en etapas agrupadas, dependiendo de cada fabricante o diseñador de máquinas CNC, tanto en hardware como en software. Estas etapas son:

  • Diseño asistido por computadora (CAD)
  • Manufactura asistida por computadora (CAM)
  • Envío de codigo G hacia la máquina (Sender)
  • Controlador CNC
  • Drivers de motores paso a paso (Stepper Driver)
  • Movimiento de ejes (Motores paso a paso)
DiagBloqueCADCAMCNC3.png

Las 3 primeras etapas se ejecutan en la computadora y las siguientes 3 etapas son parte de la máquina CNC.

Se detallará a continuación cada una de estas etapas.

Sistemas CAD, CAM y código G

En el sistema CAD (Diseño asistido por computadora) la pieza que se desea maquinar se diseña en la computadora con herramientas de dibujo y modelado sólido. Para la fabricación sustractiva de 3D o archivos de diseño en 2D, por lo general se utiliza la extensión de archivos CAD DXF. DXF (acrónimo del inglés Drawing Exchange Format) es un formato de archivo informático para dibujos de diseño asistido por computadora, creado fundamentalmente para posibilitar la interoperabilidad entre los archivos .DWG, usados por el programa AutoCAD, y el resto de programas del mercado.

Para fabricación aditiva se utiliza principalmente la extensión STL. STL (siglas provinientes del inglés "'STereo Lithography'"') es un formato de archivo informático de diseño asistido por computadora (CAD) que define geometría de objetos 3D, excluyendo información como color, texturas o propiedades físicas que sí incluyen otros formatos CAD. Fue creado por la empresa 3D Systems, concebido para su uso en la industria del prototipado rápido y sistemas de fabricación asistida por ordenador. En especial desde los años 2011-2012 con la aparición en el mercado de impresoras 3D de extrusión de plástico termofusible (personales y asequibles), el formato STL está siendo utilizado ampliamente por el software de control de estas máquinas.

Posteriormente el sistema CAM (manufactura asistida por computadora) toma la información del diseño y genera la ruta de corte que tiene que seguir la herramienta para fabricar la pieza deseada. A partir de esta ruta de corte se crea automáticamente el programa de maquinado, el cual puede ser introducido a la máquina mediante un dispositivo de almacentamiento (Pendrive, CD, etc) o enviado directamente desde una computadora.

Hoy día los equipos CNC con la ayuda de los lenguajes conversacionales y los sistemas CAD/CAM permiten a los usuarios producir piezas con mucha mayor rapidez y calidad, sin necesidad de tener una alta especialización.

El código G es un formato de texto que se puede escribir con la mano o generada por un script. Aplicaciones de CAM se utilizan generalmente para generar el código G. Se utiliza principalmente las extensiones de archivo .tap y .nc, aunque existen decenas de otras extensiones que cumplen la misma función. Finalmente, todas son extensiones de texto tipo .txt.

Se puede utilizar cualquier editor de texto para hacer o editar el archivo (es decir, el bloc de notas, Wordpad), pues son archivos de texto.

Sender

Un software Sender tiene como misión principal enviar la información de código G a través de un protocolo de comunicación desde la computadora hacia la máquina. Este no es el único método, ya que muchas máquinas CNC permiten cargar los datos de maquinado desde dispositivos de almacenamiento como pendrives o tarjetas SD (antiguamente desde tarjetas perforadas y diskettes). En la actualidad, se utiliza comunicación por puerto paralelo o puerto serial. Sin embargo, debido a que este tipo de puertos se encuentra obsoleto para las distintas marcas de computadoras se está emigrando todo el desarrollo CNC a comunicación por puerto USB. El software sender también controla el flujo de datos enviados funcionando como "Buffer", de modo que si una máquina CNC acumula muchas instrucciones o queda vacía de datos, puede comunicarse con el programa sender para detener el envío de datos o para solicitar mas.

Los Software sender han ido evolucionando en el tiempo, y en la actualidad ofrecen importantes características entre las cuales están:

  • Permiten una interacción entre los distintos recursos y características a través de interfaz gráfica de usuario (GUI).
  • permiten ejecutar movimientos en la máquina de forma manual (código G desde teclado) o automática a través de la carga de un script (programa de mecanizado).
  • Permiten la visualización del objeto virtual y de la trayectoria que seguirá la herramienta en su recorrido.

Para DIYLILCNC se ha utilizado como interfáz Sender el Software Universal GcodeSender, el cual es una interfaz gráfica de usuario con todas las funciones requeridas en la gestión de código G y recomendada para su uso por el desarrollador del firmware controlador CNC usado también en esta máquina.

DiagBloqueCADCAMCNC4.png


1.0.6 visualizerDIYLILCNC.png

Controlador CNC

Un controlador CNC que permite la calibración, configuración y el control de fresadoras CNC. Es el encargado de procesar cada linea de proceso de un programa de maquinado (Programa en codigo G) para que la máquina herramienta ejecute los movimientos necesarios para realizar una rutina de fresado.

GRBL es un firmware libre y de código abierto utilizado en DIYLILCNC. Este programa ha sido diseñado para ser cargado en plataformas de desarrollo Arduino.

En DIYLILCNC el controlador Grbl recibe secuencias de código de maquinado desde una interfaz sender por USB (que es un puerto de serie) y utiliza esta comunicación serial para controlar el flujo de código, es decir, cuando el GRBL envía una señal de "estoy lleno" detiene la transmisión hasta que GRBL pide más datos.

ArduinopreparadopinesDIYLILCNC.png

Un software CNC Controler ejecuta cuatro unidades principales de procesamiento de control numérico:

  • Unidad de entrada y salida de datos.
  • Unidad de memoria interna e interpretación de órdenes.
  • Unidad de cálculo.
  • Unidad de enlace con la máquina herramienta.
DiagBloqueCADCAMCNC5.png

UNIDAD DE ENTRADA – SALIDA DE DATOS

La unidad entrada de datos sirve para introducir los programas de mecanizado en el equipo de control numérico, utilizando un lenguaje inteligible para éste. En los sistemas antiguos se utilizaron para la introducción de datos sistemas tipo ficha (Data Modul) o preselectores (conmutadores rotativos codificados); los grandes inconvenientes que presentaron estos métodos, sobre todo en programas extensos, provocó su total eliminación. Posteriormente se utilizaba para dicho propósito la cinta perforada (de papel, milar o aluminio), por lo que el lector de cinta se constituía en el órgano principal de entrada de datos. Esta cinta era previamente perforada utilizando un perforador de cinta o un teletipo. El número de agujeros máximo por cada carácter era de ocho (cinta de ocho canales). Además de estos agujeros, existía otro de menor tamaño, ubicado entre los canales 3 y 4 que permitía el arrastre de la cinta.

PerforacionesArrastreDeCinta.gif
PaperTape3.gif

Los primeros lectores de cinta fueron electromecánicos; los cuales utilizaban un sistema de agujas palpadoras que determinaban la existencia de agujeros o no en cada canal de la cinta, luego esto actuaba sobre un conmutador cuyos contactos se abren o cierran dependiendo de la existencia o no de dichos agujeros. Luego se utilizaron lectores de cinta fotoeléctricos, los cuales permitían una velocidad de lectura de cinta muy superior. Los mismos constaban de células fotoeléctricas, fotodiodos o fototransistores como elementos sensores. Estos elementos sensibles a la luz, ubicados bajo cada canal de la cinta (incluso bajo el canal de arrastre). Una fuente luminosa se colocaba sobre la cinta, de tal forma que cada sensor producía una señal indicando la presencia de un agujero que sería amplificada y suministrada al equipo de control como datos de entrada. Otro medio que se utilizaba para la entrada de datos era el cassette, robusto y pequeño, era más fácil de utilizar, guardar y transportar que la cinta, siendo óptima su utilización en medios hostiles. Su capacidad variaba entra 1 y 5 Mb. Luego comenzó a utilizarse el diskette. Su característica más importante era la de tener acceso aleatorio, lo cual permitía acceder a cualquier parte del disco en menos de medio segundo. La velocidad de transferencia de datos variaba entre 250 y 500 Kb / s. Con la aparición del teclado como órgano de entrada de datos, se solucionó el problema de la modificación del programa, que no podía realizarse con la cinta perforada, además de una rápida edición de programas y una cómoda inserción y borrado de bloques, búsqueda de una dirección en memoria, etc.

UNIDAD DE MEMORIA INTERNA E INTERPRETACIÓN DE ÓRDENES

Tanto en los equipos de programación manual como en los de programación mixta (cinta perforada o cassette y teclado), la unidad de memoria interna almacenaba no sólo el programa sino también los datos máquina y las compensaciones (aceleración y desaceleración, compensaciones y correcciones de la herramienta, etc.). Son los llamdos datos de puesta en operación. En las máquinas que poseían sólo cinta perforada como entrada de datos, se utilizaba memorias buffer. Luego, con el surgimiento del teclado y la necesidad de ampliar significativamente la memoria (debido a que se debía almacenar en la misma un programa completo de mecanizado) se comenzaron a utilizar memorias no volátiles (su información permanece almacenada aunque desaparezca la fuente de potencia del circuito, por ejemplo en el caso de un fallo en la red) de acceso aleatorio (denominadas RAM) del tipo CMOS.

Además poseían una batería denominada tampón, generalmente de níquel – cadmio, que cumplían la función de guardar durante algunos días (al menos tres) todos los datos máquina en caso de fallo en la red. Una vez almacenado el programa en memoria, inicia su lectura para su posterior ejecución. Los bloques se van leyendo secuencialmente. En ellos se encuentra toda la información necesaria para la ejecución de una operación de mecanizado.

UNIDAD DE CÁLCULO

Una vez interpretado un bloque de información, esta unidad se encarga de crear el conjunto de órdenes que serán utilizadas para gobernar la máquina herramienta. Como ya se dijo, este bloque de información suministra la información necesaria para la ejecución de una operación de mecanizado. Por lo tanto, una vez el programa en memoria, se inicia su ejecución. El control lee un número de bloques necesario para la realización de un ciclo de trabajo. Estos bloques del programa son interpretados por el control, que identifica: la nueva cota a alcanzar (x, y, z del nuevo punto en el caso de un equipo de tres ejes), velocidad de avance con la que se realizará el trayecto, forma a realizar el trayecto, otras informaciones como compensación de herramientas, cambio de útil, rotación o no del mismo, sentido, refrigeración, etc.). La unidad de cálculo, de acuerdo con la nueva cota a alcanzar, calcula el camino a recorrer según los diversos ejes.

Unidad de enlace con la máquina herramienta y servomecanismos.

La función principal de un control numérico es gobernar los motores (servomotores) de una máquina herramienta, los cuales provocan un desplazamiento relativo entre el útil y la pieza situada sobre la mesa. Si consideramos un desplazamiento en el plano, será necesario accionar dos motores, en el espacio, tres motores, y así sucesivamente. En el caso de un control numérico punto a punto y paraxial, las órdenes suministradas a cada uno de los motores no tienen ninguna relación entre sí; en cambio en un control numérico de contorneo, las órdenes deberán estar relacionadas según una ley bien definida. Para el control de los motores de la máquina herramienta se pueden utilizar dos tipos de servomecanismos, a lazo abierto y a lazo cerrado. En los de lazo abierto, las órdenes a los motores se envían a partir de la información suministrada por la unidad de cálculo, y el servomecanismo no recibe ninguna información ni de la posición real de la herramienta ni de su velocidad. No así en un sistema de lazo cerrado, donde las órdenes suministradas a los motores dependen a la vez de las informaciones enviadas por la unidad de cálculo y de las informaciones suministradas por un sistema de medidas de la posición real por medio de un captador de posición (generalmente un encoder), y uno de medida de la velocidad real (tacómetro), montados ambos sobre la máquina.

Para el caso de DIYLILCNC su funcionamiento es en lazo abierto, por lo que una perdida de pasos en el movimiento de los motores implica perder los parámetros de referencia en el proceso de maquinado. GRBL posee algunos elementos en su programación para reducir esta posibilidad, como la desaceleración del movimiento de los ejes para el frenado o cambios en la dirección de desplazamiento de la herramienta de fresado.

Drivers para control de motores paso a paso

La palabra Driver puede tener muchos significados (en software, la palabra driver se asocia a un "controlador de dispositivos"). Aquí tenemos que limitar nuestra definición a cualquier equipo electrónico inteligente que proporcione un control ajustable de la velocidad para un motor. El driver para un motor paso a paso corresponde a un circuito electrónico, el cual tiene la característica de conmutar cada una de las bobinas del Stepper y a su vez, generar la secuencia en que debe alimentarse cada bobina para generar un paso. Junto con ello, permite invertir el giro del motor invirtiendo la secuencia en que las bobinas son conmutadas.


Driver Stepper CNCDIY SM 6.jpg

motores paso a paso

Los motores paso a paso permiten realizar el desplazamiento de cada uno de los ejes de la máquina sin manipulación humana directa. Proporcionan movimiento mecánico según la secuencia de energización entregada por su correspondiente driver. Los motores normalmente usados tipo stepper son los motores unipolares, bipolares e híbridos.

DIYLILCNC utiliza motores paso a paso bipolares para sus 3 ejes en formato NEMA 23 de 3A de intensidad de corriente nominal, lo cual le permite ejercer un torque nominal de 1.8 N-m. Posee 200 pasos por giro, por lo que permite posiciones angulares de 1.8° de separación.


MotorStepperNema23.jpg