Anteriormente, la comparación de configuraciones de cámaras entre cámaras del mismo mainframe o de diferentes mainframes implicaba un método manual que tardaba un día. Recientemente, se desarrolló un proceso automatizado con Workflow Builder en JMP 17. Se crearon archivos de flujo de trabajo individuales para agilizar el proceso, utilizando un flujo de trabajo individual según el número de cámaras comparadas. Los flujos de trabajo tomaban el archivo de configuración y comparaban la cámara de referencia con la(s) cámara(s) consultadas. El proceso generó un informe con gráficos y tablas según la criticidad de las discrepancias de configuración.
Esta presentación muestra la eficacia de la nueva función condicional de Workflow Builder en JMP 18. Esta función permite combinar todos los flujos de trabajo de comparación en uno solo. La sección correcta del flujo de trabajo se determina según el número de cámaras que se comparan, introducido por el usuario en una solicitud condicional. El flujo de trabajo correspondiente se selecciona según la solicitud. El resultado final sigue siendo el mismo, pero ahora se ha eliminado la selección manual del archivo de flujo de trabajo, lo que permite generar un informe de comparación entre múltiples plataformas en uno o dos minutos.
Hola a todos. Me llamo Gary O'Driscoll. Trabajo para Applied Materials y hoy les presentaré el uso de Workflow Builder y las indicaciones condicionales para monitorear los límites de temperatura de las líneas de gas de deposición de capas atómicas. También les explicaré cómo usar Workflow Builder para esto, especialmente en las indicaciones para la descompresión de JMP, donde se introdujo la aplicación.
Un poco de información sobre mí. Como ya he dicho, trabajo para Applied Materials en Dublín. Soy ingeniero de procesos y, por supuesto, de múltiples procesos. Tengo casi 30 años de experiencia en semiconductores. Como afición, practico ciclismo, juego al golf y soy entrenador de camogie. Es un deporte en Irlanda, y se juega con un equipo femenino adulto. En el masculino se llama hurling. Si alguna vez has estado en Irlanda y has oído hablar de un juego salvaje en el que jugábamos con palos, esto es lo que yo entreno.
Una encuesta rápida sobre quién usa JSL. Si analizamos JSL y todos sus usuarios, ¿cuántos lo usan realmente? Se dividen en dos grupos. Estás en el bando del sí, donde JSL forma parte de tu rol, te encanta. Quizás soy un experto en código y lo uso a diario. Pero también estoy en el bando del no, donde JSL no forma parte de mi rol. No entiendo el código y nunca lo he usado. Personalmente, estoy en el bando del no. No entiendo realmente el código. A veces intento aprender un poco sobre la marcha. Hay una manera de pasar del no a estar casi a medio camino y casi saltar al sí. Hoy les mostraré parte de eso.
En el lanzamiento de JMP 17, que recordamos en Cary, Carolina del Norte, durante la Discovery Summit, se presentó Workflow Builder. Si lo piensas, Workflow Builder es donde registramos lo que queremos hacer con la manipulación de datos, pero ayuda a cambiar la relación entre el código y el resultado. Desde la perspectiva de JSL, desarrollamos el código para obtener el resultado que necesitamos. Con Workflow Builder, obtenemos el resultado, manipulamos los datos que queremos y se genera código en segundo plano. Los flujos de trabajo permiten al usuario experimentar y aprender código JSL sin conocimientos previos.
Si observamos el constructor, podemos ver que en él crearé mis propias tareas que quiero realizar a partir de la manipulación. En la configuración de pasos del Constructor de Flujos de Trabajo, se puede ver que el código se genera en segundo plano para cada pequeña tarea que quiero realizar. Los flujos de trabajo se utilizan para tareas repetitivas. Mejoran enormemente la eficiencia, evitando repetir lo mismo una y otra vez. El código del flujo de trabajo es visible y editable.
Si intentara hacer esto por mi cuenta, especialmente al empezar con Workflow Builder, descubrí que, para seleccionar los archivos que necesitaba, elegía el que realmente necesitaba, y el nombre estaba aquí. Sin embargo, no siempre quería usar ese archivo. Puedo hacer ajustes en el código aquí. Donde aprendí mucho sobre cómo seleccionar un archivo genérico, todo esto lo obtuve de la comunidad JMP. Cuando te metes en el código por primera vez, no es la primera vez que te encuentras con un problema. Alguien en la comunidad JMP ya lo ha resuelto y ha compartido un código en la comunidad.
Luego, cuando pensamos en el lanzamiento de JMP 18, este se lanzó en Manchester, Europa, durante la Cumbre Discovery. Allí escuchamos sobre las seis P. Además de ellas, había una séptima P incluida en JMP 18, de la que me enteré después de la cumbre. Esa P eran las indicaciones, o indicaciones condicionales en Workflow Builder, para ser más precisos.
Cómo uso las indicaciones y las indicaciones condicionales en mi puesto. Explicaré qué, por qué y cómo lo hago. ¿Qué estoy haciendo? Estoy revisando la configuración de temperatura para detectar alarmas de fallo y advertencias de alarma en la deposición de capa atómica (ALD), ya que las líneas de gas de la cámara probablemente se deben a tareas de mantenimiento preventivo. ¿Por qué lo hago? Porque cualquier cambio de temperatura no detectado por las alarmas podría resultar en el descarte de producto. El método es verificar la configuración utilizando los Generadores de Flujo de Trabajo mejorados que utilizan indicaciones condicionales.
Para quienes no estén familiarizados, la ALD se utiliza en numerosas aplicaciones en todas nuestras industrias. Es un proceso que deposita material directamente sobre la superficie, una monocapa a la vez. Produce las películas más delgadas y uniformes posibles con un proceso autolimitante. Ejemplos de esto en nuestras industrias son los recubrimientos en viales de laboratorios, productos químicos y biomédicos. También se utilizan recubrimientos en dispositivos médicos y, de hecho, en fabricantes de dispositivos semiconductores. Dentro del chip, puede haber una capa. Aquí es donde utilizamos la ALD en todas nuestras industrias.
¿Cómo se usa en la industria de semiconductores? Quizás igual que en otras industrias. Tengo un contenedor con un producto químico líquido, que se usa en el proceso. Los productos químicos se utilizan en el proceso, pero se transportan no en forma líquida, sino en forma de vapor, desde un contenedor hasta la superficie del chip en una cámara de vacío a través de un recipiente. En este caso, se trata de una línea de gas. Este es un dibujo básico de todo el flujo químico, pero para ilustrar el concepto, tendríamos varias almohadillas térmicas a lo largo de todo el recipiente, desde el contenedor hasta una cámara en la superficie del chip.
La superficie del chip, lo que muestro aquí es una representación de un solo chip, pero en semiconductores, tenemos varios chips sobre un sustrato u oblea en una cámara. Depositamos sobre ellos. Los ajustes de los límites de la almohadilla térmica deben revisarse después de cada cambio de contenedor. Los puntos fríos, como mencioné antes, podrían provocar la condensación de un gas, lo que causaría defectos en el chip. Esto se debe a que, al enfriarse, un gas se condensa y, al volver a su estado líquido, puede secarse y luego volver a su estado sólido, depositándose en el chip y causando un problema.
El método anterior, desde la configuración y la comprobación de la configuración en varias cámaras. Si lo piensas, lo que hacía era tener un solo Generador de Flujo de Trabajo si quería verlo como una sola cámara. Si quería ver dos cámaras diferentes, tenía otro Generador de Flujo de Trabajo. De igual manera, en la parte superior del diagrama, solo se muestran hasta seis cámaras, pero podría haber más. El método anterior consistía en tener un archivo según el número de cámaras que usara, seleccionarlo y así se ejecutaba.
Si volvemos a las indicaciones, con el Generador de Flujos de Trabajo, ahora hay una función que nos permite no solo seleccionar una, sino también indicar: "En lugar de tener seis, combínalas todas en una". En JMP 18, en el Generador de Flujos de Trabajo, pueden ver una sección en "Avanzado". Luego, al acceder a "Avanzado", aparece otro menú. Dentro de estas, pueden ver estas cuatro opciones: "Añadir si", "Añadir si no", "Añadir retorno" y "Añadir para cada". Estas permiten que un paso se bifurque. No es una única ruta. Puedo seguir una u otra ruta según lo que introduzca. Esta es la nueva función que ya estaba en JMP 18, y aquí es donde la estoy usando.
Para darles una idea del nuevo método, desde la perspectiva de un diagrama de flujo, comenzaría y luego recibiría una solicitud. Preguntaría: "¿Estoy usando una cámara?". Si es así, ejecutaría mi flujo de trabajo, obtendría un informe y listo. Si mi solicitud no era una, continuaría. Luego, preguntaría: "¿Son dos?". Sí, podemos ejecutar esa. Si no, continuaría. Revisaría continuamente cada una de estas y, según el número, verificaría lo que ingresé en mi solicitud. Luego, cualquiera que coincidiera, ejecutaría ese informe automáticamente. El nuevo método integra fallos "if else" o declaraciones "if else" dentro de un flujo de trabajo más amplio. Este es mi método.
Como ingeniero de oficina, no conozco JSL. Así es como se me ocurrió este concepto y cómo me funciona. Puede que existan otros métodos, pero este es el mío. Permítanme mostrarles una demostración.
Si usara el método antiguo, quizás tendría una verificación de cuatro cámaras. En mi verificación, indicaría que quiero verificar el archivo. A partir de este archivo, generaría la tabla de datos y la guardaría como archivo JMP. Abriría mi archivo maestro. Compruebo los límites con un conjunto maestro de límites porque, al realizar un mantenimiento preventivo, a veces se amplían. Si estoy enfriando algo, mis límites son, por ejemplo, si tuviera algo a 200 grados, lo enfriaría a 20 grados.
Mis límites pueden ser muy ajustados en relación con los 200 grados, pero como lo he enfriado, está fuera de nuestra tolerancia, por lo que me da alarmas constantes. Mucha gente amplía los límites mientras realiza la tarea de mantenimiento preventivo. Si ha terminado esa tarea, volvería a reducir los límites. Eso es lo que busca. Está en su archivo dorado, y los límites se están restableciendo a donde realmente deben estar. Tendría mi archivo dorado. Lo guardaría en una tabla y los uniría. Luego, dependiendo de las columnas, las compararía. Vería si todas son correctas. Por ejemplo, en este caso, son cuatro cámaras. Si no coinciden, generaría una tabla de subconjuntos.
A partir de ahí, en una distribución grande, ¿qué almohadilla térmica, qué controlador, qué categoría sería? Tendría múltiples flujos de trabajo, como mencioné, uno para una cámara, uno para dos cámaras, uno para tres cámaras, uno para cuatro cámaras, uno para cinco cámaras y uno para seis cámaras, y así sucesivamente. Lo que he hecho es combinarlos todos para no tener que seleccionar uno solo.
Lo que hice en las indicaciones, y lo que pueden ver aquí, antes de hacerlo, permítanme ejecutar esto. En JMP 18, iría a mis archivos. Diría que quiero verificar, por ejemplo, un cuatro. Abriría. Todo se ejecutaría. ¿Cómo lo guardaría? Diría que sería una cámara cuatro. Guardarlo. Simplemente estoy guardando el que tengo. Buscando el archivo dorado, lo guardará donde quiera, y puedo guardar estos. Como mencioné, puedo seleccionar mi carpeta donde sea. Esto generará todo lo que necesito.
En un cuatro, como pueden ver aquí, indicaría: "Tengo dos problemas en la almohadilla térmica 2". Todos provienen del controlador 2, y uno de ellos es un límite de advertencia y otro de fallo. Luego, generaría una tabla con los valores, los valores actuales y los valores esperados, y así obtendría mi informe. También haría algo similar con una comprobación de seis cámaras. Luego, llegaría a mis indicaciones condicionales. Como pueden ver, el mismo archivo. Lo tengo desglosado: al abrir mi archivo de comprobación, lo guardaría. Tengo mi archivo principal en el CSV. Lo guardaré como una tabla JMP. Aquí es donde llego a mis indicaciones.
Lo que pueden ver ahora es que le pediré dentro del mensaje que escriba un mensaje. En el mensaje, mi mensaje indicará qué cámaras realmente quiero. Como pueden decir, si la respuesta es cuatro, ejecutará esto. Si este es cuatro, de lo contrario, continuará. Luego, en el "else", he incrustado otro flujo de trabajo que podría ser para una cámara, y luego otro incrustado dentro del "else". Luego, en el siguiente, seguimos bajando. Pueden ver que es como si cada flujo de trabajo se desplazara por todo el proceso. Al final, entonces, tendría mis gráficos y mi informe. Así es como lo estoy usando. Si tuviera que volver a esto, lo que haría sería abrir mi archivo de verificación de nuevo. Esta vez voy a seleccionar los seis.
Me dirá: "¿Dónde quiero guardarlo?". Simplemente diré que quiero guardar mi check six aquí. Podría poner el ID de una herramienta, de una máquina o de un proceso, según cómo quiera guardar el archivo. Si lo configurara de forma que siempre tuviera la opción de no tener la tabla e intentara guardarlo más tarde, lo haría automáticamente. Tendría el seis de nuevo, así que diría que sí, que quiero guardarlo como el archivo principal.
Ahora me pregunta: "¿Cuántas cámaras intento comparar?". En este caso, diré seis. Me pregunta: "Ya lo he ejecutado un par de veces, ¿qué archivo intento usar?". Diré: "Comprobar las seis". Se ejecuta en segundo plano. Como pueden ver, durante todo el proceso, según las indicaciones, omite ciertas secciones y las ejecuta indicando que se han omitido. Aquí tengo mis archivos. Aquí pueden ver las discrepancias.
Como pueden ver, ahora tengo mi tabla con todos mis límites. Básicamente, indica que, considerando todas mis filas combinadas, tengo dos discrepancias en esta. Las discrepancias en las demás filas ya se han analizado en otras partes. Me proporciona un informe completo según mis datos y lo ejecuta automáticamente. Si reviso las discrepancias de las cuatro filas, obtengo los siguientes resultados: en esta máquina, tuve dos problemas con la almohadilla térmica. Tengo dos. Sé que están en la almohadilla térmica 2 y en el controlador 2. Sé que uno es un límite de fallo y el otro, un límite de advertencia. Al volver a eso, veo que era una advertencia más baja y un fallo más bajo. Quizás estén configurados en 100 y -80, cuando en realidad deberían estar en -10 y -80.
Volvería entonces y arreglaríamos esos límites y entonces todo estaría bien.
Para esto, simplemente me sirve para comprobar que los límites estén en su lugar. No es algo que no se esté monitoreando. Creo que muchos clientes que lo harían no quieren monitorear los límites. Hay suficientes puntos de ajuste reales sobre cómo funcionan las temperaturas. Estaremos bien. No van a monitorear los límites. Esta es otra verificación que haría yo.
Esa es mi demostración. En resumen, las condiciones del flujo de trabajo pueden ser muy útiles al combinar varios flujos de trabajo en un flujo más amplio con indicaciones. En mi caso, las indicaciones pueden ser numéricas, pero también pueden basarse en caracteres. Por ejemplo, si trabajara en la industria química y tuviera dos flujos de trabajo, uno con productos químicos ácidos y otro con una base. Puedo introducir mi indicación y preguntar: "¿Estoy trabajando en mi flujo de trabajo ácido o en mi flujo de trabajo base?".
Puedes usar diferentes caracteres, o llego a una tarea y pregunto: "¿Sucedió esto? ¿Sí o no?". Dependiendo de eso, puedo generar un informe según ciertos resultados. Como ya he dicho, es mi solución. Hay otras soluciones para mi flujo de trabajo que podrían considerarse. Después de generar esto, es útil poder estudiar el JSL después, y puede ser un buen método de enseñanza.
Como dije, si vuelvo a mi flujo de trabajo actual, si lo encuentro, tengo mis tareas, como dije, para cada una. Puedo empezar a aprender JSL a partir de las tareas que he creado en mi flujo de trabajo. Quizás, como próximos pasos, añadiría un mensaje al final. Dije que quizás esto era para una máquina en particular con cierto número de cámaras. Quizás tenga que hacer una segunda o una tercera máquina. Quizás añadiría otro mensaje y preguntaría: "¿Todavía tienes que hacer otra máquina? ¿Sí o no?". ¿Ya terminé? Sí, y luego tal vez volver al principio del flujo de trabajo. Esa es otra forma de verlo.
Dicho esto, si tienen alguna pregunta, no duden en contactarme en la comunidad y enviarme sus preguntas. Como dije, me llamo Gary O'Driscoll y mi ID de la comunidad JMP es godriscoll. Envíenme sus preguntas; con gusto las responderé. Gracias.