MEXICO CHROMA-II DISEÑO Y CONSTRUCCIÓN DE UN CONTROL NUMÉRICO DE ARQUITECTURA ABIERTA ESPECIALIDAD: Ingeniería Mecánica GILBERTO HERRERA RUIZ DOCTOR EN INGENIERÍA Fecha de ingreso (20 DE SEPTIEMBRE DEL 2007) CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta CONTENIDO Página Resumen ejecutivo 1 Introducción 3 4 2 Estado del Arte 10 3 Metodología 17 4 Conclusiones 51 5 Bibliografía 52 Especialidad: Mecánica 2 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta RESUMEN En la actualidad, uno de los temas más importantes de la investigación en el área de manufactura, esta enfocado al desarrollo de Sistemas Inteligentes de Manufactura, la finalidad de estos sistemas es que puedan operar sin la intervención humana. En estos sistemas autónomos, las tareas de monitorización del proceso, tales como la detección y corrección de fallas en la herramienta, que antes estaban bajo el control del operador de la máquina, se dejan al cerebro del sistema el Control Numérico por Computadora (CNC). En el presente trabajo se muestra el diseño y desarrollo de un control numérico de arquitectura abierta CHROMA-II el cual tiene capacidades de monitorización del estado de la herramienta así como posibilidades de introducir algoritmos de control. Palabras clave: CNC, Monitorización de herramienta, Máquinas-herramienta Especialidad: Mecánica 3 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta 1. INTRODUCCIÓN. En la actualidad, uno de los temas más importantes de la investigación en el área de manufactura, esta enfocado al desarrollo de Sistemas Inteligentes de Manufactura, la finalidad de estos sistemas es que puedan operar sin la intervención humana. En estos sistemas autónomos, las tareas de monitorización del proceso, tales como la detección y corrección de fallas en la herramienta, que antes estaban bajo el control del operador de la máquina, se dejan al cerebro del sistema el Control Numérico por Computadora (CNC). Para que éste sistema pueda sustituir eficientemente a los operadores de las máquinas-herramienta, deben de estar equipados con sistemas de monitorización, diagnóstico y corrección de dichas fallas. En este mismo sentido es de vital importancia que las fallas sean corregidas en tiempo real, dado que si no se detecta y corrige la falla, entonces se pueden causar desperfectos en la máquina, la pieza o en el porta-herramienta. A manera de ejemplo en caso de que la ruptura de la herramienta no se detecte a tiempo, el porta-herramienta se puede romper y en algunos casos si el problema persiste, la máquina y la pieza de trabajo pueden dañarse. Esto sucede debido a que la herramienta en vez de cortar, empieza a solo empujar la pieza de trabajo, causando una sobrecarga en la máquina, donde en el mejor de los casos esta última se descalibra. Es por ello que los sistemas actuales de Control Numérico necesitan contar con capacidad de multiprocesamiento así como con capacidad de poder ingresar diferentes tipos de sensores, desgraciadamente los CNCs actuales no permiten cambiar su configuración es por ello que es necesario el establecer propuestas de arquitecturas abiertas en dichos sistemas que nos permitan introducir no solo sensores sino diferentes algoritmos de control. Las estadísticas muestran que alrededor del 20% del tiempo ocioso de la máquina se debe a fallas que suceden durante la operación de corte de la máquina, estas fallas se deben comúnmente a rupturas de herramientas. Esta cifra nos muestra la importancia de los sistemas de detección y corrección de las fallas en la productividad de la industria metal-mecánica. En dichas fallas no solamente son relevantes las rupturas completas de herramienta, sino también las fallas más pequeñas y que tienen un impacto en la calidad del acabado en la pieza a producir, dichas fallas están relacionas al astillamiento de la herramienta o al desgaste de la misma. Especialidad: Mecánica 4 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta La importancia y área de investigación de este trabajo es clara si se toma en cuenta que la industria manufacturera en México es la industria exportadora más importante del país, mientras en 1981 aportaba el 16% del valor de las exportaciones totales del país, actualmente aporta el 83% (NAFINSA), La industria metal-mecánica aporta por si sola 40% del total de las exportaciones, principalmente a través de la Industria automotriz y de la de autopartes (NAFINSA). Contrariamente a lo que sucede en la industria automotriz la cual es meramente dominada por empresas transnacionales, México cuenta con una industria de autopartes que en su mayor parte es nacional. La industria de autopartes en México realizó exportaciones en 2006 por 5000 millones de dólares. Esta industria sin embargo al ser proveedores de partes de la industria automotriz tiene una demanda por mantener una alta calidad y productividad para mantenerse en competitividad internacional. En el caso específico de nuestro estado este posee una estructura económica muy diversificada en la actividad industrial; El sector de autopartes es especialmente relevante por su aportación al PIB del estado. La industria Queretana de maquinaria y equipo es la más importante ya que aporta un 81.5% del valor de la producción total industrial del Estado, así mismo da empleo a más de 45 mil personas (Anuario económico 1999), es importante mencionar que en este sector de maquinaria y equipo el 94.4% del total de las empresas son pequeñas y medianas. Hasta el día de hoy, los elementos y los métodos que se han venido utilizando para detectar fallas en las herramientas de corte no satisfacen a los investigadores que trabajan en ello (Altintas, 1988), ni contribuyen a resolver verdaderamente los problemas que enfrentan los usuarios. Gran parte de estos fracasos relativos se debe a que los métodos de detección de fallas han estado basados primordialmente en los resultados que proporcionan el análisis de Fourier y los análisis estadísticos (Tarng, 1992), aplicados a las señales que pueden monitorizarse durante el proceso de maquinado; sin embargo, ninguno de estos métodos ha sido efectivo en la detección de fallas, tales como la detección de astillamientos de la herramienta, ya que estos métodos solamente reportan cambios sutiles en las fuerzas de corte, localizadas en el eje del tiempo. Otro problema que ha afectado la investigación hasta hoy hecha, es que al basarse en el análisis de frecuencia bajo la transformada de Fourier, su análisis demanda alta cantidad de tiempo de computo, por lo que la utilización de este medio en ambiente Especialidad: Mecánica 5 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta industrial no se ve muy factible ya que difícilmente podría realizarse en tiempo real (Herrera, 1995). Debido a esto y en respuesta a la necesidad que se tiene para que los datos obtenidos en la monitorización se procesen adecuadamente y permitan que tengamos diagnósticos previos, rápidos y correctos, estamos proponiendo un proyecto de investigación en el cual se pueda encontrar una técnica nueva de detección de astillamiento y ruptura de herramientas, donde los módulos que integraran el sistema de monitorización, diagnóstico y corrección de fallas deben contar con inteligencia. Para que el diagnóstico tenga éxito en nuestro sistema propuesto, el procesamiento de las señales del corte tendrá que estar basado en el uso de Wavelets (Herrera, 1994). Con esta nueva teoría matemática, es posible construir un método más sensitivo de análisis que permita explorar pequeños cambios en el proceso de corte, a partir de señales de fuerza involucradas en el mismo. A grandes rasgos, podemos decir que mediante el uso de wavelets, el analista puede enfocarse en los detalles de su análisis de señales, tal y como si utilizara una cámara con un lente de zoom. A diferencia de la transformada de Fourier, la cual solo proporciona información en frecuencia, la transformada de wavelet proporciona información en tiempo y frecuencia simultáneamente. La teoría de wavelets nos permite trabajar sobre los vacíos de información que a veces presentan los datos. En realidad la teoría de wavelets, a través de la transformada discreta de wavelet, supera a la transformada rápida de Fourier en el reconocimiento de los cambios pequeños de fuerza que se tienen cuando una herramienta corta, y los cuales son definitivos para predecir una falla que pueda volverse fatal en el sistema total de maquinado. Para evitar todo este panorama que reduce la calidad de la manufactura, es necesario que el sistema de detección y diagnóstico de la máquina-herramienta envíe información fidedigna al sistema de corrección de fallas; también es necesario que los métodos de monitorización y análisis de las señales de corte sean congruentes con los requerimientos del CNC. En este caso, las matemáticas de wavelet presumen ser la mejor teoría que nos permita encontrar las fallas en el corte y actuar en favor de su Especialidad: Mecánica 6 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta corrección durante periodos de tiempo suficientes para evitar daños severos al sistema de manufactura. Otro punto importante en el desarrollo de este trabajo es el tratar de evitar el uso de sensores costosos que haría imposible el uso de esta técnica a la pequeña y mediana empresa del país, es por ello que se introduce el concepto de monitorización sin sensores (“sensorless”) el cual nos permite usar señales ya existentes en la maquinaria de control numérico comercial, el presente trabajo se centra en el uso de las señales de corriente de los motores que manejan los ejes de movimiento de dichas máquinas, esta señales de corriente nos dan una información de las fuerzas ejercidas durante el maquinado de una pieza. Los obstáculos que tenemos al usar estas señales es principalmente que son señales con poca sensibilidad y con una gran cantidad de ruido debido a que provienen de sistemas con una frecuencia de conmutación muy alta lo que contiene ruido de alta frecuencia asociada a la señal misma. En la figura 1.1 se muestra la fotografía de una fresadora típica convertida a CNC (Computer Numeric Control, control numérico computarizado) que puede ser encontrada en las industrias manufactureras de nuestro país, misma que es la utilizada para llevar a cabo el desarrollo y las pruebas del sistema de detección de rupturas. La figura 1.2 muestra un acercamiento de la bancada de la fresadora FNK 25A. La herramienta de corte con los insertos se muestra en la figura 1.3. Especialidad: Mecánica 7 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 1.1. Fresadora FNK 25A. Figura 1.2. Bancada de la fresadora FNK 25A. Especialidad: Mecánica 8 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 1.3. Herramienta de corte típica con insertos. Con el objeto de detectar la condición operativa de las herramientas durante el proceso de fresado se han propuesto diversos esquemas de sensado de señales y en la figura 1.4 se muestran los más importantes reportados hasta la fecha. Algunos sistemas de detección se basan en el uso de un esquema de sensores mientras que otros sistemas lo hacen utilizando varios tipos de sensores de manera simultánea. Como se puede observar en la figura 1.4, los mecanismos de sensado de las señales para la detección del estado de las herramientas en un proceso de fresado se pueden clasificar de dos formas: por el lugar donde se lleva a cabo el sensado y por la variable a sensar y sensor utilizado. El lugar donde se puede llevar a cabo el sensado incluye: el husillo, el cuerpo de la máquina, los cojinetes del husillo, el porta-herramientas, el proceso mismo de corte, la abrazadera, la bancada, el tornillo de bolas y el manejador del eje (Servo-driver, servo-amplificador), Prickett y Johns (1999). En cuanto a la variable a sensar y el sensor utilizado se destacan: fuerza, torque, vibración, emisión acústica, sonido, visión, posición, velocidad, corriente en los motores, potencia en los motores, precarga y fuerza de corte. Especialidad: Mecánica 9 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 1.4. Principales mecanismos de sensado de señales en un proceso de fresado. (Adaptada de Prickett y Johns, 1999). Cada una de las soluciones propuestas para llevar a cabo la detección del estado de las herramientas tiene sus propias ventajas y desventajas y la elección del método o conjunto de métodos adecuados para una aplicación específica dependen de varios factores como son: precisión, exactitud, resolución, tiempo de análisis, poder de cómputo y costo total del sistema. Poder seleccionar la solución óptima requiere de un análisis y evaluación de los métodos mencionados. 2. ESTADO DEL ARTE En el presente capítulo se muestra un análisis del estado del arte, utilizado como fundamento para el desarrollo del trabajo. La revisión se ha dividido en cinco temas principales: procesos de maquinado, detección de desgaste y ruptura, acondicionamiento de señales, procesamiento digital de señales y procesamiento de señales en circuitos integrados. Especialidad: Mecánica 10 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta En la sección correspondiente al proceso de maquinado se revisan los desarrollos de los modelos matemáticos que involucran la fuerza de corte de las herramientas. La detección de desgaste y ruptura es uno de los temas centrales del presente trabajo y en esta sección se muestra la literatura que ha tratado este tema. Así mismo, se ha incluido un análisis del estado del arte en lo que se refiere al proceso en si y a los equipos comerciales que cumplen parcialmente con esta función en las herramientas modernas. La literatura correspondiente al manejo de señales analógicas y su procesamiento se revisa en la sección de acondicionamiento de señales. La información relativa al desarrollo y aplicación de algoritmos digitales para el procesamiento de información se trata en la sección de procesamiento digital de señales. Finalmente, en la sección correspondiente al procesamiento de señales en circuitos integrados se revisa la literatura pertinente a la realización física de los algoritmos de procesamiento digital de señales. 2.1 Proceso de maquinado El proceso de maquinado debe ser comprendido para entender la forma en que se generan las señales que determinan o indican la manera en que se produce el corte. Esto involucra principalmente el análisis dinámico del proceso de corte por las herramientas en función de los materiales y los parámetros involucrados como son: la velocidad de giro del husillo, la tasa de alimentación, la profundidad del corte y el número de insertos en la herramienta. De este análisis surge la forma de onda de la señal a procesar. La teoría del proceso de maquinado se presenta de una manera muy completa en Altintas (2000 a). El capítulo 2 incluye un análisis de la mecánica del proceso de corte en metales. En las secciones 2.2 a 2.8 se presentan los casos más importantes de la mecánica del proceso de corte en sus variantes ortogonal, oblicua y helicoidal, así como los modelos predictivos de las fuerzas de corte en los diferentes ejes coordenados. Las deformaciones estáticas y dinámicas durante el maquinado son cubiertas en el capítulo 3 donde se resaltan los efectos producidos por estas deformaciones como una vibración. El capítulo 6 trata sobre el maquinado asistido por sensores donde se muestra un panorama general del sistema de sensores y procesamiento de señales requeridos para monitorear los diferentes aspectos del proceso de maquinado, su control y su supervisión. Especialidad: Mecánica 11 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Un suplemento a la teoría y modelado del proceso de corte se muestran en Altintas (2000 b), donde se presentan los últimos modelos para la predicción de las fuerzas de corte para los casos ortogonal, oblicuo y helicoidal, haciendo énfasis en el aspecto computacional del monitoreo del proceso. Johnson (2000) presenta un artículo donde muestra los efectos de desgaste en herramientas de carburo y propone soluciones para corregirlos. Este artículo es relevante para comprender mejor los efectos y proceso de desgaste de herramientas en los procesos de maquinado. Una de las técnicas tradicionales para determinar el grado de desgaste de una herramienta de corte es mediante la inspección visual de la viruta que se produce durante el proceso de corte. Jawahir y Balaji (2000) presentan un modelo predictivo para la formación de viruta en los procesos de corte en máquinas rotatorias, mostrando los avances más recientes en el tema con un análisis en dos y tres dimensiones. 2.2 Detección de desgaste y ruptura Una vez que se cuenta con la información de la forma de onda involucrada se procede al procesamiento de la misma para extraer la información útil para la toma de decisiones por el sistema de supervisión maestro. Esto implica el análisis de las diferentes alternativas que se han seguido para resolver el problema por otros equipos de trabajo. De este análisis se obtiene el algoritmo numérico adecuado para la extracción de la información importante del proceso de monitoreo. La información relevante contempla los aspectos tecnológicos generales para llevar a cabo el procesamiento de la información que van desde el sensor hasta el sistema de procesamiento. Uno de los mejores compendios para el estudio de los aspectos concernientes a los sensores y la instrumentación se presenta en Webster (1999). Destacan de manera particular la sección 2 con una revisión a la medición de variables espaciales, la sección 3 donde se revisa la medición de tiempo y frecuencia, las secciones 4 a 7 que tratan de la medición de variables mecánicas y la sección 8 donde se encuentran las variables electromagnéticas. Especialidad: Mecánica 12 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Bejhem y Nicolescu (1999) presentan un ejemplo para resolver el problema de la detección de la ruptura de herramientas en procesos de corte en maquinados y hacen uso de un sistema de cómputo con capacidad de multiproceso para analizar las fuerzas de corte en tres ejes, la vibración y el sonido. El sistema de cómputo tiene capacidad para multiproceso con procesadores digitales de señales DSP (Digital Signal Processors) conectados en tándem vía ethernet. Los sensores utilizados son celdas de carga en la abrazadera, acelerómetros para medir la vibración y sensores piezoeléctricos para medir el sonido. El sistema resuelve el problema pero tiene la principal desventaja de ser muy costoso. Además del multiprocesamiento en tándem existen otras formas de contar con un sistema de cómputo con procesadores múltiples como es el caso de las arquitecturas abiertas, donde los procesadores comparten un bus estándar y se comunican en paralelo vía este bus. Un ejemplo del uso de arquitecturas abiertas para el monitoreo del proceso de maquinado se muestra en Teltz et al (1995). Además de detectar la ruptura de las herramientas, la arquitectura abierta permite realizar el control y supervisión general del proceso completo, con la consecuente penalización en costo. Otro ejemplo de multiprocesamiento para el monitoreo de sistemas de maquinado lo muestra Herrera-Ruiz et al (1995). El trabajo reportado se basa en un sistema de arquitectura con bus VME para comunicar los diferentes módulos procesadores, tanto los sensores como los controladores. Este esquema es una forma particular de arquitectura abierta. Sood y Abdelguerfi (1985) presentan en su trabajo un análisis de tres métodos diferentes para detectar rupturas en herramientas en procesos de corte. El primer método propuesto se basa en mediciones similares, utilizando como base el conjunto de señales generadas y almacenadas digitalmente para un proceso de maquinado con herramientas en buenas condiciones y se utiliza para compararlo con maquinados sucesivos hasta detectar un umbral de tolerancia donde se determina que la herramienta se encuentra con un desgaste o ruptura inaceptables. El segundo método propuesto por Sood y Abdelguerfi se basa en reconocimiento de patrones de señales que en lugar de contar con una base de datos muy grande con un maquinado completo para comparar, se utilizan técnicas de compresión de datos para reconocer patrones de corte. El tercer método propuesto en este trabajo se basa en el modelado matemático Especialidad: Mecánica 13 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta del proceso de corte por estimación de parámetros. Estos tres métodos propuestos desde 1985, fecha del trabajo, son los que han sido utilizados de manera general por los fabricantes de equipos de detección de rupturas en herramientas de corte hasta la fecha. Estos métodos tienen la principal desventaja que requieren un enorme poder de cómputo para la detección de la ruptura resultando en equipos grandes y costosos. Oguamanam et al (1990) presentan un trabajo para la detección de ruptura en herramientas de corte para procesos de torneado con una sola herramienta de corte, basado en visión artificial. El sistema hace uso de una cámara digital para obtener una imagen en dos dimensiones de la herramienta durante el torneado. El sistema trabaja con procesamiento de imágenes en tiempo real y su aplicación se ha restringido a laboratorios debido al nivel de procesamiento requerido. Otro método que ha sido propuesto para resolver el problema de la detección de desgaste y ruptura de herramientas de corte es el presentado por Roth y Pandit (1999). El método propuesto se basa en un análisis de variaciones múltiples aplicado a señales de vibración. Li y Tso (1999), Li et al (2000 a) y Li et al (2000 b) describen tres aplicaciones a la detección de desgaste y ruptura de herramientas para diferentes procesos de manufactura, utilizando como fuente la corriente de control de los motores que manejan los ejes. En Li y Tso (1999) se aplica este método de sensado a procesos de barrenado exclusivamente. Los trabajos reportados por Li et al (2000 a) y Li et al (2000 b) se aplican a la detección de desgaste y ruptura en herramientas de corte utilizando técnicas híbridas de procesamiento que incluyen redes neuronales y lógica difusa. La importancia de estos trabajos radica en el uso de la señal de corriente de los motores que manejan los ejes de las bancadas debido a que esta señal no hace uso de ningún sensor especial ya que se encuentra disponible en todos los sistemas de maquinado automático. Matsumura (2001) presenta una técnica de monitoreo de la condición de las herramientas de corte mediante la medición fuera de línea de la dimensión de la herramienta utilizando un láser e interferometría para medir las variaciones micrométricas debidas al desgaste. Este sistema no sirve para trabajar en línea ya que Especialidad: Mecánica 14 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta la medición se realiza cuando termina el proceso de maquinado y antes de que comience el siguiente ciclo. Una de las principales técnicas de procesamiento digital de señales que ha probado ser muy eficiente en la detección de desgaste y ruptura en herramientas de corte es la técnica de ondoletas aplicadas a la medición de la fuerza de corte. Kasashima et al (1994) proponen por primera vez el uso de ondoletas para sensar el desgaste de las herramientas en procesos de corte. Yao et al (1999), Li et al (1999) y Li et al (2000 c) han propuesto el uso combinado de la transformada de ondoletas (Wavelets) y las redes neuronales con clasificadores difusos. Wang (2001) hace uso de las ondoletas y las aplica a señales provenientes de la vibración de la maquinaria para detectar el estado de las herramientas de corte. El algoritmo de procesamiento utilizado por los artículos citados se puede resumir de acuerdo con el cuadro 2.1. Algoritmo Cómputo principal requerido Ondoletas Moderado Observaciones Transformaciones de espacio en el campo de los reales. Adecuado para señales cíclicas y transitorias. El filtrado es inherente al algoritmo. Equivale a un banco de filtros tipo FIR (Finite Impulse Response, respuesta finita al impulso) Análisis de Moderado Fourier Transformaciones de espacio en el campo complejo. Adecuado para señales cíclicas solamente. Requiere un pre-procesador para el filtrado de la señal. Comparación Alto punto a punto El procesamiento es sencillo pues solamente se realizan comparaciones. Se requiere una gran capacidad de almacenamiento y programabilidad del sistema. Este método se conoce como el de fuerza bruta. Reconocimiento Alto de patrones El procesamiento debe reconocer patrones de maquinado adecuado y diferenciarlo de un máquina con herramientas rotas. Requiere una alta capacidad de almacenamiento y procesamiento. Lógica difusa Moderado Se basa en reconocimiento de patrones de la señal pero solo es útil cuando ésta se encuentra comprimida como por ejemplo con transformada de ondoletas. Redes neuronales Alto Debido al alto paralelismo se necesita una cantidad muy grande de procesadores para poder tener un análisis en línea. Variables Muy alto múltiples Mediante un sistema experto hace uso de la información proporcionada por una multitud de sensores localizados en la maquinaria. Visión Muy alto El procesamiento de imágenes aún requiere de sistemas sofisticados de cómputo en paralelo para trabajar en línea. Cuadro 2.1. Resumen de los principales algoritmos para el monitoreo de herramientas. Especialidad: Mecánica 15 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Por otro lado, la mayoría de los trabajos reportados hace uso de sensores especializados para poder obtener señales más puras y directas que aquellos que hacen uso de las señales ya disponibles en el sistema de maquinado, como por ejemplo la corriente de control de los motores. Los sistemas de sensado más populares son las celdas de carga y los acelerómetros. En lo que se refiere a los equipos comerciales que realizan el monitoreo de las herramientas de corte se encontraron diversos sistemas especializados, algunos de los cuales se utilizan en máquinas herramientas en industrias de la región. Cinco son las compañías que ofrecen estos equipos y son: Siemens, Montronix, OMAT, PROMESS y Caron Engineering Siemens ofrece un sistema de monitoreo de múltiples sensores dentro de un sistema de arquitectura propietaria de la empresa. Este sistema de monitoreo lleva el nombre comercial de Brankamp y por las características que menciona utiliza un sistema de monitoreo por comparación punto a punto. El sistema PS100 de Montronix ofrece monitoreo mediante la medición de la potencia eléctrica en el motor y es una unidad independiente. La medición de la potencia incluye la medición de la tensión y la corriente del motor lo que implica que no hay que realizar modificaciones a la maquinaria existente. Aparentemente el sistema detecta patrones de maquinado y tiene niveles de tolerancia que son programados manualmente lo que requiere de supervisión continua. OMAT ofrece el sistema OptiMonitor basado en celdas de carga y un software cerrado, propietario de la empresa. El sistema incluye varios procesadores por lo que el cómputo numérico intensivo es evidente. El módulo detector de PROMESS tiene características similares al ofrecido por OMAT, basando su sistema de medición en acelerómetros en lugar de celdas de carga. Finalmente, Caron Engineering ofrece un sistema de múltiples sensores en arquitectura cerrada, propietaria de la empresa. El sistema incluye el monitoreo de diversas variables, tomadas de diversos sensores. Tiene características similares al equipo Especialidad: Mecánica 16 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta ofrecido por Siemens aunque incluye la medición micrométrica fuera de línea mediante láser. 3. Desarrollo 3.1 Arquitectura Uno de los principales objetivos del proyecto es ofrecer una solución industrial que sea efectiva y redituable para cumplir con las expectativas económicas de los usuarios, es decir, el producto obtenido a partir del desarrollo deberá ser una solución económicamente viable. En consecuencia, debemos tomar en cuenta aquellos factores económicos que pudiesen elevar el costo de una licencia final para el usuario. Así pues, uno de los factores que influyeron en la selección de una plataforma desarrollo, después de la robustez y la seguridad, fue el costo de licencias de terceros en el producto final. Afortunadamente existen actualmente diversas soluciones de código abierto para la mayor parte de los requerimientos del sistema CNC; en aquellos casos en los cuales no fue posible encontrar una solución de código abierto para algún componente del sistema, tal como el sistema gráfico, se eligió una solución que no requiriera el pago de regalías por parte del usuario final. Para reducir el costo del desarrollo se optó por una plataforma computacional de arquitectura abierta y, en virtud de la documentación disponible y de los costos, se eligió a la computadora personal basada en el microprocesador Intel© (PC) como plataforma de desarrollo. Existe una amplia gama de opciones a emplear como sistema operativo para la plataforma PC como para las comerciales de código abierto; la funcionalidad que ofrece cada sistema operativo no siempre es apropiada para un sistema de control de movimiento de arquitectura abierta. Si bien es posible en la mayoría de los casos adaptar el sistema operativo para satisfacer los requerimientos de velocidad de respuesta de una aplicación de control de movimiento, las soluciones aplicables a sistemas operativos comerciales también son de naturaleza comercial. Por ejemplo, si se desea emplear el sistema operativo Windows© en aplicaciones de control de movimiento es necesario resolver el problema de la imposibilidad de predecir el tiempo de respuesta del sistema operativo ante eventos externos en virtud de su arquitectura basada en mensajes; las dos soluciones más comunes que nos permiten habilitar al sistema operativo Windows como parte del sistema de control de movimiento son el emplear hardware adicional que se encargue de la temporización oportuna de las tareas de control de movimiento, o bien instalar un núcleo de tiempo real que a su vez cargue al sistema operativo Windows como una tarea más; en ambos casos el costo Especialidad: Mecánica 17 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta del desarrollo se incrementa para el usuario final. Es recomendable, por consiguiente, emplear un sistema operativo con una arquitectura que no esté basada en mensajes; dos opciones robustas son el sistema operativo Linux y alguna variante del sistema operativo DOS. Si bien el sistema operativo Linux es robusto e inclusive existen algunas soluciones (comerciales) de tiempo real para el mismo tal como RT Linux, la curva de aprendizaje del mismo es larga y se requiere de mucha experiencia para configurarlo de manera óptima debido a que usualmente es necesario reconfigurar su núcleo de tal suerte que es necesario conocer su código fuente para optimizarlo. Por otra parte, el sistema operativo DOS también es robusto, ha estado disponible por años, su curva de aprendizaje es corta y tiene requerimientos de hardware menores que Linux (e.g., menos memoria RAM en general, de modo que se puede emplear en equipo más antiguo). Su re-configuración es sencilla, sin necesidad de tener que recompilar el núcleo en virtud de su arquitectura modular, y permite un acceso directo a la mayoría de los dispositivos existentes por medio de interfaces de bajo nivel bien documentadas. Después de evaluar diversas opciones concluimos que la mejor opción para la implementación de un sistema operativo DOS dentro del sistema CNC era el sistema operativo FreeDOS debido a que es una plataforma de código abierto, gratuita y bien documentada; si bien el DOS no es desde sus orígenes una arquitectura abierta, la documentación heredada a lo largo de los años provee la información necesaria para explotar el sistema a detalle. Si bien, para una primera versión del sistema, decidimos emplear una tarjeta comercial de control de movimiento PID que ofreciera planeación de trayectorias mínima, la plataforma resultante permitirá eventualmente realizar estas funciones por medio de software. Esperamos que en el futuro sea posible ofrecer el control numérico de movimiento implementando la lógica del controlador en software con un soporte mínimo de electrónica, a saber, empleando simplemente una tarjeta de interfaz que mantenga un registro de la posición de los motores y que genere una señal analógica para los amplificadores. 3.1.1 El lenguaje de programación El lenguaje C es, junto a lenguaje ensamblador, un lenguaje de programación de sistemas por excelencia. La mayor parte del software desarrollado para la plataforma DOS se desarrolla en alguno de estos dos lenguajes y, de hecho, la cantidad de compiladores disponibles en ambos casos es muy amplia. Decidimos emplear el lenguaje C (siguiendo el estándar ANSI 89) para el desarrollo del sistema por dos razones principales: Especialidad: Mecánica 18 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta El lenguaje C ofrece una portabilidad mucho mayor que lenguaje ensamblador, es decir, al ser un lenguaje estandarizado es posible programar partes críticas del sistema, tales como el código del ejecutivo, de manera independiente de la plataforma, permitiendo así cambios en el compilador o el sistema operativo de ser considerados apropiados. Asimismo, es posible emplear código heredado para la implementación de algunos algoritmos. El fabricante de tarjetas de control de movimiento provee una biblioteca de lenguaje C que permite el uso de la misma. A pesar de que le biblioteca da soporte a un gran número de compiladores, en virtud del tamaño de los identificadores, fue necesario emplear un compilador que permitiera identificadores de más de 32 caracteres. Para cumplir con los dos requerimientos anteriores, elegimos el compilador Turbo C ++ 4.5. Dicho compilador se ejecuta bajo el entorno gráfico de Windows 3.1, Windows 95 o Windows 98. Se eligió desarrollar el sistema bajo Windows 98 en virtud de su disponibilidad, pero se tomó la decisión de emplear FreeDOS como plataforma de ejecución final. 3.1.2 La arquitectura del sistema A diferencia de versiones anteriores del sistema, el diseño de esta nueva versión fue modular; este lineamiento fue establecido con la intención de simplificar el diseño y la programación del sistema. La modularización del sistema ofrece grandes ventajas: Hace más manejable el desarrollo de programas al reducir las dependencias. Simplifica la depuración del software pues reduce la interdependencia entre las partes del código. Facilita la reutilización de software pues los módulos pueden emplearse para distintas aplicaciones; por ejemplo, el módulo ejecutivo que describiremos más adelante se puede emplear para distintas aplicaciones. Permite el desarrollo del programa por más de un desarrollador, generalmente en paralelo, pues simplifica el proceso de integración. Los módulos que fueron considerados en el diseño del sistema son los siguientes: Editor El módulo de edición de archivos de texto, editor, es una biblioteca de funciones escrita en lenguaje C que provee la funcionalidad necesaria para editar varios archivos Especialidad: Mecánica 19 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta de texto empleando una región rectangular de la pantalla de dimensiones arbitrarias; después de editar un archivo las modificaciones en el mismo pueden ser guardadas en el mismo archivo fuente o en otro archivo destino. La idea básica detrás del diseño de este editor es separar la interfaz de usuario de la representación interna de los datos. Esto ofrece dos grandes ventajas, a saber: Fue posible desarrollar el editor de manera independiente de la interfaz de usuario. Es posible modificar la operación interna (implementación) del editor sin alterar el resto del código. El resto del programa interactúa con el editor llamando sus funciones para indicar acciones o solicitar información. El editor cuenta con diferentes funciones para poder modificar el archivo de texto fuente, tales como: Creación de un nuevo editor en la memoria de la computadora. Se pueden crear tantos editores como sean necesarios de manera simultánea en un momento dado, aunque el diseño del sistema CNC sólo requiere de la existencia de un ejemplar a la vez. Liberación de los recursos empleados por un editor dado. Modos de edición para agregar o sobrescribir texto. Avanzar y regresar página. Ir al inicio y al fin de un renglón. Ir al inicio y al fin de un archivo que está siendo editado. Suprimir un carácter que se encuentre adelante o atrás de la posición de edición actual. Salto y retorno de línea. Desplazarse en cualquier dirección, arriba, abajo, izquierda o derecha, a partir de la posición de edición actual. Funcionalidad extra orientada a desplegar el archivo de texto en pantalla. La versión actual del editor consiste de un búfer de tamaño N que permite editar la línea actual, la cual es parte de una lista doblemente ligada de cadenas de caracteres. Complilador Un programa CNC se compone de una serie de instrucciones secuenciales de bajo nivel relacionadas al maquinado de una pieza de trabajo. Cada instrucción se especifica en un formato que puede aceptar, interpretar y procesar el sistema CNC. Este campo Especialidad: Mecánica 20 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta tiene su propia terminología y términos especiales. Además cuenta con sus propias abreviaciones y expresiones que únicamente las personas del ámbito conocen, donde la mayoría de estos términos están relacionados a la estructura del programa. Existen cuatro términos básicos usados en la programación CNC [Smid, 2003]. Ellos aparecen en artículos profesionales, libros, publicaciones, etcétera. Estas palabras son la clave para el entendimiento general de la terminología CNC: Carácter Palabra Bloque Programa Carácter: es la unidad más pequeña del programa CNC (dígito, letra y símbolo). La combinación de estos caracteres se llama entrada de programación alfanumérica. Dígito: Existen diez dígitos disponibles (0 - 9) para crear números en un programa. Los dígitos se usan en dos modos - uno para valores enteros y el otro para número reales. Letras: Son veintiséis letras en al alfabeto inglés, en teoría todas disponibles para la programación. La mayoría de los sistemas de control aceptarán sólo ciertas letras y rechazarán otras, según sea la arquitectura de la máquina - herramienta para la cual está escrito el programa. Las letras mayúsculas están designadas normalmente en la programación CNC, pero algunos controles aceptan también letras minúsculas con el mismo significado que su equivalente en mayúscula. Símbolos: Algunos símbolos son usados además de dígitos y letras. Los símbolos más comunes son el punto decimal, signo menos, signo por ciento, paréntesis y otros dependiendo de las opciones del control. Palabras: Es una combinación de caracteres alfanuméricos, creando una única instrucción para el sistema de control. Normalmente, cada palabra comienza con una letra mayúscula seguida por un número el cual representa un código del programa. Las palabras indican casi siempre la posición de los ejes, comandos preliminares, funciones misceláneas o algunas otras definiciones. Bloque: Así como las palabras se usan como una única instrucción para los sistemas CNC, los bloques se utilizan como una instrucción múltiple. Cada línea (bloque Especialidad: Mecánica 21 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta secuencial o bloque) está compuesto por una o varias palabras y cada palabra se compone por dos o más caracteres. Programa: La estructura del programa varía para los diferentes controles, pero la lógica no cambia de un control a otro. Un programa CNC usualmente inicia con un número de programa o identificador similar, seguido de bloques de instrucciones en orden lógico. El programa termina con un código de error o con el símbolo de fin de programa (%). Los mensajes y documentación interna para el operador pueden ser colocados en lugares estratégicos dentro del programa. El formato de los programadores ha evolucionado durante los últimos años y han surgido varios formatos [Smid, 2003]. Las palabras empleadas en la programación CNC se pueden dividir en códigos G, códigos M y otros registros. Códigos G La dirección G del programa identifica una función preparatoria o código G. Esta dirección tiene uno y solamente un objetivo el cual es preparar al sistema de control a cierta condición, modo o estado de operación deseada. El término función preparatoria indica su significado---un código G preparará al control para aceptar las instrucciones de programación siguiendo el código G de forma especifica. Los sistemas de control organizan las funciones preparatorias separándolos dentro de grupos arbitrarios. Cada grupo, llamado grupo de código G, tiene un número de dos dígitos asignado arbitrariamente. Las reglas que gobiernan la coexistencia de códigos G es muy simple. Si dos o más códigos G del mismo grupo están en el mismo bloque, ellos están en conflicto. Los grupos de códigos G están normalmente enumerados de 00 hasta el 25. Sólo las funciones preparatorias del grupo 00 son no modales, es decir, ellas están únicamente activas en el bloque en el cual fueron programadas. La relación de cómo se agrupan los códigos G tiene un sentido perfecto en todos los casos. Una posible excelción es el grupo 01 para los comandos de movimientos y el grupo 09 para los ciclos. La relación entre estos dos grupos es esta: si un código G del grupo 01 se especifica en cualesquiera del grupo 09 de ciclos fijos, el ciclo es cancelado inmediatamente, pero lo opuesto no ocurre [[Smid, 2003]]. Especialidad: Mecánica 22 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Códigos M La dirección M del programa identifica una función miscelánea o funciones máquina. No todas las funciones misceláneas se relacionan a la operación de la máquina - herramienta CNC---muy pocas se relacionan al procesamiento del mismo programa. Dentro de la estructura de un programa CNC, los programadores frecuentemente necesitan ciertos medios de activación de la máquina o para controlar el flujo del programa. Sin la disponibilidad de tales medios, el programa podría no ser completado o imposible de ejecutar. Primero, observemos la relación de las funciones misceláneas y las funciones reales de la máquina. Varias funciones físicas de la máqui8na herramienta deben controlarse por el programa, para asegurar un maquinado totalmente automático. Estas funciones utilizan normalmente la dirección M e incluyen las siguientes operaciones: • rotación del husillo, • cambiar rango de engranajes, • cambio automático de herramientas, • cambio automático de pallet, • operación de refrigerante y • movimiento de contrapunto entre otras. Estás operaciones varían entre máquinas. Todas las maquinas herramienta CNC se programan con funciones M, permitiendo por lo general no más de dos dígitos para estas funciones. Además, algunas funciones máquina se utilizan para controlar la ejecución del programa. Una interrupción de ejecución de programa requiere una función M. Dichas funciones M caen dentro de dos grupos principales: • Control de funciones máquina. • Control de ejecución de programa Los grupos de las funciones M están también normalmente divididos, desde un punto de vista operacional, en dos grupos: Especialidad: Mecánica 23 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta • Las funciones M que se activan al inicio de un bloque. • Las funciones M que se activan al final de un bloque. Si existe incertidumbre de cómo las funciones M interactuarán con el movimiento de la herramienta, la elección más segura es programar la función M como un bloque separado [Smid, 2003]. Otros registros Existen otras direcciones que identifican otras funciones de las máquinas - herramientas (S, F, T, etc.). Las actividades del husillo de la máquina (S), la velocidad de corte (F) y la herramienta (T) necesitan ser estrictamente controladas por el programa CNC. El comando relativo a la velocidad del husillo se controla en el sistema CNC por medio de la dirección S. El formato de programación de la dirección S está usualmente dentro de S1 a S9999 y no se permite el punto decimal. La función F se usa en el programa CNC para seleccionar el valor del feedrate. Normalmente se utilizan dos tipos de feedrate en la programación: Feedrate por minuto Feedrate por revolución La llamada a dirección para una palabra en el programa es la dirección F, seguida por un número de dígitos. El número de dígitos seguidos de la dirección F depende del modo de feedrate y de la aplicación de la máquina - herramienta. El punto decimal es permitido. Cada máquina CNC utiliza un intercambiador automático de herramienta (función T) que puede ser usada en el programa. Para los centros de maquinado, la función T normalmente controla sólo el número de herramienta. Para los tornos CNC, la función T indexa la estación del número de herramienta, así como también el número de desplazamiento. Existen dos tipos de selección de herramienta usados en los procesos de cambio automático de herramienta: Selección de herramienta fijo: las máquinas - herramienta que utilizan selección fija de herramienta (principalmente centros los maquinado) requieren que el operador coloque todas las herramientas dentro de los huecos del almacén que correspondan al Especialidad: Mecánica 24 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta número de herramienta. Hoy en día, este tipo de selección se considera impráctico y costoso en largas ejecuciones, puesto que existen grandes pérdidas de tiempo durante los cambios de herramienta. Selección de herramienta aleatoria de memoria: esta característica es la más común en las máquinas - herramienta modernas. El programador CNC identifica cada herramienta por un número T, usualmente en el orden de uso. El número de herramienta requerida por el programa moverá físicamente la herramienta a la posición de espera dentro del almacén de herramientas. Esto puede ocurrir simultáneamente, mientras la máquina está usando otra herramienta para desbastar la pieza. No se confunda el método de la dirección T utilizado con la selección de la herramienta fija y la misma dirección T usada con la selección aleatoria de memoria. En este método se llama a la herramienta con anticipación antes de que se necesite, así el sistema de control puede buscar la herramienta mientras otra herramienta está haciendo trabajo productivo [Smid, 2003]. Un compilador, por definición, es un programa que traduce de un lenguaje fuente a un lenguaje destino [Aho et al., 1998]. Generalmente un compilador completo se divide en dos etapas, la de análisis y la de síntesis. Durante la etapa de análisis el compilador extrae toda la información relevante del lenguaje fuente para después escribir un subconjunto de dicha información en el lenguaje destino durante la etapa de síntesis. En la mayoría de los compiladores el lenguaje fuente puede ser generado por un ser humano o ser generado por algún otro programa; típicamente el código G es escrito por un operador experimentado o por algún programa de diseño o manufactura asistidos por computadora. Ya sea que el programa en código G vaya a ser sintetizado en otro lenguaje o deba ser interpretado en línea, la etapa de análisis debe ser realizada por medio de un lector de código G. La etapa de análisis y, por consiguiente, un lector de código G realizan tres clases de análisis, a saber, el análisis léxico, el análisis sintáctico y el análisis semántico. Durante el análisis léxico el lector de código G agrupa los caracteres del flujo de entrada (ya sea un archivo de disco, un arreglo en memoria o un editor de texto) en símbolos Especialidad: Mecánica 25 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta léxicos o tokens. El código G asigna un registro a cada una de las funciones disponibles para que almacene el valor correspondiente; así pues, el código G tiene veintiséis registros identificados por una letra mayúscula del alfabeto después de la cual, sintácticamente, puede seguir un entero o número de punto flotante, ya sea con signo o sin signo; los números de punto flotante no emplean notación científica. Cada símbolo léxico es almacenado en una estructura de datos que contiene el tipo de símbolo (nombre de registro, número entero no negativo, número entero negativo, punto flotante no negativo o punto flotante negativo) junto con su valor (número de registro o valor numérico). Algunos registros tal como el registro N siempre almacenan un número entero, de modo que el registro N seguido de un número de punto flotante es un error de sintaxis. Otros registros tales como X, Y y Z siempre almacenan un número de punto flotante, aunque sintácticamente es válido que estén seguidos por un número de punto flotante o de un número entero; en caso de que sea un número entero el valor debe dividirse entre un factor que depende del sistema de unidades en efecto al momento de cargar el registro. El analizador sintáctico siempre está al tanto del sistema de unidades empleado, ya sea sistema internacional (SI) o unidades inglesas. Asimismo, el analizador sintáctico siempre provee de información en formato incremental al analizador semántico y se configura a sí mismo para determinar la forma correcta de leer las unidades del código fuente. Durante la etapa de análisis semántico los valores de cada registro que deba modificarse junto con otras instrucciones para establecer otros parámetros e indicar acciones se insertan en una cola de prioridades debido a que el orden en que las instrucciones se leen del archivo fuente no necesariamente es el orden en que deben ejecutarse. Se tiene entonces una cola de prioridades que representa a un bloque y que ordena por prioridades a las palabras del código G. Ejecutivo La arquitectura de un sistema de cómputo es una colección de módulos con interfaces bien definidas que permiten describir el comportamiento de un sistema. La implementación describe la estructura interna de cada uno de los módulos del sistema. La virtualización es el proceso de asociar la arquitectura y la implementación de un módulo. El ejecutivo es una pieza versátil de software, y es una parte importante de la Especialidad: Mecánica 26 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta virtualización del sistema, como se describe a continuación. Si bien es posible ejecutar el código necesario para generar el movimiento de la máquina - herramienta deseado en la forma de acciones semánticas durante la traducción dirigida por sintaxis que realiza el lector de código G, es más recomendable ejecutar el código de control movimiento a partir de una interfaz bien definida y uniforme. La idea principal es separar la implementación de la ejecución de instrucciones de control movimiento del resto del programa por medio de una interfaz bien definida con la intención de dar soporte a diversos sistemas de control de movimiento. Las principales ventajas que ofrece este enfoque no se limitan a la programación más fácil de los módulos, sino que se extienden a todas las ventajas de una arquitectura abierta pues al definirse una interfaz bien definida será posible emplear dicha interfaz no sólo para ejecutar programas en una máquina - herramienta, sino que será posible ``ejecutarlos'' en un simulador (no implementado todavía) que permita prever la ejecución del programa. Actualmente el ejecutivo está implementado de tal forma (Figura 3.1) que ejecuta rutinas de código G conforme son leídas por el lector de código G, accediendo a las rutinas de control de movimiento por medio de una tabla de direcciones que contiene la información necesaria para hacer llamadas a funciones. Las instrucciones de control de movimiento están formadas por una instrucción que describe el tipo de movimiento a realizar (e.g., G03) seguido de parámetros que describen sus características (e.g., X30.0 Y20.0 R10.0); a partir del tipo de movimiento se selecciona una función a la cual se le proveen los parámetros correspondientes. Especialidad: Mecánica 27 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 3.1 Diagrama operacional del ejecutivo Interfaz hombre-máquina (IHM) La interfaz hombre-máquina se desarrolló empleando la biblioteca BGI de Turbo C++ 4.5 empleando un enfoque orientado a objetos. Se emplea un controlador BGI para adaptadores SVGA que permite emplear capacidades gráficas amplias, así que la interfaz de usuario fue diseñada con gran resolución y número de colores. El diseño del sistema gráfico es orientado a objetos basado en mensajes. El sistema de control implementa una interfaz de usuario basado en el concepto de pantalla de operación. Una pantalla de operación (o escritorio) es un objeto que pertenece a una lista de escritorios y a su vez es una colección de objetos gráficos que al operar en conjunto permiten al usuario del sistema de control dar instrucciones a una computadora. Cada pantalla de operación está formada por una colección de ventanas de diferentes tipos sobre las cuales se realizan actividades de actualización (eventos) por medio de mensajes contenidos en una lista. La colección de ventanas de nivel superior (ventanas padres) ocupa regiones de la pantalla de operación que son mutuamente excluyentes. Las regiones de la pantalla de operación que no han sido cubiertas por alguna ventana tienen un color de fondo por omisión. La lista de mensajes se lee secuencialmente de tal suerte que los mensajes se van procesando uno por uno conforme se vaya solicitando su procesamiento. La cantidad de memoria máxima para el uso del sistema es aquel requerido por la pantalla de operación que ocupe mayor cantidad de memoria debido a que cada que se selecciona una pantalla de operación nueva se libera la memoria empleada por los objetos gráficos de la pantalla de operación anterior y se reserva memoria para los nuevos objetos gráficos pertenecientes a la pantalla de operación que se acaba de seleccionar. Especialidad: Mecánica 28 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 3.2: Organización de la interfaz gráfica de usuario Cada una de las ventanas tiene asociados diferentes propiedades, tales como las coordenadas de la esquina superior izquierda, su ancho y su alto, texto asociado con la misma de ser necesario, una referencia a su ventana padre, una lista de referencias a sus ventanas hijas, un apuntador a un bloque de datos personalizado y una función responsable de procesar todos los mensajes recibidos por la ventana. Las ventanas de nivel superior carecen de ventana padre y son las que se dibujan primero al trazar la pantalla. Después de trazarse a sí misma, cada ventana envía a cada una de sus ventanas hijas el mensaje de que se retracen a su vez. Con cada interacción con el usuario de una ventana el mensaje es procesado por la misma o un mensaje es enviado a su ventana padre para ser procesado cuando sea pertinente. Cada uno de los controles de las ventanas es a su vez una ventana que tiene asociada una función de procedimiento que se encarga de procesar los mensajes que corresponden a la misma. Como parte de la biblioteca de la interfaz de usuario, existe una función de procedimiento por omisión que se puede emplear para la mayor parte de las actividades subyacentes para ventanas genéricas tales como el dibujo de la ventana y otras respuestas estándar. Cada ventana puede tener a su vez ventanas hijas de diferentes clases tales como iconos y botones de comandos. El sistema implementa por omisión diversas funciones (procedimientos de ventana) para atender a las solicitudes hechas a los elementos o controles estándar (como los botones) de la interfaz de Especialidad: Mecánica 29 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta usuario. Los elementos de la interfaz de usuario reportan información al usuario y también le permiten interactuar con el sistema. Los eventos que generan los elementos de la interfaz de usuario pueden ser de dos tipos: mensajes de la interfaz de usuario y eventos de tiempo real. Los mensajes de la interfaz de usuario generan más mensajes para la actualización de la interfaz de usuario, se procesan por medio de la lista de mensajes y se emplean para tareas que no son críticas para el sistema. Los eventos de tiempo real interactúan directamente con el \hardware{} para acciones tales como paro de emergencia y son procesados directamente sin introducirse en la lista de mensajes. Teclado Figura 3.3 Teclado típico de una máquina - herramienta CNC CHROMA-II. El actual diseño y características varirán para diferentes modelos de máquinas. La interfaz del teclado con la computadora personal (PC, Personal Computer) se ocupa de rastrear continuamente el estado de todas las teclas, es decir, puede detectar si ha ocurrido algún cambio de estado en cualquiera de las teclas. De ser así, determina si lo que ha ocurrido es una pulsación o una liberación de la misma. También se encarga de conocer que tecla se encuentra presionada o ha cambiado de estado. Cada una de las teclas tiene asociado un número diferente para que el controlador del teclado pueda reconocer a cada una de ellas, este número tiene 7 bits y se llama scancode y depende únicamente de la posición que la tecla ocupa en dicho teclado (véase Figura 3.3) Así cuando una tecla ha sido pulsada o liberada, la interfaz del teclado guarda el scan-code de la tecla en una pequeña memoria interna. Además de la pequeña memoria interna el teclado tiene algunos otros registros: Especialidad: Mecánica 30 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Registro de Estado: contiene información acerca de la interfaz. Registro de Datos: si en la memoria interna existen teclas presionadas registradas previamente, el controlador se encarga de guardar una copia en este registro del scancode, la cual corresponde a la primera tecla que se presionó. En las PCs compatibles con IBM, la administración de las interrupciones de hardware normalmente las realiza un micro-controlador. Este circuito recibe las peticiones de interrupción del sistema y se las envía de una en una al CPU. En la arquitectura de la PC, la interfaz del teclado está conectada a la línea IRQ-1 del microcontrolador y se identifica ante el CPU como el vector 9. Cada vez que se presione o libere una tecla se producirá una interrupción de hardware con vector 9. Además existen dos módulos de software los cuales controlan o administran el f{}lujo de entrada de las teclas. El primer módulo es el encargado de leer la tecla presionada, para después convertir esta tecla en su código ASCII correspondiente y guardar el código asignado en un registro de memoria. El otro módulo se encarga de examinar el contenido del registro y regresar su estado cada vez que el usuario lo solicite. Ambas rutinas se encuentran implementadas en el BIOS (BIOS, Basic Input Output System) de la PC. La primera de ellas se encarga de activar una interrupción por medio del hardware generada por la interfaz del teclado (INT 9h), que pasa al CPU a través del micro-controlador. La segunda es llamada por los programas mediante la ejecución de la interrupción software INT 16h. El esquema del teclado de propósito especial que utilizamos se muestra en la Figura 3.4 del cual tiene dos conectores que salen del mismo dispositivo. Los cables planos tienen un máximo de RN (N = 6) y CM (M = 13) renglones y columnas respectivamente. Especialidad: Mecánica 31 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 3.4: Esquema del teclado alfa-numérico del panel de control CNC Estos cables realmente forman parte de la propia membrana, que no es más que una matriz de contactos bajo las gomas de las teclas. Este teclado matricial se encuentra repartido en CM columnas de M teclas cada una, que corresponden con los contactos de la membrana (véase Figura 3.4 para más detalle). En el esquema del teclado matricial cada una de las M columnas están conectadas a una de las líneas de salida al sistema de control del teclado, y el otro extremo de cada tecla de N renglones se encuentra conectado a un grupo de $N$ líneas de entrada del mismo sistema. Generalmente cuando se quiere saber si una tecla está presionada, se leen los renglones por completo (las N teclas), leyendo el puerto de E/S que pone un cero en la línea de dirección de dicho renglón. La conexión entre un teclado y la PC se realiza a través de un conector tipo PS/2 (miniDIN) como se muestra en la Figura 3.5. En el PS/2 una línea transmite la señal de reloj, otra los datos y dos más la alimentación (+5Vdc y GND). Figura 3.5 Esquema de conexión del conector PS/2. Especialidad: Mecánica 32 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta En el diagrama de tiempos de la Figura 3.6 podemos observar como los datos se sincronizan a través del reloj, para que así el teclado pueda enviar los datos a la PC. Figura 3.6: Ejemplo del diagrama de tiempos. Lo más importante para el problema que nos ocupa es qué información nos da el teclado respecto de los teclazos. Es decir, cuando se presiona una tecla, el teclado envía el scan-code, esto es el código asociado con cada tecla a través de una tabla. Existen tres modalidades o tablas dependiendo del tipo de teclado: Scan-code 1: es el usado en teclados del tipo XT de 83 teclas. Scan-code 2: propio de teclados AT de 102 teclas, es el más usado. Scan-code 3: sólo utilizado en teclados del tipo PS/2. El scan-code 1 se considera casi obsoleto debido al poco uso que tiene en la actualidad, aunque algunos controladores de teclado transforman los scan-codes 2 y 3 a éste por medio de software logrando compatibilidad entre ellos. Lo más común, aunque varía según el fabricante, es que el teclado acepte trabajar con el scan-code 2 y/o 3. El scan-code 3 permite entre otras cosas configurar el teclado en una modalidad de respuesta más afín con las necesidades de nuestro teclado, por consiguiente es el modo de funcionamiento que hemos elegido. Un rasgo importante que hay que resaltar es que se pueden configurar diferentes modos de trabajo del teclado: Make: cuando se presiona una tecla se envía el scan-code y ninguna señal cuando de libera la tecla. Make/Break: cuando se presiona una tecla se envía el scan-code y cuando se libera la tecla se vuelve a enviar el scan-code precedido de un código de liberación (F0). Typematic: cuando se presiona una tecla se envía el \emph{scan-code}, y una vez que ha pasado un breve período de tiempo se vuelve a enviar el scan-code continuamente hasta que la tecla sea liberada. Especialidad: Mecánica 33 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta En resumen, el protocolo de comunicación entre el teclado y la PC se realiza en forma de transmisión serial (PS/2) con ocho bits de datos, bit de paridad y bit de inicio y fin de transmisión. El controlador de teclado informa a la PC del estado de las teclas y la PC le envía comandos para su configuración, re-inicialización, re-envío de datos, entre otras cosas. Panel de control La interfaz del sistema CNC involucra algunos teclados de propósito especial (véase Figura 3.7 que basan su operación en comunicarse a través del puerto serial de comunicaciones. La comunicación es bi-direccional pues las teclas envían información al puerto serial, donde se almacenan en una cola de teclazos (que no es lo mismo que caracteres, pues no todas las teclas generan caracteres, como son las teclas borrar, flecha arriba, etc.); asimismo, es posible habilitar o inhabilitar los indicadores del teclado (LEDs, Light Emitting Diode) por medio de instrucciones de software. La botonera del panel de control se encuentra dividida en varios grupos de funciones de propósito especial, a estos grupos se les conoce como: modo, función, estado, refrigerante, luz, transportador, etcétera (véase Figura 3.7). Cada una de las funciones de estos grupos realiza una tarea específica, la cual depende del modo en que se encuentre el sistema CNC en ese momento. Figura 3.7: Panel de control típico de una máquina-herramienta CNC CRHOMA-II de tres ejes. El actual diseño y características variarán para diferentes modelos de máquinas. Especialidad: Mecánica 34 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta A continuación haremos una breve descripción de las funciones más importantes del panel de control, utilizadas por el sistema de control numérico CNC CRHOMA-II si desea conocer más información acerca del sistema, véase LABMEC, 2003). Iniciar: se utilizan principalmente para comenzar a ejecutar los programas cargados en memoria o ejecutar una línea de comando en los modos MEM e IMD respectivamente. Detener: se utilizan principalmente para suspender la ejecución los programas en el modo MEM o suspender una línea de comando ejecutada en el modo IMD. PAP: permite la ejecución los programas cargados en memoria pasa a paso, es decir, el sistema CNC ejecuta una línea del programa y espera una señal para ejecutar la próxima línea, y así sucesivamente. AOP: permite detener temporalmente la ejecución del programa, al programar en el programa un M00. OBQ: permite ignorar las líneas que estén precedidas en le programa por una diagonal (/). Sobre avance: permite sobre-cargar la velocidad de avance programada en el programa, usualmente en el rango de 0% - 150%. MAN: permite mover los ejes (bancadas) de la máquina – herramienta de manera precisa (X1, X10 y X100), a través de un generador de pulsos. IMD: permite la entrada de datos o líneas de comandos al sistema CNC de manera manual. MEM: permite la ejecución de los programas automáticamente. ARCH: permite copiar, eliminar, pegar, etcétera archivos de dispositivos externos. EDT: permite realizar cambios en los programas almacenados en memoria. IMP: permite la operación manual de la máquina – herramienta por medio de teclas al configurar una nueva pieza o programa. En resumen, el protocolo de comunicación entre la botonera y la PC se realiza en forma de transmisión serial (RS--232) con diez y seis bits de datos, bit de paridad y bit de inicio y fin de transmisión. El controlador de la botonera informa a la PC del estado de las teclas y la PC le envía comandos para su configuración, re-inicialización, reenvío de datos, entre otras cosas; Además, el sistema controlador de la botonera trabaja de forma bi-direccional. 3.2 Sistema de Monitorización El método que utilizamos para detectar la colisión consiste como primera etapa en realizar el maquinado de una pieza en el cual se guarda el consumo de corriente en los Especialidad: Mecánica 35 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta motores durante el tiempo del maquinado, a esta etapa le llamamos proceso de aprendizaje y se guarda en memoria la curva del consumo de corriente en los tres motores de los ejes de la máquina. Mediante ello se establecen límites máximos de consumo de corriente con respecto al tiempo en cada motor. Una vez logrado esto se continúa con la producción de la piezas que se supone son iguales a la primera y se va monitorizando que el consumo no sobrepase en cada motor un 10% del consumido durante el proceso de aprendizaje ver figura 3.8 APRENDIZAJE MAXIMA CARGA C A R G A TIEMPO MONITORIZACION C A R G A PARO TIEMPO Figura 3.8 Sistema de monitorización de colisión Para detectar fallas tales como astillamiento o ruptura usamos un método de monitorización “sensorless” debido a que proponemos usar señales que ya están presentes en la máquina como pueden ser las señales de corriente de los servomotores Especialidad: Mecánica 36 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta y que presentan un método indirecto de medición de las fuerzas que se presentan en el maquinado. Esto hace factible el usarse en cualquier tipo de máquina y lo hace práctico porque no se altera en nada el diseño de sujeción de la pieza de trabajo, así como es un sistema muy económico debido a que no se usan sensores extras, la presente metodología esta basada en el trabajo de Troncoso y Herrera [2003]. La extracción de la fuerza de corte a partir de la señal de corriente de los servoamplificadores tiene la ventaja de no utilizar sensores especiales, puesto que se hace uso de una señal que se encuentra disponible en todas las máquinas CNC. Sin embargo, esta señal de corriente contiene componentes indeseables que se manifiestan como ruido de alta frecuencia, conmutación de la corriente de control y los efectos del tornillo de bolas. Con el objeto de extraer correctamente la información pertinente, manteniendo bajos los niveles de las señales espurias, se necesita determinar el intervalo dinámico de la señal para establecer los parámetros del filtro analógico. Es pertinente hacer notar que la señal de corriente de los servo-amplificadores que se utiliza en el presente trabajo, y en las citas referenciadas que hacen uso de ella, se trata realmente de una tensión normalizada proporcional a la corriente de alimentación del servo-motor y además es una señal que se encuentra disponible en todos los servo-amplificadores comerciales como estándar industrial. Por conveniencia de compatibilidad entre las diversas fuentes bibliográficas y el presente trabajo siempre que se haga uso de la señal fuente se referirá a ella como la señal de corriente del servo-amplificador, aunque en la realidad se trate de una tensión proporcional. El análisis resultante no se ve afectado por este tipo de consideraciones debido a que todas las señales se tratan de forma normalizada y el algoritmo desarrollado hace uso de la geometría de la señal, no de su amplitud proporcional. Los parámetros a considerar para el diseño del filtro son: tipo de filtro (pasabajas, pasa-bandas, etc.), aproximación (Butterworth, Chebyshev, etc.), el intervalo dinámico restringido por las frecuencias de corte y supresión, la atenuación máxima permitida en la banda de paso y la atenuación mínima requerida en las bandas de supresión. El objetivo primordial del presente apartado es correlacionar los parámetros de diseño con las condiciones operativas de la fresadora. Especialidad: Mecánica 37 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Para proceder con el análisis de la corriente de los servo-amplificadores, se debe establecer un modelo donde se consideren cada uno de los componentes que conforman el comportamiento general de la forma de onda. Mediciones directas de la forma de onda muestran severas interferencias dentro de la señal y que provienen de diferentes fuentes. Se debe recordar que el componente principal es la corriente de control del servo-motor. El segundo componente es la señal de la fuerza de corte, la cual se encuentra insertada en el componente principal. Las otras dos fuentes que contribuyen con la señal son los efectos del tornillo de bolas de la bancada y el ruido de conmutación inducido por el equipo digital que se encuentra cerca de la maquinaria (tarjeta controladora, computadora, etc.). Partiendo de la suposición de independencia lineal entre los diferentes componentes de la señal de corriente, se puede establecer un modelo aditivo simple para la corriente del servo-amplificador como se muestra en la figura 3.9. Figura 3.9 Modelo aditivo para la corriente del servo-amplificador. El componente principal de la corriente del servo-amplificador es la corriente de control al servo-motor. Esta señal se genera a partir del control digital de posición como una tensión en corriente directa DC (Direct Current) VC , la cual alimenta al servo-amplificador. Esta tensión de control en el servo-amplificador se utiliza para generar la corriente de control de la forma de una señal de corriente modulada por ancho de pulso PWM (Pulse Width Modulation). La señal PWM tiene un ancho de pulso con periodo constante TC y ancho variable, proporcional al nivel de tensión de control y se relaciona con el ciclo de trabajo como: DC = TH = KV VC TC (3.2) TH es el ancho de pulso en estado alto como se muestra en la figura 3.3 K I y V es la ganancia constante del PWM. Entonces, la corriente de control C se puede Donde establecer como: Especialidad: Mecánica 38 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta 0 < t < TH de otra manera ⎧I IC = ⎨ M ⎩0 (3.3) Figura 3.12 Forma de onda PWM. I M representa la corriente pico en el servo-amplificador. Considerando que la señal de corriente de control es periódica con periodo TC , I C puede expandirse en series de Fourier como: ∞ I C = I 0 + ∑ I n cos(2πnf C + ϕ n ) n =1 (3.4) Donde los principales componentes están representados por: I 0 = DC I M I1 = 2 IM π (3.5) sen πDC (3.6) I 0 es la componente de DC de la señal de corriente de control, mientras que I1 1 fC = TC y el resto de las componentes se encuentran es la componente centrada en f C . El espectro resultante de la señal de corriente de localizadas en múltiplos de control se muestra en la figura 3.10. Especialidad: Mecánica 39 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 3.10. Espectro de la señal de corriente de control. Desde el punto de vista central del presente trabajo, la componente más importante en la corriente del servo-amplificador es la señal de la fuerza de corte. El modelado analítico de las fuerzas de corte para fresado se pueden encontrar en Altintas (2000 a) y se puede ver como una función sinusoidal truncada más una constante. La frecuencia del componente principal se localiza en fF fF = donde: HN 2π (3.7) H es la velocidad del husillo en rev/s y N es un entero adimensional que representa el número de insertos de la herramienta de corte. Los componentes espectrales se encuentran distribuidos alrededor de cero y amplitud monotónicamente decreciente. k f F con k = 1,2,3,... y una Los efectos del tornillo de bolas sobre la corriente del servo-amplificador son no f lineales y se reflejan como armónicos y sub-armónicos centrados en la frecuencia B , la cual puede ser relacionada con la tasa de desplazamiento de la bancada R en mm/s y la relación del tornillo de bolas B en rev/mm para dar: fB = RB 2π (3.8) Los armónicos y sub-armónicos generados por efecto del tornillo de bolas son decrecientes de forma monotónica en ambos lados del componente principal, localizado en fB . El último componente que contribuye a la señal de corriente del servoamplificador es el ruido de conmutación que representa la interferencia producida por los sistemas digitales circundantes como la tarjeta controladora y las computadoras digitales. Esta señal de ruido tiene componentes espectrales en forma de armónicos y sub-armónicos del oscilador base del sistema digital. Mediciones realizadas en los sistemas digitales relacionados permiten determinar que el ruido de conmutación se localiza en frecuencias superiores a los 10 kHz, por lo tanto, es necesario eliminar la influencia de este ruido mediante un filtrado de todos los componentes espectrales por encima de los 10 kHz. Considerando todos los efectos relacionados con la señal de corriente del servoamplificador, la figura 3.11 muestra el espectro general a partir del cual es posible determinar los requisitos del filtro analógico con el objeto de extraer la señal de la fuerza de corte de una manera consistente. Especialidad: Mecánica 40 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 3.11. Espectro completo de la corriente del servo-amplificador. (No mostrada a escala) De la figura 3.11 se puede inferir que con el objeto de extraer la señal de fuerza de corte de una manera consistente, a partir de la corriente del servo-amplificador, algunas consideraciones deben tomarse en cuenta debido a las interferencias severas que se producen entre los diferentes componentes. Si la frecuencia central de la fuerza f << f << f F C , entonces la extracción de corte del fresado se encuentra restringida a: B de la señal es posible. Una vez que la condición se satisface, se puede establecer un procedimiento general para calcular los parámetros del filtro analógico. El sistema cuenta con un simulador del proceso de maquinado, de tal forma que de los Gs que tiene en memoria puede simular las señales del proceso de maquinado de tal forma que puede optimizar las velocidades de corte. La simulación se basa en el proceso físico del fresado (Herrera, 1994. Holstein 1969), el modelo matemático permite obtener una simulación bastante cercana al proceso de corte (Figura 3.12). La fuerza que nos interesa es la fuerza resultante, esta fuerza es la que tiene la información básica del estado del proceso de corte, esta fuerza se calcula con la siguiente ecuación: FR = Fx 2 + Fy 2 + Fz 2 (1) Donde Fx es la fuerza ejercida por la herramienta durante el proceso de corte en el eje X , Fy es la fuerza en el eje Y y Fz es la fuerza en el eje Z. Estas fuerzas son las que se obtienen directamente del sensor de fuerzas durante el experimento físico y serán las que se compararán con la simulación. Especialidad: Mecánica 41 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Fig 3.12 Modelo de Fresado Dado que nos interesa detectar fallas en maquinado de acabado (endmill) y careado (facemill). Normalmente estos cortes se realizan en dos y media dimensiones, esto es aunque tres ejes se mueven uno se mantiene fijo mientras los otros dos rotan. Esto permite despreciar una de las fuerzas que en este caso será Fz dado ello nos podemos concentrar en las otras dos fuerzas tomando en cuenta que si el plano de corte cambia solo se intercambian las fuerzas respectivas. Las fuerzas Fx y Fy son calculadas a través de la fuerzas tangencial Ft y radial Fr ejercida por la herramienta de corte. M Fx = ∑ δ(θi) (Ft cos θi + Fr sin θi) (2) i=1 M Fy = ∑ δ(θi) (Ft sin θi - Fr cos θi) (3) i=1 Si θs ≤ θi ≤ θe θi = 1 En caso contrario θi = 0 donde M es el número de dientes o cortadores de la herramienta θi es el ángulo de corte de entrada o inicio y θe es el ángulo de salida del cortador. La fuerza tangencial y radial se desprenden de las siguiente ecuaciones: Ft = kt bw hi (4) Fr = kr bw hi (5) donde bw es la profundidad de corte, kt y kr son constantes que depende de la dureza del metal de la pieza y del material de la herramienta, hi es la espesura instantánea de la viruta y se obtiene a través de las siguientes formulas: Especialidad: Mecánica 42 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta hi = Vt sinθi + (ri - ri-1) + ci; (6) si Vt sinθi + ri ≤ ri-1 entonces hi= 0 donde M ci = ∑ Vt sinθi + (ri-j - ri-j-1) (7) j =1 hasta que Vt sinθi + ri-j > ri-j-1 donde Vt es la velocidad de corte en mm/diente ri es el radio de cada cortador o diente de la herramienta, M el número de cortadores o dientes en la herramienta y θi es el ángulo instantáneo de corte. Las variables kt y kr se obtienen a través de las siguientes ecuaciones 8 kt = 2.6 * 10 hi kr = 0.6 * kt -0.206 (8) (9) Este modelo nos permite simular los procesos de corte bajo los diferentes estados físicos de la herramienta (normal, ruptura y astillamiento). La ruptura de herramienta se simula dándole al cortador (es) o diente (s) que se rompe (n) un radio ri de 0, en caso de astillamiento se le reduce al radio la cantidad deseada de acuerdo a la magnitud del daño que se desea simular. El procesamiento de las señales de fuerza se hace a través de la transformada de wavelet. Como mencionamos anteriormente la transforma de wavelet, nos permite enfocarnos en los detalles de la señal, tal y como si utilizáramos una cámara con un lente de zoom. Esto se logra a través de la resolución de los filtros empleados en la transformada, si aumentamos uno de ellos se incrementa la resolución en el dominio de frecuencia (a costa de la resolución en el dominio del tiempo), de tal forma que podemos ir enfocando nuestro análisis (lente) hasta llegar a la resolución donde el domino del tiempo y frecuencia son los más óptimos al tipo de cambios que nos interesa detectar. A diferencia de la transformada de Fourier, la cual solo proporciona información en el dominio de la frecuencia, la transformada de wavelet proporciona información en los dominios de tiempo y frecuencia simultáneamente. La teoría de wavelets también nos permite trabajar sobre los vacíos de información que a veces presentan los datos. En realidad la teoría de wavelets, a través de la transformada discreta de wavelet, supera a la transformada rápida de Fourier en el reconocimiento de los cambios pequeños de Especialidad: Mecánica 43 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta fuerza que se tienen cuando una herramienta corta, y los cuales son definitivos para predecir una falla que pueda volverse fatal en el proceso de maquinado. La transformada de wavelet obtiene su nombre por el uso de wavelets las cuales se usan para generar una familia de funciones wavelets Ψ (t) = a,b 1 Ψ( t − b ) donde a,b: real > 0. a a (10) La transformada continua de wavelet esta dada por: ∞ F(a,b) = ∫ −∞ f(t) Ψ *a,b (t)dt (11) Como podemos observar en esta ecuación la señal F(a,b) que se obtiene de la transformada de la señal f(t) esta definida en el plano a-b, donde a y b son usadas para ajustar el área de análisis en frecuencia y tiempo. Un valor pequeño de a produce un análisis de alta resolución en el dominio del tiempo, mientras una a grande produce una alta resolución en el dominio de la frecuencia. Incrementos en b hace que el análisis de la señal se recorra sobre la longitud de la señal a analizar. En el caso del análisis de Fourier no es posible localizar el análisis sobre un área específica tal como en el análisis de wavelet, si incrementamos la frecuencia de los cosenos y senos (que se usan para obtener la transformada de fourier) en el análisis el resultado se expanderá alrededor del plano del tiempo, siendo imposible fijarlo sobre una parte localizable (específica) del análisis. Tal como sucede con Fourier bajo la transformada discreta de fourier, para poder programar la transformada de wavelet es necesario utilizar la transformada discreta de wavelet. Métodos de discretización son usados para ello. La transformada discreta de wavelet se obtiene de la transformada continua a través de la discretización de la ecuación 10. Una discretización comúnmente usada es: Ψj,k(t) = 1 Ψ( t − 2 ) donde j,k: enteros. a jk 2j (12) Como se puede observar a ha sido reemplazado por 2j y b por 2jk la transformada discreta de wavelet esta dada por Especialidad: Mecánica 44 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta ∞ Cj,k = ∫ −∞ f(t) Ψ * j,k(t)dt (13) La transformada discreta es obtenida de ecuación 13 discretizando f(t) ∞ dj+1,k = ∑ h (i − 2 k ) dj , k (14) I = −∞ ∞ cj+1,k = ∑ g (i − 2 k ) dj , k (15) I = ∞ Cj,k representa la versión discretizada de la funcion original f(t), a cada resolución j>1 los coeficientes dj,k representan la aproximación de baja frecuencia de la señal y cj,k representa la distribución de altas frecuencias. De esta forma es posible programar un algoritmo de la transformada de wavelet, h y g son filtros que se pueden programar de diferentes formas dependiendo de la resolución buscada, en similitud con las variables a y b de la transformada continua de wavelet. En el caso de la transformada de Fourier existe un solo tipo de filtro basado en senos y cosenos, en el caso de la transformada de wavelet existe un número infinito de filtros posibles a diseñar. Con los datos obtenidos de la transformada se procesan por un método estadístico de asimetría el cual se basa en la ecuación 10 A = ∑ (Bi +10 − Bi ) 2 i =1 donde A es el valor de la asimetría y B son los coeficientes obtenidos de la transformada de wavelet. La figura 3.13 muestra la gráfica normalizada de la asimetría, obtenida del detector de ruptura en herramientas de corte en condiciones de prueba dinámica y graficada revolución por revolución en el husillo para todo el proceso de maquinado. Al inicio del proceso de fresado, cuando las herramientas están nuevas y sin daño, el valor de la asimetría de la DWT es cercano a cero. Conforme continúa el proceso de fresado, una Especialidad: Mecánica 45 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta herramienta comienza a desgastarse y el valor de la asimetría se incrementa. Finalmente, cuando se rompe la herramienta, la asimetría se incrementa significativamente y se puede detectar un pico en su valor e identificar el ciclo en el que se produce la ruptura. Un detalle comparativo entre la asimetría, los coeficientes de la DWT y los datos en el dominio del tiempo se muestran en la figura 4 donde se han seleccionado algunos ciclos de maquinado para mostrar la operación en diferentes condiciones del proceso. Las revoluciones seleccionadas corresponden a los índices: 500, 1050, 1108 y 1120. Para la revolución con índice 500, el sistema de detección de ruptura indica que las herramientas se encuentran en condiciones normales de operación. En la revolución 1050 se detecta cierto grado de desgaste en las herramientas y así es indicado por el sistema con un incremento en la asimetría. Cuando se produce la ruptura se detecta un incremento significativo en el valor de la asimetría, reflejado en la revolución de índice 1108 del experimento. Después de la ruptura, el sistema de detección indica que la condición de las herramientas se ha degradado, por ejemplo en la revolución de índice 1120. Figura 3.13 Asimetría normalizada durante la prueba dinámica. Especialidad: Mecánica 46 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta En la figura 3.14 se puede observar que los datos en el dominio del tiempo muestran muy pocas variaciones en la forma de onda para las diferentes condiciones de las herramientas de corte por lo que se hace muy difícil su identificación directa. Esta forma de onda contiene 256 puntos por revolución con ruido insertado. Por otro lado, los coeficientes de la DWT representan una versión comprimida de los datos en el dominio del tiempo con la ventaja de no mostrar los componentes indeseables de frecuencia. Como se muestra en la figura 4, la DWT mantiene la geometría de la señal original con menos puntos por revolución (8 puntos para el detalle de nivel 5) y la condición de las herramientas de corte se puede identificar fácilmente. La asimetría, como una función de autocorrelación no lineal, proporciona una estimación de la condición de las herramientas de corte mediante la comparación de las fuerzas de corte ejercidas por ambos insertos, llegando a detectar desgaste y ruptura en la herramienta. Figura 3.14 Detalle de la asimetría, coeficientes de la DWT y datos en el dominio del tiempo para la prueba dinámica del sistema. La figura 3.15 muestra una fotografía en acercamiento con las herramientas de corte después del experimento de ruptura. El experimento se repitió varias veces y siempre se obtuvieron resultados similares, indicando que el sistema de detección de ruptura en herramientas de corte funciona adecuadamente y con la suficiente precisión para detectar ruptura en las herramientas de corte y, hasta cierto grado, desgaste. Especialidad: Mecánica 47 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Fig 3.15 Herramientas de corte Este sistema de monitorización esta instalado para la versión del CNC en máquinas fresadoras o máquinas de 3, 4 y 5 ejes de libertad, a continuación en el siguiente anexo se muestra la experiencia con la instalación de dicho sistema en un máquina taladradora de una empresa del estado de Querétaro. En figura 3.16 se puede observar la máquina monitorizada. Fig 3.16 Máquina Taladradora Especialidad: Mecánica 48 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta En la Figura 3.17 se puede observar la pieza que se trabaja en dicha máquina. Figura 3.17 pieza trabajada Así mismo se puede observar en figura 3.18 la herramienta y la astilladota en la misma que produce en la pieza trabajada en defecto que hace que la pieza sea rechazada. Figura 3.18 Pieza y herramienta defectuosa En figura 3.19 sepuede observar las señales tomadas del procesos de maquinado de dicha pieza, una con la herramienta en buen estado y la segunda en mal estado, así mismo se muestran las señales sin filtrar tal como se obtienen de los servoamplificadores y una vez filtradas. Especialidad: Mecánica 49 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Fig 3.19 señales obtenidas por el sistema de monitorización Como se puede observar en la figura 3.20 después del ciclo 12 se detecta que la herramienta esta en mal estado, pudiendo observar la eficacia del sistema de monitorización. Figura 3.20 ciclo de producción En fig 3.21 se muestra el prototipo final del CNC desarrollado. Especialidad: Mecánica 50 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Figura 3.21 Sistema CHROMA-II 4 Conclusiones El desarrollo del presente trabajo muestra el desarrollo de un Control Numérico de Arquitectura Abierta CHROMA-II el cual tiene capacidades de detección de fallas en maquinados, se describierón tres ideas originales: el análisis sistemático de la corriente de control de los servo-amplificadores para la extracción de la señal de fuerza de corte para el monitoreo sin sensores, el uso de la asimetría de la DWT como figura de mérito para la determinación del estado de las herramientas de corte en máquinas CNC y la propuesta de una arquitectura del CNC. El CNC desarrollado tiene un costo menor a las 10,000 USD así mismo la sección de monitorización tiene un costo total estimado inferior a los $300.00 (Trescientos dólares Us. Cy.) resulta en un sistema competitivo comercialmente cuando se compara con sistemas como el Brankamp de Siemens y el Montronix cuyos precios son superiores a los $10,000.00 (Diez mil dólares Us. Cy.). Al proponer y comprobar estas ideas originales, además de haber resuelto el problema original de la detección de ruptura en herramientas de corte, se ha podido abrir una nueva línea de desarrollo tecnológico encaminada a la solución de problemas relacionados con el área por medio de algoritmos de procesamiento digital de señales. Esta línea es prometedora tanto tecnológica como académicamente para mejorar la Especialidad: Mecánica 51 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta productividad en futuros desarrollos realizados en el posgrado de Instrumentación y Control Automático de la Facultad de Ingeniería de la UAQ. Bibliografía Actel Corporation. 1997. ACT-1 Family FPGAs data sheet. Actel Corporation. Actel Corporation. 2001. SX-A Family FPGAs data sheet. Actel Corporation. Altintas, Y. 2000 a. Manufacturing automation, metal cutting mechanics, machine tool vibrations and CNC design. Cambridge University Press. New York. Altintas, Y. 2000 b. Modeling approaches and software for predicting the performance of milling operations at MAL-UBC. Machine Science and Technology, Marcel Dekker Inc. 4:445-478. Bass, M. J., and C. M. Christensen. 2002. The future of the microprocessor business. IEEE Spectrum. April 2002. IEEE Press. New York. Bejhem, M, and C-M Nicolescu. 1999. Machining condition monitoring for automation. Proc. 3rd International Conference on Machining & Grinding. October 4-7. Society of Manufacturing Engineers. Cincinnati. OH. Blaauw, G. A., and F. P. Brooks. 1997. Computer architecture, concepts and evolution. Addison Wesley. Reading. MA. Burr-Brown Corporation. 1998. ADS7862 Data Sheet. Burr-Brown Corporation, a division of Texas Instruments Inc. Carter, J. W. 1996. Microprocessor architecture and microprogramming, a state machine approach. Prentice Hall. NJ. Chandrakasan, A., W. J. Bowhill, and F. Fox. 2001. Design of a high-performance microprocessor circuit. IEEE Press. CA. Especialidad: Mecánica 52 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Chang, K. C. 1999. Digital design with VHDL and synthesis, an integrated approach. IEEE Computer Society Press. CA. Chen, W.-K. (Editor-in-chief). 2000. The VLSI handbook. CRC Press and IEEE Press. Boca Raton. FA. Daubechies, I. 1988. Orthonormal bases of compactly supported wavelets. Communications on Pure and Applied Mathematics. 41:909-996. Daryanani, G. 1976. Principles of active network synthesis and design. John Wiley and Sons, New York. Herrera-Ruiz, G., C. Gutierrez-Mazzotti and K. Mori. 1995. Design of a multiprocessor based monitoring system applied to machine tools Proc. 2nd International Conference on Computer Integrated Manufacturing. September. World Scientific & Global Publications Services. Singapore. Jawahir, I. S., and A. K. Balaji. 2000. Predictive modeling and optimization of turning operations with complex grooved cutting tools for curled chip formation and chip breaking. Machine Science and Technology. Marcel Dekker Inc. 4:399-443. Johnson, D. N. 2000. Recognizing tool failure, Proc. Metalworking Fluids Conference, March 22-23, 2000. Society of Manufacturing Engineers. Arlington Highs. IL. Kaiser, G. 1994. A friendly guide to wavelets. Birkhauser, Quinn-Woodbine. New Jersey. Kasashima, N., K. Mori, and G. Herrera-Ruiz. 1994. Diagnosing cutting tool conditions in milling using wavelet transform. Proc. 7th Int. Conference on Production/Precision Engineering. September 15-17. JSPE Publication Series I. Elsevier Science Ltd. Chiba. Japan. Li, X., A. Djordjevich, and P. Venuvinod. 2000 a. Current-sensor-based feed cutting force intelligent estimation and tool wear condition monitoring. IEEE Trans. On Industrial Electronics. 47:697-702. Especialidad: Mecánica 53 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Li, X., S. Dong, and Z. Yuan. 2000. Discrete wavelet transform for tool breakage monitoring. Int. J. Of Machine Tools and Manufacture. 39:1935-1944. Li, X., and S. K. Tso. 1999. Drill wear monitoring based on current signals. Wear. Elsevier Science Ltd. 172-178. Li., X., S. K. Tso, and J. Wang. 2000 c. Real-time tool condition monitoring using wavelet transform and fuzzy techniques. IEEE Trans. On Systems, Manufacture and Cybernetics. Part C: Applications and Reviews. 30:352-357. Li, X., P. K. Venuvinod, and M. K. Chen. 2000 b. Feed cutting force estimation from the current measurement with hybrid learning. Int. J. Of Advanced Manufacturing Technology. Springer-Verlang. London. Lim, H., V. Piuri, and E. E. Swartzlander Jr. 2000. A serial-parallel architecture for twodimensional discrete cosine and inverse discrete cosine transforms. IEEE Trans. On Computers. 49:1297-1309. Madisetti, V. K., and D. B. Williams (Editors). 1998. The digital signal processing handbook. CRC Press and IEEE Press. Boca Raton. FA. Marino, F. 2000. Efficient high-speed/low-power pipelined architecture for the direct 2D discrete wavelet transform. IEEE Trans. On Circuits and Systems II: Analog and Digital Signal Processing. 47:1476-1491. Marino, F., D. Guevorkian, and J. T. Astola. 2000. Highly efficient high-speed/lowpower pipelined architecture for the 1-D discrete wavelet transform. IEEE Trans. On Circuits and Systems II: Analog and Digital Signal Processing. 47:14921502. Matsumura, T. 2001. Self-adaptive tool wear monitoring system in milling process. Proc. XXIX NAMRC Conference. May 22-25. Society of Manufacturing Engineers. Gainsville. FA. Especialidad: Mecánica 54 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Milutinovic, V. 1997. Surviving the design of a 200 MHz RISC microprocessor, lessons learned. IEEE Computer Society Press. CA. Oguamanam, D. C. D., S. D. Bhole, H. Raafat and S. M. Tabourn. 1990. Tool wear minitoring and breakage detection: a machine vision approach. Proc. Conference VISION ’90. November 12-15. Society of Manufacturing Engineers. Detroit. Michigan. Parhami., B. 2000. Computer arithmetic, algorithms and hardware design. Oxford University Press. New York. Patterson, D. A., and J. L. Hennessy. 1998. Computer organization & design, the hardware/software interface (2nd Edition). Morgan Kaufmann. San Francisco. CA. Pekmastzi, K. Z. 1999. Multiplexer-based array multipliers. IEEE Trans. On Computers. 48:15-23. Prickett, P. W., and C. Johns. 1999. An overview of approaches to end milling tool monitoring. International Journal of Machine Tools and Manufacture. 39:105122. Proakis, J. G., and D. G. Manolakis. 1996. Digital signal processing, principles, algorithms, and applications (3rd Ed.). Prentice Hall Inc. New Jersey. Romero-Troncoso, R. De J., and G. Espinosa-Flores-Verdad. 1999 a. Phase accumulator algorithm for DDS applications. Electronics Letters. May 13th. 35(10). Romero-Troncoso, R. De J., and G. Espinosa-Flores-Verdad. 1999 b. VHDL core for synthesis of phase accumulators in DDS applications. Proc. 2nd Forum on Design Languages FDL’99. Lyon. France. Romero-Troncoso, R. De J., and G. Espinosa-Flores-Verdad. 1999 c. Algorithm for phase accumulator synthesis for applications in DDS. Proc. Of the 3rd Especialidad: Mecánica 55 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta International Workshop on Design of Mixed-Mode Integrated Circuits and Applications. Puerto Vallarta. Mexico. Roth, J. T., and S. M. Pandit. 1999. Using multivariate models to monitor end-mill wear and predict tool failure. Proc. XXVII NAMRC Conference. May 25-28. Society of Manufacturing Engineers. Berkeley. CA. Rubinfield, L. P. 1975. A proof of the modified Booth’s algorithm for multiplication. IEEE Trans. on Computers. 25:1014-1015. Shriver, B., and B. Smith. 1998. The anatomy of a high-performance microprocessor, a system perspective. IEEE Computer Society Press. CA. Skahill, K. 1996. VHDL for programmable logic. Addison Wesley and Cypress Semiconductor- CA. Sood, A. K., and M. Abdelguerfi. 1985. Computer-based approaches to tool condition monitoring. Proc. Sensors Conference ’85. November 5-7. Society of Manufacturing Engineers. Detroit. Michigan. Stelling, P. F., C. U. Martel, V. G. Oklobdzija, and R. Ravi. 1998. Optimal circuits for parallel multipliers. IEEE Trans. On Computers. 47:273-285. Teltz, R. W., A. Shawky, K. Urbasik and M. A. Elbastawi. 1995. Sensor based planning and control for open architecture machining. Proc. XXIII NAMRC Conference. May 24-26. Society of Manufacturing Engineers. Houghton. Michigan. Texas Instruments Inc. 1999. TL084 data sheet. Texas Instruments Inc. Trang, Y. S., and B. Y. Lee. 1992. Use of model-based cutting simulation system for tool breakage monitoring in milling. International Journal of Machine Tools and Manufacture. 32:641-649. Vetterli, M., and C. Herley. 1992. Wavelets and filter banks: theory and design. IEEE Trans. on Signal Processing. 40:2207-2232. Especialidad: Mecánica 56 CHROMA Desarrollo de un Control Numérico de Arquitectura Abierta Wang., L. 2001. Tool wear monitoring in machining processes through wavelet analysis. Proc. XXIX NAMRC Conference. May 22-25. Society of Manufacturing Engineers. Gainsville. FA. Webster, J. G. (Editor-in-chief). 1999. The measurement, instrumentation and sensors handbook. CRC Press and IEEE Press, Boca Raton. FA. Yao, Y., X. Li, and Z. Yuan. 1999. Tool wear detection with fuzzy classification and wavelet fuzzy neural network. Int. J. Of Machine Tool and Manufacture. 39:1525-1538. Yeh, W. C., and C. W. Jen. 2000. High speed Booth encoded parallel multiplier design. IEEE Trans. On Computers. 49:692-701. Yu, S., and E. E. Swartzlander Jr. 2001. DCT implementation with distributed arithmetic. IEEE Trans. On Computers. 50:985-991. Especialidad: Mecánica 57