Las empresas suelen depender de software obsoleto para el control estadístico de procesos (CEP) en la monitorización de los procesos de fabricación. Si bien existen numerosos programas de CEP en la industria, las empresas a menudo se aferran a programas heredados que dificultan el análisis y la presentación de datos para los usuarios.
Este póster presenta un método para crear gráficos SPC que muestran datos de espesor de película en hornos comúnmente utilizados para procesar grandes lotes de obleas en la industria de semiconductores. Estos hornos de gran volumen presentan múltiples factores que pueden influir en los resultados de espesor. Mostrar esta información en JMP Graph Builder ofrece varias ventajas, entre ellas:
Dado que JMP puede mostrar información fácilmente y tiene una gran interactividad para identificar problemas, ayuda a los ingenieros a tomar decisiones con mayor confianza.
Hola. Me llamo Cody Sandquist y soy ingeniero de procesos en NXP, en Austin, Texas. Empecé a usar JMP Scripting hace unos años y, si bien ha sido todo un reto, me ha resultado muy útil en mi trabajo diario. Hoy les presento una interfaz que he creado con JMP para el control estadístico de procesos (SPC).
Cualquier persona que trabaje en el sector manufacturero, seguramente conoce el SPC. He utilizado varios sistemas SPC a lo largo de mi trayectoria profesional. Algunos son mejores que otros, pero todos tienen alguna limitación: carecen de la interactividad o la capacidad de navegar rápidamente por la información que ofrece JMP.
Hoy les presento una forma de crear gráficos SPC y usar JMP para agilizar la toma de decisiones de ingeniería y compartir la información. Uno de los problemas que tenemos con algunos programas SPC, como el que usamos aquí (no el de NXP), es que se trata de un sistema bastante antiguo. Yo mismo los uso en mi trabajo.
Un breve apunte sobre estos hornos: utilizamos hornos verticales de gran tamaño con capacidad para hasta 150 obleas de producción (o 6 lotes, lo cual es importante). Cada lote consta de 25 obleas y el horno tiene varias zonas. Utilizamos monitores de obleas de prueba en diferentes zonas para controlar el espesor de la película no solo en un lote, sino en cada zona individual del horno.
El programa SPC que utilizo, en primer lugar, muestra un horno a la vez, cuando lo ideal sería ver todos los hornos en el mismo gráfico para poder identificar si alguno presenta anomalías. Además, no muestra el espesor de cada zona individualmente, sino el promedio de todas las zonas. Si existe algún problema específico en una zona, resulta muy difícil detectarlo si solo se utiliza este programa SPC.
Además, resulta muy difícil analizar otros factores comunes que causan problemas. Esto puede incluir la cantidad de lotes de producción en una tanda. El tamaño de la carga, por ejemplo, si se utilizan 25 obleas en lugar de 150, puede generar resultados de espesor diferentes. El equipo de metrología que mide el espesor podría haber sufrido una mala calificación, y no es raro encontrar equipos de metrología defectuosos. A veces, resulta difícil obtener esta información si solo nos basamos en el sistema SPC.
Utilizando JMP Scripting como solución, creé mi propio panel de control personalizado donde pude visualizar todos los hornos en un solo gráfico. Puedo mostrar la información según la posición del horno (parte superior, parte inferior) y ver si ocurre algo en esa ubicación específica.
Como ya mencioné, para muchos factores comunes, puedo detectar si hay algún otro factor en juego. Quizás se trate de una medición metrológica o del tamaño de la carga. Incluso puedo incorporar a esta tabla otra información, como la del proveedor de obleas, y comprobar si, al cambiar de proveedor, se producen variaciones en el grosor. Estas funcionalidades hacen que JMP sea más fácil de usar y ofrece más opciones que algunos programas SPC comunes.
Con esta configuración, me gusta acceder rápidamente a la receta del proceso deseado. Si no están familiarizados con las recetas, tenemos muchos tipos de procesos con diferentes objetivos de espesor. Quiero identificar y acceder rápidamente a la receta del proceso que necesito. Por eso, diseñé una ventana emergente donde simplemente escribo el nombre y pulso Aceptar.
Al hacerlo, toma ese nombre y lo asocia con un archivo para ese proceso. Filtrará hasta el límite de espesor y el objetivo para esa receta de proceso. Tengo un archivo de espesor sin procesar. Los datos de nuestro sistema SPC contienen información de espesor para varias recetas. Así que, al rellenar de nuevo, filtrar hasta la receta deseada y graficar todo esto en el Generador de Gráficos.
Me gusta mucho Graph Builder porque es muy interactivo. Como pueden ver, en estos dos gráficos, aquí arriba solo tengo un horno, mientras que aquí abajo tengo varios y puedo visualizar los datos de todas las zonas. De hecho, lo tengo configurado para realizar cálculos donde no solo necesito el espesor medio, sino también la desviación estándar y el rango para cada zona. Así que también puedo personalizarlo de esa manera.
Luego, si quiero filtrar por algunos de esos factores comunes, como el equipo de metrología o el tamaño de la carga, puedo hacerlo rápidamente. También puedo filtrar por horno individual. Claro, la ventaja es una mayor personalización y flexibilidad para crear gráficos SPC. Además, se pueden analizar rápidamente los diferentes factores que causan variaciones, capturar la pantalla, compartirla y empezar a identificar soluciones. Si una zona está desfasada y necesito hacer algún ajuste, puedo hacerlo.
La única desventaja es que tengo que extraer manualmente los datos de grosor y guardarlos como archivo CSV o de texto. Lo ideal sería poder conectarme directamente a nuestra base de datos en NXP, pero no tengo los permisos necesarios. Así que no es culpa de JMP, sino que simplemente no tengo esa capacidad en mi empresa.
Para entrar en más detalles sobre el script, sé que no es muy emocionante explicarlo paso a paso, pero lo simplificaré y me centraré en los puntos clave y su funcionamiento. Como ya mencioné, tengo un archivo de espesor sin procesar que debo extraer, el cual contiene todos los datos de espesor de varias recetas de proceso. También tendré otro archivo que guardo con los límites y objetivos de SPC, y utilizo la función modal de JMP para abrir una ventana emergente. En esta ventana emergente, escribo el nombre de la receta deseada y se filtran los resultados para obtener la información del archivo de espesor sin procesar, así como los límites correspondientes.
A partir de ahí, se guardarán los límites y el objetivo como variables, las cuales se usarán posteriormente para crear las líneas, los objetivos y los límites, así como el incremento y el tamaño en el Generador de Gráficos. Esto demuestra la flexibilidad de la programación en JMP, ya que no todas las filas de los archivos de datos son equivalentes. Cada lote individual variará. A veces, nuestros monitores de obleas de prueba tendrán dos obleas, que se ejecutarán en las zonas superior e inferior. Otras veces habrá tres obleas. Otras veces habrá cinco obleas. Por lo tanto, una fila tendrá dos columnas completas, otra tendrá tres, otra cinco, y esto cambia cada vez.
Con una serie de condicionales (de nuevo, no entraré en detalles), puedo identificar, en función de qué columnas estén completas, a qué zona individual hace referencia cada una de esas celdas y, por lo tanto, asignarle la posición correcta para que no haya errores ni confusiones, y para evitar que aparezca en la zona equivocada al mostrarla en el Generador de gráficos.
Para retomar un punto importante sobre la finalización del script en Graph Builder, esas variables se colocan en Graph Builder para crear las líneas, y puedo personalizar Graph Builder para que muestre la información como desee. Un ejemplo rápido de un problema que tuve en el trabajo fue que, en el SPC (nuestro gráfico principal de SPC), un horno de una de las recetas del proceso presentaba una desviación estándar elevada. Cabe recordar que nuestro sistema SPC no muestra muchos detalles.
Utilizando mi script de JMP, pude separar la información de las distintas zonas, y en la zona inferior se observó una distribución bimodal. Esto indicaba que algo estaba ocurriendo allí. Luego, filtré la información de este horno en particular para mostrar solo los datos de este horno, aplicando algunos factores comunes. En este caso, se trataba del tamaño de la carga. Una carga de seis lotes; es decir, un lote completo, lo que significa que el horno estaba lleno con 150 obleas de producción. De esta manera, pudimos determinar con precisión cuál era el problema.
El problema se producía en la parte inferior del horno durante la producción de lotes completos; el rango de temperatura se disparaba. Luego pude combinar esta información con las coordenadas de nuestro sistema de metrología para crear mapas de obleas e incluso investigar qué parte de la oblea o qué sección del horno estaba causando los problemas.
Al compartir esta información con nuestros técnicos, podremos actuar sabiendo exactamente dónde estaba el problema en el horno, reemplazar las piezas y lograr que el horno vuelva a funcionar correctamente y de forma estable. Este es solo un breve ejemplo. Gracias por su tiempo. Espero que les haya resultado útil. Nos vemos en la conferencia.