DE69029566T2 - Fehlerkorrektur in einem Kassettenbehandlungssystem - Google Patents

Fehlerkorrektur in einem Kassettenbehandlungssystem

Info

Publication number
DE69029566T2
DE69029566T2 DE69029566T DE69029566T DE69029566T2 DE 69029566 T2 DE69029566 T2 DE 69029566T2 DE 69029566 T DE69029566 T DE 69029566T DE 69029566 T DE69029566 T DE 69029566T DE 69029566 T2 DE69029566 T2 DE 69029566T2
Authority
DE
Germany
Prior art keywords
block
state
recovery
force
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69029566T
Other languages
English (en)
Other versions
DE69029566D1 (de
Inventor
Mark J Bianchi
Rick A Kato
Thomas C Oliver
Kraig A Proehl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE69029566D1 publication Critical patent/DE69029566D1/de
Application granted granted Critical
Publication of DE69029566T2 publication Critical patent/DE69029566T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4067Restoring data or position after power failure or other interruption

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Automatic Disk Changers (AREA)
  • Optical Recording Or Reproduction (AREA)
  • Warehouses Or Storage Devices (AREA)

Description

    Hintergrund der Erfindung
  • Diese Erfindung bezieht sich auf Computersysteme und insbesondere auf eine Vorrichtung zum Handhaben und Lagern von Kassetten für optische Platten. Insbesondere bezieht sich diese Erfindung auf eine Fehlerwiederherstellung innerhalb einer solchen Vorrichtung.
  • Eine optische Platte ist ein Datenspeicherungsmedium, welches von einem Laser-basierten Lesegerät lesbar ist. Optische Platten, die als "Compaktdiscs" oder "CDs" bekannt sind, wurden während der letzten paar Jahre zum Aufzeichnen von Musik- und audio-visuellen Arbeiten immer populärer. Aufgrund der riesigen Speicherkapazität von optischen Platten im Vergleich zu herkömmlichen magnetischen Speichermedien wurden optische Platten, die als "ROM-Disks" bekannt sind, zum Speichern von Computer-lesbaren Informationen populär. Jüngste Technologien erzeugten optische Platten, welche von dem Computer sowohl gelesen als auch beschrieben werden können, weshalb davon ausgegangen wird, daß optische Platten in der Zukunft bei der Computerindustrie immer wichtiger werden und schließlich magnetisch lesbare und beschreibbare Speichermedien, wie z.B. "Floppydisketten" und "Festplatten", ersetzen können. Eine weitere jüngste Entwicklung, d.h. die Fähigkeit, eine Datenspeicherung auf beiden Oberflächen einer optischen Platte zu schaffen, verdoppelte wirksam die Speicherkapazität von optischen Platten.
  • Optische Platten des Typs, die bei Computeranwendungen verwendet werden, sind typischerweise in Kassetten befestigt, wobei die Lesegeräte im allgemeinen durch einen Schlitz, der auf einer Oberfläche der Kassette vorgesehen ist, Daten lesen oder schreiben. Gegenwärtig werden die meisten optischen Platten manuell in Plattenlesegeräte eingefügt. Für große Datenbanken, die aus vielen optischen Platten bestehen, wird es dagegen bevorzugt, und es ist vielleicht wesentlich, ein Lagerungssystem für optische Platten zum Speichern der Platten bei bekannten Positionen und ein Handhabungssystem für optische Platten zu schaffen, welches in der Lage ist, eine gewünschte Platte von einer Lagerungsposition wiederzugewinnen und die Platte in ein Lesegerät für optische Platten einzufügen. Bei einem Plattenlagerungssystem, bei dem die gelagerten Platten und ein zugeordnetes Plattenlesegerät in einem sich longitudinal erstreckenden, zweidimensionalen Array, das aus sich vertikal erstreckenden Spalten und sich lateral erstreckenden Zeilen besteht, angeordnet sind, ist es notwendig, daß ein Plattenhandhabungssystem in der Lage ist, eine Platte in Eingriff zu nehmen, dieselbe vertikal, lateral und longitudinal zu bewegen, und dieselbe dann loszulassen, um dieselbe von der Lagerung zu entfernen, dieselbe in eine ausgerichtete Beziehung mit dem Plattenlesegerät zu bewegen, und dieselbe in das Plattenlesegerät einzufügen. Es kann ferner notwendig sein, daß das Plattenhandhabungssystem die Platte zu der umgekehrten Seite derselben umdrehen muß, welche in eine lesbare Beziehung mit einem Lesegerät positioniert wird. Es kann ebenfalls notwendig sein, eine Platte zu dem Zeitpunkt neu auszurichten, zu dem sie anfänglich in das System durch einen Betreiber eingefügt worden ist.
  • Jedes System, das eine mechanische Bewegung mit sich bringt, ist Variationen einer solchen Bewegung und daher Fehlern in der Bewegung, welche physische Fehler genannt werden, unterworfen. Diese Variationen werden durch Reibungsvariationen von Vorrichtung zu Vorrichtung, durch Schmierungsvariationen, durch elektrische Leistungsschwankungen und viele andere Gründe bewirkt. Die meisten dieser Fehler sind von vorübergehender Natur und können durch Wiederholen der Bewegung oder durch eine Neukalibration und dann eine Wiederholung der Bewegung oder durch Gegenbewegungen, die eine unerwünschte Situation umkehren, korrigiert werden.
  • Ein weiterer Typ einer Fehlerbedingung, der in einem solchen System auftreten kann, ist ein logischer Fehler. Ein logischer Fehler tritt auf, wenn der Zustand des Geräts von dem Zustand abweicht, der dem Hauptcomputersystem, welches das Gerät verwendet, bekannt ist. Eine Kassette ist beispielsweise in einem Magazin oder einem Schlitz an einer Position positioniert, die sich von der unterscheidet, die in dem Hauptcomputersystem identifiziert ist. Ein anderes Beispiel würde ein leerer Schlitz sein, der dem Hauptsystem gegenüber derart identifiziert ist, als daß er eine Kassette enthält.
  • Bekannte Geräte versuchten im allgemeinen, Fehler durch Neuinitialisieren der Vorrichtungen des Geräts in einen bekannten Zustand wiederherzustellen, wonach die fehlgeschlagene Operation ein zweites Mal oder mehrere Male versucht werden. Manchmal ist dies nicht erfolgreich, da die fehlgeschlagene Operation teilweise vollendet war und nicht auf dieselbe Art und Weise wieder durchgeführt werden kann. Dieses Problem wird verschärft, wenn der Fehler aufgrund eines Verlusts von elektrischer Leistung vorhanden ist, da der Inhalt des Gerätespeichers verloren ist, was bewirkt, daß die Vorrichtung die Operation nicht mehr verfolgen kann, die durchgeführt worden ist.
  • In der Technik besteht daher ein Bedarf nach einem System, das vorübergehende physische Fehler erfaßt und korrigiert. Ferner besteht in der Technik ein Bedarf nach einem System, das bestimmte logische Fehler korrigiert. Noch ein weiterer Bedarf für ein derartiges Gerät ist vorhanden, das eine Kenntnis der fehlgeschlagenen Operation verwendet, um eine Fehlerwiederherstellung zu leiten. Noch ein weiterer Bedarf besteht nach einem solchen Gerät, um eine Aufzeichnung der letzten versuchten Operation während eines Entfernens der elektrischen Leistung und während eines Wiedereinsetzungszyklus zu halten.
  • Verschiedene Merkmale und Komponenten eines derartigen Kassettenhandhabungssystems sind in den folgenden Europäischen Anmeldungen offenbart:
  • EP-A-0 371 707,
  • EP-A-0 375 182,
  • EP-A-0 379 304,
  • EP-A-0 382 393,
  • EP-A-0 384 622,
  • EP-A-0 389 159,
  • EP-A-0 391 569,
  • EP-A-0 423 986.
  • Die Europäische Anmeldung EP-A-0 027 317 offenbart ein numerisch gesteuertes Maschinenwerkzeug mit einer programmierbaren Sequenzsteuerung mit einem nicht-flüchtigen Speicher. Der Speicher weist einen ersten Speicherbereich A zum Speichern von Operationsbefehlen und einen zweiten Speicherungsbereich B zum Speichern von Operationsbefehlen auf. Wenn ein Operationsbefehl von einem numerischen Steuergerät zu dem Maschinenwerkzeug gesendet wird, wird derselbe in dem Speicherbereich A gespeichert. Nur wenn das Maschinenwerkzeug die befohlene Operation vollendet hat, wird der Operationsbefehl in dem Speicher B gespeichert.
  • Beim Verbinden oder Neuverbinden von elektrischer Leistung mit dem Maschinenwerkzeug werden die Inhalte der Speicherbereiche A und B verglichen. Wenn beispielsweise eine Leistungsunterbrechung die Vollendung einer befohlenen Operation verhindert hat, werden die Inhalte der Speicherbereiche A und B unterschiedlich sein, wobei in diesem Fall ein Alarm erzeugt wird.
  • Die US-A-4 736 304 offenbart ein Fehlfunktionswiederherstellungssystem mit minimalem Aufwand, welches eine variable Wiederherstellung schafft, die auf die gegenwärtige Hardware und tatsächliche Zustände des Systems bezogen ist. Ein vereinfachtes Eingabe- und Ausgabe-Gerät ist vorgesehen, um den Datenfluß in das System ohne Adressierungs- und Decodierungs-Komplexität zu steuern. Ein flexibles Operationssystem ist ebenfalls für eine Mehrzahl von Ablagerungssystemen vorgesehen, deren Betrieb ohne weiteres ohne Neuprogrammierung der Operationssequenz variiert werden kann.
  • Ziele von zumindest dem bevorzugten Ausführungsbeispiel der Erfindung lauten folgendermaßen:
  • (a) vorübergehende physische Fehler in der Bewegung der mechanischen Komponenten eines Kassettenhandhabungssystems zu erfassen und zu korrigieren;
  • (b) logische Fehler in dem Gerät, wenn möglich, korrigieren;
  • (c) eine Fehlerkorrekturfunktion von den Bewegungsfunktionen zu trennen;
  • (d) Ermöglichen, daß eine Bewegung die Ausführung auf hoher Ebene oder eines Vordergrundprogramms vollendet, selbst wenn ein Fehler auftritt;
  • (e) Anhalten der gesamten physischen Bewegung nach einem Fehler, während zugelassen wird, daß die Ausführung auf hoher Ebene oder die Vordergrundprogrammausführung vollendet wird;
  • (f) Neustarten des Systems (oder Durchführen von unterschiedlichen Fehlerwiederherstellungsoperationen) basierend auf dem Zustand des Geräts zu dem Zeitpunkt eines Fehlers;
  • (g) Verwenden eines mechanischen Tastsinns in dem Gerät, um Informationen über den Zustand des Geräts zu dem Zeitpunkt des Fehlers zu sammeln; und
  • (h) Speichern einer Anzeige der speziellen Bewegung, die durchgeführt wurde, als die elektrische Leistung von dem Gerät entfernt wurde, derart, daß beim Wiedereinsetzen der elektrischen Leistung eine Fehlerwiederherstellung unter Verwendung der letzten Bewegung, die versucht wurde, durchgeführt werden kann.
  • Bei einem bevorzugten Ausführungsbeispiel der Erfindung werden diese und weitere Ziele in einem Kassettenhandhabungssystem für optische Platten, das als Autowechsler bezeichnet wird, und das zwei Steuersystem aufweist, um die sechs notwendigen Bewegungen zu schaffen, um Kassetten für optische Platten von Lagerungshaltezellen zu einem optischen Laufwerk zu bewegen, erreicht. Das System verwendet Wellencodierer auf zwei Motoren der zwei Steuersysteme und eine Strom- oder Spannungs-Rückkopplung von den Motoren zur Positionierung und zum Erfassen der Position der Vorrichtungen, während sich die Vorrichtung bewegt und am Ende solcher Bewegungen. Ein menschlicher Betreiber kann eine Kassette in das System durch einen Postschlitz einführen, welcher drehbar ist, um Kassetten korrekt aufzunehmen oder auszuwerfen. Die Steuersysteme verwenden eine Umkehranordnung in dem Selbstwechsler, um die Kassette umzudrehen, was es erlaubt, daß jede Seite der Platte zum Lesen oder Schreiben durch das optische Laufwerk angeordnet wird. Die Steuersysteme verwenden eine laterale Verschiebungsanordnung, um eine Kassette von einer Zelle in einer der zwei Spalten des Selbstwechslers zu einer Zelle in der anderen Spalte, oder um eine Kassette zwischen dem optischen Laufwerk, welches in einer der zwei Spalten positioniert ist, und einer Zelle in der anderen Spalte zu bewegen. Die Steuersysteme verwenden eine Kassettenineingriffnahmeanordnung, um dieselbe an einem freiliegenden Endabschnitt einer Kassette, die in einer Zelle oder in dem optischen Laufwerk positioniert ist, anzubringen. Eine lonqitudinale Verschiebungsanordnung wird von den Steuersystemen verwendet, um die Kassette nach dem Anbringen aus der Zelle oder dem optischen Laufwerk zu bewegen. Nach dem vertikalen und lateralen Positionieren der Kassette wird die longitudinale Verschiebungsanordnung anschließend verwendet, um die Kassette in eine Zelle oder in das optische Laufwerk zu bewegen, wo die Ineingriffnahmeanordnung die Kassette losläßt.
  • Immer wenn die Vorrichtungen bewegt werden, überwachen die Steuersysteme den Fortschritt der Bewegung, und sollten die Steuersysteme eine Fehlerbedingung erfassen, wird eine Zustandsaktualisierungsflag verändert, um weitere Aktualisierungen des Zustands des Systems zu verhindern. Wenn die Zustandsaktualisierungen gesperrt sind, werden die Steuersysteme alle Vorrichtungen anhalten und eine weitere Bewegung der Vorrichtungen verhindern. Die Software, die die Steuersystem aufruft, ist sich dieser Veränderung der Zustandsaktualisierungsflag jedoch nicht bewußt und fährt mit der Verarbeitung fort, bis die Operation vollständig erscheint. Wenn die Operation vollständig erscheint, wird die Fehlerwiederherstellungssoftwarefunktion aufgerufen, wobei dieselbe die Veränderung der Zustandsaktualisierungsflag er-
  • Wenn die Fehlerwiederherstellungssoftware erfaßt, daß sich die Zustandsaktualisierungsflag in einer Fehlerbedingung befindet, wird eine Fehlerwiederherstellung eingeleitet. Der Typ der durchgeführten Fehlerwiederherstellung basiert auf dem Zustand der Vorrichtung zu dem Zeitpunkt, zu dem die Fehlerbedingung zuerst erfaßt wurde, da dieser Zustand durch Verändern der Zustandsaktualisierungsflag gespeichert worden ist. Der erste Teil der Fehlerwiederherstellungsversuche, um die Vorrichtungen in eine bekannte Position zu setzen, basiert auf den Positionen der Vorrichtungen zu dem Zeitpunkt des Fehlers. Nachdem die Vorrichtungssituation errichtet worden ist, wird eine Fehlerwiederherstellungsbewegung unter Verwendung der Operation, die zu dem Zeitpunkt des Fehlers gerade durchgeführt wurde, und unter Verwendung des Zustands der Vorrichtung zu dem Zeitpunkt des Fehlers gestartet.
  • Der Typ der Operation, die gerade durchgeführt wird, wird immer in einem nicht-flüchtigen Speicher gespeichert, derart, daß der Typ der Operation gespeichert sein wird, falls während der Operation ein elektrisches Leistungsversagen auftreten sollte. Nachdem die Leistung wiederhergestellt ist, kann die Leistungsversagen-Fehlerwiederherstellung daher unter Verwendung des Operationstyps, der zu dem Zeitpunkt versucht wurde, zu dem die Leistung verloren wurde, eine Fehlerwiederherstellung durchführen.
  • Kurzbeschreibung der Zeichnungen
  • Die obigen und weitere Ziele, Merkmale und Vorteile der Erfindung werden durch Lesen der folgenden spezielleren Beschreibung der Erfindung, die in Verbindung mit den folgenden Zeichnungen dargelegt wird, offensichtlich. Es zeigen:
  • Fig. 1 ein Blockdiagramm eines Computersystems, das die vorliegende Erfindung aufnimmt;
  • Fig. 2 ein Blockdiagramm auf hoher Ebene der Elektronikanordnung der vorliegenden Erfindung;
  • Fig. 2Aund 2B die mechanischen Anordnungen der vorliegenden Erfindung;
  • Fig. 3 ein detailliertes Blockdiagramm der Steuersystemschnittstellenelektronik der Erfindung;
  • Fig. 4 ein Flußdiagramm der Hauptmodule der Software der vorliegenden Erfindung;
  • Fig. 5 ein Diagramm des Servosteuersystems der vorliegenden Erfindung;
  • Fig. 6 ein Blockdiagramm der Hauptmodule und des Datenflusses, welche bei einer Bewegungsoperation betroffen sind;
  • Fig. 7 ein Flußdiagramm einer Bewegungsoperation;
  • Fig. 8 ein Flußdiagramm der Schleifenüberwachungsvorrichtung, die die durch die Steuersysteme ausgeübten Kräfte durchgehend überwacht;
  • Fig. 9 ein Blockdiagramm der Hauptmodule und des Datenflusses, welche bei einer Sättigungsoperation betroffen sind;
  • Fig. 10 ein Flußdiagramm der Sättigungsoperation;
  • Fig. 11 ein Hierarchiediagramm der Bewegung mit einer Wiederherstellungsoperation, welches die Fehlerwiederherstellung veranschaulicht;
  • Fig. 12 ein Flußdiagramm des Moduls auf höchster Ebene des Hierarchiediagramms von Fig. 11;
  • Fig. 13 ein Flußdiagramm der Bewegungs-Fehlerwiederherstellungsfunktion;
  • Fig. 14 ein Zustandsdiagramm, das die allgemeinen Zustände eines Funktionswiederherstellungsmoduls zeigt;
  • Fig. 15 ein Zustandsdiagramm des Bewegungs-Funktionswiederherstellungsmoduls;
  • Fig. 16 ein Hierarchiediagramm der anfänglichen Wiederherstellungsfunktion;
  • Fig. 17 ein Flußdiagramm der anfänglichen Wiederherstellungsfunktion für eine Kassetten-Erhalten-Operation; und
  • Fig. 18 und 19 ein Flußdiagramm des anfänglichen Leistungsversagen-Wiederherstellungsmoduls.
  • Beschreibung des bevorzugten Ausführungsbeispiels
  • Die folgende Beschreibung beschreibt die gegenwärtig für die beste gehaltene Art und Weise zum Ausführen der vorliegenden Erfindung. Diese Beschreibung soll nicht in einem begrenzenden Sinn aufgefaßt werden, sondern dieselbe wird lediglich zwecks des Beschreibens der allgemeinen Prinzipien der Erfindung durchgeführt. Der Bereich der Erfindung sollte durch Bezugnahme auf die beigefügten Ansprüche bestimmt werden.
  • Das Handhabungssystem für optische Platten ("der Selbstwechsler") der vorliegenden Erfindung verwendet zwei Steuersysteme, um die sechs nötigen Bewegungen zu schaffen, um Kassetten für optische Platten von einem Lagerhalteeinheitenarray ("von Zellen") zu einem Lesegerät für optische Platten ("zu einem optischen Laufwerk") zu bewegen. Das optische Laufwerk, das ebenfalls in dem Array positioniert ist, liest oder schreibt Daten auf einer optischen Platte in der Kassette. Nach der Lesen- oder Schreiben-Operation wird die Kassette wieder in ihre ursprüngliche Zelle zurückplaziert. Ein menschlicher Betreiber kann eine Kassette in das System durch eine Kassetteneinfügeanordnung ("durch einen Postschlitz") eingeben. Jedesmal, wenn ein Betreiber eine Kassette in den Postschlitz eingibt, bewegen die Steuersysteme die Kassette entweder zu einer Zelle oder zu dem optischen Laufwerk, wie es durch das Hauptcomputersystem, das mit dem Selbstwechsler verbunden ist, angefordert wird. Kassetten können ebenfalls von dem optischen Laufwerk oder von den Zellen zur Entnahme durch den Betreiber zu dem Postschlitz bewegt werden.
  • Daten können auf jeder Seite der optischen Platte innerhalb einer Kassette positioniert werden. Die Steuersysteme verwenden eine Umdrehanordnung in dem Selbstwechsler, um die Kassette umzudrehen, was es ermöglicht, daß beide Seiten der Platte zum Lesen oder Schreiben durch das optische Laufwerk angeordnet werden.
  • Die Zellen sind in zwei Spalten organisiert. Die Steuersysteme verwenden eine laterale Verschiebungsanordnung, um eine Kassette von einer Zelle in einer Spalte zu einer Zelle in der anderen Spalte, oder um eine Kassette zwischen dem optischen Laufwerk, welches in einer der Spalten positioniert ist, zu einer Zelle in der anderen Spalte zu bewegen. Der Postschlitz ist ferner in einer der Spalten positioniert, derart, daß die Steuersysteme die laterale Verschiebungsanordnung verwenden, um eine Kassette von dem Postschlitz zu der anderen Spalte zu bewegen.
  • Die Steuersysteme verwenden eine Kassettenineingriffnahmeanordnung, um dieselbe an einem freiliegenden Endabschnitt einer Kassette, die in einer Zelle oder in dem optischen Laufwerk positioniert ist, anzubringen. Eine longitudinale Verschiebungsanordnung wird von den Steuersystemen verwendet, um die Kassette nach einem Anbringen aus der Zelle oder dem optischen Laufwerk zu bewegen. Nach dem vertikalen und lateralen Positionieren der Kassette wird die longitudinale Verschiebungsanordnung anschließend verwendet, um die Kassette in eine Zelle oder in das optische Laufwerk zu bewegen, wo die Ineingriffnahmeanordnung die Kassette losläßt. Die Kassettenineingriffnahmeanordnung, die longitudinale Verschiebungsanordnung und die laterale Verschiebungsanordnung bilden zusammen eine Anordnung, die die Transporteinrichtung genannt wird.
  • Eine vollständigere Beschreibung der mechanischen Aspekte des Selbstwechslers kann durch Bezugnahme auf die vorher erwähnte Patentanmeldung (E) erhalten werden.
  • Immer wenn die Vorrichtungen bewegt werden, überwachen die Steuersysteme den Fortschritt der Bewegung, und sollten die Steuersysteme eine Fehlerbedingung erfassen, wird eine Zustandsaktualisierungsflag verändert, um weitere Aktualisierungen des Zustands des Systems zu verhindern. Wenn die Zustandsaktualisierungen gesperrt sind, werden die Steuersysteme alle Vorrichtungen anhalten und eine weitere Bewegung der Vorrichtungen verhindern. Die Software, die die Steuersysteme aufruft, bemerkt jedoch diese Veränderung der Zustandsaktualisierungsflag nicht und fährt mit der Verarbeitung fort, bis die Operation vollständig erscheint. Wenn die Operation vollständig erscheint, wird die Fehlerwiederherstellungs-Softwarefunktion aufgerufen, wobei dieselbe die Änderung der Zustandsaktualisierungsflag erfaßt.
  • Wenn die Fehlerwiederherstellungssoftware erfaßt, daß die Zustandsaktualisierungsflag in einer Fehlerbedingung ist, wird eine Fehlerwiederherstellung eingeleitet. Der Typ der durchgeführten Fehlerwiederherstellung basiert auf dem Zustand der Vorrichtung zu dem Zeitpunkt, zu dem die Fehlerbedingung zuerst erfaßt wurde, da dieser Zustand durch Verändern der Zustandsaktualisierungsflag gespeichert worden ist. Der erste Teil der Fehlerwiederherstellungsversuche, um die Vorrichtungen in eine bekannte Position zu bringen, basiert auf den Positionen der Vorrichtungen zu dem Zeitpunkt des Fehlers. Nachdem die Vorrichtungssituation errichtet worden ist, wird eine Fehlerwiederherstellungsbewegung gestartet, wobei der Betrieb, der zu dem Zeitpunkt des Fehlers durchgeführt wurde, und der Zustand der Maschine zu dem Zeitpunkt des Fehlers verwendet werden.
  • Der Typ der Operation, die gerade durchgeführt wird, wird immer in einem nicht-flüchtigen Speicher gespeichert, derart, daß der Typ der Operation gespeichert sein wird, falls während ein elektrisches Leistungsversagen während der Operation auftreten sollte. Nachdem die Leistung wiedereingesetzt ist, kann daher eine Leistungsversagen-Fehlerwiederherstellung eine Fehlerwiederherstellung basierend auf dem Typ der Operation, die zu dem Zeitpunkt, zu dem die Leistung verloren wurde, versucht wurde, durchführen.
  • Bezugnehmend auf Fig. 1 ist ein Blockdiagramm der Umgebung der vorliegenden Erfindung gezeigt. Ein Computersystem 10 weist ein Verarbeitungselement 12 auf, das mit einem Systembus 14 verbunden ist. Das Verarbeitungselement 12 empfängt Befehle von einem Hauptspeicher 20 über den Systembus 14 und kommuniziert mit einem menschlichen Betreiber unter Verwendung einer Tastatur 16 zur Eingabe und unter Verwendung einer Anzeige 18 zur Ausgabe. Eine Schnittstelle 22, welche eine Kleincomputer-Systemschnittstelle (SCSI-Schnittstelle; SCSI = Small Computer System Interface) sein kann, verbindet den Selbstwechsler 24 über einen Bus 28 mit dem Computersystem 10. Der Selbstwechsler 24 enthält ein Array von Zellen zum Halten einer Mehrzahl von Kassetten für optische Platten. Jede Kassette enthält eine optische Platte, welche zur Datenspeicherung verwendet wird. In dem Selbstwechsler 24 enthalten ist ein optisches Laufwerk 26, das zum Lesen und Schreiben von Daten auf die optischen Platten in den Kassetten verwendet wird. Das optische Laufwerk 26 ist ebenfalls durch die SCSI-Schnittstelle 22 zum Übertragen von Daten zwischen dem Laufwerk 26 und dem Hauptspeicher 20 unter der Steuerung des Verarbeitungselements 20 an dem Systembus 14 angebracht.
  • Der Hauptspeicher 20 hält die Programmierbefehle des Computersystems 10, das ein Betriebssystem 30 und eine Benutzersoftware 32 aufweist. Das Betriebssystem 30 und die Benutzersoftware 32 steuern zusammen die Auswahl von Kassetten in dem Selbstwechsler 25 und das Lesen und Schreiben von Daten durch das optische Laufwerk 26.
  • Fig. 2 zeigt ein Blockdiagramm auf hoher Ebene des Selbstwechslers 24. Ein Schnittstellenbus 28 verbindet die Schnittstelle 22 (Fig. 1) mit der Selbstwechslerschnittstellenelektronik 46. Ein Mikroprozessorsystem so ist über einen Bus 48 mit der Schnittstelle 46 verbunden. Der Mikroprozessor so ist ebenfalls über einen Bus 52 mit der Steuersystemelektronik 54 verbunden. Der Mikroprozessor 50 empfängt Befehle von dem Computersystem 10 (Fig. 1) durch den Bus 28, die Schnittstelle 46 und den Bus 48. Diese Befehle leiten den Selbstwechsler 24 an, um Kassetten zwischen Zellen und dem optischen Laufwerk 26 zu bewegen, sowie Kassetten durch den Postschlitz (nicht gezeigt) einzugeben und auszuwerfen.
  • Der Mikroprozessor führt diese Befehle durch Anleiten von zwei Steuersystemen in dem Selbstwechsler durch. Die Steuersysteme weisen eine Schnittstellenelektronik 54 auf, wobei sie mit zwei Motoren verbunden sind, um die mechanischen Anordnungen des Selbstwechslers anzutreiben. Die Elektronik 54 treibt einen ersten Motor 60 durch ein Paar von Verbindungen 64 und empfängt über Signale 66 eine Positionsrückkopplung von einem Wellencodierer 62. Der Motor 60 ist mit den mechanischen Anordnungen 80 des Selbstwechslers durch eine Motorwelle 68 mechanisch verbunden. Die Elektronik 54 treibt ferner einen zweiten Motor 70 durch Verbindungen 74 und empfängt über Signale 76 eine Positionsrückkopplung von einem Wellencodierer 72. Dieser zweite Motor ist mechanisch mit den mechanischen Anordnungen 80 des Selbstwechslers durch eine Motorwelle 78 verbunden.
  • Die Fig. 2A und 2B stellen die mechanischen Anordnungen oder Vorrichtungen des Kassettenhandhabungssystems 24 für optische Platten zur Verwendung in Verbindung mit einer Mehrzahl von sich longitudinal erstreckenden und nach hinten offenen Zellen 35, 37, 39, usw. dar, welche in einem sich lateral und vertikal erstreckenden Zellenarray 40 angeordnet sind.
  • Das Handhabungssystem 24 kann eine Einfügungsanordnung 41 zum Empfangen einer Kassette 43, welche von einem menschlichen Betreiber manuell mit einem ersten Ende der Kassette nach vorne positioniert eingefügt wird, aufweisen. Die Einfügungsanordnung versetzt die Kassette longitudinal und drehmäßig, um die Kassette einer Kassettenineingriffnahmevorrichtung mit dem ersten Ende der Kassette zu der Rückseite des Gehäuses hin positioniert zu überreichen.
  • Die Kassettenineingriffnahmevorrichtung 45 ist zum Ineingriffnehmen eines freiliegenden Endabschnitts einer Kassette, die in der Einfügungsanordnung 41 oder in einer anderen Zelle, wie z.B. 35, 37, 39, positioniert ist, vorgesehen.
  • Eine longitudinale Verschiebungsanordnung 47 ist der Ineingriffnahmevorrichtung zum longitudinalen Verschieben einer Kassette 43, die von der Ineingriffnahmevorrichtung 45 in Eingriff genommen ist, wirksam zugeordnet.
  • Eine Umdrehanordnung 49 ist der Ineingriffnahmeanordnung 45 zugeordnet und wird zum invertierenden Drehen einer Kassette, die von der Ineingriffnahmevorrichtung in Eingriff genommen ist, um eine sich longitudinal erstreckende Umdrehachse DD verwendet.
  • Eine laterale Verschiebungsanordnung 51 ist der Ineingriffnahmeanordnung 45 zum lateralen Verschieben einer Kassette 43, die von der Ineingriffnahmevorrichtung in Eingriff genommen ist, wirksam zugeordnet.
  • Eine drehbare erste Motoranordnung 60 ist antriebsmäßig mit der longitudinalen Verschiebungsanordnung 43, mit der Umdrehanordnung 49 und mit der lateralen Verschiebungsanordnung 51 zum Liefern einer Antriebskraft zu denselben antriebsmäßig verbunden.
  • Eine Anschlaganordnung 53 kann vorgesehen sein, welche die Bewegung der longitudinalen Verschiebungsanordnung 47 begrenzt.
  • Eine Umdreheinrastanordnung 55 ist vorgesehen, welche einen eingerasteten und einen nicht-eingerasteten Zustand aufweist, und welche der Umdrehanordnung 49 zum Verhindern einer Drehung derselben, wenn sich die Umdreheinrastanordnung 55 in dem eingerasteten Zustand befindet, wirksam zugeordnet ist.
  • Eine Translationseinrastanordnung 57 ist vorgesehen, welche einen eingerasteten und einen nicht-eingerasteten Zustand aufweist. Die Translationseinrastanordnung ist der lateralen Verschiebungsanordnung 51 zum Verhindern einer lateralen Verschiebung derselben, wenn sich die Translationseinrastanordnung in dem verriegelten Zustand befindet, wirksam zugeordnet.
  • Das Kassettenhandhabungssystem 24 weist einen Tauchoperationszustand auf, in dem die Anschlaganordnung 53 in einer nicht in Eingriff genommenen Beziehung mit der longitudinalen Verschiebungsanordnung 47 ist, in dem die Umdreheinrastanordnung 55 in ihrem eingerasteten Zustand ist, und in dem die Translationseinrastanordnung 57 in ihrem eingerasteten Zustand ist. Das Kassettenhandhabungssystem 24 umfaßt ferner einen Translationszustand, in dem die Translationseinrastanordnung 57 in ihrem nicht-eingerasteten Zustand ist.
  • Eine erste Getriebeanordnung 59 ist vorgesehen, welche in drehmäßig verschiebbarer Beziehung mit der lateralen Verschiebungsanordnung 51 befestigt ist, und welche antriebsmäßig mit der longitudinalen Verschiebungsanordnung 47 und mit der Umdrehanordnung 49 verbunden ist.
  • Eine Anordnung 61 mit einem durchgehenden Antriebsriemen ist vorgesehen, welche sich durchgehend in nicht-rutschender Ineingriffnahme mit der ersten Getriebeeinrichtung 59 zum antriebsmäßigen Verbinden der ersten Getriebeeinrichtung 59 mit der ersten Motoranordnung 60 befindet. Die Anordnung mit durchgehendem Riemen kann einen ersten Abschnitt 63, der sich in einer ersten lateralen Richtung von der ersten Getriebeanordnung 59 erstreckt, und einen zweiten Abschnitt 65, der sich in einer zweiten lateralen Richtung von der ersten Getriebeeinrichtung erstreckt, aufweisen. Die laterale Verschiebungsanordnung 51 ist durch Bewegung der Anordnung 61 mit durchgehendem Riemen lateral verschiebbar, wenn die erste Getriebeanordnung 59 gegen eine Drehung verriegelt ist.
  • Eine Getriebeverriegelungsanordnung 67 mit einem verriegelten Zustand und mit einem nicht-verriegelten Zustand ist vorgesehen, welche der ersten Getriebeanordnung 59 wirksam zugeordnet ist. Die Getriebeverriegelungsanordnung 67 verhindert eine Drehung der ersten Getriebeanordnung 59, wenn sich die Getriebeverriegelungsanordnung in ihrem verriegelten Zustand befindet. Das Kassettenhandhabungssystem 24 ist aufgebaut und angeordnet, derart, daß sich die Getriebeverriegelungsanordnung 67 in ihrem verriegelten Zustand befindet, wenn sich die Translationseinrastanordnung 57 in ihrem nicht-eingerasteten Zustand befindet, und derart, daß sich die Getriebeverriegelungsanordnung 67 in ihrem nicht-verriegelten Zustand befindet, wenn sich die Translationseinrastanordnung 57 in ihrem eingerasteten Zustand befindet.
  • Das Kassettenhandhabungssystem 24 für optische Platten umfaßt ferner eine vertikale Verschiebungsanordnung 69 zum vertikalen Verschieben einer Kassette 43, die von der Kassettenineingriffnahmeanordnung 45 in Eingriff genommen ist. Ein zweiter Motor 70 ist der vertikalen Verschiebungsanordnung 69 zum Liefern einer Antriebskraft zu derselben wirksam zugeordnet.
  • Fig. 3 zeichnet ein detailliertes Blockdiagramm der Steuersystemelektronik, der Motoren und der mechanischen Anordnungen, wobei eines der beiden Steuersysteme der Erfindung dargestellt ist. Das Verfahren, das verwendet wird, um die Motoren in dem Steuersystem zu treiben, ist eine Pulsbreitenmodulation ("PWM"; PWM = Pulse Width Modulation), welche im allgemeinen für ähnliche Steuersysteme verwendet wird. Dieses Verfahren betrifft das Steuern einer Motorgeschwindigkeit durch Variieren des Betriebszyklus eines konstanten Spannungspulses, der dem Motor zugeführt wird, und nicht durch Variieren der Menge der Spannung. Obwohl das PWM-Verfahren dargestellt ist, könnten weitere Verfahren zum Steuern der Motorgeschwindigkeit in dem Bereich der vorliegenden Erfindung verwendet werden.
  • Bezugnehmend nun auf Fig. 3 überträgt der Bus 52 Daten von dem Mikroprozessor 50 (Fig. 2) zu einer integrierten Schaltung ("IC"; IC = Integrated Circuit) 90 für eine Pulsbreitenmodulation, welche als Hewlett-Packard-Teil Nr. HCTL-1000 kommerziell erhältlich ist. Ähnliche integrierte Schaltungen, die die gleichen Funktionen durchführen, sind von anderen Herstellern, wie z.B. von Motorola mit der Teilenummer MC33030 oder von Silicon General mit der Teilenummer SG1731, erhältlich. Der IC 90 ist mit dem Mikroprozessorbus 52 schnittstellenmäßig direkt verbunden, um es zu ermöglichen, daß der Mikroprozessor in Register innerhalb des IC 90 schreibt oder von denselben liest, um Funktionen durchzuführen, die notwendig sind, um die PWM-Ausgabe des IC 90 zu erzeugen. Eine PWM-Generatorschaltung 92 in dem IC 90 nimmt Daten von dem Bus 52 an und wandelt diese Daten in zwei zeitlich variierende Ausgangssignale 96 um, welche mit einem Spannungsverstärker 100 verbunden sind. Nur eines der Signale 96 ist zu einem Zeitpunkt aktiv, und zwar basierend auf der Polarität der Daten, wobei dieses aktive Signal einen Betriebszyklus aufweist, welcher zu dem Wert der Daten proportional ist, d.h. je größer der Wert ist, um so länger ist der Betriebszyklus. Die Signale 96 werden von dem Spannungsverstärker 100 auf einen Pegel verstärkt, der zum Treiben des Motors 60 geeignet ist. Der Spannungsverstärker 100 kann von dem Mikroprozessor durch ein Signal 102 freigegeben oder gesperrt werden.
  • Ein Wellencodierer 62 (ebenfalls in Fig. 2 gezeigt) ist ein kommerziell erhältliches Teil, das eine Zweikanalausgabe der Winkelposition der Motorwelle schafft. Beispiele für dieses Teil sind die Hewlett-Packard-Teile Nr. HEDS-5500, Nr. HEDS-6000 und Nr. HEDS-9000. Der Wellencodierer 62 ist auf der Welle des Motors 60 befestigt, um eine in sich geschlossene Einheit zu bilden. In dem Wellencodierer ist eine Codiererscheibe (nicht gezeigt) mit einem Photosender (nicht gezeigt) auf der einen Seite der Scheibe, und mit einem Photoempfänger (nicht gezeigt) auf der entgegengesetzten Seite der Scheibe. Die Scheibe ist mit Ausnahme einer Serie von dunklen Linien, die auf ihrer Oberfläche gedruckt oder geätzt sind, transparent. Licht von dem Photosender leuchtet durch die Scheibe, und, während sich die Welle dreht, wird von den dunklen Linien, die das Licht unterbrechen, eine Pulszug erzeugt. Zwei Empfänger, die voneinander um 90º beabstandet sind, werden verwendet, derart, daß die beiden Ausgangskanäle von den Empfängern verwendet werden können, um die Drehrichtung zu erfassen. Die Pulszugausgabe von den beiden Kanälen wird einem Codiererschnittstellen- und -Zellabschnitt 94 des IC 90 zugeführt. Die Phasenbeziehung der beiden Kanäle bestimmt, ob sich der Motor im Uhrzeigersinn oder im Gegenuhrzeigersinn dreht. Der IC 90 decodiert die Phase und zählt die Anzahl von Pulsen, die von dem Wellencodierer 62 erzeugt werden, und liefert diese Daten zur Verarbeitung durch den Mikroprozessor 50 auf den Bus 52. Durch Erhalten der Daten des Codierers 62 von dem IC 90 bestimmt der Mikroprozessor die Geschwindigkeit und Richtung der Drehung des Motors 60. Zähler in der Codiererschnittstelle 94 halten ebenfalls die Motorwellenposition.
  • Die Steuersystemschnittstellenelektronik 54 umfaßt ferner eine Einrichtung zum Umwandeln des Stroms, der durch den Motor 60 läuft, in ein Signal, welches der Mikroprozessor verwenden kann, um die Menge eines solchen Stroms zu bestimmen. Das Verfahren mißt eine Spannung über einem Abtastwiderstand (nicht gezeigt), der seriell zu den Motoranschlußleitungen 64 ist, durch Eingeben dieser Spannung 104 in einen Differenzverstärker 106. Dort wird dieselbe mit einer bekannten Spannungssignalausgabe von einer Digital/Analog- Wandlerschaltung ("DAW") 110 verglichen. Der Mikroprozessor 50 sendet Daten zu dem DAW 110, welcher die Daten in ein Analogsignal 108 umwandelt. Dieses Signal 108 wird von dem Differenzverstärker 106 mit dem Spannungssignal 104, das den Motorstrom darstellt, verglichen. Das Ausgangssignal 112 des Differenzverstärkers 106 wird von dem Mikroprozessor 50 gelesen, um zu bestimmen, ob die DAW-Ausgabe 108 größer oder kleiner als der Spannungswert 104 für den Motorstrom ist. Auf diese Art und Weise kann der Mikroprozessor 50 den Wert des DAW 110 verändern, bis das Signal 112 seinen Wert verändert, wodurch der Motorstrom bestimmt wird.
  • Fig. 4 ist ein Blockdiagramm auf hoher Ebene des Funktionszu-Funktions-Flusses der Software der vorliegenden Erfindung. Ein Block 132, d.h. Schnittstellenprotokoll und Befehls-I/0, wirkt mit der Schnittstellenelektronik 46 (Fig. 2) zusammen, um Befehle von dem Computersystem 10 (Fig. 1) zu empfangen, und um einen Zustand zu dem Computersystem 10 zurück zu übertragen. Der Block 132 leitet die Befehle zu dem Kassettenverwaltungsblock 134, welcher für das Halten der logischen Anordnung aller Positionen und ihrer entsprechenden Zustände verantwortlich ist. Der Block 134 übersetzt ferner Schnittstellenbefehle von dem Computersystem in interne Befehlsstrukturen des Selbstwechslers, die zu dem Block 136, d.h. zum Bewegungsplanungs- und Ausführungs-Funktionsblock, geleitet werden. Diese Funktion transformiert eine Befehlsstruktur in eine Serie von Selbstwechsler-Teilbefehle, die den Befehl durchführen werden. Der Block 136 seguenziert ferner die Teilbefehle, um den Befehl auf die zeitlich optimalste Art und Weise durchzuführen. Ein Block 138, d.h. der Block Funktionskoordination, koordiniert die Serie von Unterbefehlen, um den Befehl durch Modifizieren der Operation der Steuersysteme auszuführen, um jede der angeforderten mechanischen Anordnungen korrekt zu bewegen. Der Teilbewegungsausführungsblock 140 führt die Bewegung auf niedrigster Ebene des Selbstwechslers durch, um jeden Teilbefehl durchzuführen. Derselbe koordiniert die Eingabeposition in jedes der Steuersysteme und erzeugt ein Bewegungsprofil für jede Eingabe basierend auf einer gegebenen Beschleunigung, einer Spitzengeschwindigkeit und Kraftparametern, welche durch die Blöcke 136 und 138 zugeführt wurden. Der Block 142, d.h. der Servosteuerschleifen- und -Überwachungsblock, steht schnittstellenmäßig mit der Steuersystemelektronik 54 (Fig. 2) in Verbindung, um die Position der Motoren in den zwei Steuersystemen durch einen digitalen Kompensationsalgorithmus zu steuern. Dieser Block hält ebenfalls Positions-, Kraft- und Geschwindigkeits-Daten für die zwei Steuersysteme, und derselbe überwacht die Systeme und steuert die Leistung für die Systeme, wenn unnormale oder unerwartete Situationen auftreten.
  • Fig. 5 zeigt das Servosteuersystem der vorliegenden Erfindung. Eine herkömmliche digitale Servosteuerungsschleife 150 wird verwendet, um einen Motor für ein Steuersystem zu steuern. Die vorliegende Erfindung weist zwei derartige Schleifen auf, die als Y-Steuerschleife und Z-Steuerschleife bezeichnet werden. Jede Steuerschleife weist eine Servokompensiereinrichtung 152 auf, welche ein Positionssignal 154 in eine Summierverbindung 156 eingibt. Die Ausgabe der Summierverbindung 156 wird in eine Ausgabeübertragungsfunktion Gc() eingespeist, welche die Ausgabe der Summierverbindung 156 durch Multiplizieren der Ausgabe 156 mit einer Konstante in ein Signal 160 umwandelt. Kp ist in Tabelle 1 für jede Bewegung jedes Steuersystems gezeigt. Der resultierende Wert wird in den IC 90 in der Steuersystemschnittstellenelektronik 54 eingespeist. Das Signal wird dann von dem Verstärker 100 verstärkt und in den Motor 60 eingegeben. Ein Wellencodierer 62 sendet zu dem IC 90 Informationen, welcher durch ein Signal 162 Positions- und Geschwindigkeitsinformationen in die Rückkopplungsübertragungsfunktion Hc() 164 einspeist. Die Rückkopplungsübertragungsfunktion 164 wandelt die Positions- und Geschwindigkeitsinformationen in ein negatives Rückkopplungssignal 166 um, welches in die Summierverbindung 156 eingegeben wird. Die Funktion Hc() lautet folgender-
  • Hc() = 1 + Kv d/dt
  • Dabei stellt d/dt die Ableitung der Eingabe 162 dar, während Kv ein konstanter Wert ist. Kv ist in Tabelle 1 für jede Bewegung jedes Steuersystems gezeigt. Somit addiert Hc() die Ausgabeposition der Ableitung der Ausgabeposition mal einer Konstanten Kv. Die Werte für Kp und Kv hängen von den Genauigkeits- und Stabilitätsanforderungen für die Systeme ab. Ein Erhöhen von Kp reduziert einen Positionsfehler. Sowohl Kp als auch Kv bestimmen die Stabilität und das Verhalten des Steuersystems. Auf diese Art und Weise verändert die Steuerschleife 152 die Position des Motors 60 immer dann, wenn auf einer Leitung 154 eine neue Position empfangen wird. Wie nachfolgend beschrieben werden wird, kann der Motor 60 unterschiedliche Lasten zu unterschiedlichen Zeiten aufweisen. Um diese unterschiedlichen Lasten zu kompensieren, können die unterschiedlichen Kompensiereinrichtungswerte Kp und Kv von einem Kompensierwertesignal 168 in die Servokompensiereinrichtung 152 eingegeben werden. Falls die Software bestimmt, daß das Steuersystem angehalten werden muß, wird ferner ein Abschaltsignal 170 in die Servokompensiereinrichtung 152 eingegeben, um die Abschaltung zu bewirken.
  • Das Kraftberechnungsmodul 174 bestimmt die Menge der Kraft, die von dem Motor ausgeübt wird. Dasselbe empfängt Kompensierwerte und die Motorgeschwindigkeit über ein Signal 172 von der Kompensiereinrichtung 152. Der mechanische Tastsinn ist die Berechnung von Kräften, die von den Steuersystemen des Selbstwechslers ausgeübt werden, und die Arten und Weisen, auf die die Kraftinformationen während des Betriebs des Selbstwechslers verwendet werden. Dieser mechanische Tastsinn verwendet eine Kenntnis der mechanischen Parameter des Systems, um die Kraftmenge, die von den Motoren des Systems auf die mechanischen Anordnungen ausgeübt werden, abzuleiten. Eine periodische Berechnung der Kraft wird durch das Kraftberechnungsmodul 174 durchgeführt und wird anderen Softwaremodulen in dem System durch Plazieren der Kraftinformationen in einen Variablenspeicherbereich 176 plaziert. Diese Kraftinformationen werden von den anderen Softwaremodulen als eine Erfassungsvorrichtung zur Positionsrückkopplung und zum Erfassen von unnormalen Situationen in dem Selbstwechsler verwendet. Die Kraft ist durch folgende Gleichung direkt auf das Motordrehmoment bezogen:
  • F = Tm / r
  • Dabei ist F die ausgeübte Kraft, die von dem Motordrehmoment Tm erzeugt wird, welches bei einem wirksamen Radius r wirkt, wobei r durch die Getriebeanordnung bestimmt wird, die verwendet wird, um die Selbstwechslermechanikanordnung mit der Motoranordnung zu verbinden, wobei / eine Teilung darstellt.
  • Das Motordrehmoment ist direkt durch folgende Gleichung auf den Motorstrom bezogen:
  • Tm = Im * Kt
  • Dabei stellt ¹m den augenblicklichen Motorstrom dar, während Kt die Drehmomentkonstante des Motors ist und * eine Multiplikation darstellt.
  • Der Motorstrom kann durch direkte Messung über die Elektronikanordnung oder durch Berechnung von der Kenntnis der Motorspannung und der Motorgeschwindigkeit berechnet werden. Die resultierende Gleichung lautet folgendermaßen:
  • F = Tm / r
  • = (Kt / r) * I
  • Bei der vorliegenden Erfindung wird die direkte Messung durch eine Kombination von Elektronik und Software erreicht. Wie es oben bezugnehmend auf Fig. 3 beschrieben wurde, wird eine Spannung, die zu dem Motorstrom proportional ist, von dem Verstärker 100 mit der Ausgabe eines DAW 110 durch einen Differenzverstärker 106 verglichen. Das Kraftberechnungsmodul 174 sendet einen Wert über das Signal 178 zu dem DAW 110 und empfängt den Vergleich dieses Wertes mit der Spannung, die zu dem Motorstrom proportional ist, über das Signal 112. Die Software 174 verändert diesen Wert bis das Signal 112 einen gleichen Vergleich anzeigt, wobei der Wert dann den Motorstrom darstellt. Da Kt und r Konstanten sind, kann im voraus eine neue Konstante K berechnet werden, wobei die resultierende Gleichung folgendermaßen lautet:
  • F=K * I
  • Der Motorstrom kann ebenfalls durch folgende Gleichung berechnet werden:
  • Im = (Vm - (Kt * w)) / R
  • Vm ist die Motorspannung, während Kt die Drehmomentkonstante des Motors, R der Widerstandswert des Motors und der zugeordneten Treiberschaltungen für den Motor und w die Winkelgeschwindigkeit der Motorwelle sind. Da eine digitale Steuerung in der Steuerschleife 150 verwendet wird, sind Vm und w bereits in digitaler Form verfügbar. Eine einfache Berechnung der Kraft wird über folgende Gleichung durchgeführt:
  • Fm = (Kt / (r * R)) * (Vm - (Kt * w))
  • - (K&sub1; * Vm) - (K&sub2; * w)
  • Dabei lauten K&sub1; = Kt / (r * R) und K&sub2; = Kt² / (r * R).
  • Wie nachfolgend beschrieben werden wird, werden die Kraftinformationen von der Steuerungssoftware als eine Form der Rückkopplung und Hinderniserfassung eingehend verwendet. Die Steuerung kann die Vollendung einer Operation durch Überwachen der Kraft zu strategischen Zeitpunkten während einer Ausführung einer Operation erfassen. Die Steuerung kann die Bewegung der Motoren einstellen, bis eine gewünschte Kraft oder ein gewünschter Widerstand erreicht ist. Unnormale Situationen, welche ein unmittelbares Anhalten aller Bewegungen rechtfertigen, können ebenfalls durch Überwachen der Kraft erfaßt werden.
  • Nach der Berechnung wird die Kraft in dem Variablenspeicherbereich 176 gespeichert. Wenn ein Fehler erfaßt wird, wird eine Zustandsaktualisierungsflag in den Variablen 176 eingestellt. Wenn die Zustandsaktualisierungsflag eingestellt ist, wird das System nicht länger die Variablen aktualisieren, wodurch der Zustand der Steuersysteme zu dem Zeitpunkt des Fehlers bewahrt wird. Auf diese Art und Weise ist der Zustand der Vorrichtung zu dem Zeitpunkt des Fehlers zur Verwendung von dem Fehlerwiederherstellungssystem verfügbar.
  • Grundoperationen
  • Bezugnehmend nun auf Fig. 6 ist ein Blockdiagramm, das die Hauptmodule und einen Datenfluß, welche bei einer Bewegungsoperation betroffen sind, gezeigt. Ein Bewegungsachsenmodul 200, welches eines der Teilbewegungsausführungsmodule 140 (Fig. 4) ist, empfängt Eingabeparameter 201, die Werte Delta Y, Delta Z und ID enthalten. Delta Y und Delta Z sind die Anzahl der Wellencodiererzählwerte zwischen der gegenwärtigen Position und der neuen Position. Der Wert ID wird als ein Index in eine Direktzugriffstabelle verwendet, um die Kraftwerte wiederzugewinnen, die dann durch das Signal 212 zu der Schleifenüberwachungsvorrichtung 210 geleitet werden. Die Tabelle schafft ferner eine Beschleunigung in Millimetern pro Sekunde pro Sekunde und eine Geschwindigkeit in Millimetern pro Sekunde für eine Eingabe in den Block 204. Die Tabelle 1 zeigt die Kraftwerte, die Beschleunigung (Accel; Accel = Acceleration) und die Geschwindigkeit (Vp) für jede der Steuersystemoperationen. Der Block 204 wandelt die Beschleunigungs- und Geschwindigkeits-Parameter in Daten für den Profilgenerator um und liefert Skalierungsinformationen für den Profilgenerator. Der Block 204 leitet dann die Bewegung ein. Sobald die Bewegung begonnen ist, werden periodische Zeitgeberunterbrechungen die Steuerung zu dem Profilgenerator 206 übertragen. Unter Verwendung der von dem Block 204 weitergeleiteten Parameter baut der Profilgenerator 206 auf dynamische Art und Weise ein Positionsprofil auf, wie die Bewegung auftreten sollte. Dieses Profil umfaßt Positionen Y und Z über der Zeit, wobei diese Positionen zu der Y-Steuerschleife 150Y über ein Signal 154Y und zu der Z-Steuerschleife 150Z über ein Signal 154Z geleitet werden. Die Steuerschleifen wurden bezugnehmend auf Fig. 5 beschrieben. Sobald eine Bewegung der Vorrichtungen auftritt, senden die Steuerschleifen Informationen zu den Kraftberechnungsmodulen 174Y und 174Z (welche bezugnehmend auf Fig. 5 beschrieben wurden), die Kraftinformationen in den Speichervariablen 176 speichern. Wenn die Einstellung durch den Block 202 durchgeführt worden ist, werden Abschaltkrafteinstellungen über das Signal 212 zu dem Schleifenmonitor 210 weitergeleitet. Der Schleifenmonitor 210, welcher nachfolgend beschrieben wird, vergleicht die Abschaltkrafteinstellungen mit den Kräften in den Speichervariablen 176 und schaltet die Steuerschleifen 150Y und 150Z ab, wenn die Kräfte sichere Grenzen überschreiten. Wenn die Steuerschleifen abgeschaltet werden, wird die Zustandsaktualisierungsflag eingestellt, um weitere Aktualisierungen der Variablen 176 zu verhindern. Wenn die Bewegung vollendet ist, wird dem Bewegungsachsenmodul 200 ein Signal Fertig 208 zurückgesendet, welches wiederum seinen Aufrufer benachrichtigt, daß die Bewegung vollendet ist. Es wird angemerkt, daß der Profilgenerator, die Steuerschleifen und der Schleifenmonitor als Hintergrund-Unterbrechungs -getriebene Module laufen, derart, daß das Steuersystem durchgehend bedient wird.
  • Fig. 7 zeigt das Verfahren des Bewegungsachsenmoduls als ein Steuerflußdiagramm. Nach dem Eintritt bereitet ein Block 220 eine Bewegung vor, indem die Bewegungsparameter und der Profilgenerator eingestellt werden, wobei ein Block 222 die Bewegung startet, während ein Block 224 lediglich auf die Hintergrundprozesse wartet, um die Bewegung zu vollenden. Nach der Vollendung wird die Steuerung dem Aufrufer in einem Block 226 zurückgegeben.
  • Fig. 8 ist ein Flußdiagramm des Schleifenüberwachungsvorrichtungsblocks 210 (Fig. 6). Dieses Modul empfängt Maximalkraftparameter von dem Bewegungsparametereinstellungsblock 202 und vergleicht diese Kraftwerte mit der Kraft, die von den Motoren ausgeübt wird, und zwar jedesmal, wenn derselbe die Steuerung empfängt. Wenn die Kraft, die ausgeübt wird, die Maximalwerte überschreitet, werden beide Steuersysteme abgeschaltet. Bezugnehmend nun auf Fig. 8 vergleicht ein Block 240 nach dem Eintritt über eine Zeitgeberunterbrechung die von dem Y-Steuersystem ausgeübte Kraft mit dem Maximalwert für die Y-Kraft, die von der Bewegungsparametereinstellung überbracht wurde. Wenn die Kraft kleiner oder gleich einer maximalen Y-Kraft ist, springt die Steuerung zu einem Block 242, bei dem ein Zählwert auf Null eingestellt wird. Der Zählwert wird verwendet, um es zu erlauben, daß die Kraft den maximalen Wert für eine kurze Zeitdauer überschreitet, ohne eine Abschaltung zu bewirken, wenn die Kraft jedoch den Maximalwert für eine längere Zeitdauer überschreitet, wird eine Abschaltung auftreten. Um sicherzustellen, daß die hohe Kraft über eine lange Zeitdauer auftritt, stellt das Modul den Zählwert jedesmal auf Null, wenn es die Steuerung erhält und die Kraft unter dem Maximum ist.
  • Wenn die Kraft größer als das Maximum ist, inkrementiert ein Block 244 den Zählwert, wobei anschließend ein Block 246 den Zählwert bewertet. Wenn der Zählwert größer als ein Wert ist, der notwendig ist, um sicherzustellen, daß der Zählwert für die maximal zulässige Zeit hoch war, springt die Steuerung zu einem Block 248, in dem Y_Status auf Kraft_Fehler eingestellt wird, was eine Abschaltung bewirken wird. In jedem Fall springt die Steuerung zu einem Block 250, wenn die Z-Kraft mit der maximalen Z-Kraft verglichen wird. Wenn die Z-Kraft kleiner als das Maximum ist, stellt der Block 252 den Zählwert auf Null, wobei andernfalls der Block 254 den Zählwert inkrementiert. Ein Block 256 bewertet den Zählwert, und wenn derselbe groß genug ist, springt die Steuerung zu einem Block 258, um Z_Status auf Kraft_Fehler einzustellen, was eine Abschaltung bewirken wird.
  • Die Steuerung springt dann zu einem Block 260 und zu einem Block 262, um nach entweder einem Y_Status von Kraft_Fehler oder nach einem Z_Status von Kraft_Fehler zu überprüfen. Wenn eine Bedingung wahr ist, springt die Steuerung zu einem Block 264, um die Motortreiber abzuschalten, um eine Bewegung anzuhalten, wonach ein Block 266 die Steuerschleife sperrt, derart, daß keine neuen Befehle zu den Motoren gehen. Wenn weder der Block 260 noch der Block 262 eine Fehlerbedingung erfaßt, oder nach einer Abschaltung, springt die Steuerung zu einem Block 268, um von der Unterbrechung zurückzukehren.
  • Fig. 9 ist ein Blockdiagramm einer Sättigungsachsenoperation, die einen Datenfluß zeigt. Diese Operation ist wie eine Bewegungsoperation, mit Ausnahme davon, daß die Bewegung anhält, wenn entweder das Ziel erreicht ist, oder bei der Erfassung einer spezifizierten Kraft, die der Bewegung entgegenwirkt. Bezugnehmend nun auf Fig. 9 empfängt ein Sättigungsachsenmodul 280, welches eines der Teilbewegungsausführungsmodule 140 (Fig. 4) ist, Eingabeparameter 281, die die Werte Delta Y, Delta Z und ID enthalten. Delta Y und Delta Z sind die Anzahl der Wellencodiererzählwerte zwischen der gegenwärtigen Position und der neuen Position. Der Wert ID wird als ein Index in eine Direktzugriffstabelle verwendet, um die Kraftwerte wiederzugewinnen, die dann zu der Schleifenüberwachungsvorrichtung 210 durch das Signal 283 geleitet werden. Die Tabelle liefert ferner eine Beschleunigung in Millimetern pro Sekunde pro Sekunde und eine Geschwindigkeit in Millimetern pro Sekunde zur Eingabe in einen Block 284. Der Block 284 wandelt den Beschleunigungsund den Geschwindigkeitsparameter in Daten für den Profilgenerator um und liefert Skalierungsinformationen für den Profilgenerator. Der Block 284 leitet dann die Bewegung ein. Sobald die Bewegung begonnen worden ist, werden periodische Zeitgeberunterbrechungen die Steuerung zu dem Profilgenerator 206 übertragen, welcher der gleiche Profilgenerator wie der von Fig. 6 ist. Unter Verwendung der Parameter, die von dem Block 284 weitergeleitet wurden, baut der Profilgenerator 206 auf dynamische Art und Weise ein Positionsprofil auf, wie die Bewegung auftreten sollte. Dieses Profil umfaßt Y- und Z-Positionen über der Zeit, wobei diese Positionen über ein Signal 154Y zu der Y-Steuerschleife 150Y und zu der Z-Steuerschleife 150Z über das Signal 154Z geleitet werden. Die Steuerschleifen wurden bezugnehmend auf Fig. 5 beschrieben. Sobald eine Bewegung der Vorrichtungen auftritt, senden die Steuerschleifen Informationen zu den Kraftberechnungsmodulen 174Y und 174Z (welche bezugnehmend auf Fig. 5 beschrieben wurden), die Kraftinformationen in den Speichervariablen 176 speichern. Wenn die Einstellung durch den Block 282 durchgeführt worden ist, werden Abschaltkrafteinstellungen, welche das Doppelte der Werte der Schwellenkrafteinstellungen betragen, über das Signal 288 zu dem Sättigungsprozeß 286 geleitet. Schwellenkrafteinstellungen wurden über das Signal 283 zu der Schleifenüberwachungseinrichtung 210 geleitet. Die oben beschriebene Schleifenüberwachungseinrichtung 210 vergleicht die Abschaltkrafteinstellungen mit den Kräften in den Speichervariablen 176 und schaltet die Steuerungsschleifen 150Y und 150Z ab, wenn die Kräfte sichere Grenzen überschreiten. Wenn die Steuerschleifen abgeschaltet sind, wird die Zustandsaktualisierungsflag eingestellt, um weitere Aktualisierungen der Variablen 176 zu verhindern. Wenn die Bewegung vollendet ist, wird ein Fertig-Signal 208 zu dem Sättigungsachsenmodul 200 zurückgegeben, welches wiederum seinen Aufrufer benachrichtigt, daß die Operation vollendet ist. Der Sättigungsprozeß 286 überwacht ferner die Variablen 176 über das Signal 287, um zu bestimmen, wenn sie die Schwellenwerte überschreiten, die von dem Block 282 weitergeleitet wurden, und wenn irgendeine Kraft die Schwelle überschreitet, wird durch das Stoppsignal 290 die Bewegung gestoppt. Zu diesem Zeitpunkt wird der Sättigungsstatus durch das Statussignal 292 verfügbar gemacht. Es wird angemerkt, daß der Profilgenerator, die Steuerschleifen und die Schleifenüberwachungseinrichtung als Hintergrund-Unterbrechungs-getriebene Module laufen, derart, daß das Steuersystem durchgehend bedient wird. Der Sättigungsprozeß läuft in einer Vordergrundschleife.
  • Fig. 10 ist ein Flußdiagramm der Sättigungsachsen6peration. Nach dem Eintritt bereitet ein Block 300 eine Bewegung durch Verarbeiten der Eingabeparameter Delta Y und Delta Z vor, wobei derselbe Abschaltkraftwerte zu der Schleifenüberwachungseinrichtung, Profilparameter zu dem Profilgenerator und Schwellenkraftwerte zu dem Sättigungsprozeß leitet und dann die Bewegung startet. Ein Block 302 wartet auf einen zu messenden Kraftwert (durch die Zeitgeber-Unterbrechungs-getriebenen Kraftberechnungsmodule), wonach ein Block 304 bestimmt, ob die Z-Kraft die Z-Schwelle überschritt. Wenn die Kraft die Schwelle nicht überschritt, springt die Steuerung zu einem Block 306, um den Y-Kraftwert gegenüber den Y- Schwellenparametern zu überprüfen. Wenn beide Kräfte kleiner als die Schwelle sind, springt die Steuerung zu einem Block 308, um zu bestimmen, ob die Bewegung fertig ist, d.h. ob die Bewegung die Endposition erreicht hat. Wenn die Bewegung nicht fertig ist, springt die Steuerung zurück zu dem Block 302, um die gleichen Überprüfungen durchzuführen. Wenn die Z-Kraft die Schwelle überschreitet, springt die Steuerung zu einem Block 310, um die Z-gesättigte Flag einzustellen. Wenn die Y-Kraft die Schwelle überschreitet, springt die Steuerung zurück zu dem Block 312, um die Y-gesättigte Flag einzustellen. In jedem Fall, oder wenn die Bewegung fertig ist, springt die Steuerung zu einem Block 314, um die Bewegung anzuhalten. Ein Block 316 bestimmt dann einen Status, um zurückzuspringen, und springt zu dem Aufrufer zurück.
  • Die Bewegungsachsen- und die Sättigungsachsenroutine, die oben beschrieben wurden, werden in den folgenden Routinen, die spezifische Operationen durchführen, verwendet. Jede der folgenden spezifischen Bewegungsroutinen sind ein Teil der Funktionskoordinationsroutinen 138 von Fig. 4. In den folgenden Beschreibungen wird angemerkt, daß das Y-Steuersystem die Ineingriffnahme-, die Umdreh- und die longitudinale Verschiebungsvorrichtung, welche auch die Transporteinrichtung genannt werden, vertikal bewegt, während das Z-Steuersystem die Ineingriffnahmevorrichtung nach innen taucht, um eine Kassette wiederzugewinnen, die Ineingriffnahmevorrichtung nach außen taucht, die Transporteinrichtung umdreht und die Translationsbewegung des Transports durchführt. Das Z-Steuersystem bewegt ferner die Kassetteneinfügevorrichtung des Postschlitzes. Für eine vollständigere Beschreibung der mechanischen Anordnungen der Erfindung wird auf die vorher genannte Patentanmeldung (E) verwiesen.
  • Fehlerwiederherstellung
  • Die Bewegungssteuerungssoftware auf höchster Ebene, welche Teil der Bewegungsplanung und -Ausführung 136 (Fig. 4) ist, empfängt einen Befehl von dem Hauptgerät und führt diesen Befehl durch Aufrufen von Funktionen, die für jeden Befehl spezifisch zugeschnitten sind, durch. Wenn diese Funktionen nach dem Vollenden des Befehls zurückspringen, wird eine Fehlerwiederherstellung aufgerufen&sub1; um zu bestimmen, ob Fehlerwiederherstellungsoperationen notwendig sind. Wenn der Befehl erfolgreich war, stellt die Fehlerwiederherstellung einen guten Zustand für den ursprünglichen Befehl ein und springt zurück. Wenn der Befehl nicht erfolgreich war, kalibriert die Fehlerwiederherstellung den Selbstwechsler neu und ruft basierend auf dem ursprünglichen Befehl eine einer Mehrzahl von Zustandsmaschinen auf, welche neue Befehle erzeugen werden, die zurück zu der Steuerungssoftware auf höchster Ebene zur Ausführung geleitet werden. Nachdem diese neuen Befehle ausgeführt worden sind, erhält die Fehlerherstellung wieder die Steuerung und bewertet die Ergebnisse. Auf diese Art und Weise wird die Fehlerwiederherstellung in der Zustandsmaschine fortgesetzt, bis sie den ursprünglichen Befehl erfolgreich vollendet hat, oder bis alle möglichen Versuche erschöpft sind.
  • Fig. 11 zeigt ein Hierarchiediagramm der Bewegung-mit-Wiederherstellung-Funktion, wobei alle Funktionen gezeigt sind, die aufgerufen werden, um jeden einzelnen Bewegungstyp zu vollenden, und wobei ferner die Fehlerwiederherstellungsfunktionen gezeigt sind, die aufgerufen werden. Bezugnehmend nun auf Fig. 11 ist ein Block 402, welcher einen Befehl von dem Hauptsystem empfängt, ein Teil des Bewegungsplanungsund -Ausführungs-Blocks 136 von Fig. 4. Der Block 402 bewertet den Befehl und ruft eines der Funktionskoordinationsmodule auf, um den Befehl durchzuführen. Ein Block 404 wird aufgerufen, wenn der Befehl darin besteht, eine Kassette zu bewegen, ein Block 406 wird aufgerufen, wenn der Befehl darin besteht, eine Kassettenposition zu suchen, ein Block 408 wird aufgerufen, wenn der Befehl darin besteht, den Postschlitz zu drehen, und ein Block 410 wird aufgerufen, um zu testen, ob eine Kassette in einer Position vorhanden ist.
  • Nachdem das geeignete Funktionskoordinationsmodul den Befehl vollendet hat, springt die Steuerung zu Bewegung-mit-Wiederherstellung 402 zurück, wobei dieser Block dann die Bewegungsfehlerwiederherstellung 412 aufruft, um den Erfolg der ursprünglichen Bewegung zu bestimmen. Wenn der ursprüngliche Befehl ohne Fehler durchgeführt worden ist, stellt die Bewegungsfehlerwiederherstellung 412 eine Flag ein, welche bewirken wird, daß die Bewegung-mit-Wiederherstellung 402 beendet wird. Wenn der ursprüngliche Befehl einen Fehler aufwies, wird die Bewegungsfehlerwiederherstellung 412 den Selbstwechsler neu kalibrieren und einen neuen Befehl zur Ausführung durch die Bewegung-mit-Wiederherstellung 402 erzeugen. Die Bewegung-mit-Wiederherstellung 402 führt diesen neuen Befehl dann aus und leitet die Ergebnisse zurück zu der Bewegungsfehlerwiederherstellung 412. Die Bewegungsfehlerwiederherstellung 412 verwendet die Ergebnisse zusammen mit dem gegenwärtigen Selbstwechslerzustand und dem ursprünglichen Befehl, um mehr auszuführende Befehle zu erzeugen. Die Befehle werden erzeugt und ausgeführt, bis die ursprüngliche Operation erfolgreich durchgeführt ist, oder bis eine feste Anzahl von Versuchen durchgeführt worden ist. Wenn die Bewegungsfehlerwiederherstellung 412 nicht in der Lage ist, den ursprünglichen Befehl zu vollenden, wird sie versuchen, den Selbstwechsler in seinen ursprünglichen Zustand wiedereinzusetzen, bevor der ursprüngliche Befehl versucht wurde. Ein wichtiges Merkmal dieser Technik besteht darin, daß dieselbe eine Trennung des Fehlerwiederherstellungsprozesses von der normalen Befehlsausführung zuläßt. Die beiden Prozesse existieren mit einer sehr geringen Kopplung und weisen eine einzige Schnittstelle auf, d.h. den ursprünglichen Befehl. Die Technik schlägt aus der Tatsache Kapital, daß die Funktionskoordinationsmodule von der Fehlerwiederherstellung verwendet werden können, um Korrekturen für Fehler durchzuführen, dennen während der Ausführung eines Befehls begegnet wurde. Die Fähigkeit, die Funktionskoordinationsmodule wiederzuverwenden, erlaubt es, daß die Fehlerwiederherstellung vereinfacht wird, da dieselbe keine physischen Funktionen ausführen muß, dieselbe muß lediglich logische Parameter einstellen und den Funktionskoordinationscode wieder ausführen.
  • Wenn die Bewegungsfehlerwiederherstellung 412 bestimmt, daß ein Fehler aufgetreten ist, wird sie den ursprünglichen Befehl bewerten und eine der vier Wiederherstellungsfunktionen basierend auf dem Typ des ursprünglichen Befehls aufrufen. Eine Bewegen-Wiederherstellung 414 wird all die ursprünglichen Bewegungsbefehle wiederherstellen, eine Suchen-Wiederherstellung 416 wird alle ursprünglichen Suchen wiederherstellen, eine Testen-Wiederherstellung 418 wird alle ursprünglichen Kassettentesten-Befehle wiederherstellen, während eine Drehen-Wiederherstellung 420 alle ursprünglichen Befehle, den Postschlitz zu drehen, wiederherstellen wird. Jede dieser vier Wiederherstellungsfunktionen stellt eine Zustandsmaschine dar, wie es nachfolgend beschrieben wird, wobei jede die anfängliche Wiederherstellungsfunktion 422 aufrufen wird, welche hier derart dargestellt ist, daß sie von der Bewegen-Wiederherstellung 414 aufgerufen wird.
  • Fig. 12 ist ein Flußdiagramm der Funktion 402 Bewegung-mit- Wiederherstellung von Fig. 11 und zeigt die Fehlerwiederherstellungsschleife der vorliegenden Erfindung. Bezugnehmend nun auf Fig. 12 speichert nach einem Eintritt ein Block 450 den ursprünglichen Befehl zur Verwendung von der Fehlerwiederherstellung. Ein Block 452 stellt eine erste Wiederherstellungsflag auf "wahr". Diese Flag wird verwendet, um den Zustand der Fehlerwiederherstellung anzuzeigen. Ein Block 454 ruft dann die geeignete Befehlsfunktion auf, um den ursprünglichen Befehl durchzuführen. Die Funktion, die von dem Block 454 aufgerufen wird, hängt von dem ursprünglichen Befehl ab und wird eine der vier Funktionskoordinationsmodule, d.h. Bewegen von Kassetten 404, Suchen von Kassetten 406, Drehen des Postschlitzes 408 oder Testen von Kassetten 410, von Fig. 11 sein. Das Bewegungsfunktionskoordinationsmodul wird den ursprünglichen Befehl ausführen und versuchen, den Befehl durch Aufrufen des Bewegungsachsenmoduis von Fig. 7 oder des Sättigungsachsenmoduls von Fig. 9 oder von beiden durchzuführen. Diese Module werden wiederum den Hintergrundunterbrechungsprozeß, der in den Fig. 6 und 9 gezeichnet ist, verwenden, wobei diese Prozesse während der Bewegung einem Fehler begegnen k:nnen. Sollte der Hintergrundprozeß (von den Fig. 6 oder 9) einem Fehler begegnen, wird derselbe die Zustandsaktualisierungsflag in den Variablen 176 (Fig. 6 und Fig. 9) setzen, um die Steuersysteme abzuschalten. Nachdem die Steuersysteme abgeschaltet sind, wird das Befehlsfunktionskoordinationsmodul bis zur Vollendung weitermachen und zu einem Block 456 von Fig. 12 zurückspringen, welcher die Zustandsaktualisierungsflag überprüft, um zu bestimmen, ob sie gesetzt worden ist. Wenn die Zustandsaktualisierungsflag gesetzt worden ist, springt der Block 456 zu einem Block 458, um den Zustand auf "fehlgeschlagen" einzustellen. In jedem Fall ruft jedoch ein Block 460 die Bewegungsfehlerwiederherstellung (Fig. 13) auf, um den Erfolg der vorausgegangenen Operation zu bestimmen. Wenn der ursprüngliche Befehl erfolgreich war, wird ein Block 462 beim Rücksprung von Fig. 13 erfassen, daß die Wiederherstellung vollendet ist, wonach derselbe zu dem Aufrufer zurückspringt. Wenn jedoch ein Fehler in der ursprünglichen Bewegung aufgetreten ist, wird die Wiederherstellung nicht vollständig sein, weshalb der Block 462 zurück zu dem Block 454 springen wird, um irgendwelche Befehle durchzuführen, die von der Bewegungsfehlerwiederherstellung und den Wiederherstel lungs funktionen angefordert werden. Ein Block 454 wird wieder das Befehlsfunktionskoordinationsmodul, das geeignet ist, um den von der Fehlerwiederherstellung angeforderten Befehl durchzuführen, aufrufen, und nach dem Rücksprung die Zustandsflag überprüfen und die Fehlerwiederherstellung wieder aufrufen. Diese Schleife wird sich fortsetzen, bis die Fehlerwiederherstellung entweder den ursprünglichen Befehl vollendet hat oder bis alle Wiederherstellungsversuche erschöpft sind. Daher trennt die Verarbeitung der Schleifen die Bewegungsbefehle von der Fehlerwiederherstellung, während es zugelassen wird, daß die Fehlerwiederherstellungsmodule die Bewegungsbefehle in dem Prozeß des Durchführens der Fehlerwiederherstellung verwenden.
  • Fig. 13 zeigt ein Flußdiagramm der Bewegungsfehlerwiederherstellungsfunktion 412 (Fig. 11). Bezugnehmend nun auf Fig. 13 überprüft ein Block 502 nach dem Eintritt die erste Wiederherstellungsflag, um zu bestimmen, ob dieselbe "wahr" ist. Wenn diese Flag "wahr" ist, springt der Block 502 zu einem Block 504, welcher den Zustand überprüft, um zu bestimmen, ob der Zustand "fehlgeschlagen" ist. Wenn der Zustand nicht "fehlgeschlagen" ist, springt der Block 504 zu einem Block 506, um den Zustand zu speichern, da der ursprüngliche Befehl erfolgreich vollendet worden ist. Der Block 506 springt dann zu Fig. 12 zurück. Wenn der Zustand "fehlgeschlagen" ist, springt der Block 504 zu einem Block 508, welcher die gesamten Informationen aus den Variablen 176 (Fig. 6 und 9) speichert, derart, daß diese Informationen von der Fehlerwiederherstellung verwendet werden kunnen. Ein Block 510 stellt dann die erste Fehlerwiederherstellungsflag auf "falsch" ein, derart, daß die Fehlerwiederherstellung weiß, daß sie gerade dabei ist, einen ursprünglichen Fehler wiederherzustellen. Der Block 510 springt dann zu einem Block 512, welcher die geeignete Fehlerwiederherstellungs-Zustandsmaschine aufruft, d.h. die Bewegen-Wiederherstellung 414, die Suchen-Wiederherstellung 416, die Test-Wiederherstellung 418 oder die Dreh-Wiederherstellung 420, wie es in Fig. 11 gezeigt ist. Die Zustandsmaschine, die von dem Block 512 aufgerufen wird, hängt von dem gerade verarbeiteten ursprünglichen Befehl ab. Nach dem Rücksprung von der Zustandsmaschine bestimmt ein Block 514, ob die Fehlerwiederherstellung vollendet ist. Wenn die Fehlerwiederherstellung nicht vollendet ist, hat die Zustandsmaschine einen Befehl zur Ausführung durch die Befehlsfunktionskoordinationsmodule eingestellt, weshalb der Block 514 zu Fig. 12 zurückspringt, um diesen Befehl auszuführen. Wie früher beschrieben wurde, wird der Fehlerwiederherstellungsbefehl ausgeführt und die Steuerung wird zu Fig. 13 zurückspringen, wobei der Block 502 zu dem Block 512 springen wird, um die Zustandsmaschine aufzurufen, die den Befehl eingeleitet hatte. Somit steuert die Zustandsmaschine die Ausführung von Bewegungsbefehlen, um die Fehlerwiederherstellungsoperationen auszuführen.
  • Wenn die Zustandsmaschine anzeigt, daß die Fehlerwiederherstellung vollendet ist, springt der Block 514 zu einem Block 515, welcher bestimmt, ob die Fehlerwiederherstellung erfolgreich war. Wenn die Fehlerwiederherstellung erfolgreich war, springt der Block 515 zum Aufrufer zurück. Wenn die Fehlerwiederherstellung nicht erfolgreich war, springt der Block 515 jedoch zu einem Block 516, welcher das anfängliche Wiederherstellungsmodul von Fig. 16 in einem Versuch aufruft, um die Vorrichtung in einem bekannten Zustand zu plazieren. Ein Block 518 bestimmt dann, ob die ursprüngliche Wiederherstellung in der Lage war, die Vorrichtung in einem bekannten Zustand zu plazieren, und, wenn sie es war, springt der Block 518 zu dem Aufrufer zurück. Wenn die ursprüngliche Wiederherstellung nicht erfolgreich war, springt der Block 518 zu einem Block 520, welcher den Selbstwechsler abschaltet und weitere Operationen verhindert.
  • Fig. 14 zeigt ein Zustandsdiagramm eines allgemeinen Modells der Wiederherstellungszustandsmaschinen. Bezugnehmend nun auf Fig. 14 ist der ursprüngliche Zustand der Zustand 550 Initialisieren der Vorrichtung. In diesem Zustand wird das anfängliche Wiederherstellungsmodul von Fig. 16 aufgerufen, um die Vorrichtung in eine bekannte Situation zu bringen. Wenn die anfängliche Wiederherstellung nicht erfolgreich ist, wird der Zustand 550 Initialisieren der Vorrichtung direkt in den Abschaltzustand 560 übergehen. Wenn die anfängliche Wiederherstellung erfolgreich war, wird der Zustand 550 Initialisieren der Vorrichtung zu dem Neuversuchszustand 552 gehen, um einen Neuversuch des ursprünglichen Befehls zu versuchen. Wenn der Neuversuch erfolgreich ist, wird derselbe zu dem Zustand 554 Neuversuch Vollendet gehen. Wenn der Neuversuch nicht erfolgreich ist, wird derselbe zu dem Zustand 550 Initialisieren einer Vorrichtung zurückspringen, welcher einen Wiedereinsetzungszustand 556 aufrufen wird. Der Wiedereinsetzungszustand 556 versucht, den Selbstwechsler in den Zustand wiedereinzusetzen, in dem er war, bevor der ursprüngliche Befehl versucht wurde. Wenn die Wiedereinsetzung erfolgreich ist, wird derselbe zu dem Zustand 558 Wiedereinsetzung vollendet springen. Wenn die Wiedereinsetzung nicht erfolgreich ist, wird derselbe zu dem Zustand 550 Initialisieren der Vorrichtung zurückspringen, welcher zu dem Abschaitzustand 560 gehen wird.
  • Fig. 15 ist ein Zustandsdiagramm des Bewegungswiederherstellungsmoduls 414 (Fig. 11), welches auf dem allgemeinen Zustandsmodell von Fig. 14 basiert. Bezugnehmend nun auf Fig. 15 springt ein Zustand 602 Initialisieren zu einem Zustand 604, um die anfängliche Wiederherstellungsfunktion von Fig. 6 aufzurufen. Wenn die anfängliche Wiederherstellung nicht erfolgreich ist, springt der Zustand 604 Anfängliche Wiederherstellung zu dem Zustand 602 Initialisieren. Wenn die anfängliche Wiederherstellung erfolgreich ist, springt die Steuerung zu einem Zustand Neuversuch 1, um den ersten Neuversuch zu versuchen. Wenn ein nichtwiederherstellbarer Feh-1er während des ersten Neuversuchs auftritt, wird der Zustand 606 Neuversuch 1 zurück zu dem Zustand 602 Initialisieren springen. Wenn der Neuversuch 1 nicht erfolgreich ist, jedoch ein nichtwiederherstellbarer Fehler nicht auftritt, wird der Zustand 602 Neuversuch 1 zu einem Zustand 608 Neuversuch 2 springen, um einen zweiten Neuversuch zu versuchen. Der Zustand 608 Neuversuch 2 wird den ursprünglichen Befehl wiederversuchen, und wenn ein nichtwiederherstellbarer Fehler auftritt, wird er zu dem Zustand 602 Initialisieren zurückspringen. Wenn der Zustand 608 Neuversuch 2 nicht erfolgreich ist, wenn jedoch kein nichtwiederherstellbarer Fehler auftritt, wird derselbe zu einem Zustand 610 Neuversuch 3 für einen dritten Versuch springen. Wenn irgendeiner der Neuversuchzustände, d.h. Neuversuch 1 606, Neuversuch 2 608 oder Neuversuch 3 610, erfolgreich sind, werden sie zu dem Zustand 612 Neuversuch Vollendet springen, welcher zu dem Aufrufer zurückspringen wird, wodurch eine erfolgreiche Vollendung angezeigt wird. Wenn der Zustand 610 Neuversuch 3 nicht erfolgreich ist, wird er zu dem Zustand 602 Initialisieren zurückspringen. Wenn keiner der Neuversuche erfolgreich gewesen ist, wenn jedoch keine nichtwiederherstellbaren Fehler aufgetreten sind, wird der Zustand 602 Initialisieren zu dem Zustand 614 Wiedereinsetzen 1 zurückspringen, welcher versucht, den Autowechsler zurück in den Zustand wiedereinzusetzen, in dem er war, bevor der ursprüngliche Befehl versucht wurde. Wenn Wiedereinsetzen 1 einen nichtwiederherstellbaren Fehler erfaßt, wird er zu dem Zustand 602 Initialisieren zurückspringen. Wenn Wiedereinsetzen 1 erfolgreich ist, wird er zu dem Zustand 620 Wiedereinsetzen vollendet springen, welcher zu dem Aufrufer zurückspringt und einen Erfolg anzeigt. Wenn der Zustand 614 Wiedereinsetzen 1 nicht erfolgreich ist, wenn jedoch kein nichtwiederherstellbarer Fehler aufgetreten ist, wird er zu einem Zustand 616 Wiedereinsetzen 2 springen, um den Wiedereinsetzungsprozeß wieder zu versuchen. Der Zustand 616 Wiedereinsetzen 2 funktioniert auf eine identische Art und Weise wie Wiedereinsetzen 1 und wird zu Wiedereinsetzen 3 springen, wenn er nicht erfolgreich ist, jedoch keine nichtwiederherstellbaren Fehler aufgetreten sind. Der Zustand 618 Wiedereinsetzen 3 wird zu dem Zustand 602 Initialisieren beim Erfassen eines nichtwiederherstellbaren Fehlers oder wenn er nicht erfolgreich ist, zurückspringen. Wenn der Zustand Wiedereinsetzen 3 erfolgreich ist, wird er zu dem Zustand 620 Wiedereinsetzen Vollendet springen, welcher zu dem Aufrufer zurückspringt und einen Erfolg anzeigt. Wenn die Steuerung zu dem Zustand 602 Initialisieren zurückspringt, entweder wegen eines nichtwiederherstellbaren Fehlers oder wegen der nichterfolgreichen Vollendung von drei Wiedereinsetzungsversuchen, wird der Zustand 602 Initialisieren zu dem Abschaltzustand 624 springen, welcher die Selbstwechsleroperationen abschaltet.
  • Fig. 16 zeigt ein Hierarchiediagramm der anfänglichen Wiederherstellungsfunktion innerhalb des Selbstwechslers. Bezugnehmend nun auf Fig. 16 empfängt das anf?ngliche Wiederherstellungsmodul 626 die Steuerung immer dann, wenn die anfängliche Wiederherstellung von irgendeiner anderen Funktion aufgerufen wird. Der Block 626 ruft zuerst Sammeln von Wiederherstellungsinformationen 628 auf, um zu bestimmen, welcher Typ einer Operation zum Zeitpunkt des Auftretens des Fehlers gerade bearbeitet wurde. Der Block Sammeln von Wiederherstellungsinformationen 628 ruft den Block Erhalten einer Bewegungs-ID 630 auf, um den tatsächlichen Typ der Bewegungsoperation zu bestimmen, der zum Zeitpunkt des Fehlers gerade ausgeführt wurde, und derselbe ruft dann den Block Bestimmen des Wiederherstellungsverfahrens 632 auf, um zu bestimmen, welcher Typ der Wiederherstellung durchgeführt werden sollte. Der Block Sammeln von Wiederherstellungsinformationen springt dann zu dem Block Anfängliche Wiederherstellung 626 zurück, welcher eine der Funktionswiederherstellungsmodule basierend auf der Bewegungs-ID und dem Wiederherstellungsverfahren aufruft, welches durch den Block Sammeln von Wiederherstellungsinformationen 628 bestimmt wurde. Der Block Magazin-Einfügen-Wiederherstellung 634 wird aufgerufen, wenn der Selbstwechsler gerade dabei war, eine Kassette in eine Zelle einzufügen, während der Block Magazin-Greifen-Wiederherstellung 636 aufgerufen wird, wenn der Selbstwechsler gerade dabei war, eine Kassette von einer Zelle wiederzugewinnen. Der Block Antriebseinfügungswiederherstellung 638 wird aufgerufen, wenn der Selbstwechsler gerade dabei war, eine Kassette in das optische Laufwerk 26 einzufügen, während der Block Antrieb-Greifen-Wiederherstellung 640 aufgerufen wird, wenn der Selbstwechsler gerade dabei war, eine Kassette von dem optischen Laufwerk 26 wiederzugewinnen. Der Block Postdrehwiederherstellung 642 wird aufgerufen, wenn der Selbstwechsler gerade dabei war, den Postschlitz zu drehen, wenn der Fehler auftrat, während eine Translationswiederherstellung 644 aufgerufen wird, wenn der Selbstwechsler gerade dabei war, eine Transiation von einer Spalte von Zellen zu einer anderen durchzuführen, als der Fehler auftrat. Eine Standardwiederherstellung 646 wird aufgerufen, wenn keine der anderen Wiederherstellungsroutinen für den Typ des aufgetretenen Fehlers geeignet sind.
  • Fig. 17 ist ein Flußdiagramm des Blocks Magazin-Greifen-Wiederherstellung 636 von Fig. 16 und stellt eine detaillierte Beschreibung von einer der Wiederherstellungsroutinen dar. Bezugnehmend auf Fig. 17 erhält nach einem Eintritt ein Block 650 die gegenwärtigen Positionen Y und Z der Servosteuerungssysteme. Ein Block 652 schließt dann die Servoschleifen, während ein Block 654 die Schleifen in Anfangspositionen zurücksetzt Ein Block 656 setzt dann die Steuersystemverstärkungen für eine Tauchbewegung ein. Ein Block 658 bestimmt, ob die Position der Transporteinrichtung sehr nahe an den Zellen ist, d.h. ob die Transporteinrichtung nahe genug an einer Zelle ist, um möglicherweise eine Kassette in Eingriff zu nehmen. Wenn die Position Z kleiner als diese riskante Position von 148 Millimeter (mm) ist (d.h. zu weit entfernt, um eine Kassette in Eingriff zu nehmen), springt der Block 658 direkt zu einem Block 666. Wenn die Position Z nahe genug an einer Kassette für eine mögliche Ineingriffnahme ist, springt der Block 658 zu einem Block 660, welcher Fig. 10 aufruft, um Z zu einem absoluten Abstand von 38 mm nach vorne zu sättigen, oder bis eine Kraft von 12 Pfund entgegenwirkt, um ein Greifen der Kassette zu versuchen. Ein Block 662 bestimmt dann, ob die Y-Achse gesättigt ist. Da die Transporteinrichtung gerade versucht hatte, eine Kassette zu greifen, sollte die Y-Achse nicht in einer Position sein, in der sie gesättigt sein würde, weshalb, wenn die Y-Achse gesättigt ist, der Block 662 zu einem Block 670 springt, um die Fehlgeschlagen-Flag zu setzen. Wenn die Y-Achse nicht gesättigt ist, springt der Block 662 zu einem Block 664, welcher die Z-Schleife entspannt. Durch Entspannen der Z-Schleife wird der Block 664 jede Kraft aufgrund von verbundenen Vorrichtungen lösen, die in der Transporteinrichtung existieren könnten. Der Block 664 springt dann zu dem Block 666, welcher Fig. 10 aufruft, um die Transporteinrichtung wieder von den Zellen zu einem absoluten Abstand von 210 mm zurückzuziehen, oder zu bewegen, bis einer Kraft von 18 Pfund begegnet wird. Ein Block 668 bestimmt dann, ob die Z-Achse gesättigt ist, und wenn eine Sättigung der Z-Achse fehlgeschlagen ist, als sie den ganzen Weg zurückgezogen wurde, ist ein Fehler aufgetreten, weshalb der Block 668 zu einem Block 670 springt, um die Fehlgeschlagen-Flag zu setzen. Wenn die Z-Achse nicht gesättigt wurde, springt der Block 668 zu einem Block 672, um die Z-Schleife wieder zu entspannen und jede Kraft aufgrund von Transportvorrichtungen, die verbunden sind, zu lösen. Ein Block 674 stellt dann die Verstärkungen wieder auf einen normalen Wert zurück und springt zu dem Aufrufer zurück.
  • Immer wenn eines der Funktionskoordinationsmodule 138 (Fig. 4) ein Teilbewegungsausführungsmodul 140 (Fig. 4) aufruft, wird eine Bewegungs-ID für das Teilbewegungsausführungsmodul in einem nicht-flüchtigen Speicher gespeichert. Eine derartige Bewegungs-ID, d.h. für eine Kassetten-Erhalten-Bewegung, wurde beispielsweise verwendet, um die anfängliche Wiederherstellung 626 zu bewirken, um die Magazin-Greifen- Wiederherstellung 636 aufzurufen, wie es in Fig. 17 dargestellt wurde. Die Positionen der verschiedenen Steuersysteme sind ebenfalls in dem nicht-flüchtigen Speicher gespeichert. Da die Bewegungs-ID und die Positionen in dem nicht-flüchtigen Speicher gespeichert sind, ist eine anfängliche Fehlerwiederherstellung nach einem Leistungsversagen für die Bewegungsoperation spezifisch, die gerade zu dem Zeitpunkt des Leistungsversagens durchgeführt wurde. Wenn zu dem Zeitpunkt des Leistungsversagens keine Operation durchgeführt wurde, wird natürlich keine Wiederherstellung versucht, wenn die Leistung wiedereingesetzt wird.
  • Die Fig. 18 und 19 zeigen ein Flußdiagramm des anfänglichen Wiederherstellungsmoduls für ein Leistungsversagen, das aufgerufen wird, wenn zum Zeitpunkt des Leistungsversagens gerade eine Magazin-Greifen-Operation durchgeführt wurde, wobei die Darstellung dazu dient, den Typ der Fehlerwiederherstellung zu veranschaulichen, der auf einer Speicherung der gerade durchgeführten Bewegung in dem nicht-flüchtigen Speicher während einer Leistungsunterbrechung basiert. Bezugnehmend nun auf die Fig. 18 und 19 erhält nach einem Eintritt ein Block 702 die Steuersystempositonen von dem nicht-flüchtigen Speicher, während ein Block 704 die Servosteuerschleifen schließt. Ein Block 706 setzt die Steuerschleifen in die Leistungsversagenspositionen zurück, wie es in dem nichtflüchtigen Speicher gezeigt ist, während ein Block 708 die Steuersystemverstärkungen für eine Tauchoperation einstellt. Ein Block 710 überprüft die Z-Position der Transporteinrichtung, um zu bestimmen, ob die Transporteinrichtung nahe genug an einer Zelle ist, um möglicherweise eine Kassette teilweise in Eingriff genommen zu haben. Da die Position der Transporteinrichtung aufgrund der Leistungsunterbrechung wenig sicher ist, ist die riskante Position von 128 mm von den Zellen weiter entfernt als die entsprechende Position während einer Wiederherstellung von einem Nicht-Leistungsversagenfehler. Wenn die Position Z kleiner als diese riskante Position ist (d.h. weiter von den Zellen entfernt), springt ein Block 710 direkt zu einem Block 744 von Fig. 19, da kein Risiko vorhanden ist, daß eine Kassette teilweise in Eingriff genommen ist. Wenn die Position Z größer als die riskante Position beim Leistungsversagen ist, springt der Block 710 zu einem Block 712, welcher Fig. 10 aufruft, um Z nach außen zu einem absoluten Abstand von 58 mm oder bis einer Kraft von 12 Pfund begegnet wird, zu sättigen, um irgendeine Kassette, die in der Zelle ist, zu greifen. Da die Transporteinrichtung versucht, eine Kassette in Eingriff zu nehmen, sollte die Y-Achse nicht in einer Position sein, in der sie gesättigt ist. Daher überprüft der Block 714 die Y-Achse, um zu bestimmen, ob sie gesättigt ist, und wenn die Y- Achse gesättigt ist, springt der Block 714 direkt zu einem Block 752 von Fig. 19, um die Fehigeschlagen-Flag einzustellen und zurückzuspringen, da keine Wiederherstellung möglich ist. Wenn die Y-Achse nicht gesättigt ist, springt der Block 714 zu einem Block 716, um die Z-Schleife zu entspannen, um irgendwelche Kräfte aufgrund verbundener Vorrichtungen zu lösen. Ein Block 718 ruft dann Fig. 10 auf, um Z nach hinten zu einem absoluten Abstand von 210 mm zu sättigen, oder bis 128 Pfund an Kraft begegnen, um die Kassette von der Zelle, wenn es möglich ist, wiederzugewinnen. Ein Block 720 bestimmt dann, ob die Z-Achse tatsächlich gesättigt ist. Wenn eine Sättigung der Z-Achse fehlgeschlagen ist, springt der Block 720 zu dem Block 752 von Fig. 19, um die Fehlgeschlagen-Flag zu setzen und zurückzukehren, da keine Wiederherstellung möglich ist.
  • Wenn die Z-Achse sättigte, springt der Block 720 zu einem Block 722, welcher bestimmt, ob die Z-Position der Transporteinrichtung sich immer noch über die ursprüngliche Position von 88,6 mm erstreckt. Wenn sich die Z-Position nicht derart erstreckt, d.h. die Transporteinrichtung ist vollständig von den Zellen entfernt, ist die Z-Vorrichtung frei, wonach der Block 722 zu einem Block 748 in Fig. 19 springt. Wenn sich die Z-Position der Transporteinrichtung immer noch nahe an den Zellen befindet, d.h. in der Position, in der die Finger greiffertig sind, springt der Block 722 zu einem Block 724, welcher Fig. 10 aufruft, um Z nach außen zu den Zellen hin zu einem Abstand von 20 mm zu sättigen, oder zu bewegen, bis 12 Pfund an Kraft begegnet wird. Ein Block 726 bestimmt dann, ob die Z-Achse gesättigt ist. Wenn die Sättigung der Z-Achse fehlschlägt, springt der Block 726 zu dem Block 752, um die Fehlgeschlagen-Flag zu setzen, da das Z- System keine Kraft erfaßte. Wenn die Z-Achse gesättigt ist, springt der Block 726 zu einem Block 728, um die Z-Schleife zu entspannen. An diesem Punkt wird angenommen, daß die Transporteinrichtung gegen die Kante eines Hinternisses verbunden ist, weshalb die Transporteinrichtung etwas nach oben und nach unten bewegt wird, um eine Zentrierung der Transporteinrichtung bezüglich einer Zelle zu versuchen. Ein Block 730 ruft daher Fig. 7 auf, um die Transporteinrichtung etwas nach oben zu bewegen, und zwar um eine Strecke von 4 mm. Ein Block 734 überprüft dann, um zu sehen, ob die Z-Achse frei ist, und wenn dieselbe frei ist, springt der Block 734 direkt zu dem Block 744. Wenn die Z-Achse noch nicht frei ist, springt der Block 734 zu einem Block 736, welcher Fig. 7 aufruft, um die Transporteinrichtung um die kleine Strecke von 8 mm nach unten zu bewegen. Der Block 738 überprüft wieder, um zu sehen, ob die Z-Achse frei ist, und wenn sie es ist, springt der Block 738 zu dem Block 744. Wenn die Z-Achse noch nicht frei ist, springt der Block 738 zu einem Block 740, welcher wieder versucht, die Transporteinrichtung um eine kleine Strecke von 4 mm nach oben zu bewegen. Ein Block 742 überprüft, um zu bestimmen, ob die Z-Achse frei ist, und wenn sie nicht frei ist, wird an diesem Punkt angenommen, daß sie nicht befreit werden kann, weshalb der Block 742 zu dem Block 752 springt, um die Fehigeschlagen-Flag zu setzen. Wenn die Z-Achse an diesem Punkt frei ist, springt der Block 742 zu dem Block 744, welcher Fig. 10 aufruft, um die Transporteinrichtung wieder zurück von dem Zellenweg um eine Strecke von 210 mm, oder bis 18 Pfund an Kraft begegnet wird, zu bewegen. Ein Block 746 bestimmt dann, ob die Z-Achse gesättigt hat, und wenn die Sättigung der Z-Achse immer noch fehlgeschlagen ist, springt der Block 746 zu dem Block 752, um die Fehigeschlagen-Flag zu setzen und zurückzuspringen. Wenn die Z-Achse schließlich gesättigt worden ist, springt der Block 746 zu einem Block 748, um die Z-Schleife wieder zu entspannen, um irgendwelche Kräfte aufgrund von verbundenen Vorrichtungen zu entlösen. Ein Block 750 stellt dann die Steuersystemverstärkungen auf normale Werte ein und springt zurück.
  • Nach der Beschreibung eines gegenwärtig bevorzugten Ausführungsbeispiels der vorliegenden Erfindung ist es offensichtlich, daß die Ziele der Erfindung voll erreicht worden sind. Die Offenbarungen und die hierin vorhandene Beschreibung sind dafür gedacht, veranschaulichend zu sein, und sie sollen auf keinen Fall für die Erfindung begrenzend sein, welche vorzugsweise durch den Bereich der folgenden Ansprüche definiert ist.

Claims (7)

1. Ein Verfahren zum Betreiben eines programmgesteuerten Kassettenhandhabungssystems (10), bei dem Befehle auf hoher Ebene gegeben werden, um eine programmierte Bewegung von geeigneten Vorrichtungen (24) in dem System (10) zu bewirken, um entsprechende Operationen bei dem Handhaben und Transportieren von Kassetten (43) durchzuführen, wobei das Verfahren folgende Schritte aufweist:
(a) Bereitstellen eines Befehls auf hoher Ebene, welcher, wenn er ausgeführt wird, das Auftreten einer programmierten Bewegung von geeigneten Vorrichtungen (24) bewirkt, um eine jeweilige Operation durchzuführen;
(b) Ausführen des Befehls auf hoher Ebene durch Verarbeiten einer Sequenz von Befehlen auf niederer Ebene;
(c) überwachen von Bewegungen der Vorrichtungen (24) während der Ausführung der Befehle auf niederer Ebene;
(d) Erfassen einer Fehlerbedingung in der überwachten Bewegung der Vorrichtungen (24), welche die jeweiligen Befehle auf niederer Ebene ausführt;
(e) Verändern des Zustands einer Flag, wenn die Fehlerbedingung erfaßt wird;
(f) Verhindern von weiteren Zustandsänderungen der Flag, wenn die Fehlerbedingung erfaßt wird, und Verhindern einer weiteren Bewegung der Vorrichtungen (24) , wohingegen eine weitere Verarbeitung beliebiger restlicher Befehle auf niedriger Ebene in der Sequenz erlaubt wird; und
(g) Neustarten des Systems (10) zuerst durch Versuchen, die Ausführung des Befehls auf hoher Ebene zu verändern, und durch Starten der Verarbeitung auf der Stufe des Befehls auf niedriger Ebene, welcher zu dem Zeitpunkt einer Fehlererfassung existierte, und zweitens, wo der letztere Befehl auf hoher Ebene nicht vollendet werden kann, aufgrund einer fortgesetzten Fehlerbedingung, Verändem des Zustands der Flag, um eine Ausführung eines anderen Befehls auf niedriger Ebene einzuleiten, und zwar entsprechend dem veränderten Zustand der Flag, und Neustarten des Systems bei einer ähnlichen Stufe des Befehls auf niedriger Ebene durch Starten der Verarbeitung, wobei die Vorrichtungen (24) in den gleichen Positionen sind, wie sie zu dem Zeitpunkt einer Fehlersituation existierten.
2. Ein Verfahren gemäß Anspruch 1, bei dem Daten gespeichert werden, die den Befehl auf niedriger Ebene darstellen, der zu dem Zeitpunkt des Erfassens der Fehlerbedingung existierte.
3. Ein Verfahren gemäß Anspruch 1 oder 2, bei dem die Befehle auf niedriger Ebene verwendet werden, um ein Profil (206) der Vorrichtungsbewegungen zu erzeugen, welche sequentiell die Operation darstellen, die den Befehlen auf hoher Ebene entspricht.
4. Ein Verfahren gemäß einem beliebigen der vorhergehenden Ansprüche, das den Schritt des Messens einer Kraft (174), die von den geeigneten Vorrichtungen (24) ausgeübt werden, und den Schritt des Vergleichens der ausgeübten Kraft mit Daten, die sich auf Kräfte beziehen, denen erwartungsgemäß begegnet wird, wenn die Operation durchgeführt wird, umfaßt.
5. Ein Verfahren gemäß Anspruch 4, das ferner den Schritt des Verwendens der gemessenen Kraft umfaßt, um eine Ausführung einer speziellen Sequenz von Befehlen auf niederer Ebene einzuleiten.
6. Ein Verfahren gemäß einem beliebigen der vorhergehenden Ansprüche, das ferner den Schritt des Speicherns der Befehle auf hoher Ebene und auf niederer Ebene in einem nicht-flüchtigen Speicher umfaßt.
7. Ein Verfahren gemäß einem beliebigen der vorhergehenden Ansprüche, das ferner den Schritt des Zurücksetzens des Systems (10) in eine Startposition umfaßt.
DE69029566T 1989-11-30 1990-11-02 Fehlerkorrektur in einem Kassettenbehandlungssystem Expired - Lifetime DE69029566T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US44377389A 1989-11-30 1989-11-30

Publications (2)

Publication Number Publication Date
DE69029566D1 DE69029566D1 (de) 1997-02-13
DE69029566T2 true DE69029566T2 (de) 1997-04-24

Family

ID=23762143

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69029566T Expired - Lifetime DE69029566T2 (de) 1989-11-30 1990-11-02 Fehlerkorrektur in einem Kassettenbehandlungssystem

Country Status (4)

Country Link
US (1) US5164928A (de)
EP (1) EP0430453B1 (de)
JP (1) JP3217779B2 (de)
DE (1) DE69029566T2 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341258A (en) * 1992-11-25 1994-08-23 Gte Vantage Incorporated Automated cassette library system
US5427489A (en) * 1992-11-25 1995-06-27 Gte Vantage Incorporated Apparatus for controlling an automated cassette library
US5434832A (en) * 1992-11-25 1995-07-18 Gte Vantage Incorporated Automated cassette library apparatus for transporting a cassette along three perpendicular axes
US5607275A (en) * 1993-08-26 1997-03-04 Exabyte Corporation Cartridge library and method of operation
US5498116A (en) * 1993-08-26 1996-03-12 Exabyte Corporation Entry-exit port for cartridge library
JPH07192377A (ja) * 1993-12-27 1995-07-28 Nakamichi Corp チェンジャ−型ディスク再生装置
KR960014399B1 (ko) * 1994-05-12 1996-10-15 삼성전자 주식회사 디스크 이송장치의 수평상태 보정회로 및 방법
US5455810A (en) * 1994-06-03 1995-10-03 Hewlett-Packard Company Flexible member tensioning apparatus
US5622470A (en) * 1995-04-28 1997-04-22 Breece Hill Technologies, Inc. Method and apparatus for adaptive cartridge retrieval and insertion in a storage library subsystem
US5768047A (en) * 1995-12-19 1998-06-16 Exabyte Corporation Cartridge library with duel-sided rotatable spit having latch member extending through aperture in circular toothed end wall
US5691859A (en) * 1995-12-19 1997-11-25 Exabyte Corporation Drive with features which adjust and actuate cartridge transport and library with such drive
US6775093B1 (en) 1997-05-09 2004-08-10 Hewlett-Packard Development Company, L.P. Data cartridge-to-caddy referencing system for a data cartridge handling mechanism within an autochanger
US5993045A (en) * 1997-05-09 1999-11-30 Hewlett-Packard Company Data cartridge caddy presence sensing method and apparatus
US5999500A (en) * 1997-05-09 1999-12-07 Hewlett-Packard Company Data cartridge interlock release actuator system
US6028733A (en) * 1997-05-09 2000-02-22 Hewlett-Packard Company Data cartridge caddy-to-storage rack interlock and release system
US5926341A (en) * 1997-05-09 1999-07-20 Hewlett-Packard Company Data cartridge interlock and release system
US6107769A (en) * 1998-12-29 2000-08-22 Schneider Automation Inc. Positional-based motion controller with a bias latch
US6219313B1 (en) * 1999-01-19 2001-04-17 Storage Technology Corporation System and method for adaptive cartridge engagement in an automated cartridge library
EP1045319B1 (de) * 1999-04-16 2005-07-20 Ncr International Inc. Verfahren zum Betreiben eines Systems zum Verarbeiten von finanziellen Dokumenten während des Wiederaufsetzens nach einer Ausnahme
US6473371B1 (en) * 2000-02-14 2002-10-29 Hewlett-Packard Company Media handling device having replaceable modules
US6958963B2 (en) * 2001-01-25 2005-10-25 Dphi Acquisitions, Inc. System and method for handling events in an optical disc drive
US6785588B2 (en) 2002-03-05 2004-08-31 International Business Machines Corporation Method to provide failover protection to a data storage and retrieval system
US7085884B2 (en) * 2003-06-30 2006-08-01 Hewlett-Packard Development Company, L.P. System and method for storing operational data of a storage automation device to a removable nonvolatile memory component
US7493617B2 (en) * 2004-03-05 2009-02-17 International Business Machines Corporation Method of maintaining task sequence within a task domain across error recovery
US7823021B2 (en) * 2005-05-26 2010-10-26 United Parcel Service Of America, Inc. Software process monitor
US8332826B2 (en) * 2005-05-26 2012-12-11 United Parcel Service Of America, Inc. Software process monitor
US7558986B2 (en) * 2005-05-26 2009-07-07 United Parcel Service Of America, Inc. Software process monitor
TW200713037A (en) * 2005-09-06 2007-04-01 Benq Corp System and method for updating firmware
TW201102924A (en) * 2009-07-03 2011-01-16 Inventec Appliances Corp Embedded electronic device and method for updating firmware thereof
US8812914B2 (en) * 2011-10-24 2014-08-19 Fisher Controls International, Llc Field control devices having pre-defined error-states and related methods
CN116476390A (zh) * 2015-12-03 2023-07-25 弹性钢接头公司 带拼接设备和方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3801963A (en) * 1972-09-28 1974-04-02 Burroughs Corp Method and apparatus for transferring data from a volatile data store upon the occurrence of a power failure in a computer
US4132937A (en) * 1976-10-18 1979-01-02 Unimation, Inc. Programmable manipulator with dynamic feedback apparatus for stabilization
US4068156A (en) * 1977-03-01 1978-01-10 Martin Marietta Corporation Rate control system for manipulator arms
US4213190A (en) * 1978-08-28 1980-07-15 International Business Machines Corporation Programmed copier control
JPS5642806A (en) * 1979-09-18 1981-04-21 Fanuc Ltd Sequence control system for numerical control machine tool
US4362978A (en) * 1980-10-27 1982-12-07 Unimation, Inc. Control system for manipulator apparatus
JPS59124589A (ja) * 1982-12-28 1984-07-18 株式会社東芝 産業用ロボツト
US4701902A (en) * 1984-04-27 1987-10-20 Pioneer Electronic Corporation Automatic loading disc player
JPS6126101A (ja) * 1984-07-17 1986-02-05 Mitsubishi Heavy Ind Ltd 数値制御ホブ盤におけるシ−ケンス制御方法
JPS6142004A (ja) * 1984-08-06 1986-02-28 Toyota Central Res & Dev Lab Inc 追従ロボツト装置
US4766581A (en) * 1984-08-07 1988-08-23 Justin Korn Information retrieval system and method using independent user stations
US4718078A (en) * 1985-08-19 1988-01-05 Siemens Aktiengesellschaft System for controlling motion of a robot
JPS62214576A (ja) * 1986-03-14 1987-09-21 Pioneer Electronic Corp ピツクアツプの位置制御方法
US4826392A (en) * 1986-03-31 1989-05-02 California Institute Of Technology Method and apparatus for hybrid position/force control of multi-arm cooperating robots
US4736304A (en) * 1986-04-07 1988-04-05 Energy Conversion Devices, Inc. Method and apparatus for operating one or more deposition systems
JPH071463B2 (ja) * 1986-06-30 1995-01-11 フアナツク株式会社 ロボツト制御装置
JPS63104258A (ja) * 1986-10-22 1988-05-09 Pioneer Electronic Corp マルチデイスクプレ−ヤの駆動制御方式
US4774445A (en) * 1986-11-20 1988-09-27 Unimation, Inc. Multiaxis robot control having capability for executing timed moves
US4807153A (en) * 1986-11-20 1989-02-21 Unimation Inc. Multiaxis digital robot control having a backup velocity monitor and protection system
US4864438A (en) * 1988-01-27 1989-09-05 Munro Frederick G Tape cartridge movement management in an automated tape cartridge library system
US5040159A (en) * 1989-03-20 1991-08-13 Hewlett-Packard Company Mechanical sense of touch in a control system

Also Published As

Publication number Publication date
US5164928A (en) 1992-11-17
DE69029566D1 (de) 1997-02-13
EP0430453B1 (de) 1997-01-02
JPH03241563A (ja) 1991-10-28
EP0430453A3 (en) 1993-03-17
JP3217779B2 (ja) 2001-10-15
EP0430453A2 (de) 1991-06-05

Similar Documents

Publication Publication Date Title
DE69029566T2 (de) Fehlerkorrektur in einem Kassettenbehandlungssystem
DE69026745T2 (de) Fühler für eine mechanische Berührung in einem Steuerungssystem
DE68922281T2 (de) Vorrichtung zur Handhabung von optischen Platten mit einem Kippriegel.
DE69217084T2 (de) Elektrische Servolenkung
DE69115944T2 (de) System zur Positionierung eines Gegenstandes
DE69410190T2 (de) Verfahren zum erkennen und regeln einer last an einem servomotor
DE68915887T2 (de) Kontrollsystem für einen Plattenantriebskopf.
DE102014224193B4 (de) Verfahren und Vorrichtung zur Fehlerhandhabung eines Roboters
DE2554420A1 (de) Verfahren und vorrichtung zur automatischen verbindung von schrauben und muttern
DE3886138T2 (de) Numerisch gesteuerte Werkzeugmaschine.
DE3751087T2 (de) Selbstjustierender Rücklauf für einen Schrittmotor.
DE112020004007B4 (de) Beheben von lesefehlern in einem bandlaufwerk
DE3141983A1 (de) Numerisches regelverfahren und numerische regelvorrichtung
DE69328509T2 (de) Mustererkennungs- und Synchronisationsschaltung
DE69033256T2 (de) Verfahren zum Einbringen/Entfernen einer Kassette in einen/aus einem optischen Antrieb eines Kassettenhandhabungssystems
DE102019001763A1 (de) Steuerung
DE2262476A1 (de) Fehlersuchsystem und maschinell ausgefuehrtes fehlersuchverfahren
DE69018867T2 (de) Kalibrierung eines Gerätes zum Manipulieren von Kassetten mit mechanischen Berührungssensoren.
DE69802969T2 (de) Datenspeichergerät und verfahren
DE2133079C2 (de) Magnetplattenantrieb
DE4020624C2 (de) Servosteuerungsvorrichtung
DE3401007C2 (de)
DE2917290C2 (de) System zum Feststellen einer Fehlfunktion einer numerischen Regeleinheit
DE2835498C2 (de) Anordnung zur dynamischen Fehlerermittlung in Datenverarbeitungsanlagen
DE3408190A1 (de) Verfahren zum positionieren von werkzeugen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE