scieee AI-readable full text Open interactive document viewer

Diseño y construcción de una máquina de control numérico con control en tiempo real mediante dispositivo apuntador

Samper Martínez, Daniel

Full text

Diseño y construcción de una máquina de control numérico con control en tiempo real mediante Proyecto Final de Carrera Diseño y construcción de una máquina de control numérico con control en tiempo real mediante dispositivo apuntador Autor: Daniel Samper Martínez Director: Francisco José Abad Cerdá Valencia, 29 de Septiembre de 2011 Diseño y construcción de una máquina de control numérico con control en tiempo real mediante Valencia, 29 de Septiembre de 2011 1 Índice 1. Introducción .......................................................................................................................... 3 2. Antecedentes ........................................................................................................................ 6 2.1. Características ............................................................................................................... 6 2.1.1. Número de ejes ..................................................................................................... 7 2.1.2. Sistema de control ............................................................................................... 10 2.1.3. Actuadores .......................................................................................................... 11 2.1.4. Sistema de movimiento ....................................................................................... 21 3. Estado del arte .................................................................................................................... 28 3.1. Máquina de control numérico .................................................................................... 28 3.1.1. Estudio global de soluciones encontradas en la red ........................................... 28 3.1.2. Estudio de una solución comercial: Marchant Dice Ltd. ..................................... 30 3.2. Software de control manual ........................................................................................ 32 4. Especificación de requisitos ................................................................................................ 36 4.1. Máquina de control numérico .................................................................................... 36 4.2. Aplicación gráfica de control manual .......................................................................... 37 5. Diseño .................................................................................................................................. 38 5.1. Máquina de control numérico .................................................................................... 38 5.1.1. Materiales ........................................................................................................... 39 5.1.2. Herramientas ....................................................................................................... 61 5.1.3. Proceso de fabricación ........................................................................................ 63 5.2. Control manual ............................................................................................................ 80 5.2.1. Software usado.................................................................................................... 80 5.2.2. Visión general del diseño .................................................................................... 82 5.2.3. Ejemplo de sesión de trabajo .............................................................................. 85 5.2.4. Diagrama de clases .............................................................................................. 88 5.2.5. Clase PantoMax ................................................................................................... 89 5.2.6. Clase MachineControl ......................................................................................... 92 5.2.7. Clase Monitor ...................................................................................................... 93 5.2.8. Clase CncPoint ..................................................................................................... 94 5.2.9. Clase MiniArea .................................................................................................... 94 2 5.2.10. Clase ScribbleArea ............................................................................................... 95 6. Resultados ........................................................................................................................... 98 6.1. Máquina de control numérico .................................................................................... 98 6.2. PantoMax .................................................................................................................. 105 7. Conclusiones...................................................................................................................... 106 7.1. Máquina de control numérico .................................................................................. 106 7.2. PantoMax .................................................................................................................. 107 Anexo A: Manual de usuario ..................................................................................................... 108 Bibliografía ................................................................................................................................ 109 3 1. Introducción El control numérico (CN) es un sistema de automatización de máquinas-herramienta que son operadas mediante comandos programados en un medio de almacenamiento. 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, por lo que estaríamos tratando de un control numérico por computador (CNC) (Figura 1). Figura 1: Fresadora CNC Fuente: http://www.bermaq.ro/ 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 reducir los costes de fabricación de muchas máquinas, manteniendo o mejorando su calidad. Actualmente existen en el mercado una infinidad de máquinas de control numérico con múltiples configuraciones y posibilidades, siendo una característica muy común el elevado coste económico de las mismas. Debido a esto, surgen en la red muchas propuestas de máquinas de control numérico caseras (Figura 2) usando materiales de fácil manipulación (madera, plástico, etc.) y componentes reciclados como motores de impresora o guías de escáneres. También surgen propuestas más profesionales en las que se usan mejores componentes y materiales más adecuados (como aluminio o acero). 4 Figura 2: Máquina de control numérico casera Fuente: http://www.homegrowncnc.com El proyecto que se presenta en esta memoria consiste en la creación de una máquina profesional CNC de 3 ejes a un mínimo coste, fácil de fabricar, fácilmente ampliable a más ejes (por módulos) y que posea una alta precisión. Con ello se busca que cualquier persona interesada en la fabricación con máquina de control numérico pueda crear la suya propia a un bajo coste y sin necesidad de poseer una gran cantidad de herramientas. Este proyecto ha sido bautizado en Internet como AHIP CNC (Affordable High Precision CNC) para darse a conocer al público en general. Adicionalmente al diseño y construcción de la máquina de control numérico descrita, se ha desarrollado PantoMax, una aplicación para controlar en tiempo real la máquina CNC mediante un dispositivo apuntador (ratón o tableta gráfica). PantoMax es la versión digital de un dispositivo mecánico llamado pantógrafo (Figura 3), dispositivo de dibujo capaz de copiar una figura o reproducirla a una escala distinta. Figura 3: Pantógrafo tradicional 5 A diferencia del pantógrafo, PantoMax es capaz, con la herramienta adecuada acoplada a la máquina, de realizar tallados o cortes en materiales con una elevadísima precisión en el escalado. Se han añadido también otras funcionalidades como el guardado/carga del trazo realizado o la monitorización de la posición en tiempo real de la herramienta. En caso de usar una tableta gráfica, se detecta la presión realizada sobre la misma, variando la altura de la herramienta y por tanto permitiendo realizar tallados con diferentes profundidades. En la presente memoria se tratarán en detalle todos los aspectos que conforman este proyecto:  Antecedentes: Se proporciona la información indispensable para la correcta valoración de las características de una máquina de control numérico, ofreciendo para cada una de estas características sus principales ventajas e inconvenientes.  Estado del arte: Se realiza un estudio de las soluciones ya existentes tanto de máquinas de control numérico como de modos de control manual en estas máquinas, estudio que nos permite, con los antecedentes previamente proporcionados, disponer de una evaluación crítica de estas soluciones y aprovechar sus bondades en nuestro diseño.  Especificación de requisitos: Se especifican los requisitos tanto para la máquina de control numérico como para el control manual a implementar. Esto fijará las funcionalidades y características necesarias para el diseño de la solución.  Diseño: Ajustándose a los requisitos anteriormente planteados, se proporcionan los diseños para la solución de ambos componentes, detallando su funcionamiento y la metodología de desarrollo seguida.  Resultados: Se realiza una evaluación de las soluciones realizadas para comprobar que se han alcanzado los objetivos propuestos.  Conclusiones: Se describe el desarrollo del proyecto, conclusiones alcanzadas y se plantean posibles trabajos futuros. 12 Su funcionamiento se basa en el principio de electromagnetismo. Existe un rotor de hierro dulce o magnetizado rodeado por los estátores electromagnéticos. El rotor y el estátor poseen polos que pueden encontrarse dentados dependiendo del tipo motor. Cuando el estátor se encuentra energizado el rotor se mueve para alinearse con él (en el caso de motores de imán permanente) o se mueve para tener la menor distancia con el estátor (en el caso de los motores de reluctancia variable). Es por ello que debemos energizar a los estátores en una secuencia determinada para que se produzca el movimiento del rotor. En lo que respecta al control de estos motores destacar dos funcionalidades básicas implementadas en cualquier controlador de motores paso a paso. Con la técnica conocida como microstepping es posible aumentar el número de pasos en este tipo de motores, aumentando por tanto la resolución del motor. La otra funcionalidad básica consiste en la regulación de la intensidad que circula por las bobinas del motor por medio de un procedimiento conocido como Chopping. Este procedimiento permite el uso de voltajes muy altos, ya que la intensidad que circula por las bobinas siempre será la misma (es decir, es independiente del voltaje). Un alto voltaje hace que se alcance la intensidad nominal de las bobinas en un menor tiempo y por tanto, permite que los motores giren más rápido. Los tipos de motores paso a paso se pueden clasificar por su principio de funcionamiento:  Motor paso a paso de imán permanente  Motor paso a paso de reluctancia variable  Motor paso a paso híbrido  Motor paso a paso unipolar  Motor paso a paso bipolar 13 2.1.3.1.1. De imán permanente Los polos del rotor y el estátor en este tipo de motores carecen de dientes. En cambio el rotor posee polos sur y norte alternativos, quedando paralelos al eje del mismo (Figura 13). Permite mantener un par diferente de cero cuando el motor no está energizado. Dependiendo de la construcción del motor, es posible obtener pasos angulares de 7.5, 11.25, 15, 18, 45 o 90°. Figura 13: Motor paso a paso de imán permanente El rotor de imán permanente se alinea siempre con el campo magnético generado al energizar el estátor. De esto deducimos que debemos proporcionar una secuencia de energizado a los estátores para colocar el rotor en el ángulo deseado (Figura 14). Figura 14: Funcionamiento de motor paso a paso de imán permanente 14 Se puede aumentar la resolución de estos motores aumentando el número de polos del rotor o incrementando el número de fases (Figura 15). Figura 15: Métodos para incrementar la resolución en un motor PaP de imán permanente 2.1.3.1.2. De reluctancia variable Este motor posee un dentado en un rotor de hierro dulce (Figura 16). Cuando la bobina del estátor se energiza el rotor se mueve para minimizar la distancia entre el estátor y el diente. La inercia del rotor de un motor de paso de reluctancia variable es pequeña y la respuesta es muy rápida, pero la inercia permitida de la carga es pequeña. Cuando los devanados no están energizados, el par estático de este tipo de motor es cero. Generalmente, el paso angular de este motor de reluctancia variable es de 15°. Figura 16: Motor paso a paso de reluctancia variable 15 El diseño del rotor hace que cuando alineamos uno de los dientes del mismo con una de las fases, el siguiente diente se encuentre desalineado con la siguiente fase. Esto permite que cuando energicemos la siguiente fase este diente desalineado pase a alinearse. Energizando las fases con la secuencia correcta conseguimos el movimiento continuo del rotor (Figura 17). Figura 17: Funcionamiento de motor paso a paso de reluctancia variable Se puede incrementar la resolución de estos motores aumentando el número de dientes del rotor o incrementando el número de fases (Figura 18). Figura 18: Métodos para incrementar la resolución de un motor PaP de reluctancia variable 16 2.1.3.1.3. Híbrido El motor híbrido es una combinación del motor de reluctancia variable y del motor de imán permanente, por lo que el rotor de este tipo de motores posee dientes y se encuentra magnetizado (Figura 19). Este tipo de motor tiene una alta precisión, alto par y se puede configurar para suministrar un paso angular de hasta 0.9°. Figura 19: Motor paso a paso híbrido El rotor posee dos zonas, una con polaridad norte y otra con polaridad sur. Estas zonas se han diseñado de forma que los polos de una de las zonas coinciden con los huecos entre los polos de la otra zona (Figura 20). Figura 20: Rotor de motor paso a paso híbrido 17 Como en los motores anteriores, el motor híbrido necesita de una secuencia de energización de sus fases para producir el movimiento del rotor (Figura 21). Figura 21: Funcionamiento de motor paso a paso híbrido Los motores paso a paso también se pueden clasificar por su conexionado:  Motor paso a paso bipolar  Motor paso a paso unipolar 2.1.3.1.4. Unipolar Los motores unipolares son relativamente fáciles de controlar, gracias a que poseen devanados duplicados. Estos motores poseen dos bobinas en cada eje del estator (Figura 22), que están unidas por extremos opuestos, de tal modo que al ser alimentada una u otra, generan cada una un campo magnético inverso al de la otra. Esta duplicación se hace para facilitar el diseño del circuito de control, ya que permite el uso, en la parte de potencia, de un transistor único por cada uno de los bobinados. Figura 22: Esquema de motor paso a paso unipolar 18 En el esquema más común de conexión se unen los "puntos medios" de ambos ejes (a y b en el dibujo) y se les conecta al positivo de la alimentación del motor. El circuito de control de potencia, entonces, se limita a poner a masa los bobinados de manera secuencial (Figura 23). Rotación horaria    1 2 3 4 5 6 7 8 1a 1 0 0 0 1 0 0 0 1b 0 1 0 0 0 1 0 0 2a 0 0 1 0 0 0 1 0 2b 0 0 0 1 0 0 0 1 Figura 23: Secuencia para rotación horaria en motor PaP unipolar 2.1.3.1.5. Bipolar Los motores bipolares carecen de doble bobinado por estator (Figura 24), lo que implica tener que cambiar frecuentemente la polaridad del mismo, requiriendo circuitos de control y de potencia más complejos. En la actualidad esto no es problema, ya que estos circuitos se suelen implementar en un integrado, que soluciona esta complejidad en un solo componente. Como no tienen el doble bobinado de los unipolares (recordemos que en éstos todo el tiempo se está utilizando sólo una de las bobinas duplicadas, mientras la otra queda desactivada y sin ninguna utilidad), los motores bipolares ofrecen una mejor relación entre torque y tamaño/peso. Figura 24: Esquema de motor paso a paso bipolar 19 En la Figura 25 se muestra la secuencia de polaridades necesaria para hacer girar el rotor en sentido horario. Rotación horaria    1 2 3 4 5 6 7 8 1a + - - - + - - - 1b - + - - - + - - 2a - - + - - - + - 2b - - - + - - - + Figura 25: Secuencia para rotación horaria en motor PaP bipolar 2.1.3.2. Motor de corriente continua y alterna A diferencia de los motores paso a paso, que son capaces de trabajar en un sistema de control de bucle abierto, los motores de corriente continua (Figura 26) o alterna no poseen esta capacidad, por lo que requieren de dispositivos que informen al circuito de control del posicionamiento del rotor. Esto eleva el coste del sistema, aspecto que reduce su uso para este ámbito. Como principales ventajas encontramos su bajo precio, una mayor potencia a igualdad de tamaño y un funcionamiento más suave. Figura 26: Motor de corriente continua Existen en el mercado una gran variedad de este tipo de motores (sin escobillas, asíncrono, síncrono, etc.). Dada la enorme variedad existente, detallaremos únicamente su principio de funcionamiento. Los motores de corriente alterna y los de corriente continua se basan en el mismo principio de funcionamiento, el cual establece que si un conductor por el que circula una corriente eléctrica se encuentra dentro de la acción de un campo magnético, éste tiende a desplazarse perpendicularmente a las líneas de acción del campo magnético. El conductor tiende a funcionar como un circula por el mismo adquiriendo de esta manera debido a la interacción con los polos ubicados en el observa en el rotor del motor. 2.1.3.3. Motor lineal El funcionamiento de un motor lineal deriva de un motor eléctrico convencional estátor se encuentra abierto y “desenrollado” en ambos lados del carril Alterando la polaridad de las bobinas del elemento acoplado al rail conseguimos el movimiento del mismo. Estos motores poseen una enorme capacidad de velocidad y aceleración. Además poseen una alta repetitividad. Entre sus principales desventajas se encuentra la n controlado por un sistema de bucle cerrado, problemas ante cargas pesadas y su elevado precio. Existen también en el mercado motores lineales paso a paso solucionan el problema del sistem en bucle abierto. El conductor tiende a funcionar como un electroimán debido a la corriente eléctrica circula por el mismo adquiriendo de esta manera propiedades magnéticas, que provocan, debido a la interacción con los polos ubicados en el estátor , el movimiento circular que se observa en el rotor del motor. El funcionamiento de un motor lineal deriva de un motor eléctrico convencional se encuentra abierto y “desenrollado” en ambos lados del carril -guía ( Alterando la polaridad de las bobinas del elemento acoplado al rail conseguimos el Figura 27: Motor lineal Fuente: http://www.wikipedia.org Estos motores poseen una enorme capacidad de velocidad y aceleración. Además poseen una alta repetitividad. Entre sus principales desventajas se encuentra la n controlado por un sistema de bucle cerrado, problemas ante cargas pesadas y su elevado Existen también en el mercado motores lineales paso a paso (Figura 28 solucionan el problema del sistem a de control, ya que este tipo de motores sí pueden trabajar 20 corriente eléctrica que propiedades magnéticas, que provocan, , el movimiento circular que se El funcionamiento de un motor lineal deriva de un motor eléctrico convencional donde el ( Figura 27). Alterando la polaridad de las bobinas del elemento acoplado al rail conseguimos el Estos motores poseen una enorme capacidad de velocidad y aceleración. Además poseen una alta repetitividad. Entre sus principales desventajas se encuentra la n ecesidad de ser controlado por un sistema de bucle cerrado, problemas ante cargas pesadas y su elevado 28 ). Estos motores a de control, ya que este tipo de motores sí pueden trabajar 21 Figura 28: Motor lineal paso a paso Fuente: http://www.fromorbit.com 2.1.4. Sistema de movimiento En una máquina de control numérico el sistema de movimiento se corresponde con el conjunto de elementos responsables de transmitir o guiar los movimientos realizados por los actuadores. Podemos clasificar estos elementos en dos tipos:  Elementos activos: Transmiten el movimiento de los motores de los ejes a los elementos móviles.  Elementos pasivos: Actúan como guía o rail de los elementos móviles. 28 3. Estado del arte En el presente capítulo se realiza un estudio de las soluciones ya existentes tanto de máquinas de control numérico como de aplicaciones similares a PantoMax, analizando sus ventajas e inconvenientes. 3.1. Máquina de control numérico En primer lugar se realizará un estudio de las soluciones encontradas en la red. Una vez realizado este estudio se pasará al análisis de una solución comercial concreta. 3.1.1. Estudio global de soluciones encontradas en la red Internet ha permitido que aficionados al control numérico puedan compartir los diseños de las máquinas que han creado, creando también manuales y videos demostrativos. Tras un estudio de los diferentes diseños encontrados obtenemos las siguientes conclusiones:  Muchas de las propuestas parten de la construcción de toda la estructura con madera. Este material es económico y fácilmente trabajable, aunque no es el más adecuado para la estructura de nuestra máquina, ya que al ser una material relativamente blando es propenso a deformaciones, y por tanto, a falta de precisión.  Otras propuestas parten del reciclaje de la estructura y componentes de dispositivos como impresoras, escáneres y otros dispositivos similares. Aunque los componentes pueden ser totalmente válidos para la construcción de nuestra máquina, la propia estructura del dispositivo no se suele adaptar al diseño de la máquina deseada, por lo que requiere de grandes cambios que dan un aspecto poco profesional a nuestra máquina CNC.  Algunas máquinas parten de fresadoras de columna de control manual. Estas máquinas únicamente requieren del acople de motores a los ejes para transformase en máquinas de control numérico. El principal inconveniente de este tipo de solución es el elevado precio de estas fresadoras de columna. También presenta como desventaja un área de trabajo bastante reducida.  Las propuestas más profesionales parten del trabajo con metales. Suelen utilizar diferentes tipos de perfiles que mediante uniones por soldaduras u otros métodos consiguen dar forma a la estructura de la máquina. Se requieren una gran cantidad de herramientas y habilidades para llevar a cabo estas propuestas. 29  Otras soluciones con metales parten del uso de sistemas constructivos de perfiles de aluminio. Estos sistemas han sido diseñados para la construcción rápida y fácil de estructuras y máquinas. Estas propuestas no requieren de una gran cantidad de herramientas para su construcción. Se suele obtener un resultado profesional y su tiempo de fabricación es menor que en las propuestas convencionales.  La mayor parte de propuestas son máquinas de dos o tres ejes, siendo poco frecuentes las propuestas de cuatro o cinco ejes.  En lo que respecta a componentes: o Los motores más usados son los motores paso a paso, ya que pueden funcionar en un sistema de control de bucle abierto. o Para la transmisión del movimiento de los motores se usan sistemas de correas, piñón-cremallera, husillo-tuerca y husillos de bolas. Las propuestas más profesionales usan el husillo de bolas, aunque el husillo-tuerca es posiblemente el más usado (dado su bajo precio). o El uso de rodamientos es universal en todas las propuestas. En algunas se prescinde de los rodamientos lineales, usando rodamientos convencionales ajustados a un rail que impide su libre movimiento. o Se suelen recurrir a controladores de motores comerciales, aunque existen también propuestas con circuitería de control propia. o Los componentes que forman estas propuestas suelen ser adquiridos desde China vía internet. La razón reside en los bajos precios ofertados, así como en la gran variedad de componentes disponibles. 30 3.1.2. Estudio de una solución comercial: Marchant Dice Ltd. Dada la creciente demanda de productos relacionados con el control numérico han surgido en la red una gran cantidad de tiendas especializadas en este ámbito. Estas tiendas disponen de cualquier componente necesario para la fabricación de una máquina de control numérico, ofreciendo también en algunas ocasiones kits con todos los componentes necesarios para la fabricación casera de la máquina. La solución presentada en este apartado (Figura 39) ha sido creada por una de estas tiendas (http://marchantdice.com/) con el fin de obtener una máquina de calidad a un precio razonable. Figura 39: Kit de control numérico de Marchant Dice Fuente: http://marchantdice.com/ Las características de este kit son las siguientes:  Uso de un sistema constructivo de perfiles de aluminio para toda la estructura de la máquina.  Diseño simple pero robusto, usando poco material para formar toda la estructura.  Máquina de 3 ejes con posibilidad de acoplar un cuarto eje.  Uso de motores paso a paso híbridos con un paso de 1.8° y un torque de 1.35 N.m.  Utilización de husillo de bolas en todos los ejes de la máquina. Podemos encontrar una versión más económica en la que se usa el sistema de tuerca-husillo.  Disponen de áreas de trabajo de un tamaño similar al A4 y al A3, permitiendo el eje Z un desplazamiento total de 100 mm.  Uso de rodamientos lineales sobre raíles cilíndricos. Por cada eje se usan 2 de estos railes, siempre paralelos al husillo que transmite el movimiento. 31  La sujeción del motor de un eje a la estructura de la máquina se realiza mediante un cubo de aluminio hueco. Es en el interior de este cubo donde se realiza la conexión entre el eje del motor y el husillo mediante un acople. El chasis del motor se encuentra en contacto directo con la estructura, lo que transmitirá a la máquina las vibraciones producidas por el motor.  El coste de la máquina con área de trabajo de tamaño A3 y husillos de bolas en todos los ejes ronda los 1800€. La máquina se entrega totalmente desmontada, por lo que a este precio deberemos sumarle el coste del tiempo de montaje, así como de las herramientas necesarias para tal tarea. A modo de resumen destacar que es una muy buena solución para aquellos que quieran una máquina de control numérico de una calidad más que aceptable a un bajo coste. A pesar de ello presenta algunos inconvenientes, como son las sujeciones de los motores o el escaso desplazamiento del eje Z. 32 3.2. Software de control manual Aunque la propia definición de control numérico implique la automatización de máquinasherramienta mediante comandos programados en un medio de almacenamiento, siempre se suele disponer de uno o varios controles manuales. Son muy frecuentes las ocasiones en las que debemos posicionar manualmente la máquina o simplemente queremos realizar un mecanizado manual, sin necesidad de tener que programar instrucciones de mecanizado. El software usado para controlar la máquina suele contener en su interfaz los controles necesarios para esta tarea. En ella podemos ordenar a la máquina ir directamente a la posición introducida, así como ir desplazando cada uno de los ejes mientras mantengamos pulsado su correspondiente botón en la interfaz. Para este último caso también se usan otros dispositivos como teclados y joysticks (Figura 40) que se comunican con el software de control. Destacar que el uso de joysticks analógicos permite regular la velocidad de desplazamiento de la herramienta dependiendo del grado de inclinación del stick. Figura 40: Joystick 33 Encontramos en el mercado una gran variedad de dispositivos de control manual especializados para máquinas CNC. Este tipo de dispositivo permite realizar todas las funciones de control manual posibles y suelen incluir un botón de emergencia que detiene totalmente la máquina (Figura 41). Figura 41: Control manual especializado en CNC Los controladores de máquinas de control numérico (intérpretes de código G) más conocidos entre aficionados son los controladores Mach3 y EMC2. Ambos controladores disponen de control manual, permitiendo una gran variedad de dispositivos para este fin. El código G determina el tipo de operación a realizar en la máquina. Los códigos G seleccionan el tipo de movimiento, el modo de velocidad o de avance, etc. El intérprete de código G será el responsable de traducir estos códigos a señales entendibles por los controladores de los motores de la máquina. 34 Mach3 es el software de control numérico más usado por aficionados. Posee una licencia comercial, por lo que no se tiene acceso a su código fuente para añadir nuevas funcionalidades o mejorar el propio software. En la Figura 42 se muestra el control manual implementado para este controlador. Figura 42: Control manual de Mach3 Fuente: http://www.machsupport.com/ EMC2 es la segunda opción más usada. Es un controlador con una comunidad que colabora en el desarrollo y mantenimiento del mismo. fuerte de este controlador es que permite un diseño rápido de tu propio control manual aunque éste se encuentra limitado a la pulsación de botones con el ratón o a eve teclado. En la Figura 43 se muestra Figura Fuente: EMC2 es la segunda opción más usada. Es un controlador CNC de software libre que cue con una comunidad que colabora en el desarrollo y mantenimiento del mismo. fuerte de este controlador es que permite un diseño rápido de tu propio control manual aunque éste se encuentra limitado a la pulsación de botones con el ratón o a eve se muestra un control manual implementado para este controlador. Figura 43: Control manual realizado para EMC2 Fuente: http://electricalmusings.blogspot.com 35 de software libre que cue nta con una comunidad que colabora en el desarrollo y mantenimiento del mismo. Un punto fuerte de este controlador es que permite un diseño rápido de tu propio control manual , aunque éste se encuentra limitado a la pulsación de botones con el ratón o a eve ntos de control manual implementado para este controlador. 36 4. Especificación de requisitos 4.1. Máquina de control numérico Los requisitos exigidos para la máquina de control numérico son:  Fácil fabricación: Las únicas acciones de mecanizado permitidas sobre el material que formará la estructura serán cortes y taladrados.  Gran área de trabajo: El área de trabajo se encontrará entre el tamaño del estándar DIN A2 y DIN A3. El eje Z contará con un desplazamiento total de más de 250 mm, permitiendo el futuro acoplamiento de un cuarto eje.  Precisión para cualquier tarea: La resolución de posicionamiento será de un mínimo de 5 µm, siendo el error de repetitividad no superior a los 10 µm.  Gran velocidad de desplazamiento: La velocidad de desplazamiento para cada uno de los ejes será superior a los 6000 mm/min.  Máquina de sobremesa: La máquina debe encontrarse dimensionada para poder colocarse en una mesa de escritorio y ser lo suficientemente ligera para no deteriorar la misma por su peso.  Bajo coste: El coste total de los componentes que forman la máquina será inferior a los 1500€ (se excluye la computadora que realiza la función de control de la máquina). 37 4.2. Aplicación gráfica de control manual Los requisitos exigidos para el control manual de la máquina son:  Aplicación para uso con dispositivo apuntador: Esta aplicación gráfica contendrá un área de dibujo sobre la que el usuario realizará trazados mediante un dispositivo apuntador. Estos trazados serán transmitidos a la máquina de control numérico.  Si el dispositivo de entrada utilizado es una tableta gráfica, la presión ejercida será proporcional a la altura de la herramienta acoplada a la máquina.  Integración con controlador máquina-herramienta: La aplicación de control manual desarrollada se integrará con un controlador de máquina-herramienta de código abierto.  Control y monitorización en tiempo real: El control manual de la máquina y la monitorización de la posición de la herramienta acoplada será en tiempo real. En todo momento la aplicación mostrará la posición de la máquina y el diseño del usuario.  Si la velocidad de posicionamiento de la máquina fuera inferior a la velocidad demandada por el usuario, se encolarían las acciones para ser realizadas más tarde. En la interfaz de usuario, un trazo de diferente color indicará el recorrido seguido por la máquina.  Zoom vectorial: El usuario será capaz de realizar zoom en cualquier zona del área de dibujo, realizándose un escalado vectorial de dicha zona sin perder calidad.  Capacidad de escalado: Gracias a la herramienta de zoom, el usuario podrá ampliar en el área de dibujo un área determinada del área de trabajo de la máquina.  Guardado y carga del trabajo realizado: Se podrán guardar en disco los trazados realizados para su posterior carga en la aplicación.  Guardado y carga de la configuración de la máquina: Al igual que con los trazados, se podrá guardar y cargar la configuración especificada para la máquina.  Interfaz gráfica intuitiva: La aplicación dispondrá de una interfaz gráfica sencilla e intuitiva, permitiendo un rápido aprendizaje sobre el uso de la misma a personas no expertas en la materia. Podemos observar como los datos de holguras para estos motores son considerablemente altos. Deb ido a que estos motores se encuentran acoplados a los husillos, serán las sujeciones de estos últimos los que determinen la holgura final del conjunto. Para la sujeción de las guías cilíndr instalación mediante tornillos. Dado que se usan guías con diferente grosor, se usarán soportes comerciales SHF20 para las guías de 20 mm (Figura 53). Podemos observar como los datos de holguras para estos motores son considerablemente ido a que estos motores se encuentran acoplados a los husillos, serán las sujeciones de estos últimos los que determinen la holgura final del conjunto. Figura 51: Motor paso a paso 57BYGH408 Para la sujeción de las guías cilíndr icas se ha recurrido a soportes de aluminio con orificios para instalación mediante tornillos. Dado que se usan guías con diferente grosor, se usarán soportes comerciales SHF20 para las guías de 20 mm (Figura 52) y SHF16 para las de 16 mm 44 Podemos observar como los datos de holguras para estos motores son considerablemente ido a que estos motores se encuentran acoplados a los husillos, serán las sujeciones icas se ha recurrido a soportes de aluminio con orificios para instalación mediante tornillos. Dado que se usan guías con diferente grosor, se usarán SHF16 para las de 16 mm La unión entre el eje del rotor de los motores paso a paso y el husill mediante un acoplador de aluminio con una franja flexible que permite cierta desalineación entre ejes (Figura 54) . Dado que el eje del motor tiene un diámetro diferente al husillo, este acoplador tiene en cad a extremo una cavidad del diámetro del objeto a acoplar. Dispone de 4 pequeños tornillos (no modelados) que presionan los ejes y fijan por tanto la unión de los mismos. Figura 52: Soporte SHF20 Figura 53: Soporte SHF16 La unión entre el eje del rotor de los motores paso a paso y el husill o de bolas se realiza mediante un acoplador de aluminio con una franja flexible que permite cierta desalineación . Dado que el eje del motor tiene un diámetro diferente al husillo, este a extremo una cavidad del diámetro del objeto a acoplar. Dispone de 4 pequeños tornillos (no modelados) que presionan los ejes y fijan por tanto la unión de los 45 o de bolas se realiza mediante un acoplador de aluminio con una franja flexible que permite cierta desalineación . Dado que el eje del motor tiene un diámetro diferente al husillo, este a extremo una cavidad del diámetro del objeto a acoplar. Dispone de 4 pequeños tornillos (no modelados) que presionan los ejes y fijan por tanto la unión de los Para el soporte de la má quina se recomienda el uso de patas regulables en altura ya que es frecuente que la superficie dedicada a la misma no sea totalmente plana o no se encuentre correctamente nivelada. El tornillo con el que cuentan estas regular la altura girando las mismas (es necesario realizar un r Figura 54: Acoplador husillo-motor quina se recomienda el uso de patas regulables en altura ya que es frecuente que la superficie dedicada a la misma no sea totalmente plana o no se encuentre correctamente nivelada. El tornillo con el que cuentan estas patas nos permitirá regular la altura girando las mismas (es necesario realizar un r oscado hembra en los perfiles). Figura 55: Pata regulable en altura 46 quina se recomienda el uso de patas regulables en altura (Figura 55), ya que es frecuente que la superficie dedicada a la misma no sea totalmente plana o no se patas nos permitirá oscado hembra en los perfiles). 47 Aunque no imprescindible, es muy recomendable el uso de finales de carrera para todos los ejes. Esto evitará la rotura de componentes (en nuestro caso el acoplador entre el motor y el husillo, ya que al ser un elemento flexible también es el más débil). También nos servirá para detectar la coordenada de inicio de la máquina (X=0, Y=0, Z=0), agilizando todos los procesos de fabricación. Los finales de carrera convencionales tienen el inconveniente de que con el uso frecuente sus piezas de contacto se deforman, introduciendo un error en el posicionamiento de inicio. Es por ello que para este proyecto se han optado por finales de carrera inductivos (modelo comercial SN04-N) (Figura 56). Estos dispositivos tienen el mismo principio de funcionamiento que los detectores de metales, por lo que no necesitan de un contacto físico para su funcionamiento. Esto produce que estos dispositivos cuenten con una repetitividad excelente, lo que hace adecuado su uso en tareas de precisión. Figura 56: Final de carrera SN04-N Poseen las siguientes características: o Frecuencia de respuesta de 500Hz (lo que supone un retardo máximo de 2 milisegundos). o Tensión de alimentación entre 6 y 36V. o Distancia de detección: 5 mm. o Tres cables de conexión: Alimentación, masa y salida lógica normalmente abierta. Est os sensores únicamente detectan materiales ferrosos, por lo que debemos colocar en los extremos de los ejes este tipo de material. Por el diseño escogido y la distancia que estos sensores son capaces de detectar, tanto los perfiles de aluminio como los sop husillos quedan demasiado retirados. Para solucionar este problema se ha optado por la fabricación de la pieza de la Figura Estas piezas se colocarán en los soportes del husillo mediante los orificios con los que ambos cuentan (no modelados). Para su fabricación recurriremos a tijeras específicas para el corte de chapa. La tornillería necesaria para la fij aluminio se reduce únicamente a tornillos de tipo rosca mm) y 12 (5.5 mm). La decisión de optar por este tipo de rosca reside en el ahorro del coste de las herr amientas necesarias para realizar el roscado así como de la reducción del tiempo requerido para realizar las fijaciones. La longitud de los mismos depende del elemento a fijar, lo que hace que necesitemos de una considerable variedad de tornillos. Una solu problema consiste en adquirir tornillos de gran longitud y acortarlos mediante una mini amoladora a nuestras necesidades. La unión entre los perfiles de aluminio se realiza mediante tornillos y tuercas de gran grosor, ya que serán estos elem entos los responsables de fijar toda la estructura. Los elementos usados para este fin son los siguientes:  Tornillo con cabeza Torx T50, 30 mm de longitud y 12 mm de diámetro. Podemos encontrar estos tornillos en dos modalidades, los que requieren de un r del material donde van a ser atornillados y los que no. Dado que el precio de ambos tornillos es similar, se recomienda el uso de los segundos para evitar incrementar el coste total de la máquina. os sensores únicamente detectan materiales ferrosos, por lo que debemos colocar en los extremos de los ejes este tipo de material. Por el diseño escogido y la distancia que estos sensores son capaces de detectar, tanto los perfiles de aluminio como los sop husillos quedan demasiado retirados. Para solucionar este problema se ha optado por la Figura 57 a partir de chapa galvanizada de 0.7 mm de grosor. Figura 57: Chapa final de carrera Estas piezas se colocarán en los soportes del husillo mediante los orificios con los que ambos cuentan (no modelados). Para su fabricación recurriremos a tijeras específicas para el corte de La tornillería necesaria para la fij ación de todos los componentes descritos a los perfiles de aluminio se reduce únicamente a tornillos de tipo rosca - chapa del número 7 (3.9 mm), 10 (4.8 mm) y 12 (5.5 mm). La decisión de optar por este tipo de rosca reside en el ahorro del coste de amientas necesarias para realizar el roscado así como de la reducción del tiempo requerido para realizar las fijaciones. La longitud de los mismos depende del elemento a fijar, lo que hace que necesitemos de una considerable variedad de tornillos. Una solu problema consiste en adquirir tornillos de gran longitud y acortarlos mediante una mini amoladora a nuestras necesidades. La unión entre los perfiles de aluminio se realiza mediante tornillos y tuercas de gran grosor, entos los responsables de fijar toda la estructura. Los elementos usados para este fin son los siguientes: Tornillo con cabeza Torx T50, 30 mm de longitud y 12 mm de diámetro. Podemos encontrar estos tornillos en dos modalidades, los que requieren de un r del material donde van a ser atornillados y los que no. Dado que el precio de ambos tornillos es similar, se recomienda el uso de los segundos para evitar incrementar el coste total de la máquina. 48 os sensores únicamente detectan materiales ferrosos, por lo que debemos colocar en los extremos de los ejes este tipo de material. Por el diseño escogido y la distancia que estos sensores son capaces de detectar, tanto los perfiles de aluminio como los sop ortes de los husillos quedan demasiado retirados. Para solucionar este problema se ha optado por la galvanizada de 0.7 mm de grosor. Estas piezas se colocarán en los soportes del husillo mediante los orificios con los que ambos cuentan (no modelados). Para su fabricación recurriremos a tijeras específicas para el corte de ación de todos los componentes descritos a los perfiles de chapa del número 7 (3.9 mm), 10 (4.8 mm) y 12 (5.5 mm). La decisión de optar por este tipo de rosca reside en el ahorro del coste de amientas necesarias para realizar el roscado así como de la reducción del tiempo requerido para realizar las fijaciones. La longitud de los mismos depende del elemento a fijar, lo que hace que necesitemos de una considerable variedad de tornillos. Una solu ción para este problema consiste en adquirir tornillos de gran longitud y acortarlos mediante una mini - La unión entre los perfiles de aluminio se realiza mediante tornillos y tuercas de gran grosor, entos los responsables de fijar toda la estructura. Los elementos Tornillo con cabeza Torx T50, 30 mm de longitud y 12 mm de diámetro. Podemos encontrar estos tornillos en dos modalidades, los que requieren de un r oscado previo del material donde van a ser atornillados y los que no. Dado que el precio de ambos tornillos es similar, se recomienda el uso de los segundos para evitar incrementar el 49  Tornillo con cabeza en forma de T de 20 mm de longitud y 8 mm de diámetro con tuerca acorde a rosca y diámetro del tornillo. Los tornillos con este tipo de cabeza son específicos para este tipo de sistemas constructivos, ya que la cabeza se adapta a las diferentes cavidades que presentan los perfiles. Esto los hace difícil de adquirir fuera de nuestro proveedor de perfiles. Los motores paso a paso presentan muchas ventajas para el uso en máquinas de control numérico, pero presentan también muchas vibraciones en funcionamiento. Por ello se ha decidido usar arandelas de caucho (ampliamente usadas en fontanería) (Figura 58) para la fijación de los motores a los perfiles con el fin de reducir la transmisión de estas vibraciones. Figura 58: Arandela de caucho Será necesario cablear tanto motores como sensores para su correcto control. Para ello se recurre a un cable de 4 hilos con una sección de cobre de 1.5 mm 2 por hilo en el caso de los motores y de 0.20 mm 2 para los finales de carrera. Para el correcto conexionado de los motores a estos cables se recurre a regletas de conexión (frecuentemente utilizadas en instalaciones eléctricas). Estas regletas se encontrarán fijadas al perfil de aluminio en una zona próxima al motor a conectar. En el caso de la prolongación de las conexiones de los finales de carrera se utilizará soldadura con estaño y funda termo-retráctil (esta funda aísla eléctricamente la soldadura y mejora su estética). Para la protección de todo el cableado se aprovecharán las cavidades que nos proporcionan los perfiles de la estructura. Además, en las zonas en las que esto no sea posible, se usarán bridas y ordena-cables. Destacar que esta protección no sólo reduce el riesgo de accidentes sino que también mejora la estética global de la máquina. 50 En lo que respecta a la electrónica de la máquina, se hará uso de tres controladoras comerciales GeckoDrive G251X (una por cada motor) (Figura 59) y una tarjeta MB-02-V6 que realizará de interfaz entre estas controladoras, los finales de carrera y nuestro intérprete de código G. Figura 59: Controladora GeckoDrive G251X Fuente: http://www.geckodrive.com/ Las características más relevantes de estas controladoras son:  Intensidad máxima de 3.5 A por bobina.  Voltaje de alimentación máximo de 50V.  Entradas compatibles con lógica de 3.3 y 5V.  Frecuencia máxima de señal de paso de 300Khz  MicroStepping de diez micropasos. La razón de que sea diez y no otro número es que el error (no acumulativo) de los motores paso a paso suele ser de un +/-5% por paso. Esto hace que el motor tenga un rango de error del 10% de 1.8º, es decir, 0.18º. Esto se traduce en que el motor tiene la suficiente precisión como para avanzar de 0.18º en 0.18º. Si dividimos 360º (una vuelta completa) entre esta última cifra, nos da que somos capaces de colocar el eje del motor en 2000 posiciones diferentes. Los motores usados son de 200 pasos por vuelta, por lo que si usamos un microstepping de 10 micropasos obtendremos las 2000 posiciones anteriormente calculadas. 51 Destacar que previa a la decisión del uso de estas controladoras el autor realizó su propia controladora de motores paso a paso centrándose en fiabilidad, potencia y precio. Para conseguir esto se basó en un diseño bastante probado consistente en dos L6203 (Puente H) y un L297 (Controladora de motores paso a paso) por cada motor. Esto hace que para el control de todos los motores de la máquina se requieran seis L6203 y tres L297. Las características más destacables de los L6203 es que soportan una intensidad de 4A, un voltaje de 48V y una alta frecuencia de conmutación (100 Khz), lo que permite un correcto control de la intensidad que circula por las bobinas del motor. Son necesarios dos L6203 por motor debido a que necesitamos un puente H por cada bobina. Con respecto al L297 decir que permite regulación de la intensidad (este controlador lee la intensidad desde los L6203), es capaz de realizar un microstepping de “medio paso” y traduce las señales de paso, dirección de giro y habilitado/deshabilitado provenientes del intérprete de código G. La Figura 60 muestra el esquema para el control de un solo motor. Figura 60: Esquema de controladora Para la alimentación de la lógica de los integrados se ha optado por un regulador de voltaje a 5V (7805). El resto de componentes son condensadores (para protección y filtrado de posibles ruidos), resistencias, conectores y un led indicador de encendido. La Figura 61 muestra el circuito impreso realizado de este esquema. 52 Figura 61: Circuito impreso realizado Como se puede apreciar en la Figura 61 se han hecho diversos parches al circuito impreso para intentar solucionar el principal problema que se ha encontrado para esta controladora, que es la pérdida de pasos para un rango de frecuencias determinado. Esta pérdida de pasos muy probablemente provenga de un problema de resonancia a frecuencias medias. Es por ello que la característica más importante de las controladoras G251X usadas es su mecanismo de compensación de resonancia a frecuencias medias, lo que soluciona el problema de pérdida de pasos. La tarjeta MB-02-V6 (Figura 62) realiza de interfaz entre las controladoras, los finales de carrera y el intérprete de código G. Figura 62: Tarjeta MB-02-V6 Fuente: http://www.homanndesigns.com/ 53 Sus características más relevantes son:  Voltaje de alimentación de 5V (pueden ser obtenidos de un puerto USB o de una fuente de alimentación)  Puerto paralelo como interfaz de conexión con el intérprete de código G. La razón de no usar un protocolo como USB se debe a que este último es un protocolo asíncrono y por lo tanto incapaz de proporcionar un control en tiempo real puro.  Resistencias de Pull-up en todas las entradas y salidas, asegurando un estado lógico válido.  Entradas compatibles con lógica de 3.3 y 5V.  Entradas y salidas configurables para ser activos por nivel alto o nivel bajo.  Entradas y salidas capaces de proporcionar una intensidad de 24 mA (intensidad de señal requerida para nuestras controladoras).  Pines comunes configurables a 0 ó 5V.  Leds en todos los pines del puerto paralelo, lo que nos informa de las señales recibidas/enviadas en todo momento.  Cuenta con la siguiente configuración de pines: o Bidireccionales (configurables vía jumper): 2, 3, 4, 5, 6, 7, 8 y 9 o Entrada: 10, 11, 12, 13 y 15 o Salida: 1, 14 ,16 y 17 Como ya se ha tratado en el capítulo de antecedentes, una alta tensión de alimentación en los motores permite incrementar la velocidad de funcionamiento de los mismos. En este proyecto se ha optado por una fuente de alimentación (Figura 63) encargada de transformar corriente alterna con un voltaje de 220V a corriente continua de 48V DC. Esta fuente de alimentación es capaz de proporcionar 7.3A a 48V, por lo que su potencia total es de 350W. Figura 63: Fuente de alimentación de 48V DC 60 Tornillo roscachapa Nº 7 (3,9 mm) Variada 18 Ferretería local España 0,02 € 0,36 € Tornillo roscachapa Nº 10 (4,8 mm) Variada 80 Ferretería local España 0,03 € 2,40 € Tornillo roscachapa Nº 12 (5,5 mm) Variada 40 Ferretería local España 0,04 € 1,60 € Cable 4 hilos 1,5 mm2 12 1 Ferretería local España 18,36 € 18,36 € Cable 4 hilos 0,20 mm2 15 1 Ferretería local España 5,43 € 5,43 € Regleta de conexión 12 polos -- 1 Ferretería local España 0,60 € 0,60 € Ordenacables -- 1 Ferretería local España 7,63 € 7,63 € Bridas de plástico (Pack 100) -- 1 Ferretería local España 0,51 € 0,51 € Controlado ra GeckoDrive G251X -- 3 GeckoDrive (http://www.geckod rive.com) Estados Unidos 47,69 € 143,07 € Tarjeta interfaz MB-02-V6 -- 1 Homann Designs (http://www.homan ndesigns.com) Australia 39,99 € 39,99 € Fuente de alimentaci ón 48V 7,3A (350W) -- 1 eBay (Vendedor: anna758595) China 25,10 € 25,10 € LM2576HV T-ADJ -- 1 eBay (Vendedor: Mad Jungle Ltd) China 0,69 € 0,69 € TOTAL 1.016,87 € Figura 64: Resumen de materiales 61 5.1.2. Herramientas Para la construcción de esta máquina requeriremos de:  Taladro de columna: Utilizado para realizar todos los orificios en los perfiles de aluminio. Se recomienda una potencia de más de 500W y un recorrido del portabrocas mayor a los 6 cm.  Brocas para metal: Usados para la realización de los orificios que servirán de fijación para los componentes. Los diámetros usados son: o 3 mm o 4 mm o 5 mm o 8,5 mm o 10 mm  Coronas para metal: Sirven para realizar orificios de gran diámetro, por lo que su papel en este proyecto es principalmente el de realizar los orificios para los husillos. Los diámetros usados son: o 19 mm o 29 mm  Inclinómetro de precisión: Nos permitirá colocar correctamente todos los componentes de la máquina, especialmente guías cilíndricas y husillos. Se recomienda una resolución de 0.01°.  Calibre digital: Nos permitirá realizar mediciones de distancias con mucha precisión. Se recomienda un calibre con una precisión mínima de 0,1 mm.  Llaves Allen: Usadas en los tornillos de apretado de diferentes componentes. Los diámetros usados son: o 2 mm o 3 mm o 4 mm  Destornilladores: El tipo y diámetro de los mismos vendrá determinado por la cabeza de la tornillería escogida.  Llave Torx T50: Usado en la tornillería responsable de la unión de los diferentes perfiles que forman la estructura.  Llave hexagonal hembra de 13 mm: Nos permitirá realizar el apretado de las tuercas que unen el eje Z con el eje X. 62  Soldador de lápiz: Necesario para realizar las soldaduras de prolongación del cableado de los finales de carrera.  Macho de roscar para tornillo de 10 mm de diámetro: Usado en la creación de la rosca que permitirá la fijación de las patas que sustentarán todo el peso de la máquina. En la Figura 65 se resumen todas las herramientas, así como el proveedor y coste aproximado de las mismas. Herramienta Cantidad Proveedor País Coste unitario (Sin impuestos) Coste total (Sin impuestos) Taladro de columna 500W 1 Ferretería local España 84,75 € 84,75 € Juego brocas metal 1 Ferretería local España 10,17 € 10,17 € Juego coronas metal 1 Ferretería local España 19,49 € 19,49 € Inclinómetro de precisión (0.01°) 1 eBay (Vendedor: mib_instruments) China 74,86 € 74,86 € Calibre de precisión (0.01 mm) 1 Ferretería local España 25,42 € 25,42 € Juego llaves Allen 1 Ferretería local España 5,08 € 5,08 € Destornillador con cabezas intercambiables 1 Ferretería local España 12,29 € 12,29 € Llave Torx T50 1 KJN Aluminium Profile (http://www.kjnlt d.co.uk) Reino Unido 7,87 € 7,87 € Llave hexagonal hembra 13 mm 1 Ferretería local España 2,12 € 2,12 € Soldador lápiz 30W 1 Ferretería local España 9,32 € 9,32 € Macho de roscar 10 mm diámetro 1 Ferretería local España 9,49 € 9,49 € TOTAL 260,86 € Figura 65: Resumen de herramientas 5.1.3. Proceso de fabricación A continuación se detallarán todos los pasos a seguir para fabricar la máquina de control numérico a partir de los materiales y herramientas anteriormente comentados. proporcionan diferentes consejos para evitar cometer errores durante todo el proceso. El primer eje a fabricar será el eje Z herramienta. El resultado de la fab La estructura de este eje se encuentra formada por 3 perfiles de 140 mm de longitud. Este eje cuenta además con los siguientes componentes:  4 bloques SC16UU.  2 guías ci líndricas de 16 mm de diámetro de 427 mm de longitud.  Husillo de bolas 1605 de 453 mm de longitud.  Bloques BK12 y BF12.  4 soportes SHF16.  2 sensores SN04-N  2 láminas metálicas para final de carrera  Motor paso a paso 57BYGH76  4 Arandelas de caucho  1 acoplador motorhusillo  40 tornillos Nº 10 (16  6 tornillos Nº 7 (4 - SN04 Para la realización de los orificios con el taladro de columna se recomienda seguir los siguientes pasos:  Colocación de componente en localización exacta. Es importante que sea exactamente ese componente y no otro del mismo tipo, ya que los orificios de sujeción de los mismos no son siempre idénticos.  Con tornillo de diámetro similar a los orificios de marcado del aluminio mediante el golpeado del tornillo para cada uno de los orificios. Proceso de fabricación A continuación se detallarán todos los pasos a seguir para fabricar la máquina de control numérico a partir de los materiales y herramientas anteriormente comentados. proporcionan diferentes consejos para evitar cometer errores durante todo el proceso. El primer eje a fabricar será el eje Z (Figura 66) , encargado de la regulación de la altura de la herramienta. El resultado de la fab ricación de este eje debe ser el siguiente: Figura 66: Eje Z La estructura de este eje se encuentra formada por 3 perfiles de 140 mm de longitud. Este eje cuenta además con los siguientes componentes: líndricas de 16 mm de diámetro de 427 mm de longitud. Husillo de bolas 1605 de 453 mm de longitud. Bloques BK12 y BF12. 2 láminas metálicas para final de carrera 57BYGH76 -401B. 4 Arandelas de caucho husillo 40 tornillos Nº 10 (16 - SC16UU, 4 - husillo, 8 - BK12+BF12, 8 - SHF16, 4 Motor PaP) SN04 -N, 2 regleta conexión) Para la realización de los orificios con el taladro de columna se recomienda seguir los Colocación de componente en localización exacta. Es importante que sea exactamente ese componente y no otro del mismo tipo, ya que los orificios de sujeción de los mismos no son siempre idénticos. Con tornillo de diámetro similar a los orificios de fijación del componente, realizar el marcado del aluminio mediante el golpeado del tornillo para cada uno de los orificios. 63 A continuación se detallarán todos los pasos a seguir para fabricar la máquina de control numérico a partir de los materiales y herramientas anteriormente comentados. Además se proporcionan diferentes consejos para evitar cometer errores durante todo el proceso. , encargado de la regulación de la altura de la La estructura de este eje se encuentra formada por 3 perfiles de 140 mm de longitud. Este eje SHF16, 4 Motor PaP) Para la realización de los orificios con el taladro de columna se recomienda seguir los Colocación de componente en localización exacta. Es importante que sea exactamente ese componente y no otro del mismo tipo, ya que los orificios de sujeción de los fijación del componente, realizar el marcado del aluminio mediante el golpeado del tornillo para cada uno de los orificios. 64  Marcado con rotulador fino de una cruz sobre la localización exacta de la marca. El diámetro de la cruz debe ser superior al de la broca a usar.  Taladrado superficial sobre la cruz. Retirada de la broca y comprobación de la localización del taladrado realizado con respecto a la cruz.  Corrección del error cometido mediante movimiento de la pieza. Repetir paso anterior en caso de existencia de error.  Finalizar taladrado. Para el caso de orificios cuya profundidad supera al recorrido de nuestro taladro de columna (paso de husillo por perfil) se recomienda realizar un taladrado en cada extremo del orificio a realizar. Puede suceder que el recorrido de nuestro taladro sea inferior a la mitad de la longitud del orificio a realizar. En este caso, una vez llegado al tope de profundidad, se elevará manualmente la plataforma en la que se apoya la pieza, incrementando así la profundidad del orificio. Una vez conocida la metodología de taladrado se procede al taladrado del perfil central que permitirá el paso del husillo. Dado que el husillo tiene un diámetro de 16 mm, la corona a usar en uno de los extremos será la de 19 mm. En el extremo contrario se realizará un orificio de con la corona de 29 mm, orificio que dará cabida a la tuerca del husillo. Este orificio se debe realizar en el centro de uno de los lados de 140 mm del perfil, es decir, a 70 mm y 20 mm de distancia de los extremos. Una vez realizado el orificio, colocaremos el husillo y realizaremos los 4 ó 6 taladrados de sujeción del mismo. Se recomienda que la disposición del husillo respecto al perfil sea la que se indica en la Figura 67. Figura 67: Disposición entre perfil y husillo 65 Realizados los orificios para el husillo, procedemos a la instalación de los 4 bloques SC16UU y los 2 finales de carrera. La disposición de estos elementos se muestra en la Figura 68. Figura 68: Disposición bloques SC16UU y sensores SN04-N en el eje Z Los 4 bloques SC16UU se posicionarán en cada una de las esquinas del perfil. Los finales de carrera se posicionarán conforme las acotaciones de la figura, teniendo en cuenta la coincidencia del inicio del sensor derecho con uno de los pliegues del perfil (línea roja). Las brocas a usar son de 4 mm para los bloques SC16UU y de 3 mm para los sensores. Debido a que cada guía cilíndrica cuenta con 2 bloques SC16UU, se recomienda seguir los siguientes pasos para su instalación:  Taladrado y atornillado de uno de los bloques de la guía. Este bloque se encontrará alineado con el propio perfil.  Hacer pasar la guía por el bloque atornillado.  Hacer pasar el segundo bloque por la guía.  Realizar el marcado de los orificios para el segundo bloque. 66 De esta forma nos aseguramos de que los bloques de una guía se encuentran totalmente alineados con la misma. El siguiente paso consiste en el nivelado de las guías cilíndricas, por lo que será necesario el atornillado suave al perfil de los mismos, permitiendo un ligero movimiento de los bloques. Una vez detectada la posición correcta de estos bloques, realizamos un atornillado fuerte de los mismos. Debemos realizar las siguientes nivelaciones:  El husillo debe ser paralelo a las guías.  Las guías deben ser paralelas entre sí. Finalizada la nivelación procedemos a instalar los componentes del perfil responsable de fijar al motor. La disposición de los elementos para uno de los lados de este perfil es la que se indica en la Figura 69. Figura 69: Perfil responsable de fijar el motor en el eje Z 67 El procedimiento a seguir para la fabricación de esta pieza consta de los siguientes pasos:  Realización de orificio con corona de 29 mm en ambos lados del perfil. La localización de este orificio se encuentra en el centro del lado de 140 mm y a 40 mm de uno de los extremos del lado de 120 mm.  Alineación del inicio del bloque BK12 con el pliegue de aluminio marcado con rojo.  Realización de taladrados (4 mm) para fijación de bloque.  Fijación de bloque BK12 al husillo ya atornillado al perfil central construido.  Atornillado de bloque BK12.  Colocación de soportes SHF16 en los extremos de las guías lineales.  Marcado en el perfil de los orificios de instalación de los soportes SHF16.  Desatornillado de bloque BK12 y realización de orificios (4 mm) para soportes SHF16.  Atornillado de todos los componentes e instalación de lámina metálica sobre bloque BK12 como se indica en la figura. Con este procedimiento mantendremos el paralelismo anteriormente conseguido por nivelación, evitando la flexión de las guías por desviación en la posición de los componentes. El procedimiento a seguir para el lado opuesto de este perfil es:  Instalar acoplador en eje del husillo.  Acople de motor al acoplador instalado en el husillo.  Realización de marcas para orificios de sujeción del motor.  Taladrado con broca de 4 mm de las marcas.  Instalación del motor con arandelas de caucho y apretado de los tornillos de sujeción del acoplador. Para alcanzar estos tornillos recurriremos a una de las cavidades del perfil de aluminio que nos da el acceso a los mismos. Para finalizar este perfil únicamente deberemos realizar 2 taladrados con la broca de 3 mm para la colocación de la regleta de conexión (4 polos, uno por cada cable del motor). La posición de esta regleta en el perfil es indiferente siempre que no se interponga entre los elementos en movimiento. El último perfil de est e eje mantiene un proceso de fabricación muy similar al anterior, con la salvedad de que este perfil no tiene motor alguno, y por tanto requiere de menos manipulaciones. La distribución  Alineación del inicio del bloque BF12 con el pliegue de aluminio marcado con rojo. El centro de la principal cavidad de este bloque deberá corresponderse con la mitad exacta del lado de 140 mm.  Realización de taladrados (4 mm) para fijación de bloque.  Fijación de bloque BF12 al husillo ya atornillado al perfil central construido.  Atornillado de bloque BF12.  Colocación de soportes SHF16 en los extremos de las guías lineales.  Marca do en el perfil de los orificios de instalación de los soportes SHF16.  Desatornillado de bloque BF12 y realización de orificios (4 mm) para soportes SHF16.  Atornillado de todos los componentes e instalación de lámina metálica sobre bloque BF12 como se indi ca en la figura. e eje mantiene un proceso de fabricación muy similar al anterior, con la salvedad de que este perfil no tiene motor alguno, y por tanto requiere de menos manipulaciones. La distribución de sus elementos es la indicada en la Figura 70 Figura 70: Perfil extremo sin motor en eje Z Alineación del inicio del bloque BF12 con el pliegue de aluminio marcado con rojo. El centro de la principal cavidad de este bloque deberá corresponderse con la mitad lado de 140 mm. Realización de taladrados (4 mm) para fijación de bloque. Fijación de bloque BF12 al husillo ya atornillado al perfil central construido. Atornillado de bloque BF12. Colocación de soportes SHF16 en los extremos de las guías lineales. do en el perfil de los orificios de instalación de los soportes SHF16. Desatornillado de bloque BF12 y realización de orificios (4 mm) para soportes SHF16. Atornillado de todos los componentes e instalación de lámina metálica sobre bloque ca en la figura. 68 e eje mantiene un proceso de fabricación muy similar al anterior, con la salvedad de que este perfil no tiene motor alguno, y por tanto requiere de menos 70 . Alineación del inicio del bloque BF12 con el pliegue de aluminio marcado con rojo. El centro de la principal cavidad de este bloque deberá corresponderse con la mitad Fijación de bloque BF12 al husillo ya atornillado al perfil central construido. do en el perfil de los orificios de instalación de los soportes SHF16. Desatornillado de bloque BF12 y realización de orificios (4 mm) para soportes SHF16. Atornillado de todos los componentes e instalación de lámina metálica sobre bloque 69 Con este procedimiento ya habremos finalizado la fabricación del eje Z de la máquina. El siguiente paso consiste en fabricar el eje X y acoplar el eje Z al mismo. El resultado de la fabricación de este eje con el eje Z acoplado es el de la Figura 71. Figura 71: Eje X 76 La estructura de este eje se encuentra formada por 6 perfiles de 670 mm y 1 de 589 mm. Este eje cuenta además con los siguientes componentes:  4 bloques SC20UU.  2 guías cilíndricas de 20 mm de diámetro de 660 mm de longitud.  Husillo de bolas 1605 de 686 mm de longitud.  Bloques BK12 y BF12.  4 soportes SHF20.  2 sensores SN04-N  2 láminas metálicas para final de carrera  Motor paso a paso 57BYGH76-401B.  4 Arandelas de caucho  1 acoplador motor-husillo  6 tornillos Nº 7 (4 - SN04-N, 2 regleta conexión)  32 tornillos Nº 10 (16 - SC20UU, 4 - husillo, 8 - BK12+BF12, 4 Motor PaP)  8 tornillos Nº 12 (8 - SHF20)  30 tornillos S12x30 T50  4 patas regulables en altura Comenzaremos por la fabricación del perfil de 589 mm, perfil en el que se fijará la tuerca del husillo pero NO los bloques con rodamientos lineales como sucedía en los anteriores ejes. El procedimiento para la fijación de la tuerca es el mismo que en el resto de ejes, teniendo en cuenta que la nueva distancia al extremo del perfil es la mitad de la longitud de la misma, es decir, 294.5 mm. Los finales de carrera para este eje se fijarán igual que en el resto de ejes. El próximo paso será la realización de los orificios para el montaje de los bloques SC20UU. Estos bloques se montarán en la parte inferior de los perfiles de 650 mm como indica la Figura 77. Figura 77 La metodología a seguir es la misma que en el resto de ejes, con la salvedad de que no tendremos el husillo acoplado para la nivelación de los componentes. Es por ello que deberemos fijar el perfil de 589 mm a los perfiles de 650 mm con 6 tornillos S12x30 me los orificios realizados anteriormente para el paso de la llave T50. También instalaremos los componentes del eje X que no pudieron ser instalados en su momento. Una vez fijados los perfiles podremos realizar la nivelación mediante el procedimiento Finalizado el elemento móvil del eje procedemos con la fabricación de los perfiles que soportarán a las guías y el husillo. El primero será el responsable de fijar al motor (perfil de 670 mm de longitud). La disposición de los elementos para uno indicada en la Figura 78. 77 : Posicionamiento de bloques SC20UU en el eje Y metodología a seguir es la misma que en el resto de ejes, con la salvedad de que no tendremos el husillo acoplado para la nivelación de los componentes. Es por ello que deberemos fijar el perfil de 589 mm a los perfiles de 650 mm con 6 tornillos S12x30 me los orificios realizados anteriormente para el paso de la llave T50. También instalaremos los componentes del eje X que no pudieron ser instalados en su momento. Una vez fijados los perfiles podremos realizar la nivelación mediante el procedimiento habitual. Finalizado el elemento móvil del eje procedemos con la fabricación de los perfiles que soportarán a las guías y el husillo. El primero será el responsable de fijar al motor (perfil de 670 mm de longitud). La disposición de los elementos para uno de los lados de este perfil es la 77 metodología a seguir es la misma que en el resto de ejes, con la salvedad de que no tendremos el husillo acoplado para la nivelación de los componentes. Es por ello que deberemos fijar el perfil de 589 mm a los perfiles de 650 mm con 6 tornillos S12x30 me diante los orificios realizados anteriormente para el paso de la llave T50. También instalaremos los componentes del eje X que no pudieron ser instalados en su momento. Una vez fijados los Finalizado el elemento móvil del eje procedemos con la fabricación de los perfiles que soportarán a las guías y el husillo. El primero será el responsable de fijar al motor (perfil de 670 de los lados de este perfil es la Figura Se procederá como con el resto de perfiles con motor y se tendrá en cuenta la dis extremo del perfil. Es necesario volver a hacer hincapié en la correcta alineación de los soportes SHF20, ya que el ascenso o descenso de uno de los mismos hará inclinarse al eje X, y por tanto también al resto de ejes. Antes de proceder a la realizarán en el perfil los tala taladrados será la de 10 mm. Figura Estos taladrados permitirán el paso de la llave T50 para el apriete de función de estos tornillos será fijar el actual perfil al resto de perfiles que conforman la mesa de trabajo de la máquina. No debemos fijar aún las guías instalados al mismo tiempo que la mesa de trabajo. El siguiente perfil a tratar será el responsable de la sujeción del otro extremo del husillo y de las guías, también de 670 mm de longitud. La distribución de los elem Figura 78: Perfil responsable de fijar el motor en el eje Y Se procederá como con el resto de perfiles con motor y se tendrá en cuenta la dis extremo del perfil. Es necesario volver a hacer hincapié en la correcta alineación de los soportes SHF20, ya que el ascenso o descenso de uno de los mismos hará inclinarse al eje X, y por tanto también al resto de ejes. Antes de proceder a la fij ación de los componentes se los tala drados indicados en la Figura 79 . La broca a usar para estos Figura 79: Taladrados para formación de mesa de trabajo Estos taladrados permitirán el paso de la llave T50 para el apriete de los tornillos S12 x 30 función de estos tornillos será fijar el actual perfil al resto de perfiles que conforman la mesa de trabajo de la máquina. No debemos fijar aún las guías o el husillo ya que estos deberán ser instalados al mismo tiempo que la mesa de trabajo. El siguiente perfil a tratar será el responsable de la sujeción del otro extremo del husillo y de las guías, también de 670 mm de longitud. La distribución de los elem entos es la idéntica a la 78 Se procederá como con el resto de perfiles con motor y se tendrá en cuenta la dis tancia al extremo del perfil. Es necesario volver a hacer hincapié en la correcta alineación de los soportes SHF20, ya que el ascenso o descenso de uno de los mismos hará inclinarse al eje X, y ación de los componentes se . La broca a usar para estos los tornillos S12 x 30 . La función de estos tornillos será fijar el actual perfil al resto de perfiles que conforman la mesa o el husillo ya que estos deberán ser El siguiente perfil a tratar será el responsable de la sujeción del otro extremo del husillo y de entos es la idéntica a la del perfil con el motor, por lo que el procedimiento a seguir para su fabricación también es el mismo. También se realizarán los orificios para la mesa de trabajo en este perfil. El siguiente paso consiste en la realización de los Para ello realizaremos el taladrado indicado en la dos últimos perfiles manipulados con una broca de 8,5 mm. Una vez realizados los orifici procedemos a roscarlos mediante el macho de roscar. Figura Por último únicamente tendremos que atornillar todos los componentes, con especial precaución de no mantener en ningú é ste se doblaría y quedaría inservible. Se recomienda usar algún tipo de soporte para elevar el eje X y hacer todo el montaje del eje Y en dicha posición. del perfil con el motor, por lo que el procedimiento a seguir para su fabricación también es el mismo. También se realizarán los orificios para la mesa de trabajo en este perfil. El siguiente paso consiste en la realización de los orificios roscados para las patas regulables. Para ello realizaremos el taladrado indicado en la Figura 80 en los extremos inferiores de los dos últimos perfiles manipulados con una broca de 8,5 mm. Una vez realizados los orifici procedemos a roscarlos mediante el macho de roscar. Figura 80: Posición de orificio para instalación de pata Por último únicamente tendremos que atornillar todos los componentes, con especial precaución de no mantener en ningú n momento todo el peso del eje X sobre el husillo, ya que ste se doblaría y quedaría inservible. Se recomienda usar algún tipo de soporte para elevar el eje X y hacer todo el montaje del eje Y en dicha posición. 79 del perfil con el motor, por lo que el procedimiento a seguir para su fabricación también es el mismo. También se realizarán los orificios para la mesa de trabajo en este perfil. orificios roscados para las patas regulables. en los extremos inferiores de los dos últimos perfiles manipulados con una broca de 8,5 mm. Una vez realizados los orifici os Por último únicamente tendremos que atornillar todos los componentes, con especial eje X sobre el husillo, ya que ste se doblaría y quedaría inservible. Se recomienda usar algún tipo de soporte para elevar el En la Figura 81 se muestran las conexiones entre los distintos elementos del sistema. recurrido a flechas delgadas en el caso de transmisión de señales y a flechas gruesas en el caso de transmisión de energía. El sentido de la transmisión será el indicado por l En la se muestran las conexiones entre los distintos elementos del sistema. recurrido a flechas delgadas en el caso de transmisión de señales y a flechas gruesas en el caso de transmisión de energía. El sentido de la transmisión será el indicado por l a flecha. 80 En la se muestran las conexiones entre los distintos elementos del sistema. Se ha recurrido a flechas delgadas en el caso de transmisión de señales y a flechas gruesas en el caso a flecha. Figura Para el conexionado en detalle de tarjeta MB-02-V6 ( http://www.homanndesigns.com/pdfs/MB de la controladora G251X ( http://www.geckodrive.com 9%20MANUAL%20FORMATTED.pdf 5.2. Control manual En lo que respecta al control manual usado . Tras esto, se procederá a dar una visión general del diseño realizado. Por describirá en detalle el funcionamiento de cada una de las clases que conforman la aplicación 5.2.1. Software usado 5.2.1.1. Qt Para el presente proyecto se ha optado por el lenguaje de programación C++ y el uso de Qt 4.7 , una librería multiplataforma Figura 81: Diagrama de conexión entre componentes Para el conexionado en detalle de estos componentes es necesario recurrir al manual de la http://www.homanndesigns.com/pdfs/MB - 02V6_User_Manual_R1.pdf http://www.geckodrive.com /images/fck_uploads/G251%20REV 9%20MANUAL%20FORMATTED.pdf ). Control manual al control manual , en primer lugar se detallará el software . Tras esto, se procederá a dar una visión general del diseño realizado. Por describirá en detalle el funcionamiento de cada una de las clases que conforman la aplicación Software usado Para el presente proyecto se ha optado por el lenguaje de programación C++ y el uso de Qt , una librería multiplataforma ampliamente usada para desarrollo aplicaciones 81 estos componentes es necesario recurrir al manual de la 02V6_User_Manual_R1.pdf ) y al /images/fck_uploads/G251%20REV - el software de terceros . Tras esto, se procederá a dar una visión general del diseño realizado. Por último se describirá en detalle el funcionamiento de cada una de las clases que conforman la aplicación . Para el presente proyecto se ha optado por el lenguaje de programación C++ y el uso de Qt aplicaciones . 82 Utiliza C++ de forma nativa, aunque puede ser utilizado en otros lenguajes de programación a través de bindings . Funciona en todas las principales plataformas, y tiene un amplio soporte. El API de la librería cuenta con métodos para acceder a bases de datos mediante SQL , así como uso de XML , gestión de hilos , soporte de red y un largo etcétera. Qt es software libre y de código abierto . En el presente proyecto se ha recurrido tanto a la parte gráfica de la librería Qt (diseño de la interfaz gráfica) como a otras clases de la librería, como son:  QString: Implementación propia de Qt del tipo string  QList: Lista enlazada de objetos  QQueue: Cola de objetos  QTcpSocket: Socket TCP  QTimer: Temporizador  QPoint: Punto con coordenadas bidimensionales  QFile: Gestión de ficheros  QPixmap: Representación de imágenes (puede ser usado como dispositivo de dibujo) El hecho de usar únicamente esta librería permite que nuestra aplicación sea fácilmente portable a todas las plataformas compatibles con Qt. 5.2.1.2. EMC2 y emcrsh PantoMax se sustenta en el intérprete de código G EMC2 (Enhanced Machine Controller) versión 2.4.6 para el sistema operativo GNU/Linux (concretamente Ubuntu 10.04 "Lucid Lynx" LTS). EMC2 es software libre bajo licencia GNU General Public License, lo que permite modificar su código para adaptarlo a nuestras necesidades. EMC2 proporciona:  Diversas interfaces gráficas de usuario  Intérprete de código G (Lenguaje de programación de máquina herramienta RS-274)  Sistema de planificación de movimiento en tiempo real  Manejo de la electrónica de la máquina a bajo nivel como sensores o controladores de motores El sistema operativo usado utiliza extensiones de tiempo real para conseguir la correcta planificación de los movimientos. Estas extensiones se consiguen parcheando el kernel con extensiones de RT-Linux (Real Time Linux). La comunicación entre EMC2 y PantoMax se realiza a través de la aplicación emcrsh. Esta aplicación consiste en un servidor Telnet capaz de recibir y ejecutar en EMC2 una serie de órdenes enviadas por un cliente Telnet. PantoMax simula una conexión por Telnet a emcrsh, 83 permitiendo el control de la máquina tanto en local como en remoto. Para la conexión en remoto será necesario alterar el código fuente con los nuevos parámetros de conexión, ya que en esta versión de la aplicación no se ha implementado el cambio de conexión en tiempo de ejecución. Es importante destacar el grave bug encontrado en emcrsh. El bug consiste en una buffer overrun cuando se envían más de 1600 caracteres en una sola petición. Dado que se dispone de todo el código fuente de EMC2, se analizó el código realizado para esta aplicación en concreto. Se detectó que dos cadenas de caracteres estaban limitadas a 1600 caracteres, accediendo en caso de una cifra superior de caracteres en la entrada, a la posición 1601. Detectado y corregido este bug, se comprueba el correcto funcionamiento de emcrsh independientemente del tamaño de la entrada recibida. La última versión de EMC2 hasta la fecha no cuenta con esta corrección, por lo que se notificará a la comunidad desarrolladora de la misma para que realicen la corrección para futuras versiones. 5.2.2. Visión general del diseño La aplicación (Figura 82) se encuentra programada en C++ y contiene una única ventana sobre la que se pueden realizar todas las posibles acciones. Figura 82: PantoMax Podemos diferenciar las siguientes áreas en la ventana:  Área de menú (Figura 83). Hace uso de la clase QMenu y contiene los botones que permiten realizar las siguientes acciones: o Guardado y cargado de dibujos realizados. o Guardado y cargado de la configuración de la o Control de la máquina (Conexión, puesta en funcionamiento y parada). o Consulta de información sobre PantoMax.  Barra de herramientas Hace uso de la clase QToolBar y contiene los siguientes elementos: o Botones para control de la máquina (Conexión, puesta en funcionamiento y parada). Figura 83: Área de menú Hace uso de la clase QMenu y contiene los botones que permiten realizar las Guardado y cargado de dibujos realizados. Guardado y cargado de la configuración de la máquina. Control de la máquina (Conexión, puesta en funcionamiento y parada). Consulta de información sobre PantoMax. Barra de herramientas (Figura 84). Figura 84: Barra de herramientas la clase QToolBar y contiene los siguientes elementos: Botones para control de la máquina (Conexión, puesta en funcionamiento y 84 Hace uso de la clase QMenu y contiene los botones que permiten realizar las Control de la máquina (Conexión, puesta en funcionamiento y parada). Botones para control de la máquina (Conexión, puesta en funcionamiento y o MiniArea (Widget propio), responsable de mostrar el área de trabajo actual respecto del área total de dibujo cuando re o Campos de texto editables que nos permitirán introducir toda la información necesaria para el correcto funcionamiento de la máquina CNC. o Slider para configuración de la velocidad en un rango determinado.  Barra de estado ( Figura Hace uso de la clase QStatusBar o Notificación de errores en el uso de la aplicación. o Muestreo de la posición del cursor sobre el área de dibuj o Muestreo de la presión ejercida en la tableta gráfica en el rango de 0 a 1. El uso del ratón implica presión 0. o Muestreo de las coordenadas actuales de la máquina.  Área de dibujo ( Figura MiniArea (Widget propio), responsable de mostrar el área de trabajo actual respecto del área total de dibujo cuando re alizamos zoom. Campos de texto editables que nos permitirán introducir toda la información necesaria para el correcto funcionamiento de la máquina CNC. Slider para configuración de la velocidad en un rango determinado. Figura 85) Figura 85: Barra de estado QStatusBar y posee las siguientes funcionalidades: Notificación de errores en el uso de la aplicación. Muestreo de la posición del cursor sobre el área de dibuj o. Muestreo de la presión ejercida en la tableta gráfica en el rango de 0 a 1. El uso del ratón implica presión 0. Muestreo de las coordenadas actuales de la máquina. Figura 86). 85 MiniArea (Widget propio), responsable de mostrar el área de trabajo actual Campos de texto editables que nos permitirán introducir toda la información necesaria para el correcto funcionamiento de la máquina CNC. Slider para configuración de la velocidad en un rango determinado. y posee las siguientes funcionalidades: Muestreo de la presión ejercida en la tableta gráfica en el rango de 0 a 1. El 92  Conexión/desconexión con emcrsh: Se podrá realizar la conexión en cualquier momento. En caso de error se mostrará un mensaje en la barra de estado. En caso contrario el botón quedará pulsado, notificando de esta forma al usuario de la correcta conexión. La lógica de la conexión/desconexión será detallada en las funcionalidades de la clase MachineControl.  Puesta en funcionamiento: Se podrá realizar esta acción una vez establecida la conexión con emcrsh. Si no se ha establecido la conexión se notificará el error al usuario. Si la conexión está activa se procede a la comprobación de los datos de configuración de la máquina insertados en la barra de herramientas. En caso de error se notificará al usuario mediante la barra de estado. En caso de éxito se deja pulsado el botón (indicando el funcionamiento de la máquina) y se procede a la lectura de todos los puntos realizados por el usuario en el área de dibujo. Obtenidos estos puntos se transforman al sistema de coordenadas de la máquina y se envían a la clase MachineControl para que los encole en la cola de peticiones de la clase Monitor. Tras esto se envía una petición a la clase ScribbleArea para que calcule la coordenada central del área de dibujo y la envíe, previa transformación por parte de la clase PantoMax, a la clase MachineControl. Esta última acción producirá el centrado de la herramienta a la altura de reposo en el área de trabajo de la máquina, agilizando futuros movimientos.  Detención: En caso de no encontrarse la máquina en funcionamiento no se realizará ninguna acción. En caso contrario se enviará a la clase MachineControl la petición de parada. Tras esto se procede a realizar una petición de borrado de los trazos monitorizados en la máquina, respetando los dibujados por el usuario. Eliminados estos puntos del área de dibujo se procede a refrescar dicha área. 93 5.2.6. Clase MachineControl Esta clase es la responsable de las comunicaciones con la aplicación emcrsh. Usa la clase QTcpSocket para implementar la lectura de los datos enviados por emcrsh así como para el mantenimiento de la conexión realizada. Las principales funcionalidades de esta clase son:  Establecimiento de la conexión: Establece una conexión TCP con emcrsh. Tras esto se envían las siguientes órdenes: hello <contraseña_acceso> 1 1 set echo off set enable <contraseña_habilitación> set estop off set machine on set mode mdi Se recomienda la lectura del anexo “Manual de emcrsh” para la correcta comprensión de las órdenes emitidas.  Desconexión: Se envía la siguiente orden a través de la conexión TCP ya realizada: quit Tras esto se procede al cierre de la conexión TCP.  Consulta del estado de la conexión: Se procede a consultar el estado de la conexión, devolviendo un valor booleano que indicará dicho estado.  Detención del movimiento: Se envía la siguiente orden a través de la conexión TCP ya realizada: set mode manual Emitida esta acción se procede a la detención de la monitorización por parte de la clase Monitor.  Inicio del movimiento: Se envía la siguiente orden a través de la conexión TCP ya realizada: set mode mdi Emitida esta acción se procede a la puesta en funcionamiento de la monitorización por parte de la clase Monitor. 94  Recepción de datos recibidos de emcrsh: Cada vez que la conexión TCP lanza la señal readyRead se procede al tratamiento de los datos recibidos. El formato de los datos recibidos es el siguiente: ABS_ACT_POS <pos_eje1> <pos_eje2> <pos_eje3> <pos_eje4> <pos_eje5> <pos_eje6> La información de los 6 ejes se muestra en la misma línea, usándose como separación entre elementos el carácter espacio. Debido a que PantoMax funciona únicamente con tres ejes, solo trataremos los tres primeros valores. Estos valores serán enviados a la clase ScribbleArea para su dibujado y a la clase PantoMax para su muestreo en la barra de estado. 5.2.7. Clase Monitor La clase Monitor hereda de la clase QThread, clase que permite crear hilos de ejecución. La implementación realizada de la clase Monitor actúa como un temporizador en el que cuando se cumple el tiempo fijado (señal timeout) se ejecuta una función, en nuestro caso el envío de las peticiones de monitorización de la posición actual de la máquina y las peticiones de movimiento de la herramienta encoladas. La explicación del uso de hilos reside en que no debemos bloquear la interfaz gráfica mientras se realiza la espera, bloqueo que sí sucedería de no separar la funcionalidad de monitorización a otro hilo. Las principales funcionalidades de esta clase son:  Encolado de punto: Se recibe una coordenada tridimensional respecto al sistema de coordenadas de la máquina y se encola para que sea emitido a emcrsh más tarde. Además, cada vez que se recibe un punto también se recibe la velocidad de desplazamiento a usar para todos puntos encolados.  Parada de envío de puntos: Vacía la cola de puntos, lo que detiene de forma inmediata el envío de peticiones de movimiento.  Monitorización de posiciones y envío de peticiones de movimiento: Ante la señal timeout del temporizador se realizan dos acciones: o Petición de consulta de coordenadas actuales: Se envía a emcrsh el siguiente comando: get abs_act_pos La respuesta a esta petición será leída por la clase MachineControl. 95 o Envío de código G responsable del movimiento rectilíneo a las coordenadas especificadas (código G01): El comando emitido sigue el siguiente formato: set mdi G01 X<coord_x> Y<coord_y> Z<coord_z> F<velocidad> Las coordenadas del comando a enviar se obtienen de la cola de puntos. La velocidad se lee del atributo almacenado en la propia clase y se actualiza cada vez que se realiza la adición de un punto a la cola. Emc2 internamente encola estas órdenes de forma que se pasa a la ejecución de la siguiente orden únicamente cuando se ha finalizado la actual. 5.2.8. Clase CncPoint La clase CncPoint implementa un punto tridimensional con un conjunto de métodos útiles para su integración en la aplicación. Estos métodos se reducen a diferentes combinaciones de definición y obtención de las coordenadas del punto. Un aspecto a destacar de esta clase es su control para detectar una coordenada no definida. Dada la gran variedad de métodos de definición de coordenadas de la clase, es posible inicializar un punto sin valor y definir sólo una o dos de sus coordenadas. Las coordenadas no definidas tienen valor 0, por lo que no permiten deducir si han sido definidas o no. Para solucionar este problema se ha optado por la inserción de campos booleanos que indican si una coordenada está o no definida. 5.2.9. Clase MiniArea Este Widget (elemento de la interfaz gráfica) de desarrollo propio hereda de la clase QWidget. Entre sus funcionalidades encontramos:  Borrado del área: Vacía el área de dibujo del propio Widget, volviendo a dibujar la rejilla y el borde del área. ScribbleArea ejecutará esta funcionalidad cada vez que el usuario anule el zoom realizado.  Dibujo de rectángulo en área: Se recibe las coordenadas del rectángulo en el sistema de coordenadas del Widget y se procede a su dibujado. Será la clase ScribbleArea la responsable del cambio al sistema de coordenadas de MiniArea. Esta funcionalidad se ejecutará cada vez que el usuario realice un zoom sobre el área de dibujo. 96 5.2.10. Clase ScribbleArea Al igual que la clase MiniArea, ScribbleArea es un Widget de desarrollo propio. Hereda por tanto de la clase QWidget. Como ya se ha comentado anteriormente, esta clase es la responsable de toda la gestión del dibujo, incluyendo zoom, captura de eventos de tableta gráfica o ratón, redimensionados, almacenaje en memoria de los trazados y un largo etcétera. Antes de proceder a describir las diferentes funcionalidades se tratará la metodología seguida para la realización de las transformaciones de los trazos dibujados. Es necesario tener en cuenta que las coordenadas de los puntos se almacenan en coma flotante, nunca en coordenadas enteras, aunque el propio evento del ratón o tableta gráfica nos devuelva un entero (devuelve las coordenadas del pixel sobre el que ha surgido el evento). El almacenamiento en coma flotante nos permite realizar todas las transformaciones sin perder prácticamente precisión. Será cuando necesitemos mostrar el dibujo cuando transformemos estas coordenadas en coma flotante a un mapa de pixeles con coordenadas enteras. Este es el funcionamiento básico de la representación vectorial. Describimos sus principales funcionalidades:  Redimensionado del área de dibujo: El redimensionamiento de la ventana produce también el redimensionamiento de este Widget. Debido a esto debemos realizar un escalado de todos los puntos contenidos en el área de dibujo, ya sean los realizados por el usuario o por la monitorización de la posición de la máquina.  Realización de zoom: El usuario mediante la pulsación del botón derecho del ratón y su posterior movimiento será capaz de definir un área de ampliación (dibujado de un rectángulo) que va desde la posición donde se realizó dicha pulsación a la posición actual del cursor. Ante el evento de dejar de pulsar el botón derecho se lanzará una tarea encargada de la progresiva ampliación del área seleccionada. Esta progresión se realizará con un temporizador con una frecuencia de 20 Hz y se detendrá cuando alcance los límites del Widget. El tiempo necesario para alcanzar este límite es de un segundo, por lo que supone 20 escalados en este lapso de tiempo. Estos escalados no se producen sobre los puntos originales, ya que los modificarían. En su lugar, se realiza una copia (cuando el usuario deja de pulsar el botón) y se procede a la transformación de esta copia. Se pueden concatenar ampliaciones de forma que se puedan ampliar áreas muy pequeñas. Esta concatenación se produce aplicando sucesivamente transformaciones a las áreas de ampliación definidas por el usuario. 97 Por último se envía a MachineControl la petición de colocar a la máquina en el centro del área donde se ha realizado la ampliación, lo que agilizará futuros movimientos en esta área. Destacar que la realización de zoom también se puede hacer desde la tableta gráfica usando el botón equivalente al botón derecho del ratón y el estilete.  Anulación de zoom vectorial: El usuario únicamente tendrá que pulsar y soltar el botón derecho del ratón (o el botón equivalente en la tableta gráfica) para anular todos los zooms realizados. Este proceso se realiza dibujando todos los puntos almacenados (de usuario y monitorizados) con respecto al sistema de coordenadas del Widget. Al igual que sucedía cuando realizamos zoom, se procede al centrado de la herramienta para esta nueva área de trabajo.  Dibujo del trazado realizado por el usuario: La realización de un trazado se inicia con la pulsación del botón izquierdo del ratón o con el contacto del estilete con la tableta gráfica. Si el usuario realiza un movimiento mientras mantiene la pulsación/contacto se añaden los puntos capturados por el evento de movimiento del dispositivo y se dibujan en el Widget. Cuando el usuario retira el estilete o deja de pulsar el botón izquierdo se añade el valor nulo a la lista de puntos, indicando el fin del trazo. De encontrarse la máquina en funcionamiento, ante cada generación de punto se envía a la clase MachineControl una petición de movimiento.  Dibujo del trazado realizado por la monitorización de la máquina: Si la máquina se encuentra en funcionamiento se dibujarán los trazados recibidos y se almacenarán en una lista diferente a la lista de puntos realizados por el usuario.  Detección de la presión sobre la tableta gráfica: Gracias al evento QTabletEvent (compatible con tabletas gráficas Wacom) somos capaces de almacenar las presiones ejercidas para cada punto (coordenada z de la clase CncPoint). Este valor tiene un valor mínimo de 0 (valor obtenido con el uso del ratón) y un valor máximo de 1. En caso de encontrarse la máquina en funcionamiento se transforman las presiones de la siguiente forma: o Ausencia de trazado: La herramienta se encontrará a la altura de reposo especificada por el usuario. o Trazado realizado con ratón: La herramienta se encontrará a la altura mínima especificada por el usuario. o Trazado realizado con tableta gráfica: La altura de la herramienta se encontrará entre el valor mínimo (presión 0) y el valor máximo (presión 1). 98  Monitorización de la posición del cursor: ScribbleArea realiza una continua monitorización de la posición del cursor sobre el área de dibujo, enviando a la clase PantoMax el nuevo valor de la posición del cursor para la actualización de la barra de estado de la aplicación. 99 6. Resultados En la presente sección analizaremos los resultados obtenidos tanto para la máquina de control numérico fabricada como para PantoMax. 6.1. Máquina de control numérico Antes de proceder con el análisis de los resultados obtenidos recordamos los objetivos planteados:  Fácil fabricación: Las únicas acciones de mecanizado permitidas sobre el material que formará la estructura serán cortes y taladrados.  Gran área de trabajo: El área de trabajo se encontrará entre el tamaño del estándar DIN A2 y DIN A3. El eje Z contará con un desplazamiento total de más de 250 mm, permitiendo el futuro acoplamiento de un cuarto eje.  Precisión para cualquier tarea: La resolución de posicionamiento será de un mínimo de 5 µm, siendo el error de repetitividad no superior a los 10 µm.  Gran velocidad de desplazamiento: La velocidad de desplazamiento para cada uno de los ejes será superior a los 6000 mm/min.  Máquina de sobremesa: La máquina debe encontrarse dimensionada para poder colocarse en una mesa de escritorio y ser lo suficientemente ligera para no deteriorar la misma por su peso.  Bajo coste: El coste total de los componentes que forman la máquina será inferior a los 1500€ (se excluye la computadora que realiza la función de control de la máquina). Se ha realizado un exhaustivo estudio de uno de los aspectos más importantes de una máquina de control numérico, su repetitividad. Para ello se ha recurrido a un reloj comparador (Figura 90) con una precisión de 1 µm (0.001 mm). Este dispositivo, ampliamente usado en la comprobación de máquinas de control numérico, nos servirá para detectar el error de repetitividad de cada uno de los ejes. 100 Figura 90: Reloj comparador El funcionamiento de este dispositivo reside en leer la longitud desplazada de su eje móvil. Su uso en máquinas de control numérico consiste en posicionar la herramienta en una posición que desplace al eje (no importa cuanto lo desplace), retirar la herramienta del contacto del eje y repetir la operación. La obtención de un valor idéntico en cada repetición indica que la máquina de control numérico tiene una repetitividad superior a la precisión del reloj comparador. Valores dispares indican que para una misma coordenada la máquina posee una variabilidad (error) en su posicionamiento. La metodología seguida para el estudio ha consistido en ordenar a la máquina el posicionamiento exacto de una coordenada, anotar el valor del reloj comparador (el desplazamiento del eje móvil del mismo) y retirar a la máquina de ese posicionamiento. Este proceso se repite 15 veces para cada eje. Los datos obtenidos de estas pruebas son los de la Figura 91. Valores Z (µm) X (µm) Y (µm) 1 402 805 933 2 402 805 933 3 399 805 933 4 401 805 933 5 401 805 933 6 401 805 933 7 401 806 933 8 403 807 932 9 403 806 932 10 401 807 932 11 402 807 932 12 400 807 932 13 401 807 932 101 14 402 805 932 15 399 806 932 Media 401,20 805,87 932,47 Desviación típica 1,17 0,88 0,50 Recorrido 4,00 2,00 1,00 Figura 91: Mediciones del reloj comparador Observamos como en el eje Y posiblemente se esté introduciendo un error por parte del equipo de medida, ya que no es frecuente la obtención de esos valores con esa secuencia. Una posible hipótesis es el desplazamiento del reloj comparador con las sucesivas comprobaciones. Procedemos a analizar cada uno de los objetivos:  Fácil fabricación: Se han cumplido todas las exigencias de fabricación planteadas, principalmente por el uso de un sistema constructivo mediante perfiles de aluminio.  El área de trabajo de la máquina es la siguiente: o Eje Y: 49 cm (DIN A3: 42 cm) o Eje X: 40 cm (DIN A3: 29,7 cm) o Eje Z: 26 cm (Exigido: 25 cm) Por lo que se cumplen los requisitos de área exigidos.  Precisión para cualquier tarea: La resolución final de la máquina se obtiene dividiendo el paso del husillo (5 mm) por el número de pasos necesarios para dar una vuelta completa al eje del motor (2000). El valor obtenido es de 2,5 µm, una resolución el doble de la exigida. Respecto a la repetitividad, el estudio realizado demuestra unos valores muy por encima de los esperados, ya que en el peor de los casos (eje Z) se obtiene un recorrido de 4 µm con una desviación típica de 1,17 µm. En la web http://www.cncroutersource.com se realiza una clasificación de máquinas de control numérico por rango de precios, incluyendo para cada rango la repetitividad esperada. Para un rango de precio de entre 450€ y 3000€ el error de repetitividad esperado es de 25 µm, error muy superior al obtenido en este proyecto. Para obtener una repetitividad como la conseguida en nuestra máquina debemos pasar a un rango de entre 44000€ y 74000€. Destacar que las máquinas de este último rango son de tipo industrial, de grandes dimensiones y con capacidades de fabricación muy superiores a las de la máquina diseñada. 108 7.2. PantoMax El planteamiento de esta aplicación se realizó hace cinco meses con la intención de demostrar las capacidades de la máquina de control numérico fabricada, así como de proporcionar un método innovador de control manual en máquinas de control numérico. Los problemas encontrados en el desarrollo de esta aplicación han sido múltiples. Como ya se había comentado, existe un bug en la aplicación emcrsh perteneciente a EMC2. El bug consiste en una buffer overrun cuando se envían más de 1600 caracteres en una sola petición. Dado que se dispone de todo el código fuente de EMC2, se analizó el código realizado para esta aplicación en concreto. Se detectó que dos cadenas de caracteres estaban limitadas a 1600 caracteres, accediendo en caso de una cifra superior de caracteres en la entrada, a la posición 1601. Detectado y corregido este bug, se comprueba el correcto funcionamiento de emcrsh independientemente del tamaño de la entrada recibida. La última versión de EMC2 hasta la fecha no cuenta con esta corrección, por lo que se notificará a la comunidad desarrolladora de la misma para que realicen la corrección para futuras versiones. Otro problema encontrado en EMC2 es la metodología usada en la entrada MDI (Manual Data Input), entrada usada para el envío de las peticiones de posicionamiento por parte de PantoMax. El principal inconveniente que presenta esta entrada es que realiza una parada entre órdenes ejecutadas, reduciendo la velocidad de desplazamiento de la máquina. Emcrsh también plantea el problema de encolamiento de acciones que no deben ser encoladas. Una de estas acciones es la de detención de la máquina. Esto impide poder parar la máquina de forma inmediata desde la aplicación PantoMax. Por último se ha detectado un problema en la librería Qt. Esta librería implementa su propia versión de un temporizador, la clase QTimer. Se ha detectado un bug bastante grave en esta clase, ya que para temporizaciones del orden del milisegundo el consumo de CPU se dispara al 100% incluso con una función a ejecutar vacía. Por esta razón se ha optado por implementar nuestro propio temporizador, pasándose a un consumo inferior al 5% con el mismo periodo de tiempo. La principal conclusión alcanzada de la realización de PantoMax es el hecho de que el control manual de las máquinas de control numérico puede realizarse con cualquier dispositivo apuntador, ya sea un ratón, una tableta gráfica o una interfaz táctil. Esto amplía el abanico de posibilidades de control manual, brindando más potencia y vistosidad a las máquinas de control numérico. Como posible trabajo futuro se plantea la modificación de emcrsh para subsanar todos los inconvenientes que presenta. Además permitirá la entrada de datos por otra vía que no realice paradas entre órdenes ejecutadas. 109 Anexo A: Manual de usuario En primer lugar es necesario realizar una correcta instalación y configuración de EMC2. Para ello el usuario deberá seguir la guía de introducción a EMC2 (http://www.linuxcnc.org/docs/EMC2_Getting_Started.pdf). Una vez realizada la configuración, será necesario añadir la siguiente línea al principio del fichero de extensión .hal de nuestra configuración. loadusr emcrsh {-- --port 5007 --name AHIP --connectpw PANTOMAX --enablepw PANTOMAX --sessions -1} Además, si nos encontramos usando la versión 2.4.6 de EMC2 tendremos el problema del bug de emcrsh. Para solucionar este problema reemplazaremos el ejecutable emcrsh de la carpeta /usr/bin por el adjunto a este documento. La versión todo en uno de EMC2 2.4.6 recurre a Ubuntu 10.04 para su funcionamiento. Esta versión del sistema operativo no soporta de forma nativa las nuevas tabletas gráficas de Wacom. La siguiente guía da solución a este problema: http://ubuntuforums.org/showpost.php?p=9496609 El manual de usuario de PantoMax se encuentra en la subsección “Ejemplo de sesión de trabajo” de la sección de diseño del control manual. Destacar el hecho de que dicha subsección es un ejemplo de funcionamiento que despeja todas las dudas sobre el mismo. 110 Bibliografía 1. CNC Zone Community. [En línea] http://www.cnczone.com 2. StepperWorld. [En línea] http://www.stepperworld.com 3. LinuxCNC Community & Wiki. [En línea] http://linuxcnc.org/ 4. Build your CNC. [En línea] http://buildyourcnc.com 5. "Programación de Máquinas-herramienta con control numérico". Miguel A. Sebastián, Carmelo J. Luis. UNED. 6. "Manuales del control numérico CNC 8055 T y CNC 8055 M". Fagor. 7. "El control numérico y la programación manual de las máquinas herramientas con control numérico". J. Gonzalez de Ikerlan. URMO. 8. "Fabricación Asistida". Francisco Gonzalez, Pedro Rosado, Santiago Gutiérrez. Departamento de ingeniería mecánica y de materiales. Servicio de publicaciones de la UPV.