-
Technisches Gebiet
-
Diese
Erfindung betrifft im Allgemeinen das Gebiet der Halbleiterherstellung
und betrifft insbesondere ein Verfahren und eine Vorrichtung zum
Integrieren mehrerer Prozesssteuerungen.
-
Hintergrund der Erfindung
-
In
der Halbleiterindustrie gibt es ein ständiges Bestreben, die Qualität, Zuverlässigkeit
und den Durchsatz für
integrierte Schaltungsbauelemente, beispielsweise Mikroprozessoren,
Speicherbauelemente, und dergleichen zu erhöhen. Dieses Bestreben wird
bestärkt
durch die Nachfrage der Verbraucher nach Computern und elektronischen
Geräten mit
höherer
Qualität,
die zuverlässiger
arbeiten. Diese Forderungen führten
zu einer ständigen
Verbesserung bei der Herstellung von Halbleiterbauelementen, beispielsweise
von Transistoren, sowie bei der Herstellung integrierter Schaltungsbauelemente,
in denen derartige Transistoren eingesetzt sind. Ferner wird durch
das Verringern der Defekte bei der Herstellung der Komponenten eines
typischen Transistors auch der Gesamtherstellungspreis pro Transistor sowie
die Kosten für
integrierte Schaltungsbauelemente mit derartigen Transistoren verringert.
-
Im
Allgemeinen wird eine Reihe aus Prozessschritten an einem Los aus
Scheiben unter Anwendung einer Vielzahl von Prozessanlagen ausgeführt, wozu
Photolithographieeinzelbelichter, Ätzanlagen, Abscheideanlagen,
Polieranlagen, Anlagen für
die schnelle thermische Ausheizung, Implantationsanlagen, etc. gehören. Die
mit den Halbleiterprozessanlagen verknüpften Technologien haben eine erhöhte Aufmerksamkeit
in den letzten Jahren erfahren, wodurch wesentliche Verbesserungen
gelungen sind. Trotz der Fortschritte, die auf diesen Bereich erzielt
wurden, weisen viele Prozessanlagen, die aktuell auf dem Markt erhältlich sind,
gewisse Nachteile auf. Insbesondere fehlt es derartigen Anlagen
häufig an
verbesserten Prozessdatenüberwachungsfähigkeiten,
etwa der Fähigkeit,
historische Parameterdaten in einem anwenderfreundlichen Format
bereitzustellen, sowie das Aufzeichnen von Ereignissen, die graphische
Echtzeitdarstellung sowohl aktueller Prozessparameter als auch der
Prozessparameter des gesamten Durchlaufs, und die Fernüberwachung,
d. h. die Überwachung
vor Ort und weltweit. Diese Nachteile können zu einer nicht optimalen
Steuerung kritischer Prozessparameter führen, etwa dem Durchsatz, der
Genauigkeit, der Stabilität
und Wiederholbarkeit, von Prozesstemperaturen, mechanischen Anlagenparametern
und dergleichen. Diese Variabilität zeigt sich als Ungleichmäßigkeiten
innerhalb eines einzelnen Durchlaufs, als Ungleichmäßigkeiten
zwischen einzelnen Durchläufen
und als Ungleichmäßigkeiten
zwischen einzelnen Anlagen, die sich dann zu Abweichungen in der
Produktqualität und
dem Leistungsverhalten fortpflanzen können, wohingegen ein ideales Überwachungs-
und Diagnosesystem für
derartige Anlagen ein Mittel bereitstellen würde, um diese Variabilität zu überwachen,
wobei auch Mittel bereitgestellt würden, um die Steuerung kritischer
Parameter zu optimieren.
-
Eine
Technik zur Verbesserung des Betriebs einer Halbleiterfertigungslinie
umfasst die Verwendung eines fabrikumspannenden Steuerungssystems,
um den Betrieb der diversen Prozessanlagen in automatischer Weise
zu steuern. Die Fertigungsanlagen kommunizieren mit einer Fertigungsplattform
oder einem Netzwerk aus Prozessmodulen. Jede Prozessanlage ist im
Allgemeinen mit einer Anlagenschnittstelle verbunden. Die Anlagenschnittstelle
ist mit einer Maschinenschnittstelle verbunden, die eine Kommunikation
zwischen der Prozessanlage und der Fertigungsplattform ermöglicht.
Die Maschinenschnittstelle kann im Allgemeinen ein Teil eines fortschrittlichen
Prozesssteuerungs-(APC) Systems sein. Das APC-System initiiert ein
Steuerungsskript auf der Grundlage eines Fertigungsmodells, das
ein Softwareprogramm sein kann, das in automatischer Weise die zum
Ausführen
eines Fertigungsprozesses erforderlichen Daten abruft. Häufig werden
Halbleiterbauelemente in mehreren Prozessanlagen über mehrere
Prozesse hinweg bearbeitet, wodurch Daten erzeugt werden, die mit
der Qualität
der bearbeiteten Halbleiterbauelemente in Beziehung stehen.
-
Während des
Fertigungsprozesses können diverse
Ereignisse stattfinden, die die Eigenschaften der hergestellten
Bauelemente beeinflussen. D. h., Abweichungen in den Fertigungsprozessschritten führen zu Änderungen
im Bauteilverhalten. Faktoren, etwa kritische Strukturabmessungen,
Dotierstoffpegel, Kontaktwiderstände,
Teilchenkontamination, etc. können
alle potentiell das Endverhalten des Bauelements beeinflussen. Es
werden diverse Anlagen in der Prozesslinie gemäß Verhaltensmodellen gesteuert,
um Prozessvariationen zu reduzieren. Zu üblicherweise gesteuerten Prozessanlagen
gehören Photolithographieeinzelbelichter,
Polieranlagen, Ätzanlagen
und Abscheideanlagen. Es werden der Bearbeitung vorgeordnete und/oder
nachgeordnete Messdaten den Prozesssteuerungen für die Anlagen zugeführt. Es
werden Betriebsrezeptparameter, etwa die Bearbeitungszeit, durch die
Prozesssteuerungen auf der Grundlage des Verhaltensmodells und der Messinformationen
berechnet, um zu versuchen, die Ergebnisse nach dem Bearbeiten möglichst
nahe an einem Sollwert zu halten. Das Reduzieren der Schwankungen
auf diese Weise führt
zu einem erhöhten
Durchsatz, geringeren Kosten, einem verbesserten Leistungsverhalten
der Bauelemente, etc., was somit insgesamt zu einer erhöhten Rentabilität beiträgt.
-
GB-A-2329 041 offenbart
eine Mehrfachsystem-Maschinenanlage zum Bearbeitern eines von mehreren
vorbestimmten Werkstücken
mit vorbestimmten Bearbeitungsschritten unter Anwendung vorbestimmter
Bearbeitungssysteme.
-
Die
Steuerung der Konfiguration und die Effizienz sind in einer verteilten
Computerumgebung, etwa in einem fabrikumspannenden APC-System, vorherrschende
Aspekte. Typischerweise gibt es zahlreiche Softwareentwickler, die
Steuerungsprogramme schreiben, um die Prozesssteuerungen aufzubauen.
Ein spezieller Entwickler kann intensiv daran arbeiten, Steuerungen
einer gewissen Art zu entwickeln. Es ist üblich, dass jeder Entwickler
seine spezielle Programmierart hat und sich auf Routinen stützt, die
selbst entwickelt sind. Beispielsweise kann jeder Entwickler eine
Menge aus Routinen zur Verbindung mit Datenbanken oder anderen Einheiten
in der APC-Plattform und zum Ausführen diverser mathematischer
Funktionen und grundlegender Benutzerfunktionen besitzen.
-
Ein
Problem, das mit einer derartigen Situation verknüpft ist,
besteht darin, dass es nur eine geringe Konsistenz zwischen Prozesssteuerungsskripten
gibt. Die große
Anzahl von kundenspezifischen Skripten führt auch zu einem Konfigurationssteuerungsproblem
und einem Effizienzproblem. Entwickler können einen beträchtlichen
zeitlichen Aufwand haben, um die Codierungen erneut zu schaffen,
die bereits unter Umständen
für eine
andere Art an Prozesssteuerung, die ein anderer Entwickler geschaffen
hat, entwickelt sind. Die Fehlererkennung in nicht standardisierten
Codierungen ist ebenso zeitaufwendiger und verringert ferner die
Effizienz.
-
Die
vorliegende Erfindung zielt darauf ab, eines oder mehrere der oben
erkannten Probleme zu lösen
oder zumindest in ihren Auswirkungen zu reduzieren.
-
Überblick über die
Erfindung
-
Ein
Aspekt der vorliegenden Erfindung betrifft ein Verfahren zum Steuern
eines Fertigungssystems. Das Verfahren umfasst das Bearbeiten von Werkstücken in
mehreren Prozessanlagen; das Initiieren eines Basissteuerungsskripts
für eine
ausgewählte
Anlage der mehreren Anlagen, wobei die ausgewählte Anlage ein Prozessrezept
besitzt; das Bereitstellen einer Kontextinformation für das Basissteuerungsskript;
das Bestimmen einer Anlagenart auf der Grundlage der Kontextinformation;
das Auswählen
einer Gruppe aus Steuerungsroutinen für die ausgewählte Anlage
auf der Grundlage der Anlagenart; das Bestimmen erforderlicher Steuerungsroutinen
aus der Gruppe aus Steuerungsroutinen auf der Grundlage der Kontextinformation;
und das Ausführen
der erforderlichen Steuerungsroutinen, um Steuerungsaktionen für die ausgewählte Anlage
zu erzeugen; das Ändern
des Prozessrezepts der ausgewählten
Anlage auf der Grundlage der Steuerung, wobei das Verfahren ferner
umfasst: Abrufen von Steuerungszustandsinformation, die mit vorhergehenden Steuerungsaktionen
für die
ausgewählte
Anlage für jede
der erforderlichen Steuerungsroutinen in Beziehung steht, dadurch
gekennzeichnet, dass die Steuerungszustandsinformation, die mit
einer der erforderlichen Steuerungsroutinen verknüpft ist,
auf der Grundlage einer Steuerungsaktion geändert wird, die mit einer weiteren
der erforderlichen Steuerungsroutinen verknüpft ist.
-
Ein
weiterer Aspekt der vorliegenden Erfindung betrifft ein Fertigungssystem
mit mehreren Anlagen, die zum Bearbeiten von Werkstücken ausgebildet
sind, einer Steuerungsausführungsverwaltungseinheit
und einer Steuerungsausführungseinheit.
Die Steuerungsausführungsverwaltungseinheit ist
ausgebildet, ein Basissteuerungsskript für eine ausgewählte Anlage
der mehreren Anlagen zu initiieren und Kontextinformation für das Basissteuerungsskript
bereitzustellen, wobei die ausgewählte Anlage ein Prozessrezept
aufweist. Die Steuerungsausführungseinheit
ist ausgebildet, das Basissteuerungsskript auszuführen, eine
Anlagenart auf der Grundlage der Kontextinformation zu bestimmen,
eine Gruppe aus Steuerungsroutinen für die ausgewählte Anlage
auf der Grundlagenart auszuwählen,
erforderliche Steuerungsroutinen aus der Gruppe der Steuerungsroutinen
auf der Grundlage der Kontextinformation zu bestimmen und die erforderlichen
Steuerungsroutinen auszuführen,
um Steuerungsaktionen für
die ausgewählte
Anlage zu erzeugen, das Prozessrezept der ausgewählten Anlage auf der Grundlage
der Steuerungsaktionen zu ändern,
wobei die Steuerungsausführungseinheit
ferner ausgebildet ist, die Steuerungszustandsinformation, die mit
vorhergehenden Steuerungsaktionen in Beziehung steht, die mit der
ausgewählten
Anlage verknüpft
sind, für
jede der erforderlichen Steuerungsroutinen abzurufen, dadurch gekennzeichnet,
dass die Steuerungsausführungseinheit
ferner ausgebildet ist, die Steuerungszustandsinformation, die mit
einer der erforderlichen Steuerungsroutinen verknüpft ist,
auf der Grundlage einer Steuerungsaktion, die mit einer weiteren
der erforderlichen Steuerungsroutinen verknüpft ist, zu ändern.
-
Kurze Beschreibung der Zeichnungen
-
Die
Erfindung kann durch Bezugnahme auf die folgende Beschreibung in
Verbindung mit den begleitenden Zeichnungen verstanden werden, in
denen gleiche Bezugszeichen gleiche Elemente benennen und in denen:
-
1 eine
vereinfachte Blockansicht eines fortschrittlichen Prozesssteuerungs-(APC)
Systems gemäß einer
anschaulichen Ausführungsform
der vorliegenden Erfindung ist;
-
2 eine
Ansicht ist, die Verbindungen zwischen einem Basissteuerungsskript
in dem System aus 1 und mehreren gemeinsam benutzten
Basisbibliotheken zeigt;
-
3 eine
vereinfachte Blockansicht ist, die den Aufbau eines Basisprozessskripts
zeigt;
-
4 eine
vereinfachte Blockansicht ist, die den Aufbau eines Basismessskripts
zeigt;
-
5 eine
vereinfachte Blockansicht ist, die den Aufbau eines Basisprozessskripts
für mehrere Steuerungen
zeigt; und
-
6 ein
vereinfachtes Flussdiagramm eines Verfahrens zum integrieren mehrerer
Steuerungen gemäß einer
weiteren anschaulichen Ausführungsform
der vorliegenden Erfindung zeigt.
-
Obwohl
die Erfindung diversen Modifizierungen und alternativen Formen unterliegen
kann, sind dennoch spezielle Ausführungsformen beispielhaft in den
Zeichnungen dargestellt und hierin detailliert beschrieben. Es sollte
jedoch beachtet werden, dass die Beschreibung spezieller Ausführungsformen nicht
beabsichtigt, die Erfindung auf die speziellen offenbarten Formen
einzuschränken,
sondern die Erfindung soll vielmehr alle Modifizierungen, Ä quivalente
und Alternativen abdecken, die innerhalb des Schutzbereichs der
Erfindung liegen, wie sie durch die angefügten Patentansprüche definiert
ist.
-
Art bzw. Arten zum Ausführen der
Erfindung
-
Im
Folgenden werden anschauliche Ausführungsformen beschrieben. Im
Sinne der Einfachheit sind nicht alle Merkmale einer tatsächlichen
Implementierung in dieser Beschreibung aufgeführt. Es ist selbstverständlich zu
beachten, dass bei der Entwicklung einer derartigen tatsächlichen
Ausführungsform
zahlreiche implementationsspezifische Entscheidungen getroffen werden
müssen,
um die speziellen Ziele der Entwickler zu erreichen, etwa die Verträglichkeit
mit systembezogenen und geschäftsbezogenen
Rahmenbedingungen, die sich von einer Implementierung zu einer weiteren
einer weiteren unterscheiden können.
Des weiteren ist zu beachten, dass ein derartiger Entwicklungsaufwand
komplex und zeitaufwendig sein kann, aber dennoch eine Routinemaßnahme für den Fachmann
im Besitze der vorliegenden Offenbarung darstellt.
-
Es
sei nun auf die Figuren und insbesondere auf 1 verwiesen;
dort ist eine vereinfachte Blockansicht eines fortschrittlichen
Prozesssteuerungs-(APC) Systems 100 gezeigt. Das APC-System 100 ist
ein verteiltes Softwaresystem mit austauschbaren standardisierten
Softwarekomponenten, die eine Steuerung auf Durchlaufbasis und eine
Fehlererkennungs/Klassifizierung ermöglichen. Die Softwarekomponenten
bilden einen Architekturstandard auf der Grundlage einer fortschrittlichen
Prozesssteuerungs-(APC) Plattform und eines damit verträglichen
Systems auf Grundlage der Spezifikationen von „Halbleiteranlagen und Materialien
international (SEMI); mit computerintegrierter Fertigungs-(CIM) Plattform.
CIM-(SEMI E81-0699 vorläufige
Spezifizierung für
die CIM-Plattform-Domänenarchitektur) und
APC-(SEMI E93-0999 vorläufige
Spezifizierung für
Komponenten fortschrittlicher Prozesssteuerungen für CIM-Plattform)
Spezifizierungen sind öffentlich
von SEMI erhältlich.
Diese spezielle Architektur beruht im Wesentlichen auf einer Software
unter Anwendung einer objektorientierten Programmierung und verwendet
die gemeinsame Objektanforderungs-Broker-Architektur (CORBA) der
Objektmanagement-Gruppe (OMG) und CORBA-Dienstleistungsspezifikationen
für verteilte
Objektsysteme. Informationen und Spezifizierungen für die OMG-CORBA-Architektur
sind ebenso allgemein erhältlich.
Ein beispielhaftes Softwaresystem, das in der Lage ist, die Funktionen
des APC-Systems 100, wie es hierin beschrieben ist, auszuführen, ist
das von KLA Tencor, Inc., angebotene Katalyst-System.
-
Die
Komponenten kommunizieren miteinander unter Anwendung der CORBA-Schnittstellendefinitionssprache
(IDL) und beruhen auf einem gemeinsamen Satz an Dienstleistungen,
um ihre Wechselwirkung untereinander zu ermöglichen. Eine Standardlänge aus
verteilten Objektdienstleistungen ist durch die OMG definiert. Zu
diesen Dienstleistungen gehören:
CORBA – das Kommunikationsprotokoll
auf Standardbasis, das für
alle direkten Wechselwirkungen zwischen einzelnen Komponenten verwendet
wird. Standardschnittstellen können
entsprechend einem objektorientierten Fernaufrufkommunikationsmodell definiert
werden. Diese Schnittstellen und alle APC-Kommunikationsaktivitäten werden
unter Anwendung von IDL definiert. Komponenten kommunizieren durch
Aufrufen von Operationen an den jeweiligen Schnittstellen. Daten
werden zwischen Komponenten als Operationsparameter und Rückgabewerte weitergegeben.
-
OMG-Ereignisdienstleistung – unterstützt eine
asynchrone Kommunikation zwischen den Komponenten. Viele der APC-Objekte
geben Ereignisse aus, wenn sie ihren Zustand ändern. Diese Ereignisse werden
von interessierten Ereignissteilnehmern empfangen. Zu Beispielen
der Ereignisverwendung innerhalb des APC-Systems gehören, ohne
einschränkend
zu sein, der Kommunikationskomponentenzustand (mit dem Fehlerzustand),
die Bekanntgabe von Fehleralarmen, die durch Fehlererkennungs- und
Klassifizierungssoftware erkannt wurden und das Berichten des Maschinenzustands
und der gesammelten Daten.
-
OMD-Handelsdienstleistung – ermöglicht es einer
Komponente, eine weitere Komponente zu finden, mit der eine Wechselwirkdung
stattfindet. Wenn eine Komponente installiert wird, wird eine Beschreibung
ihrer Dienstleistungen (ein Dienstleistungsangebot) an die Handelsdienstleistung
exportiert. Eine weitere Komponente kann später eine Liste aus Dienstleistungsanbietern
anfordern, die gewisse Bedingungen erfüllen. Die Handelsdienstleistung
liefert eine Liste anderer Komponenten, die den erforderlichen Dienst
anbieten können.
Diese Fähigkeit
bzw. Kapazität
wird beim Initialisieren einer Komponente verwendet, um es einer
einzelnen Komponente zu ermöglichen,
andere Komponenten zu ermitteln, mit der sie in Verbindung treten
muss. Diese Fähigkeit wird
ferner bei der Planinitialisierung verwen det, wenn eine Planausführungskomponente
Anbieter für Fähigkeiten
bzw. Kapazitäten
finden muss, um die erforderlichen Kapazitäten, die in dem Plan spezifiziert sind,
bereitzustellen.
-
Diese
Dienstleistungen sind im Stand der Technik gut bekannt. OMG's CORBA/IIOP-Spezifikationsdokument
und CORBA-Dienstleistungsspezifikationsdokumente sind dem Fachmann
bekannt und enthalten entsprechende Details.
-
In
der dargestellten Ausführungsform
ist das APC-System 100 ausgebildet, eine Halbleiterfertigungsumgebung
zu steuern. Die Komponenten kommunizieren miteinander unter Anwendung
der CORBA-Schnittstelledefinitionssprache (IDL). Die kooperierenden
Softwarekomponenten verwalten Prozesssteuerungspläne/Strategien;
sammeln Daten von Prozessanlagen, Messanlagen und Zusatzsensoren; Rufen
diverse Prozesssteuerungsanwendungen/Algorithmen mit dieser Information
auf; und aktualisieren Prozessmodelle und Modifizieren/Laden Anlagenprozessrezeptparameter
in geeigneter Weise ein. Das APC-System 100 ist ein fabrikumspannendes Softwaresystem
zum Steuern der Halbleiterherstellungsprozesse, wobei dies zum Anwenden
der vorliegenden Erfindung nicht erforderlich ist. Die durch die vorliegende
Erfindung gelehrten Strategien können auch
auf andere Computersysteme auf jeden Maßstab angewendet werden.
-
In
einer beispielhaften Ausführungsform
umfasst das APC-System 100 einen APC-Host- bzw. Leit-Computer 110,
Datenbankserver- bzw. Dienstleistungsrechner 115, 117,
eine Prozessanlage 120, eine Messanlage 125 und
eine oder mehrere Arbeitsstationen 130. Die Komponenten
des APC-Systems sind durch einen Bus 135 verbunden. Der
Bus 135 kann tatsächlich
mehrere Schichten aufweisen und kann mehrere Protokolle verwenden.
Der Gesamtbetrieb des APC-Systems 100 wird von einer APC-Systemverwaltungseinheit 140 gesteuert,
die in dem APC-Leitrechner 110 enthalten ist. Die APC-Systemverwaltungseinheit 140 bietet:
administrative Dienstleistungen, Konfigurationsdienstleistungen,
Ereignisse und Zustandsdienstleistungen für alle Dienstleister, die für die APC-Plattform entwickelt
sind; Definition, Gruppierung, Installation und Verwaltung der Komponenten
in dem APC-System 100; zentrale Dienstleistungen für das Erhalten
von Aktivitäts- und Überwachungsinformationen
für die
Diagnose und Überwachungszwecke;
eine zentrale Stelle für
Komponentenkonfigurationsinformationen einschließlich von Initialisierungswerten,
Systemumgebungseinstellungen; und eine Liste unabhängiger Objekte
und Ereignis kanäle.
Jedoch können
in alternativen Ausführungsformen
diese Funktionen in eine oder mehrere Softwarekomponenten, beispielsweise
eine Basisverwaltungseinheit, eine Systemverwaltungseinheit, eine
Aufzeichnungseinheit und eine Registrierung unterteilt werden.
-
Das
APC-System 100 umfasst ein Netzwerk aus Prozessmodulen.
Diese Prozessmodule werden manchmal auch als „Integrationskomponenten" bezeichnet. Integrationskomponenten
dienen als Schnittstelle für
bestehende Fabriksysteme und liefern die Fähigkeit, um APC-Pläne auszuführen. Ein „APC-Plan" ist ein Anwendungsprogramm,
das zum Ausführen
einer speziellen Aufgabe aufgerufen wird, wie dies nachfolgend detaillierter
erläutert
ist. Die Integrationskomponenten sind so gezeigt, dass diese durch
die diversen Verarbeitungsressourcen innerhalb des APC-Systems 100 unterhalten
werden. Diese speziellen Unterhaltsplätze sind nur für beispielhafte
Zwecke angegeben. Die Prozessressourcen sind untereinander verbunden
und die diversen Softwarekomponenten können unter den diversen Computern
aufgeteilt oder zentral angeordnet sein, abhängig von der Komplexität des Systems.
Jede der Integrationskomponenten in dieser speziellen Ausführungsform
ist als Software eingerichtet. Sie sind in C++ unter Anwendung objektorientierter
Programmierverfahren programmiert, wie dies im Stand der Technik
bekannt ist. Ein Vorteil des APC-Systems 100 ist seine
modulare Struktur, die die Übertragbarkeit
von Softwarekomponeten ermöglicht.
Zu den Integrationskomponenten gehören, ohne darauf eingeschränkt zu sein,
die APC-Systemverwaltungseinheit 140; eine Steuerungsausführungsverwaltungseinheit 150;
Anlagenschnittstellen 160, 165, die zu den Anlagen 120, 125 gehören; eine
Sensorschnittstelle 170, die mit der Prozessanlage 120 verbunden
ist; eine Anwendungsschnittstelle 180; Maschinenschnittstellen 190, 195;
eine Bedienerschnittstelle 200; und eine Datenhandhabungseinheit 210.
-
Die
Steuerungsausführungsverwaltungseinheit 150 ist
die Komponente, die hauptsächlich
für die „Choreographie" beim Betrieb des
APC-Systems 100 verantwortlich ist. Die Steuerungsausführungsverwaltungseinheit 150 setzt
APC-Pläne,
führt Hauptskripten
und Unterskripten aus und ruft Ereignisskripten auf, wie dies durch
die Ereignisse diktiert wird. In den diversen Ausführungsformen
können
eine Vielzahl von Plänen,
Skripten und Unterskripten verwendet werden. Die spezielle Anzahl
und die Funktion der diversen Pläne,
Skripten und Unterskripten ist implementationsspezifisch. Beispielsweise
umfasst die vorliegende Ausführungsform,
ohne einschränkend zu
sein, die folgenden Pläne:
einen
Datensammelplan – eine
Datenstruktur, die von der Sensorschnittstelle und den Maschinenschnittstellen
verwendet wird, und die die Erfordernisse definiert, welche Daten
von einer speziellen Prozessanlage gewonnen werden sollen, und wie
die Daten zurückberichtet
werden sollen;
einen Zeitdauerplan – ein Plan, der auslösende Bedingungen
und auslösende
Verzögerungen
definiert, die bewirken, dass Sensoren aktiv werden, beispielsweise
der Beginn der Datensammlung, das Ende der Datensammlung;
ein
Berichterstatterplan – ein
Plan, der definiert, was mit den gesammelten Daten zu tun ist, sowie
wann die Verfügbarkeit
der Daten zu signalisieren ist; und
einen Abtastplan – ein Plan,
der die Häufigkeit
definiert, mit der die Daten durch einen externen Sensor gesammelt
werden;
einen Steuerungsplan – eine Sammlung aus Steuerungsskripten,
die so gestaltet sind, dass sie gemeinsam zum Ausführen von
APC-Aktivitäten
verwendet werden; und
ein Steuerungsskript – eine Sequenz aus Aktionen/Aktivitäten, die
das APC-System in einer speziellen definierten Situation auszuführen hat.
-
Die
Steuerungsausführungsverwaltungseinheit 150 koordiniert
das Ausführen
von anwenderdefinierten Prozesssteuerungsplänen unter den gesamten Integrationskomponenten
für eine
gegebene Anlage, etwa der Prozessanlage 120. Nach Anweisung ruft
die Steuerungsausführungsverwaltungseinheit 150 einen
Plan und die zugehörigen
Skripten ab. Die Unterskripten werden vorverarbeitet, um Routinen
für die
Haupt- und Ereignisskripte bereitzustellen. Die Einheit erhält ferner
eine Liste der Fähigkeiten
bzw. Kapazitäten,
die erforderlich sind, um den Plan auszuführen, wie dies in dem Plan
angegeben ist und stellt eine Verbindung zu den geeigneten Integrationskomponenten
her, die die erforderlichen Kapazitäten bzw. Fähigkeiten bereitstellen.
-
Die
Steuerungsausführungsverwaltungseinheit 150 delegiert
dann die Verantwortung für
das Durchführen
des Planes an eine Steuerungsausführungseinheit 220.
In der dargestellten Ausführungsform
verwendet die Steuerungsausführungsverwaltungseinheit 150 Basis steuerungsskripte
zum Bestimmen von Steuerungsaktionen, die auszuführen sind. Ein Basisprozessskript 152 ist
für die
Verwendung für
Prozessanlagen, etwa die Prozessanlage 120 zugewiesen,
und ein Basismessskript 154 ist zur Verwendung in Messanlagen,
etwa der Messanlage 125, vorgesehen. Eine detailliertere
Erläuterung
der Basisskripten 152, 154 wird nachfolgend mit
Bezug zu den 2 bis 6 angegeben.
-
Die
Steuerungsausführungsverwaltungseinheit 150 erzeugt
eine Steuerungsausführungseinheit 220 auf
der Grundlage des geeigneten Basisprozessskripts 152 oder
Basismessskripts 154, um sequenziell den Plan auszuführen und
den Abschluss des Planes oder Fehler bei der Ausführung des
Planes wieder an die Steuerungsausführungsverwaltungseinheit 150 zu
berichten. Obwohl somit die Steuerungsausführungsverwaltungseinheit 150 für die Gesamtverwaltung
aller ausgeführten
Pläne verantwortlich
ist, ist jede Steuerungsausführungseinheit 220 für das Ausführen nur
eines einzelnen Planes verantwortlich. Die Steuerungsausführungseinheit 220 wird
von der Steuerungsausführungsverwaltungseinheit 150 erzeugt
und besteht nur während der
Lebensdauer des Planes und wird von der Steuerungsausführungsverwaltungseinheit 150 zerstört, nachdem
berichtet ist, dass der Plan abgeschlossen oder abgebrochen ist.
Die Steuerungsausführungsverwaltungseinheit 150 kann
mehrere Pläne gleichzeitig über mehrere
Steuerungsausführungseinheiten 220 starten.
-
Die
Maschinenschnittstellen 190, 195 überbrücken die
Lücke zwischen
der APC-Plattform, beispielsweise der APC-Systemverwaltungseinheit 140, und
den Anlagenschnittstellen 160, 165. Die Maschinenschnittstellen 190, 195 verbinden
die Prozess- oder Messanlagen 120, 125 mit der
APC-Plattform und unterstützen
die Maschineninitialisierung, Aktivierung, Überwachung die Datensammlung.
In dieser speziellen Ausführungsform übersetzen
die Maschinenschnittstellen 190, 195 hauptsächlich die
spezielle Kommunikation der Anlagenschnittstellen 160, 165 in
die CORBA-Kommunikation der APC-Plattform. Genauer gesagt, die Maschinenschnittstellen 190, 195 empfangen
Befehle, Statusereignisse und gesammelte Daten von den Anlagenschnittstellen 160, 165 und
leiten diese nach Bedarf zu anderen APC-Komponenten und Ereigniskanälen weiter.
Umgekehrt werden Antworten von anderen APC-Komponenten von den Maschinenschnittstellen 190, 195 empfangen
und an die Anlagenschnittstellen 160, 165 weitergeleitet.
Die Maschinenschnittstellen 190, 195 formatieren
und strukturieren bei Bedarf Nachrichten und Daten neu. Die Maschinenschnittstellen 190, 195 unterstützen die
Initialisierungs-/Abschaltprozeduren in der APC- Systemverwaltungseinheit 140.
Sie dienen auch als APC-Datensammeleinheiten, die Daten zwischenspeichern,
die von den Anlagenschnittstellen 160, 165 gesammelt
wurden, und geeignete Datensammelereignisse ausgeben.
-
Die
Sensorschnittstelle 170 sammelt Daten, die von den Sensoren
erzeugt wurden, die den Betrieb der Prozessanlage 120 überwachen.
Die Sensorschnittstelle 170 bietet die geeignete Schnittstellenumgebung,
um mit externen Sensoren zu kommunizieren, etwa LabVIEW oder anderen
Datennahmesoftwareanwendungen auf Busbasis in Verbindung mit anderen
Sensoren. Die Anwendungsschnittstelle 180 stellt die geeignete
Schnittstellenumgebung bereit, um implementierte Steuerungsanwendungen,
etwa LabVIEW, Mathematika, Model-Ware,
MatLAB, Simca 4000 und Excel auszuführen. Die Sensoren können in
der Prozessanlage 120 durch den ursprünglichen Anlagenhersteller
(OEM) vorgesehen werden oder diese können „Zusatzsensoren" sein, die nach der
Auslieferung durch den OEM vorgesehen werden. Die Sensorschnittstelle 170 sammelt
Daten, die von den Sensoren erzeugt werden. Die Sensoren können Daten
beispielsweise im Hinblick auf den Druck und die Temperatur der
Betriebsbedingungen erzeugen. Die Anwendungsschnittstelle 180 nimmt
Daten von der Steuerungsausführungseinheit 200 und
führt Berechnungen oder
Analysen mit diesen Daten durch. Die Ergebnisse werden dann an die
Ausführungssteuerung 220 zurückgegeben.
Die Maschinenschnittstelle 190 und die Sensorschnittstelle 170 verwenden
einen gemeinsamen Satz aus Funktionen, um die zu verwendenden Daten
zu sammeln. Die Anlagenschnittstelle 160 sammelt die entsprechenden
Daten, die von den Sensoren in der Prozessanlage 120 gewonnen
wurden, und sendet die genommenen Daten zu der Maschinenschnittstelle 190.
-
Die
Bedienerschnittstelle 200 ermöglicht eine Kommunikation zwischen
einem Scheibenfabriktechniker und dem APC-System 100 über eine
Anwenderschnittstelle (GUI) (nicht gezeigt). Die GUI kann ein Betriebssystem
auf Windows-Basis oder auf Basis von UNIX sein. Für die Verwirklichung
der vorliegenden Erfindung ist dies jedoch nicht erforderlich. Tatsächlich sind
in einigen alternativen Ausführungsformen
keine GUI verwendet und eine Kommunikation kann über ein Betriebssystem auf
Basis eines Diskettenbetriebssystems (DOS) erfolgen. Die Bedienerschnittstelle 200 zeigt
Dialogfelder an, um Informationen bereitzustellen, Hilfe anzufordern
und zusätzliche
Daten zu sammeln. Durch eine CORBA-Schnittstelle ermöglicht es die Bedienerschnittstelle 200,
dass den Technikern eine Reihe von angezeigten Dialogfenstern gleichzeitig
auf einer beliebigen Anzahl an Anzeigegruppen dargestellt wird.
Die Bedienerschnittstelle 200 bewahrt auch eine Gruppe von
Anzeigeeinheiten, in denen ein Menü auftreten kann. Die Bedienerschnittstelle 200 kann
ferner eine Bekanntgabeoperation bereitstellen, d. h., in Form einer
Nachricht nur in einer Richtung, die einfaches Fenster mit einer
Nachricht und einem „OK"-Feld darstellt.
-
Die
Datenhandhabungseinheit 210 erhält die von anderen Komponenten
des APC-Systems 100 erzeugten Daten und speichert die Daten
in Datenspeichern 230, 232 (beispielsweise Relationsdatenbanken)
in den Datendienstleistungsrechnern (115, 170).
Die Datenhandhabungseinheit 210 kann ferner ausgebildet
sein, standardmäßige strukturierte
Abfragesprachen-(SQL) Befehle zu empfangen oder alternativ kann
die Datenhandhabungseinheit 210 eine andere Art eines Zugriffsprotokolls übersetzen,
um einen SQL-Befehl oder einen Befehl in einem anderen Protokoll
zu erzeugen. Das zentrale Anordnen der Datenspeicherfunktionen erhöht die Übertragbarkeit
der diversen Komponenten.
-
Die
allgemeine Funktionsweise der Basissteuerungsskripte 152, 154 wird
nachfolgend mit Bezug zu dem vereinfachten Blockdiagramm, das in 2 gezeigt
ist, beschrieben, wobei die Verbindungen zwischen den Basissteuerungsskripten 152, 154 und
einer Vielzahl gemeinsam benutzter Basisbibliotheken gezeigt sind.
Im Allgemeinen bietet ein Basissteuerungsskript 152, 154 eine
Plattform zum Entwickeln von Steuerungsskripten innerhalb des APC-Systems 100.
Die Basissteuerungsskripte verwenden gemeinsam benutzte Basiskomponenten, die
in Bibliotheken gespeichert sind. In der dargestellten Ausführungsform
enthalten die gemeinsam benutzten Basiskomponenten eine Steuerungsbasisbibliothek 240 zum
Definieren von Steuerungsalgorithmen; eine Mathematikbasisbibliothek 150 zum
Definieren gemeinsam benutzter mathematischer Funktionen (beispielsweise
Summe, Mittelwert, Median, etc.); eine Wechselwirkungsbasisbibliothek 260 zum Definieren
von Kommunikationsaspekten für
die Skriptausführung
(beispielsweise eine Wechselwirkung zwischen dem Datenspeichern 230, 232,
der Maschinenschnittstelle 195, der Anlagenschnittstelle 160 über die
Maschinenschnittstelle 195, die Bedienerschnittstelle 200 und
andere derartige externe Komponenten); eine Benutzungsbasisbibliothek 270 zum
Definieren gemeinsamer Funktionen; eine Fabrikbibliothek 280 zum
Definieren von Funktionen oder Ausnahmeereignissen für Routinen
in den anderen Bibliotheken 240, 250, 260, 270,
die speziell für
die Fabrik sind; und eine Schichtbibliothek 290 zum Definieren
der Schicht (etwa Polygateschicht) aus der speziellen Betriebskennung,
die in dem Aufruf des Basissteuerungsskripts angegeben ist. Die
Basisbibliotheken 240, 250, 260, 270, 280, 290 können während des
Betriebs der Basissteuerungsskripte 152, 154 durch
die Steuerungsausführungseinheit 220 eingebunden
werden.
-
Im
Allgemeinen bestimmt das Basissteuerungsskript 150, 154 die
Art der Steuerungsaktion auf der Grundlage der Information, die
in dem Aufruf für das
Skript enthalten ist und auf der Grundlage der Information in der
Fabrikbibliothek und Schichtbasisbibliothek 280, 290.
Das Basissteuerungsskript 152, 154 ist mit der
Steuerungsbasisbibliothek 240 verbunden, um auf die notwendigen
Steuerungsfunktionen zuzugreifen. Das Basissteuerungsskript 152, 154 tritt
mit der Wechselwirkungsbasisbibliothek 260 in Verbindung,
um Funktionen abzurufen, um Daten zu sammeln, die zum Ausführen der
Steuerungsaktion verwendet werden, und um mit der Anlagenschnittstelle 160 zum
Aktualisieren des Prozessrezepts der Anlage 120, 125 zu
kommunizieren. Die Funktionen in der mathematischen Basisbibliothek 250 können durch
andere Funktionen in dem Basissteuerungsskript 152, 154 oder
in anderen Bibliotheken nach Bedarf aufgerufen werden.
-
3 zeigt
eine vereinfachte Blockansicht, wobei der Aufbau des Basisprozessskripts 152 dargestellt
ist. Das Basisprozessskript 152 umfasst einen Anwendungskonfigurationsblock 300,
einen Basisanwendungsinitialisierungsblock 310, einen Steuerungskonstanten-
und kontextspezifischen Einstellungsblock 320, einen Vorwärtskopplungsdatenanalyseblock 330,
einen Steuerungsprogrammstrangblock 340, einen Gefährdungsblock 350,
einen Steuerungsaktions- und Fabrikregel- bzw. Geschäftsregelblock 360 und
einen Ergebnisblock 370.
-
In
dem Anwendungskonfigurationsblock 300 sind globale Anwenderkonfigurationsvariablen
zur Verwendung durch die Steuerung auf der Grundlage der Information,
die in dem Aufruf von der Anlagenschnittstelle 160 enthalten
ist, definiert. Dabei sind die Werte von Variablen von dem Rezeptverwaltungssystem
(RMS) (d. h. eine globale Datenbank aus Prozessrezepteinstellungen)
und die erforderlichen Kontextvariablen enthalten. Kontextvariable Werte
definieren den Steuerungsablaufstrang und bestehen typischerweise
aus Werten für
Variable, etwa eine Anlagenkennungscodierung, die Losnummer, die
Operationsnummer usw. Ferner wird etwaigen benötigten Basisvariablen ebenso
ein Wert zugewiesen. Zu Beispielen gehören eine E-Mail-Liste für Fehlerbekanntgaben,
Werte für
Zeitüberlauffehler, die
Maximalanzahl an Scheiben, die in einem Los zulässig ist, das als ein „Kind"-Los betrachtet wird,
Informationen über
eine vorhergehende Schicht, die die Steuerung verwendet (Vorwärtskopplungsinformation)
und dergleichen.
-
Der
Basisanwendungsinitialisierungsblock 310 verwendet die
Werte für
die Losnummer und die Länge
der Scheiben, wie dies in dem Anwendungskonfigurationsblock 300 festgelegt
wurde, und gibt Werte für
die Losnummern, den Familiennamen, den Elternamen, die Fertigungsstätte, die
Anzahl der Scheiben und den Status zurück (d. h. ob ein Los ein Elternlos
oder ein Kindlos ist). Der Basisanwendungsinitialisierungsblock 310 stellt
ferner die Voreinstellungsliste für Endgeräte auf, an die die Steuerung Anzeigefenster
sendet, und stellt ferner den ersten Teil aller Anzeigefensteruberschriften
ein.
-
Der
Steuerungskonstanten- und kontextspezifische Einstellungsblock 320 verwendet
die zuvor definierten Kontext- und RMS-Informationen, um die Werte
einzustellen, die die Steuerung zur Berechnung von Steuerungsaktivitäten verwendet.
Beispielsweise kann der Steuerungskonstanten- und kontextspezifische
Einstellungsblock 320 die Kontextinformation (oder die „Ablaufstrang"-) Zuordnung verwenden,
um den Wert eines Steuerungsmodellparameters gemäß dem RMS-definierten Wert
einzustellen. Ein spezielles Beispiel ist die Einstellung des Wertes
für jede
Rate, die in einem Steuerungsmodell gemäß dem Kontext der speziellen Ätzkammer
verwendet wird, und der Wert für
die Ätzrate
dieser Ätzkammer,
wie sie im RMS definiert ist. Ferner ruft der steuerungskonstanten-
und kontextspezifische Einstellungsblock 320 Vorwärtskopplungsinformationen von
der Datenbank ab, indem eine Abfrage mittels der Nummer des Loses
und dem Schichtnamen verwendet wird, wie dies in dem Anwendungskonfigurationsblock 300 festgelegt
ist.
-
Der
Vorwärtskopplungsdatenanalyseblock 330 überprüft die Elemente
in einem Feld aus Daten, das mit einem gegebenen Los verknüpft ist,
und füllt Voreinstellungswerte
für fehlende
Werte ein. Beispielsweise kann der Sollwert eines vorhergehenden Prozesses
verwendet werden, um den Wert eines fehlenden Messwertes festzulegen,
der als ein Teil der Vorwärtskopplungsinformation
erforderlich ist, die von der Steuerung verwendet wird. Andere Verfahren
zum Einstellen des Wertes von fehlender Vorwärtskopplungsinformation anstelle
des Verwendens eines Voreinstellungswertes können ebenso in dem Vorwärtskopplungsdatenanalyseblock 330 eingesetzt
werden.
-
Der
Steuerungsablaufstrangblock 340 setzt die Werte der Schlüsselstrukturen
und Zustandsstrukturen fest, die zum Abfragen der Datenspeicher 230, 232 erforderlich
sind, um Steuerungszustände abzurufen,
die mit dem aktuellen Steuerungsablaufstrang verknüpft sind.
Die Schlüssel
werden verwendet, um die Ablaufstrangzustandsdaten aus dem Datenspeichern 230, 232 abzurufen.
Der Steuerungsablaufsstrangblock 340 sucht nach den Ablaufstrangzustandsdaten
in dem Stapel aus geordneten Daten für kürzlich bearbeitete Lose mit
diesem Ablaufstrangkontext. Wenn derartige Werte gefunden werden,
werden diese an eine anwenderdefinierte Funktion weitergereicht,
die das Steuerungsmodell enthält,
das Werte für
die Ablaufstrangzustände
berechnet und zurückgibt.
Wenn keine Werte in dem Stapel gefunden werden, sucht der Steuerungsablaufstrangblock 340 die
Hierarchie ab und ruft die Daten von der ersten Hierarchieebene
ab, die Werte für
die Ablaufstrangzustände
besitzt. Es wird angenommen, dass der Stapel und alle Hierarchieebenen ähnliche Daten
enthalten, jedoch mit einem unterschiedlichen Grad an Genauigkeit.
-
Der
Gefährdungsblock 350 führt eine
Suche in der Datenbank aus und ruft den Wert für die Nummer der Lose in dem
Gefährdungsstapel
ab (d. h. den Stapel aus Losen, die in dem vorgegebenen Ablaufstrang
seit dem letzten Messvorgang bearbeitet wurden). Dieser Wert wird
mit einem Schwellwert für
eine Reihe von Losen in dieser Gefährdungskategorie verglichen,
wobei dieser Wert typischerweise in dem RMS spezifiziert ist. Wenn
dieser Schwellwert nicht überschritten
wird, fährt
die Steuerung mit dem Ablauf fort. Wenn der Schwellwert überschritten
wird, bricht die Steuerung mit einem Anzeigefenster ab, das den
Bediener anweist, ein Messereignis an einem Los aus der Liste aus
Losen in dem Gefährdungsstapel
auszuführen.
-
Der
Steuerungsaktions- und Fabrikregelblock 360 ist der Kern
der Steuerung. Der Steuerungsaktions- und Fabrikregelblock 360 berechnet die
Steuerungseingaben (Prozessrezeptaktualisierungen) aus der Zustandsinformation
und der Sollinformation. Diese Ergebnisse werden in einem globalen
Steuerungsergebnisfeld angeordnet. Als nächstes führt der Steuerungsaktions-
und Fabrikregelnblock 360 fabrikinterne Regeln aus, begrenzt
das Prüfen
der Prozessrezeptaktualisierungen und/oder legt die Prozessrezeptaktualisierungen
festgemäß vorrangigen
Eingaben des Anwenders für
die Steuerung.
-
Der
Ergebnisblock 370 übernimmt
die Ausgabe aus dem Steuerungsaktions- und Fabrikregelblock 360 einschließlich der
Prozessrezeptaktualisierungen, von Datenberech nungs/Formatierungsaktionen
oder Ereignissen, speichert diese zusammen zwischen und formatiert
die Daten. Der Ergebnisblock 370 sendet die gespeicherten
Daten an die Anlagenschnittstelle 160 und initiiert Initialisierungs/Startmaschinenaufrufe
durch die Maschinenschnittstelle 195 über die Anlagenschnittstelle 160. Als
nächstes
speichert der Ergebnisblock 370 die Daten in den Datenspeichern 230, 232 in
Bezug auf die Nummer des Loses und die Schicht für den aktuellen Kontext (Ablaufstrang).
Der Gefährdungsstapel
wird ebenso mit dem aktuellen Los als ein zusätzliches Los, das seit dem
letzten Messereignis bearbeitet wurde, aktualisiert.
-
4 ist
eine vereinfachte Blockansicht, in der der Aufbau des Basismessskripts 154 gezeigt
ist. Das Basismessskript 154 umfasst einen Messanlageninitialisierungsblock 400,
einen Anwendungskonfigurationsblock 410, einen Basisanwendungsinitialisierungsblock 420,
einen Eingangsanlagendateriblock 430, einen steuerungskonstanten-
und kontextspezifischen Einstellungsblock 440, einen Steuerablaufstrangblock 450,
einen Modellaktualisierungsblock 460 und einen Ergebnisblock 470.
-
In
dem Messanlageninitialisierungsblock 400 wird eine Datennahme
initiiert und gespeicherte Daten werden an die Steuerungsausführungseinheit 220 gesendet.
Die Maschinenschnittstelle 100 wird ebenso angewiesen,
Initialisierungs/Start-Maschinen-Aufrufe an die Anlagenschnittstelle 156 zu
senden.
-
Der
Anwendungskonfigurationsblock 410 und der Basisanwendungsinitialisierungsblock 420 führen Funktionen ähnlich zu
den Blöcken
mit dem gleichen Namen aus, wie sie zuvor mit Bezug auf das Basisprozessskript 152 beschrieben
sind.
-
Der
Eingangsanlagendatenblock 430 veranlasst das Basismessskript 154,
auf Daten zu warten, die von einer Datenquelle, typischerweise einer Messanlage,
festgelegt werden. Die Zeitdauer des Wartens auf dieses Ereignis
und der Name des Ereignisses, das die Skriptenunterbrechung bewirkt, werden
in dem Eingangsanlagendatenblock 430 spezifiziert.
-
Der
Steuerungskonstanten- und kontextspezifische Einstellungsblock 440 führt ebenfalls
Funktionen ähnlich
zu den Funktionen in dem Block mit dem gleichen Namen aus, wie er
zuvor in Bezug auf das Basisprozessskript 152 beschrieben
ist.
-
Der
Steuerungsablaufstrangblock 450 setzt die Werte der Schlüssel- und
Zustandsstrukturen fest, die zum Speichern der berechneten Steuerungszustände für den aktuellen
Ablaufstrang in dem Datenspeichern 230, 232 erforderlich
sind. Ferner berechnet der Steuerungsablaufstrangblock 450 alle Werte,
die zum Aktualisieren der Ablaufstrangzustände erforderlich sind. Diese
Funktion (liest die definierten globalen Variablen aus und berechnet
die erforderlichen Ergebnisse. Die Ergebnisse beinhalten statistische
Werte oder Werte, die beim Aktualisieren der Steuerung verwendet
werden, etwa Durchschnittswerte für die Lose, Prozessraten, Abweichungen
von Sollwerten oder vorhergesagten Werten. Die Ergebnisse dieser
Funktion werden in dem Ergebnisarray für globale Steuerungswerte abgelegt.
-
Der
Modell-Aktualisierungsblock 460 wird verwendet, um Geschäftsregeln,
Prüfgrenzwerte
und vorrangige Eingaben für
die Steuerung auszuführen. Diese
Funktion liest die definierten globalen Variablen aus und legt die
endgültigen
Ergebnisse fest. Der Modell-Aktualisierungsblock 460 ist
für das
Festlegen der Werte verantwortlich, die zum Aktualisieren der Steuerung
verwendet werden, sowie für
die Werte, die in der Steuerungsgeschichte eingetragen werden. Die
Ergebnisse dieser Funktion werden in dem Ergebnisfeld für die globalen
Steuerungswerte eingetragen.
-
Der
Ergebnisblock 470 nimmt die Ausgabe aus dem steuerungskonstanten-
und kontextspezifischen Einstellungsblock 440, speichert
diese zwischen und formatiert die Daten so, dass sie mit der Anlagenschnittstelle 165 kompatibel
sind. Die von dem Basismessskript 154 ausgegebenen Daten
werden auch in eine Steuerungsgeschichtsdatei eingetragen. Es wird
ein Kopfbereich für
die Steuerungsgeschichte auf der Grundlage der zugeführten Variablennamen
erzeugt. Die Aufzeichnungsdateien weisen den Kopfbereich so auf,
dass dieser in der ersten Zeile der Datei codiert ist. Wenn der
berechnete Kopfbereich nicht mit der ersten Zeile der Datei übereinstimmt,
wird die bestehende Datei umbenannt und es wird eine neue gestartet.
-
5 ist
eine vereinfachte Blockansicht eines Mehrfachsteuerungs-/Basisprozessskripts
500, das in der Lage ist, mehrere Steuerungsaktionen in einer einzelnen
Prozessanlage 120 gemäß einer
weiteren Ausführungsform
der vorliegenden Erfindung einzurichten. Beispielsweise kann ein
Photolithographieeinzelbelichter sowohl eine Überlagerungssteuerung als auch
eine Steuerung für
kritische Abmessungen aufweisen. Die Steuerungen benutzen eine Rückkopplung
von zuvor bearbeiteten Scheiben, um diverse Einzelbildbelichterparameter,
etwa die Belichtungsdosis, die Belichtungszeit, den Fokus, etc. einzustellen.
Auch eine Abscheideanlage, etwa eine Anlage zur Herstellung von
Polysiliziumschichten, kann mehrere Steuerungen zum Steuer von Parameter,
etwa der Polysiliziumkorngröße und der
Polysiliziumschichtdicke aufweisen.
-
Wenn
das Basisprozessskript 500 aufgerufen wird, bestimmt es
die erforderlichen Steuerungsaktionen auf der Grundlage der Information,
die in dem Aufruf enthalten ist. Der Kontext, in welchem ein Los
zu bearbeiten ist, legt fest, welche der Steuerungen aktiv ist.
Der Kontext ist durch die Operations-Kennung, die Einheiten-Kennung,
die Produkt-Kennung und andere derartige diskrete Kennungen definiert,
die die Erfordernisse für
einen speziellen Durchlauf festlegen. Zunächst wird die Einheit-Kennung
verwendet, um die allgemeine Klasse einer Anlagenart zu bestimmen
(Einzelbelichter, Ätzanlage,
Ofen, etc.). Wenn beispielsweise die Einheiten-Kennung die Prozessanlage 120 als
einen Einzelbildbelichter angibt, wird die Steuerungscodierung für Einzelbildbelichter
aufgerufen.
-
In
der Steuerungscodierung für
Einzelbildbelichter werden die Kontextvariablen in dem Skript überprüft, um zu
bestimmen, welche einzelnen Steuerungen aufzurufen sind. Die Operations-Kennung gibt
den Prozess an, der auszuführen
ist (beispielsweise Polygate-Maske
gegenüber
einer dielektrischen Schichtmaske der zweiten Ebene (ILD)). Jede Steuerung
gilt für
einen Satz aus Kontextsituationen und wird lediglich aufgerufen,
wenn alle diese Kontextbedingungen erfüllt sind. Beispielsweise kann
die CD-Steuerung für
eine Poly-Gatemaske abgearbeitet werden, aber nicht für einen
Maskenprozess der zweiten ILD. Die Überlagerungssteuerung andererseits
kann in beiden Maskenereignissen aktiviert werden.
-
Das
Basisprozessskript 500 bietet die Flexibilität, eine Übereinstimmung
mit der erforderlichen Anlagencodierung auf der Grundlage der Anlagengruppe
(beispielsweise Einzelbelichter) herbeizuführen und das Aktualisieren
aller verfügbarer
Steuerungen (beispielsweise Überlagerung,
CD, etc.) vorzubereiten. Das gleiche Hauptskript wird abgearbeitet, die
gleichen Unterroutinen sind verfügbar
für einen Aufruf,
es werden nur die Steuerungen aktiviert, die in dem aktuellen Kontext
benötigt
werden.
-
Das
Mehrfachsteuerungs-Basisprozessskript 500 umfasst einen
Anwendungskonfigurationsblock 510, einen Basisanwendungsinitialisierungsblock 520,
einen steuerungskonstanten- und kontextspezifischen Einstellungsblock 530,
einen Vorwärtskopplungsdatenanalyseblock 540,
einen Steuerungsablaufstrangblock 550, einen Gefährdungsblock 560,
einen Steuerungsaktions- und Fabrikregelblock 570 und einen
Ergebnisblock 580. Das Mehrfachsteuerungs-Basisprozessskript 500 funktioniert
in ähnlicher
Weise wie das Basisprozessskript 152, mit Ausnahme wie
dies nachfolgend beschrieben ist.
-
Der
steuerungskonstanten- und kontextspezifische Einstellungsblock 530 bestimmt,
welche der Steuerungen anwendbar ist (beispielsweise Steuerung A,
Steuerung B, oder beide) und verwendet den zuvor definierten Kontext
und die RMS-Information, um die Werte einzustellen, die die jeweilige
Steuerung zum Berechnen von Steuerungsaktivitäten verwendet. Der Steuerungskonstanten-
und kontextspezifische Einstellungsblock 530 sucht ferner
Vorwärtskopplungsinformationen
für jede
der erforderlichen Steuerungen aus der Datenbank unter Anwendung einer
Abfrage mittels der Nummer des Loses und dem Schichtnamen ab, wie
sie in dem Anwendungskonfigurationsblock 510 festgelegt
sind. Der Vorwärtskopplungsdatenanalyseblock 540 überprüft die Elemente
in einem Feld aus Daten, die mit einem gegebenen Los verknüpft sind,
und setzt Voreinstellungswerte für
fehlende Werte für
jede Steuerung ein.
-
Der
Steuerungsablaufstrangblock 550 setzt die Werte der Schlüssel und
der Zustandsstrukturen fest, die zum Abfragen der Datenspeicher 230, 232 erforderlich
sind, um damit Steuerungszustände
abzurufen, die mit dem aktuellen Steuerungsablaufsträngen für jede der
aktiven Steuerungen verknüpft sind.
Die Schlüssel
werden verwendet, um die Ablaufstrangzustandsdaten aus den Datenspeichern 230, 232 abzurufen.
Der Steuerungsablaufstrangblock 550 sucht nach den Ablaufstrangzustandsdaten
in dem Stapel aus geordneten Daten für kürzlich bearbeitete Lose mittels
dieses Ablaufstrangkontexts. Wenn derartige Werte gefunden werden,
werden diese an eine anwenderdefinierte Funktion übergeben,
die das Steuerungsmodell enthält,
das Werte für
die Ablaufstrangzustände
berechnet und zurückgibt.
Wenn keine Werte in dem Stapel gefunden werden, sucht der Steuerungsablaufstrangblock 340 die Hierarchie
ab und ruft die Daten aus der ersten Hierarchieebene ab, die Werte
für die
Ablaufstrangzustände
besitzt. Es wird angenommen, dass der Stapel und alle Hierarchieebenen ähnliche
Daten enthalten, die sich im Grade der Genauigkeit unterscheiden.
-
Der
Steuerungsaktions- und Fabrikregel- bzw. Geschäftsregelblock 570 berechnet
die Steuerungseingaben (Prozessrezeptaktualisierungen) aus der Zustands-
und Sollinformation für
jede der Steuerungen. Da mehrere Steuerungen verwendet werden, kann
eine Steuerung die Zustandsinformation beeinflussen, auf der die
andere Steuerung beruht, um ihre Steuerungsaktion zu bestimmen.
Somit können
den Steuerungen relative Prioritätswerte
zugewiesen werden, um die Reihenfolge zu bestimmen, in der die Steuerungsaktionen
bestimmt werden. Die Steuerung mit der höheren Priorität kann die
Zustandsinformationsdaten für
die zweite Steuerung auf der Grundlage ihrer Steuerungsaktionsbestimmung
aktualisieren. Die zweite Steuerung kann dann ihre Steuerungsaktion
auf der Grundlage der modifizierten Zustandsinformation festlegen.
Durch eine derartige Zusammenarbeit treten die Steuerungen nicht
in Konkurrenz zueinander im Hinblick auf Änderungen der Prozessrezepte.
-
Der
Ergebnisblock 580 sammelt die Steuerungsaktionsausgabe
von allen aktiven Steuerungen, speichert die Daten und formatiert
die Daten. Der Ergebnisblock 580 sendet die gespeicherten
Daten an die Anlagenschnittstelle 160 und initiiert Initialisierungs/Start-Maschinen-Aufrufe
durch die Maschinenschnittstelle 195 an die Anlagenschnittstelle 160.
Als nächstes
speichert der Ergebnisblock 580 die in den Datenspeichern 230, 232 gespeicherten
Daten in Bezug auf die Nummer des Loses und die Schicht für den aktuellen
Kontext (Ablaufstrang) und aktualisiert den Gefährdungsstapel.
-
6 ist
ein vereinfachtes Flussdiagramm eines Verfahrens zum Integrieren
mehrerer Steuerungen gemäß einer
weiteren anschaulichen Ausführungsform
der vorliegenden Erfindung. Im Block 600 werden Werkstücke in mehreren
Prozessanlagen bearbeitet. Im Block 610 wird ein Basissteuerungsskript für eine ausgewählte Anlage
der mehreren Anlagen initiiert (beispielsweise die Steuerungsausführungsverwaltungseinheit 150).
Nach dem Initiieren des Basissteuerungsskripts führt die Steuerungsausführungseinheit 220 die
verbleibenden Aufgaben aus. Im Block 620 wird eine Gruppe
aus erforderlichen Steuerungsroutinen für die ausgewählt; Anlage
ermittelt. Im Block 630 werden die Steuerungszustandsinformationen,
die vorhergehende Steuerungsaktionen betreffen, die mit der ausgewählten Anlage
verknüpft
sind, für
die Gruppe aus erforderlichen Steuerungsroutinen abgerufen. Im Block 640 wird
eine erste Steuerungsroutine aus der Gruppe aus erforderlichen Steuerungsroutinen
ausgeführt,
um eine erste Steuerungsaktion zu erzeugen. Im Block 650 wird
die Steuerungszustandsinformation, die mit einer zweiten Steuerungsroutine
aus der Gruppe aus erforderlichen Steuerungsroutinen verknüpft ist,
auf der Grundlage der ersten Steuerungsaktion geändert. Im Block 660 wird
die zweite Steuerungsroutine auf der Grundlage der modifizierten
Steuerungszustandsinformation ausgeführt, um eine zweite Steuerungsaktion
zu erzeugen.
-
Die
speziellen offenbarten Ausführungsformen
sind lediglich anschaulicher Natur, da die Erfindung auf unterschiedliche
aber äquivalente
Weisen modifiziert und praktiziert werden kann, wie dies dem Fachmann
im Besitze der vorliegenden Lehre klar ist. Es sind ferner keine
Einschränkungen
im Hinblick auf die Details des Aufbaus oder der hierin beschriebenen
Gestaltungsarten beabsichtigt, sofern diese nicht in den Patentansprüchen festgelegt
sind. Es ist daher klar, dass die speziellen offenbarten Ausführungsformen
modifiziert und geändert
werden können
und dass alle derartigen Variationen als innerhalb des Schutzbereichs
der Erfindung liegend betrachtet werden. Daher ist der angestrebte
Schutzbereich durch die nachfolgenden Patentansprüche festgelegt.