Les entreprises utilisent souvent des logiciels obsolètes de contrôle statistique des procédés (CSP) pour surveiller leurs processus de fabrication. Bien que de nombreux autres programmes CSP soient utilisés dans l'industrie, les entreprises persistent souvent à utiliser des logiciels anciens qui rendent l'analyse et la présentation des données difficiles pour les utilisateurs.
Cette affiche présente une méthode de création de cartes SPC permettant de visualiser les données d'épaisseur de film pour les fours couramment utilisés dans l'industrie des semi-conducteurs pour la production de grands lots de plaquettes. Ces fours de grande capacité présentent de nombreux facteurs susceptibles d'influencer les résultats d'épaisseur. L'utilisation de JMP Graph Builder pour la transmission de ces informations présente plusieurs avantages, notamment :
Comme JMP permet d'afficher facilement les informations et offre une grande interactivité pour identifier les problèmes, il aide les ingénieurs à prendre des décisions avec plus d'assurance.
Bonjour. Je m'appelle Cody Sandquist et je suis ingénieur de procédés chez NXP à Austin, au Texas. J'ai commencé à utiliser la programmation JMP il y a quelques années, et ce fut à la fois un défi et un outil très utile dans mon travail quotidien. Aujourd'hui, je vous présente une interface que j'ai créée avec JMP pour le contrôle statistique des procédés (SPC).
Dans le secteur manufacturier, vous connaissez certainement le SPC. J'ai utilisé plusieurs systèmes SPC différents. Certains sont meilleurs que d'autres, mais tous présentent des lacunes : ils manquent tous d'interactivité ou de la capacité à naviguer rapidement entre les informations, contrairement à JMP.
Aujourd'hui, je vous présente une méthode pour créer des cartes SPC et utiliser JMP afin d'accélérer la prise de décisions d'ingénierie et le partage de ces informations. L'un des problèmes que nous rencontrons avec certains logiciels SPC existants, si l'on prend l'exemple de celui que nous utilisons ici (hors certification NXP), est que notre système SPC est assez ancien. J'utilise ce type de système au travail.
Un petit mot à ce sujet : nous utilisons de grands fours verticaux pouvant contenir jusqu’à 150 plaquettes de production (soit 6 lots), ce qui est un détail important. Chaque lot comprend 25 plaquettes. Le four comporte plusieurs zones, et nous utilisons des moniteurs de plaquettes de test dans différentes zones pour contrôler l’épaisseur du film, non seulement pour un lot donné, mais pour chaque zone du four.
Le logiciel SPC que j'utilise affiche les données d'un seul four à la fois, alors qu'il serait préférable de visualiser tous les fours sur le même graphique afin de repérer les anomalies. De plus, il n'affiche pas l'épaisseur de chaque zone individuellement, mais la moyenne. Par conséquent, si un problème survient dans une zone spécifique, il est très difficile de le détecter avec ce seul logiciel SPC.
De plus, il est très difficile d'analyser d'autres facteurs courants à l'origine des problèmes. Par exemple, le nombre de lots de production dans un lot peut varier. La taille de la charge (25 plaquettes contre 150) peut également influencer l'épaisseur des résultats. L'équipement de métrologie utilisé pour mesurer l'épaisseur peut avoir été mal qualifié, et il n'est pas rare de rencontrer des équipements de métrologie défectueux. Il est parfois difficile d'obtenir ces informations en se basant uniquement sur le système SPC.
J'ai utilisé JMP Scripting pour créer un tableau de bord personnalisé permettant d'afficher tous les fours sur un seul graphique. Je peux ainsi les visualiser par position (haut, bas, etc.) et observer l'activité à chaque endroit.
Comme je l'ai mentionné précédemment, pour de nombreux facteurs courants, je peux identifier d'éventuels autres éléments en jeu. Il peut s'agir d'une mesure métrologique, d'un problème de taille de chargement, ou encore d'informations complémentaires. Je peux même intégrer à ce tableau des données supplémentaires, telles que les informations sur le fournisseur de plaquettes, afin de vérifier si un nouveau fournisseur est à l'origine de variations d'épaisseur. Ce sont ces fonctionnalités qui rendent JMP plus facile à utiliser et lui confèrent des capacités supérieures à celles de certains logiciels SPC courants.
Avec cette configuration, j'aime accéder rapidement à la recette de procédé souhaitée. Si vous n'êtes pas familier avec les recettes, sachez que nous avons de nombreux procédés différents avec des objectifs d'épaisseur variés. Je souhaite identifier et accéder rapidement à la recette de procédé désirée. J'ai donc conçu une fenêtre contextuelle où il me suffit de saisir le nom et de cliquer sur OK.
Lorsque je fais cela, le logiciel récupère ce nom et le compare au fichier correspondant au processus. Il filtre ensuite les données pour ne retenir que la limite et la cible d'épaisseur de la recette. Je dispose d'un fichier d'épaisseur brute. Ce fichier contient les données d'épaisseur de plusieurs recettes, issues de notre système SPC. Je remplis donc à nouveau le champ, je filtre jusqu'à la recette souhaitée, et le logiciel génère un graphique.
J'apprécie beaucoup Graph Builder, car il est très interactif. Vous remarquerez la juxtaposition de ces deux graphiques : ici, j'ai un seul four, et là, en bas, j'en ai plusieurs et je peux afficher les données de chaque zone. J'ai configuré le logiciel pour effectuer des calculs : je ne veux pas seulement l'épaisseur moyenne, mais aussi l'écart type et l'étendue pour chaque zone. Je peux donc le personnaliser de cette façon également.
Ensuite, si je souhaite filtrer selon certains facteurs communs tels que l'équipement de métrologie ou la taille de la charge, je peux le faire rapidement. Je peux également filtrer par four individuel. L'avantage principal réside dans une plus grande personnalisation et une plus grande flexibilité pour la création de cartes SPC. On peut ainsi analyser rapidement les différents facteurs de variation, faire une capture d'écran, la partager et commencer à identifier des solutions. Par exemple, si une zone présente un problème et nécessite un ajustement, c'est possible.
Le seul véritable inconvénient, c'est que je dois extraire manuellement les données d'épaisseur et les enregistrer dans un fichier CSV ou texte. Idéalement, je pourrais me connecter directement à notre base de données chez NXP, mais je n'en ai pas les droits. Ce n'est donc pas la faute de JMP ; je n'ai tout simplement pas la possibilité de le faire dans mon entreprise.
Pour entrer un peu plus dans les détails du script, je sais que ce n'est pas très passionnant de détailler un long script et chaque point individuellement, mais je vais faire simple et me concentrer sur les points clés et son fonctionnement. Comme mentionné précédemment, je dispose d'un fichier d'épaisseur brute que je dois extraire. Ce fichier contient toutes les données d'épaisseur issues de plusieurs recettes de traitement. J'ai également un autre fichier que j'enregistre avec les limites et les cibles SPC. J'utilise la fonction modale de JMP pour afficher une fenêtre contextuelle. Dans cette fenêtre, je saisis le nom de la recette souhaitée, ce qui permet de filtrer les résultats pour afficher les informations correspondantes dans le fichier d'épaisseur brute, ainsi que les limites.
À partir de là, les limites et la cible seront enregistrées comme variables, lesquelles serviront ensuite à créer les lignes, les cibles et les limites, ainsi que l'incrément et la taille dans Graph Builder. Cela illustre la flexibilité des scripts JMP : dans nos fichiers de données, toutes les lignes ne sont pas identiques. Chaque lot est différent. Parfois, nos moniteurs de plaquettes de test utilisent deux plaquettes, l'une dans la zone supérieure et l'autre dans la zone inférieure. Parfois, il y en a trois, parfois cinq. Ainsi, une ligne aura deux colonnes remplies, une autre trois, une autre cinq, et ainsi de suite.
Grâce à une série d'instructions « si » (je ne vais pas entrer dans les détails), je peux identifier, en fonction des colonnes remplies, la zone à laquelle chaque cellule fait référence, et ainsi lui attribuer la position correcte afin d'éviter les erreurs et les confusions, et de ne pas la placer dans la mauvaise zone lors de l'affichage dans Graph Builder.
Pour revenir rapidement sur un point concernant la fin du script dans Graph Builder, ces variables sont placées dans Graph Builder pour créer les lignes, et je peux personnaliser Graph Builder pour afficher les informations comme je le souhaite. Un exemple concret de résolution de problème rencontré au travail : sur notre carte SPC principale, un four, pour l'une des recettes de fabrication, présentait un écart type non conforme. Il est important de noter que notre système SPC ne fournit pas de détails précis.
Grâce à mon script JMP, j'ai pu segmenter les informations pour chaque zone. Dans la zone inférieure, j'ai observé une distribution bimodale, indiquant un problème sous-jacent. J'ai ensuite filtré les données pour n'afficher que ce four spécifique, en me basant sur certains facteurs communs, notamment la taille du chargement. Un chargement de six lots correspond à un lot complet, c'est-à-dire que le four est plein avec 150 plaquettes de production. Nous avons ainsi pu identifier précisément l'origine du problème.
Le problème se manifestait tout en bas du four, lors des lots de production complets : la température augmentait brusquement. J’ai ensuite pu croiser ces données avec les coordonnées de notre système de métrologie pour créer des cartographies des plaquettes et identifier précisément quelle partie de la plaquette ou quelle section du four était à l’origine du problème.
En partageant ces informations avec nos techniciens, nous pourrons intervenir en connaissant précisément l'origine du problème dans la chaudière, remplacer les pièces défectueuses et remettre la chaudière en bon état de fonctionnement. Voilà un bref exemple. Merci pour votre attention. J'espère que ces informations vous ont été utiles et je vous souhaite de vous revoir à la conférence.