Die Kapazitätsmodellierung von Halbleiterfabriken erfordert die Pflege der Durchsatzwerte (in Teilen pro Stunde [PPH]) für Tausende von Prozessrezepten. Die Verarbeitungsdaten werden für jeden Lauf gespeichert und bilden so einen umfangreichen Pool historischer Daten, aus dem die PPH-Werte ermittelt werden können. Bei der Kapazitätsmodellierung werden Ineffizienzen, die die Kapazität beeinträchtigen, vom Durchsatz isoliert. Daher sollte der modellierte PPH-Wert die maximale Leistungsfähigkeit im kontinuierlichen Betrieb repräsentieren. Diese Anforderungen erschweren die Auswertung historischer Daten, und Prozessexperten müssen besonders sorgfältig darauf achten, nicht-stationäre Läufe zu identifizieren, die von der Analyse ausgeschlossen werden sollten.
Mithilfe von JSL wurde ein interaktives Tool entwickelt, das die Analyse historischer Durchsatzdaten unterstützt und die Bewertung, Auswahl und Dokumentation von PPHs (Proben-zu-Proben-Verhältnissen) nach Rezeptur für die Kapazitätsmodellierung ermöglicht. Das Skript erstellt eine vollständig interaktive, in sich geschlossene Dashboard-Anwendung, die JSL-basierte Plattformen und benutzerdefinierte Steuerelemente nutzt, um die Ursachen von Abweichungen zu untersuchen und stationäre Läufe zu identifizieren. Die Auswahl der PPH-Werte erfolgt direkt im Dashboard, und eine Zusammenfassung der ausgewählten Werte und Verteilungen kann abschließend als PowerPoint-Präsentation für einen vollständigen Analysebericht exportiert werden.
Diese Präsentation beinhaltet eine Demonstration des Dashboard-Tools und erläutert Teile des Skripts.
Hallo, mein Name ist Michelle Terwilliger. Ich bin Wirtschaftsingenieurin bei Texas Instruments in South Portland, Maine. Heute stelle ich Ihnen ein interaktives Tool vor, mit dem sich historische Durchsatzdaten analysieren lassen. Es wurde mithilfe von JSL-Skripten entwickelt.
Bevor ich auf mein Skript eingehe, möchte ich kurz die Modellierung der Fabrikkapazität erläutern, um zu verdeutlichen, wie wir JMP dafür einsetzen. Wir beginnen mit den Informationen zu einem Werkzeugsatz, dessen Kapazität wir modellieren möchten, einschließlich des Durchsatzes pro Rezept und der gesamten Werkzeugsatzstunden.
Anschließend wenden wir ein Startprofil an, das wir in der Fabrik einsetzen möchten, und ermitteln die Durchläufe nach Rezept. Diese aggregieren wir dann über den Durchsatz nach Rezept, um die erforderlichen Produktionsstunden für die Verarbeitung dieses Materials zu erhalten.
Wir berücksichtigen die zu erwartenden Ineffizienzen des Anlagensystems und skalieren damit die Gesamtbetriebsstunden des Anlagensystems. Daraus ergeben sich die geplanten tatsächlichen Produktionsstunden. Das Verhältnis dieser beiden Werte liefert die Auslastung in Prozent. Diese gibt Aufschluss darüber, ob wir das geplante Profil durchführen können oder ob wir Wafer hinzufügen oder entfernen müssen.
In dieser Präsentation geht es um den Durchsatz pro Rezept. Wir messen diesen in Teilen pro Stunde (PPH). Sie werden diesen Begriff mehrmals hören. Die Durchsatzwerte werden für nahezu jedes Rezept in unserer Fabrik gespeichert. Das sind Tausende von Einzelrezepten. Wie Sie sich vorstellen können, ist es eine enorme Menge an Daten, die gespeichert, gepflegt und regelmäßig aktualisiert werden müssen.
Ich möchte außerdem betonen, dass die Ineffizienzen völlig unabhängig vom Durchsatz sind. Wenn wir über Durchsatzwerte für das Modell nachdenken, wollen wir Werte erfassen, die die höchstmögliche Leistung repräsentieren, die dieses Rezept aufrechterhalten kann, also es ohne jegliche Ineffizienzen modellieren.
Bei der Auswahl der Modellwerte sind einige Bedingungen zu beachten. Wir streben eine optimale Leistungsfähigkeit ohne Ineffizienzen an. Außerdem möchten wir stationäre Zustände im kontinuierlichen Betrieb abbilden. Zur Erinnerung: Die Ineffizienzen sind an anderer Stelle im Modell berücksichtigt; wir ignorieren sie also nicht.
Dies lässt sich in einer Produktionsumgebung nur sehr schwer oder gar nicht nachbilden. Anstatt Tests durchzuführen, die dieses Szenario reproduzieren, nutzen wir historische Produktionsdaten, um zu ermitteln, welche Werte sich in diesem Szenario ergeben würden. Hier kommt JMP ins Spiel.
Wir verwenden JMP, um die Ursachen der Variation zu visualisieren und zu untersuchen. Wir nutzen es, um Läufe mit bekannten Ineffizienzen auszuschließen, die Läufe zu isolieren, die repräsentativ für stationäre Bedingungen sind, und diese Ergebnisse anschließend zu dokumentieren.
Bei der Auswertung eines Datensatzes liegen uns Stichproben von Durchsatzmessungen für ein bestimmtes Rezept vor. Wir können davon ausgehen, dass dabei Verluste aus verschiedenen Quellen auftreten, beispielsweise durch Geräteunterschiede oder Unterschiede zwischen verschiedenen Rezepten. Der Einfluss eines vorherigen Durchlaufs kann das Ergebnis des nächsten Durchlaufs erheblich beeinflussen, etwa durch den Ladezeitpunkt oder die Anzahl der verwendeten Kammern.
Demnach sollten wir auch Messwerte haben, die zeigen, dass diese Verluste gegen null tendieren. In diesem Fall sollte sich eine Obergrenze für den beobachteten Durchsatz ergeben, wenn alle Verluste so gering wie möglich sind. Und genau das ist der Fall. Wir beobachten in unseren Daten ein deutliches Plateau an dieser Obergrenze. Dies ist der Bereich, den wir für die optimale Leistung benötigen, die wir für unsere Modellierungszwecke anstreben.
Es gibt ein Verfahren zur Auswahl von PPH. Wir beginnen damit, die Steady-State-Läufe zu isolieren, wobei zu beachten ist, dass einige Läufe zwar schneller erscheinen mögen, aber in Situationen auftreten, die nicht über mehrere Läufe aufrechterhalten werden können, weshalb sie nicht dem Steady State entsprechen.
Anschließend entfernen wir die Läufe mit identifizierbaren Durchsatzverlustquellen, also solche wie die oben gezeigten. Wir wählen einen PPH-Wert für das Modell anhand dieser beobachteten Obergrenze. Üblicherweise verwenden wir das 98. Perzentil als Richtwert, aber hier besteht natürlich Spielraum.
Dann wiederholen wir diesen Vorgang für alle Rezepte und exportieren einen Bericht mit den Ergebnissen. Ich zeige Ihnen nun eine Demo. Dies ist eine Beispieltabelle, die wir für die Laufzeitdaten eines Toolsets exportieren würden. Jede Zeile repräsentiert eine Laufzeit verschiedener Rezepte mit unterschiedlichen Tools. Wir haben PPH-Messungen durchgeführt, die mit verschiedenen Methoden vorgenommen wurden. Weiter unten finden Sie einige Faktoren, die die Variabilität beeinflussen.
Ich starte mein PPH-Tool und wir beginnen mit dieser Spaltenauswahl. Für diesen Toolset verwende ich Takt PPH, und meine Variationsquellen sind hier gruppiert. Wir betrachten das Tool, die Gesamtzahl der Wafer, die Kammeranzahl und die vorherige Rezepturspezifikation.
Ich starte das mal. Das ist unsere Hauptansicht des Dashboards. Hier oben befinden sich einige globale Steuerelemente. Dieses Panel enthält die Verteilungen der einzelnen Rezeptspezifikationen. Unterhalb jeder Spezifikation finden Sie benutzerdefinierte Steuerelemente, die direkt auf die darüberliegende Spezifikation angewendet werden. Unten befindet sich eine Übersichtstabelle mit Informationen zu jedem Rezept, die sich während der Überprüfung aktualisiert.
Dieses Panel dient der Analyse. Momentan ist es noch recht leer, aber es füllt sich, sobald wir hier einige Optionen anklicken. Ich habe Zeitdiagramme für jedes Rezept und hier außerdem Datenfilter. Wir beginnen mit dem ersten Rezept.
Als Erstes filtere ich die Daten danach. Sie werden feststellen, dass sich die Auswahl der Prädiktoren dadurch verändert hat. Jetzt sehen wir, dass für dieses Rezept der größte Faktor, der zur Variabilität beiträgt, dieses Tool ist. Ich klicke darauf und dann auf „Variabilitätsdiagramm“, um die ausgewählten Bereiche farblich zu kennzeichnen.
Anhand dieses Datensatzes lässt sich nun erkennen, wie die Ergebnisse je nach Werkzeug variieren. Mir fällt auf, dass nahezu jedes Werkzeug die von uns festgestellte Obergrenze erreicht. Ich würde meinen Modell-PPH-Wert daher bedenkenlos auf diese Grenze festlegen.
Ich möchte in diesem Beispiel darauf hinweisen, dass ich hier eine Zeile für das Modell PPH habe. Dies wäre der vorherige Wert, den wir für dieses Toolset modelliert haben. In diesem Fall unterschätzen wir die Kapazität dieses Tools deutlich. Wir gehen davon aus, dass es mit 35,1 laufen kann, tatsächlich ist es aber bei 37,48 leistungsfähig.
Hier besteht eine erhebliche Lücke in unserem Verständnis der Fabrikkapazität, wenn dieser Wert nicht korrekt eingestellt ist. Es ist wichtig, den richtigen Wert zu ermitteln, damit wir die korrekte Fabrikkapazität modellieren können.
Wenn ich über die Auswahl dieses Wertes nachdenke, habe ich noch eine andere Möglichkeit: Wenn es hier einige Punkte gibt, die wie Ausreißer aussehen und die man aus den Daten entfernen möchte, gibt es eine Schaltfläche namens „Trimmen“, die das oberste und unterste 1 % der Daten entfernt.
Wir können entweder das Modell PPH oder die empfohlenen 98 % PPH auswählen. Alternativ können wir einen benutzerdefinierten Wert eingeben, den Sie mit den Schaltflächen nach oben und unten verschieben können. Sobald Sie den gewünschten Wert gefunden haben, wählen Sie ihn hier unten aus, klicken Sie dort darauf und anschließend auf „Auswählen“. Der Wert wird dann in der Übersichtstabelle angezeigt. Optional können Sie auch Notizen hinzufügen, die ebenfalls hier erscheinen.
Nun zeige ich Ihnen anhand einer etwas komplexeren Rezeptur, wie die Datenanalyse solcher Daten aussieht. Zunächst filtere ich die Daten. Sie sehen, dass sich dieses Panel aktualisiert hat. Der Hauptfaktor für die Variabilität in diesem Datensatz sind die vorherigen Rezepturen. Welche Rezepturen wurden verwendet, bevor ich diese Charge Waffeln geladen habe?
Ich sehe mir das Variabilitätsdiagramm an und markiere es farblich. Mir fällt auf, dass dieses Diagramm besonders hervorsticht. Es läuft schneller, wenn es nach Rezept B ausgeführt wird. Wir sehen, dass wir tatsächlich Rezept B betrachten. Das erfüllt die stationäre Bedingung. Wir führen dasselbe Rezept nacheinander aus. Das ist die effizienteste Art, dieses Rezept auszuführen. Genau das wollen wir im Modell abbilden.
Ich werde nun die restlichen Einträge auswählen und sie mit dieser Schaltfläche ausblenden und ausschließen, um diese bekannte und identifizierte Variationsquelle zu eliminieren. Die Auswertung unseres Prädiktor-Screening-Tools ist, wie bereits erwähnt, der wichtigste Einflussfaktor.
Ich schaue mir das kurz an. Mir scheint, die meisten Tools können diesen hohen Wert erreichen. Ich wäre daher wieder recht zuversichtlich, den empfohlenen Wert von 98 % zu wählen. Mir fällt auf, dass Tool 6 im Vergleich zu den anderen einen recht langen Auslauf hat. Das sollte ich mir notieren, um mit einem Ingenieur für Prozessoranlagen zu sprechen und zu klären, ob es etwas gibt, das er an diesem Tool überprüfen möchte. Ich trage das ein und wähle dann meinen Wert von 98 %.
Angenommen, Sie führen diese Überprüfung durch und möchten entweder eine bereits abgeschlossene oder eine unvollständige Überprüfung erneut aufrufen und eine teilweise bearbeitete Zusammenfassung importieren. Klicken Sie dazu auf diese Schaltfläche und importieren Sie eine Zusammenfassungstabelle – eine gespeicherte Version dieser Tabelle. Dadurch werden die Tabelle mit all Ihren vorherigen Werten neu befüllt und alle ausgewählten Werte in der Verteilung aktualisiert. Sie können einfach eine zuvor durchgeführte Überprüfung wieder aufrufen.
Wenn Sie schließlich fertig sind und Ihre Ergebnisse exportieren möchten, erstellt diese Schaltfläche eine PowerPoint-Präsentation mit einer Tabelle aller ausgewählten Werte, Ihren Notizen, deren Herkunft und Miniaturansichten der einzelnen Rezeptspezifikationen. Diese Tabelle können Sie für einen weiteren Import verwenden und anschließend direkt in das Modell importieren.
Zurück zu meiner Präsentation. Da das Skript für dieses Tool recht umfangreich ist, werde ich mich auf drei zentrale Funktionen konzentrieren, die meiner Meinung nach das Ganze erst möglich machen.
Erstens kann die Arbeit mit Anzeigeelementen, die mithilfe einer Variable erstellt wurden, kompliziert werden, insbesondere wenn man versucht, mit bestimmten Elementen innerhalb der Gruppe zu interagieren. Dies wäre beispielsweise meine Liste von Verteilungen nach Rezept. Wie wähle ich das Element aus, mit dem ich interagieren möchte?
Meine Lösung dafür ist, dass ich beim Erstellen der Verteilung diese benenne. Dadurch erhalte ich eine Liste von Verweisen auf die einzelnen Anzeigeelemente. Diese Liste kann ich dann in einer Schleife verwenden oder direkt über den Index darauf zugreifen.
Zweitens geht es um die Datenverwaltung. Viele verschiedene Werte sind mit Rezeptspezifikationen oder anderen Aspekten dieses Berichts verknüpft und müssen zwischen Anzeigeelementen und anderen Stellen verwaltet und übergeben werden. Die Lösung hierfür ist eine weitere Indexliste nach Rezeptnamen, die direkt auf die oben genannte Indexliste verweist und assoziative Arrays zur Speicherung der Daten verwendet.
Drittens müssen die interaktiven Elemente erkennen, mit welchem Teil Ihrer Distribution sie interagieren sollen, wenn Sie darauf klicken oder mit ihnen interagieren. Sie müssen mit der jeweiligen Rezeptspezifikation verknüpft sein. Wenn Sie sie in einer Schleife erstellen, behalten sie den Indexwert, mit dem sie erstellt wurden, nicht bei.
Die Lösung besteht darin, ihnen die Möglichkeit zu geben, ihren Kontext selbst zu identifizieren, indem sie eine Referenz auf das übergeordnete Element speichern und anschließend mithilfe des X-Pfad-Befehls den Indexwert ihrer Position extrahieren. Ich werde einige Beispiele durchgehen, um dies hoffentlich etwas deutlicher zu machen.
Hier sind meine Verteilungen, erstellt mit einer Variable, die nach Rezeptspezifikation sortiert ist. Sie sehen, dass ich sie „dist_right_here“ genannt habe. Diese Variable enthält eine Liste aller Verteilungselemente, aus denen diese Anzeige besteht. Außerdem sind meine Rezeptnamen in einer Liste gespeichert, die direkt diesen Elementen zugeordnet ist.
Ich werde diese Liste der Verteilungen durchlaufen und beispielsweise die Daten anhand der Rezeptspezifikation befüllen. Hier verwende ich ein assoziatives Array und fülle es mit der vierten Spalte meiner zusammenfassenden Datentabelle.
Das liefert mir meine Quantile, und man sieht, dass jeder einzelne Rezeptname auf einen Wert verweist. Man kann auch innerhalb derselben Schleife mit den Graphelementen interagieren. Hier nehme ich einige Änderungen am Zugriff vor und füge in diesem Fall eine Referenzlinie hinzu.
Dafür verwende ich hier eine verschachtelte Namenskonvention. Meine Rezeptliste speichert den Namen, der dann in einem assoziativen Array verschachtelt wird. Dieses referenziert den Namen und liefert den Wert. Diese Verschachtelungstechnik ist entscheidend, um Daten zwischen allen Stellen, die auf diesen Wert zugreifen müssen, problemlos austauschen zu können.
Als Nächstes werden die interaktiven Elemente innerhalb derselben Schleife erstellt, die wir gerade besprochen haben. Sie werden als Geschwisterelemente an jedes der einzelnen Verteilungselemente angehängt, auf die ich hier mit einem Index verweise.
Hier ist ein Beispiel für die Schaltfläche „Auswählen“. Der Code ist recht umfangreich, beginnt aber mit der Überprüfung des Anzeigepfads zurück zum Verteilerfeld. Ich speichere eine Referenz auf den übergeordneten Container, der den Verteiler enthält, sodass die Funktion dorthin zurückspringen kann. Sie gibt einen Text zurück, der eine Zahl enthält, die dem Index des entsprechenden Anzeigeelements entspricht.
Wenn Sie auf die Schaltfläche „Auswählen“ klicken, wird der aktuelle Speicherort ermittelt und ein Index vergeben, der angibt: „Okay, ich möchte dieses Rezept für Rezept A auswählen.“ Anschließend kann dieses Rezept – sei es der Index oder der Name – an andere Funktionen innerhalb des Systems übergeben werden. Sie können beispielsweise anhand des Rezeptnamens mit bestimmten Zeilen in Ihrer Übersichtstabelle interagieren, Anzeigeelemente ändern oder auf Datenwerte zugreifen. Alles, was Sie mit dem Rezeptnamen tun müssen, können Sie in anderen Funktionen ausführen, sobald Sie die Bedeutung des Namens beim Anklicken ermittelt haben.
Ich habe noch eine weitere Demo, die ich Ihnen zeigen werde. Es handelt sich um ein kleineres, kürzeres Beispiel, das mit JMP-Beispieldaten erstellt wurde, um Ihnen ein einfacheres Beispiel zu präsentieren, das einige der gleichen Funktionen wie mein größeres Skript ausführt. Ich möchte betonen, dass es viel einfacher ist, als es aussieht. Es sind nur 73 Codezeilen, wenn man die Leerzeichen in den Kommentaren entfernt. Ich werde es Schritt für Schritt erklären.
Ich beginne mit dem Ausführen des Skripts. Es öffnet diese Beispieldaten zu Verbraucherpreisen. Wir haben eine Übersichtstabelle mit allen Artikeln, dem Durchschnittspreis und einem ausgewählten Preis. Unterhalb jeder Preisverteilung befindet sich ein kleines interaktives Element.
Sie können den Mittelwert als Standardwert verwenden und diesen Wert nach oben oder unten verschieben. Alternativ können Sie einen Wert und anschließend Ihren Preis auswählen, der dann hier angezeigt wird. Dies ist nur ein kleines Beispiel, um eine ähnliche Funktionsweise wie im größeren Skript zu veranschaulichen.
Gehen wir dieses Skript Schritt für Schritt durch. Fangen wir mit den Grundlagen an. Ich habe Deklarationen für meine Artikelliste, meine assoziativen Arrays für den Durchschnittspreis, einen temporären Preis (einen Platzhalter, der den aktuellen Wert speichert) und den ausgewählten Preis. Dieser Wert wird verwendet, um ihn in die Zusammenfassungstabelle einzufügen.
Ich beginne mit dem Erstellen der Zusammenfassungstabelle, passe die Formatierung an und füge eine neue Spalte hinzu. Anschließend erstelle ich ein Anzeigefenster. Innerhalb dieses H-Splitter-Felds befindet sich eine Referenz auf die soeben erstellte Zusammenfassungstabelle. Dort erstelle ich nun direkt meine Verteilungen. Sie werden erneut diese übergeordnete Referenz auf die Scrollbox bemerken, die die hier referenzierten Verteilungen enthält. Dies ist die gesamte Struktur, die zur Erstellung des angezeigten Anzeigefensters verwendet wird.
Direkt im Anschluss erstelle ich meine Elementliste, die den einzelnen Anzeigeelementen innerhalb dieser Verteilungsliste zugeordnet wird. Nun führe ich meine Schleife aus, die bereits besprochen wurde. Ich beginne mit dem Eintragen des Durchschnittspreises, der direkt aus der Übersichtstabelle stammt, und verwende anschließend denselben temporären Preis.
Jetzt ändere ich die Zugriffsformate für jedes Element und füge mithilfe der besprochenen Verschachtelungstechnik Referenzlinien zum Mittelwert hinzu. Anschließend füge ich die Daten als gleichrangige Elemente zu jeder Verteilung hinzu. Hier befinden sich mehrere Container zur Formatierung und das Eingabefeld für die Zahlen, in das man tippen und das man verschieben kann.
Bei der Interaktion wird die darin enthaltene Funktion ausgeführt. Zuerst wird der Pfad überprüft. Die Werte werden angezeigt. Wenn wir einen Wert auswählen und ihn verändern, wird – wie im Protokoll unten zu sehen – der Pfad X ausgegeben. Index und Name werden extrahiert.
Wenn wir verschiedene Aktionen ausführen, sehen Sie, dass je nach Auswahl unterschiedliche Namen angezeigt werden. Anschließend wird lediglich auf das Zugriffsfeld zugegriffen, um damit zu interagieren. Wir entfernen alle alten Referenzzeilen, um sicherzustellen, dass wir die Referenzzeile nicht jedes Mal duplizieren, und fügen gegebenenfalls entfernte Zeilen wieder hinzu, falls sich Zeilen überlappen. Genau das geschieht hier.
Der temporäre Preis wird dann anhand des Artikelnamens mit dem Wert im Zahlenfeld aktualisiert. Anschließend fügen wir eine Referenzzeile speziell für den ausgewählten Wert hinzu. Hier ist der Code für die Schaltfläche „Auswählen“. Genau wie beim Zahlenfeld überprüfen wir den Pfad, um den Artikelnamen und den Index zu extrahieren.
Wir werden alle zuvor ausgewählten Zugriffszeilen entfernen und gelöschte Zeilen wieder hinzufügen. Anschließend aktualisieren wir den ausgewählten Preis mit dem temporären Preis, den wir zuvor bei der Interaktion mit dem Feld erstellt haben. Danach aktualisieren wir die Übersichtstabelle mit dem soeben ausgewählten Preis und zeichnen eine fette grüne Linie ein, um diesen Wert zu kennzeichnen.
Das ist im Grunde alles. Ich hoffe, es wirkte nicht zu kompliziert. Im Grunde geht es nur darum, mit den Zugriffsrechten zu interagieren und Referenzlinien hinzuzufügen. Alles, was die Funktionalität der interaktiven Elemente erzeugt, ist eigentlich recht einfach.
Dieses Skript sowie die Beispieldaten und das größere PPH-Tool-Skript werden zusammen mit meiner Präsentation hochgeladen. Sie können dann darauf zugreifen, falls Sie damit experimentieren oder die Funktionsweise genauer untersuchen möchten.
Zum Schluss möchte ich noch einige Erkenntnisse teilen, die ich während der Entwicklung und Anwendung des PPH-Tools gewonnen habe. Erstens erweitert das Hinzufügen interaktiver Elemente zu den Plattformen in JMP die Analysemöglichkeiten erheblich.
Damit sind Dinge wie diese gemeint, also die Möglichkeit, einen Wert auszuwählen und ihn an anderer Stelle eintragen zu lassen, oder im PPH-Tool, beim Prädiktor-Screening, und dann die Möglichkeit, von dort Werte auszuwählen und diese dann mit einem Variabilitätsdiagramm weiter zu erweitern.
Als Nächstes bietet sich die Möglichkeit, Exportergebnisse zu dokumentieren, was die Kommunikationsprozesse erheblich optimiert. Wir beginnen mit Rohdaten, lassen jemanden eine Analyse durchführen und die Ergebnisse anschließend in eine Tabelle exportieren, die an denjenigen gesendet werden kann, der das Modell pflegt.
Sie können Notizen erstellen, die an einen Prozess- oder Anlageningenieur gesendet werden können, um verschiedene Punkte aufzuzeigen, die dieser an seinen Werkzeugen überprüfen möchte. Beim Skripting war die Verwendung geordneter Listen als Indexschlüssel in assoziativen Arrays zum Speichern, Abrufen und Übergeben von Daten zwischen verschiedenen Anzeigeelementen entscheidend für die erfolgreiche Verarbeitung großer Datenmengen.
Erstellen Sie anschließend interaktive Steuerelemente mit einem Anzeigeelement, das mithilfe einer Variable in einer Schleife angezeigt wird. Durch das Durchlaufen der Liste der Anzeigeelemente, die Sie beim Erstellen eines Elements mit einer Variable erhalten, lassen sich viele Aktionen ausführen.
Und schließlich möchte ich vor allem betonen, dass das Skripten gar nicht so schwer ist, wie es aussieht. Das PPH-Tool ist zwar ein umfangreiches Skript und mag auf den ersten Blick abschreckend wirken, aber mit etwas Übung ist es gar nicht so schwierig, so etwas zu entwickeln.
Beim Skripten nutze ich immer den Skriptindex. Ich habe stets die JMP-Hilfeseiten geöffnet und auch das Protokoll, um die Vorgänge während meiner Arbeit in JMP nachverfolgen zu können.
Ich möchte jeden, der es noch nicht ausprobiert hat oder vielleicht davor zurückschreckt, wirklich ermutigen, es einfach mal zu versuchen, denn es erweitert die Möglichkeiten von JMP enorm. Das war's von mir. Vielen Dank für Ihre Zeit.