Auparavant, la comparaison des configurations de chambres entre chambres d'un même ordinateur central ou entre ordinateurs centraux différents nécessitait une méthode manuelle d'une journée. Récemment, un processus automatisé a été développé à l'aide de Workflow Builder dans JMP 17. Des fichiers de workflow individuels ont été créés pour optimiser le processus, chaque workflow étant adapté au nombre de chambres comparées. Ces workflows analysent le fichier de configuration et comparent la chambre de référence à la ou aux chambres analysées. Le processus génère un rapport contenant des graphiques et des tableaux, classés selon la criticité des différences de configuration.
Cette présentation met en évidence l'efficacité de la nouvelle fonctionnalité conditionnelle de Workflow Builder dans JMP 18. Cette fonctionnalité permet de combiner tous les flux de travail de comparaison en un seul, la section appropriée étant déterminée par le nombre de chambres comparées, indiqué par l'utilisateur dans une invite conditionnelle. Le flux de travail pertinent est sélectionné en fonction de cette information. Le résultat final reste identique, mais la sélection manuelle du fichier de flux de travail est désormais éliminée, permettant ainsi de générer un rapport de comparaison pour plusieurs types de plateformes en une ou deux minutes.
Bonjour à tous. Je m'appelle Gary O'Driscoll. Je travaille pour la société Applied Materials et aujourd'hui, je vais vous présenter l'utilisation de Workflow Builder et des invites conditionnelles pour surveiller les limites de température des conduites de gaz lors du dépôt de couches atomiques. Je vous expliquerai comment utiliser Workflow Builder à cette fin, notamment pour les invites de rupture de JMP, l'emplacement de l'application et la rupture de JMP.
Quelques mots sur moi. Comme je l'ai dit, je travaille chez Applied Materials à Dublin. Je suis ingénieur de procédés, et bien sûr, je maîtrise de nombreux procédés. J'ai près de 30 ans d'expérience dans le secteur des semi-conducteurs. Côté loisirs, je fais du vélo, je joue au golf et j'entraîne une équipe de camogie. C'est un sport irlandais, pratiqué par des femmes adultes. Chez les hommes, on appelle ça le hurling. Si vous êtes déjà allé en Irlande et que vous avez entendu parler de ce jeu sauvage où l'on joue avec des bâtons, c'est de ça qu'il s'agit, et c'est ce que j'entraîne.
Un petit sondage rapide sur l'utilisation de JSL. Si l'on considère tous les utilisateurs potentiels de JSL, combien d'entre nous l'utilisent réellement ? On distingue deux catégories : ceux qui l'utilisent activement, ceux qui l'apprécient et qui sont de véritables experts en programmation (par exemple, ceux qui l'utilisent quotidiennement). Et ceux qui ne l'utilisent pas, ceux qui ne comprennent pas le code et ne l'ont jamais utilisé. Personnellement, je me situe dans la catégorie « non ». Je ne comprends pas vraiment le code ; j'essaie parfois d'en apprendre un peu au fur et à mesure. Il existe une manière de passer de cette position à une position intermédiaire, voire à une position « oui ». Je vais vous en présenter une partie aujourd'hui.
Lors du lancement de JMP 17, dont nous nous souvenons encore à Cary, en Caroline du Nord, lors du Discovery Summit, Workflow Builder a été présenté. Un workflow, en résumé, est un outil permettant d'enregistrer les opérations de manipulation de données souhaitées, mais il inverse la relation entre le code et le résultat. Du point de vue JSL, nous développons le code pour obtenir le résultat voulu. Avec Workflow Builder, nous obtenons le résultat, nous manipulons les données comme nous le souhaitons, et du code est généré en arrière-plan. Les workflows permettent à un utilisateur de découvrir et d'apprendre le code JSL sans aucune connaissance préalable.
Si l'on examine l'outil de création de flux de travail, on constate qu'il permet de créer des tâches personnalisées à partir des manipulations effectuées. Dans les paramètres des étapes, on observe que le code est généré en arrière-plan pour chaque tâche. Les flux de travail sont utilisés pour les tâches répétitives. Ils améliorent considérablement l'efficacité en évitant de répéter les mêmes actions. Le code du flux de travail est consultable et modifiable.
Si j'avais dû le faire moi-même, surtout à mes débuts avec Workflow Builder, j'aurais constaté que je pouvais sélectionner le fichier dont j'avais besoin, et son nom était indiqué. Mais je n'aurais pas forcément besoin de ce fichier à chaque fois. Je pouvais modifier le code ici. Cependant, c'est grâce à la communauté JMP que j'ai appris comment sélectionner un fichier générique. Quand on débute en programmation, on se rend compte que le problème rencontré n'est pas nouveau. Quelqu'un de la communauté JMP l'a déjà résolu et a partagé son code.
Ensuite, parlons du lancement de JMP 18. JMP 18 a été lancé à Manchester, en Europe, lors du Discovery Summit. On y a découvert les six P. J'ai également appris l'existence d'un septième P, intégré à JMP 18, après le sommet : les invites, ou plus précisément les invites conditionnelles dans Workflow Builder.
Comment j'utilise les invites et les invites conditionnelles dans mon travail. Je vais détailler le quoi, le pourquoi et le comment. Que fais-je ? Je vérifie les paramètres de température des conduites de gaz de la chambre de dépôt de couches atomiques (ALD) pour détecter les alarmes et les avertissements de défaut, probablement suite à des opérations de maintenance préventive. Pourquoi ? Parce que toute variation de température non détectée par les alarmes pourrait entraîner la mise au rebut de la production. Comment ? J'utilise les outils de création de flux de travail améliorés qui exploitent les invites conditionnelles pour vérifier ces paramètres.
Pour ceux qui ne connaissent pas ce procédé, l'ALD est utilisé dans de nombreuses applications et dans tous nos secteurs d'activité. Il s'agit d'un procédé de dépôt de matériau directement sur une surface, monocouche par monocouche. Il permet d'obtenir des films extrêmement fins et uniformes, grâce à une régulation automatique. On retrouve par exemple l'ALD dans les revêtements de flacons utilisés en laboratoire (chimie et biomédical), dans les dispositifs médicaux, et même à l'intérieur des puces, où une couche peut être déposée. C'est dans ce contexte que l'ALD trouve toute son utilité.
Comment cela est-il utilisé dans l'industrie des semi-conducteurs ? Probablement de la même manière que dans d'autres industries. On utilise un produit chimique liquide dans un récipient. Ce produit est transporté sous forme de vapeur, et non sous forme liquide, depuis le récipient jusqu'à la surface de la puce, dans une chambre à vide, à travers une cuve. Dans ce cas précis, il s'agit d'une conduite de gaz. Voici un schéma simplifié du flux chimique : plusieurs plaques chauffantes réparties sur toute la longueur de la cuve, du récipient jusqu'à la chambre située à la surface de la puce.
La surface de la puce que je vous montre ici est une représentation d'une seule puce. Or, dans le domaine des semi-conducteurs, plusieurs puces sont disposées côte à côte sur un même substrat ou une même plaquette, dans une chambre de fabrication. Le dépôt s'effectue ensuite sur ce substrat. Les paramètres de température des coussins chauffants doivent être vérifiés après chaque changement de récipient. Comme je l'ai mentionné précédemment, les points froids peuvent entraîner la condensation d'un gaz, provoquant des défauts sur la puce. En effet, un gaz qui se condense en refroidissant peut se condenser, redevenir liquide, puis se solidifier à nouveau et se déposer sur la puce, causant ainsi un problème.
L'ancienne méthode, via les paramètres et la vérification de plusieurs compartiments, consistait à utiliser un générateur de flux de travail. Personnellement, j'en utilisais un seul pour visualiser un seul compartiment, et un autre pour visualiser deux compartiments différents. De même, le diagramme ci-dessus n'affiche que six compartiments au maximum, alors qu'il est possible d'en ajouter bien plus. Auparavant, je créais un fichier en fonction du nombre de compartiments utilisés, je le sélectionnais, et c'est ainsi que je lançais le processus.
Si l'on revient aux invites, avec le Générateur de flux de travail, une nouvelle fonctionnalité permet non seulement de sélectionner une seule option, mais aussi de proposer une invite du type : « Au lieu d'avoir six options distinctes, combinez-les en une seule. » Dans JMP 18, le Générateur de flux de travail comporte une section « Avancé ». En accédant à cette section, un autre menu apparaît. Parmi ces options, vous trouverez quatre éléments : « Ajouter si », « Ajouter sinon », « Ajouter retour » et « Ajouter pour chaque ». Ces éléments permettent de créer des embranchements pour une étape. Il ne s'agit pas d'un chemin unique ; je peux emprunter un chemin ou un autre en fonction des informations saisies. Cette nouvelle fonctionnalité, apparue dans JMP 18, est ici mise en pratique.
Pour vous donner une idée de la nouvelle méthode : sous forme d'organigramme, je démarre, puis je reçois une invite. On me demande alors si j'utilise une seule chambre. Si oui, mon flux de travail s'exécute, un rapport est généré et c'est terminé. Sinon, on passe à l'étape suivante. Ensuite, on me demande si j'en utilise deux. Si oui, on peut exécuter celle-ci. Sinon, on passe à la suivante. Le système vérifie continuellement chaque cas et, en fonction du nombre, il vérifie la valeur saisie dans l'invite. Le rapport correspondant est alors généré. La nouvelle méthode intègre des erreurs « si… sinon… » ou des instructions « si… sinon… » au sein d'un flux de travail plus large. Voici ma méthode.
En tant qu'ingénieur bureautique, je ne connais pas JSL. Voici comment j'ai conçu ce concept et comment il fonctionne pour moi. Il existe peut-être d'autres méthodes, mais voici la mienne. Permettez-moi maintenant de vous en faire une démonstration.
Si j'utilisais l'ancienne méthode, j'aurais peut-être un contrôle à quatre compartiments. Lors de ce contrôle, je demanderais de vérifier le fichier. À partir de ce fichier, je générerais la table de données et l'enregistrerais au format JMP. J'ouvrirais ensuite mon fichier de référence. Je compare les limites de fonctionnement à un ensemble de limites de référence, car lors de la maintenance préventive, il arrive que l'on élargisse ces limites. Par exemple, si je refroidis un élément à 200 degrés, je le refroidis à 20 degrés.
Mes limites sont peut-être très strictes par rapport aux 200 degrés, mais comme j'ai refroidi le système, la température est hors tolérance, ce qui provoque des alarmes constantes. Beaucoup de personnes élargissent les limites lors des opérations de maintenance préventive. Une fois la maintenance terminée, il faut les resserrer. C'est ce que recherche ce système. Il se trouve dans votre fichier de référence, et les limites sont rétablies à leur niveau optimal. Je dispose de mon fichier de référence. Je l'enregistre dans un tableau et je fusionne les données. Ensuite, en fonction des colonnes, je fais correspondre les valeurs. Je vérifie si elles sont toutes correctes. Par exemple, dans ce cas, il y a quatre chambres. Si les valeurs ne correspondent pas, je génère un sous-tableau.
À partir de là, pour une distribution à grande échelle, il faudrait déterminer quel coussin chauffant, quel contrôleur et quelle catégorie utiliser. J'aurais plusieurs flux de travail, comme je l'ai dit : un pour un appareil à une chambre, un à deux chambres, un à trois chambres, un à quatre chambres, un à cinq chambres, un à six chambres, et ainsi de suite. Désormais, je les ai tous combinés pour ne plus avoir à en sélectionner un individuellement.
Ce que j'ai fait dans les invites, et donc ce que vous pouvez voir ici, avant cela, laissez-moi exécuter ceci. Dans JMP 18, j'irai dans mes fichiers. Je dirai que je veux vérifier, par exemple, un fichier 4. Je cliquerai sur Ouvrir. Tout cela s'exécutera. Sous quel nom veux-je l'enregistrer ? Je dirai « quatre chambres ». Je l'enregistrerai. Je fais simplement une copie de l'original. À la recherche du fichier de référence, il sera enregistré où je le souhaite, et je peux enregistrer ces fichiers. Comme je l'ai dit, je peux sélectionner n'importe quel dossier. Cela générera tout ce dont j'ai besoin.
Sur un quatre, comme vous pouvez le voir ici, il serait indiqué : « J’ai deux problèmes sur le coussin chauffant 2. Tout provient du contrôleur 2, et l’un d’eux est une limite d’avertissement et une limite de défaut. » Ensuite, il générerait un tableau indiquant ces problèmes, leurs valeurs actuelles et leurs valeurs théoriques, et j’obtiendrais ainsi mon petit rapport. Je ferais de même avec une vérification à six chambres. Ensuite, j’en suis arrivé à mes invites conditionnelles. Et comme vous pouvez le voir maintenant, il s’agit du même fichier. Je l’ai décomposé comme suit : j’ouvre mon fichier de vérification, je l’enregistre. J’ai mon fichier de référence au format CSV. Je l’enregistre comme tableau JMP. C’est à ce moment-là que j’obtiens mes invites.
Vous voyez, je vais demander au programme d'insérer un message. Ce message précisera quelles chambres je souhaite réellement. Si la réponse est quatre, le programme exécutera cette action. Sinon, il passera à la suivante. Dans la clause « sinon », j'ai intégré un autre flux de travail, par exemple pour une chambre, puis un autre encore, et ainsi de suite. Chaque flux de travail semble s'afficher par tabulation sur l'ensemble du processus. Au final, j'obtiendrai mes graphiques et mon rapport. Voilà comment je procède. Si je devais revenir en arrière, j'ouvrirais à nouveau mon fichier de chèques et je sélectionnerais les six chambres.
Il me demandera : « Où dois-je l'enregistrer ? » Je dirai simplement : « Je veux enregistrer mon contrôle six ici. » Je pourrais indiquer un identifiant d'outil, un identifiant de machine ou un processus, selon la façon dont je souhaite enregistrer mon fichier. Si je configure le système de cette manière, j'aurai toujours la possibilité d'enregistrer ultérieurement, même si je n'ai pas encore mon tableau ; il le fera immédiatement. J'aurai à nouveau le contrôle six, donc je confirmerai : « Oui, je veux l'enregistrer comme fichier de référence. »
Maintenant, on me demande : « Combien de chambres dois-je comparer ? » Je vais répondre six. On me demande ensuite, après avoir déjà exécuté cette opération plusieurs fois, quel fichier utiliser. Je réponds : « Sélectionnez le fichier six. » Le processus s'exécute alors en arrière-plan. Comme vous pouvez le constater, tout au long du processus, en fonction des invites, certaines sections sont ignorées ; une fois ces sections exécutées, elles sont signalées comme ignorées. Je vois ensuite mes fichiers ici. Mes discordances sont visibles ici.
Vous pouvez voir que mon tableau affiche toutes mes limites. Il indique les valeurs combinées de toutes mes lignes, mais avec deux anomalies ici. J'ai traité les anomalies ailleurs. Le système génère un rapport complet en fonction des données et l'exécute automatiquement. Je reprends mes limites en consultant mes quatre anomalies. Sur cette machine, j'ai rencontré deux problèmes de dysfonctionnement du tapis chauffant. J'en ai donc deux. Je sais que le problème se situe sur le tapis chauffant 2, sur le contrôleur 2. L'une est une limite de défaut et l'autre une limite d'avertissement. En consultant ces limites, j'ai constaté que les seuils d'avertissement et de défaut étaient plus bas. Je peux voir leurs valeurs initiales. Ici, elles sont peut-être réglées à 100 et -80, alors qu'elles devraient être respectivement de -10 et -80.
J'y retournerais à l'époque, on corrigerait ces limites et tout irait bien.
Donc, pour moi, il s'agit simplement de vérifier que les limites sont bien réglées. Ce n'est pas quelque chose qui n'est pas surveillé. Je pense que beaucoup de clients qui font cela ne veulent pas surveiller les limites. Il y a suffisamment de points de consigne pour le fonctionnement des températures. Tout ira bien. Ils ne vont pas surveiller les limites. C'est une vérification supplémentaire que je ferais pour moi-même.
Voilà ma démonstration. En résumé, les conditions de flux de travail peuvent s'avérer très utiles pour combiner plusieurs flux en un seul, plus large, grâce à des invites. Ces invites peuvent être numériques (pour ma part), mais il en existe d'autres, basées sur des caractères. Prenons l'exemple d'une personne travaillant dans l'industrie chimique et ayant deux flux de travail : l'un pour les produits chimiques acides et l'autre pour les produits basiques. Elle peut alors saisir dans son invite : « Est-ce que je travaille sur le flux de travail relatif aux produits acides ou sur celui relatif aux produits basiques ? »
Vous pouvez utiliser différents caractères, ou bien, pour une tâche donnée, je demande : « Est-ce que ceci s'est produit ? Oui ou non ? » Selon la réponse, je peux générer un rapport en fonction de certains résultats. Comme je l'ai dit, c'est ma solution. D'autres solutions pour mon flux de travail peuvent être envisagées. Une fois ce rapport généré, il est utile de pouvoir l'étudier par la suite, et cela peut constituer une bonne méthode pédagogique.
Comme je l'ai dit, si je retourne à mon flux de travail actuel, si je le retrouve, je retrouverai mes tâches, comme je l'ai mentionné, pour chaque machine. Je peux commencer à apprendre le JSL à partir des tâches que j'ai créées dans mon flux de travail. Pour la suite, je pourrais ajouter une invite à la fin de mon flux de travail. Je me disais que cela concernait peut-être une machine particulière avec un certain nombre de chambres. Peut-être dois-je m'occuper d'une deuxième ou d'une troisième machine. J'ajouterais alors une autre invite : « Avez-vous encore besoin de vous occuper d'une autre machine ? Oui ou non ? » Non, j'aurai terminé ? Oui, et ensuite je pourrais revenir au début du flux de travail. C'est une autre façon d'envisager les choses.
Voilà, si vous avez des questions, n'hésitez pas à me contacter sur la communauté et à me les poser. Comme je l'ai dit, je m'appelle Gary O'Driscoll et mon identifiant JMP est godriscoll. Posez-moi vos questions, je me ferai un plaisir d'y répondre. Merci.