DE19938120A1 - System mit Motorsteuerung unter Verwendung mehrerer Zeitgebungssignalgeneratoren - Google Patents

System mit Motorsteuerung unter Verwendung mehrerer Zeitgebungssignalgeneratoren

Info

Publication number
DE19938120A1
DE19938120A1 DE19938120A DE19938120A DE19938120A1 DE 19938120 A1 DE19938120 A1 DE 19938120A1 DE 19938120 A DE19938120 A DE 19938120A DE 19938120 A DE19938120 A DE 19938120A DE 19938120 A1 DE19938120 A1 DE 19938120A1
Authority
DE
Germany
Prior art keywords
interval
signal
timing signal
motor
response
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.)
Withdrawn
Application number
DE19938120A
Other languages
English (en)
Inventor
Hernan I Gutierrez
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 DE19938120A1 publication Critical patent/DE19938120A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J23/00Power drives for actions or mechanisms
    • B41J23/32Electromagnetic power drives, e.g. applied to key levers
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P8/00Arrangements for controlling dynamo-electric motors rotating step by step
    • H02P8/40Special adaptations for controlling two or more stepping motors

Landscapes

  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Control Of Stepping Motors (AREA)
  • Control Of Multiple Motors (AREA)

Abstract

Ein System mit einer Motorsteuerung verwendet mehrere Zeitgebungssignalgeneratoren, um einen Schrittgebermotor zu steuern. Die Steuerung basiert auf einem ersten Zeitgebungssignalgenerator, wenn sich die Winkelgeschwindigkeit des Motors ändert. Die Steuerung basiert auf einem zweiten Zeitgebungssignalgenerator, wenn die Winkelgeschwindigkeit des Motors auf einer gewünschten Winkelgeschwindigkeit gehalten werden soll. Das System überwacht die Zeitgebung zwischen den Zeitgebungssignalgeneratoren, um die Möglichkeit einer Motorblockierung zu reduzieren, beispielsweise wenn die Steuerung von dem ersten Zeitgebungssignalgenerator zu dem zweiten gelangt.

Description

Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf Systeme mit einer Motorsteuerung, die auf mehreren Zeitgebungssignalgeneratoren basiert, und auf Verfahren zur Motorsteuerung.
Schrittmotoren werden in einer Vielzahl von Papierhandha­ bungsgeräten verwendet. Beispielsweise werden bei einem her­ kömmlichen Drucker Schrittmotoren verwendet, um Papier durch den Druckmechanismus zu bewegen. Ferner werden bei einem herkömmlichen Plotter zwei Schrittmotoren verwendet, um den Zeichenstift zu bewegen, um ein Bild auf Papier zu zeichnen.
Ein Schrittmotor wird üblicherweise nur mit allmählichen Än­ derungen der Winkelgeschwindigkeit bewegt, um ein Blockieren des Motors zu vermeiden. Ein solcher Motor wird durch zwei oder mehr Zweipegel-Signale getrieben. Ansprechend auf jede Pegeländerung eines Treibersignals dreht der Motor seinen Rotor um einen inkrementalen Winkel. Ein Motor wird als blockiert bezeichnet, wenn sein Rotor nicht in der Lage ist, sich gemäß der Leitung durch ein Motortreibersignal weiter­ zubewegen. Der Motor wird nicht blockieren, wenn eine Pegel­ änderung empfangen wird, wenn der Motor sich ausreichend ge­ dreht hat, um einen begrenzten Winkelbereich zu betreten. Wenn eine Pegeländerung empfangen wird, bevor der Rotor die­ sen Winkelbereich betreten hat, oder nachdem sich der Rotor über den Bereich hinaus gedreht hat, kann der Motor blockie­ ren.
Eine Motorblockierung in einem Drucker unterbricht bei­ spielsweise den Druckprozeß. Es kann dann für einen Bediener notwendig werden, bedrucktes Papier teilweise zu beseitigen und den Druckprozeß neu zu starten. Ein solcher Eingriff durch einen Bediener bewirkt eine Verzögerung und erhöht die Betriebskosten des Druckers und des zugehörigen Computersy­ stems.
Die Aufgabe der vorliegenden Erfindung besteht darin, eine Vorrichtung zur Steuerung eines Schrittmotors zu schaffen, die ein Blockieren des Motors verhindert.
Diese Aufgabe wird durch eine Vorrichtung nach Anspruch 1 gelöst.
Eine weitere Aufgabe der vorliegenden Erfindung besteht dar­ in, einen Drucker mit einer Steuerung zum Treiben eines Me­ dienweiterbewegungsmotors zu schaffen, bei dem ein Blockie­ ren des Medienweiterbewegungsmotors verhindert ist.
Diese Aufgabe wird durch einen Drucker nach Anspruch 10 ge­ löst.
Eine weitere Aufgabe der vorliegenden Erfindung besteht dar­ in, ein auf einer Datenspeichervorrichtung gespeichertes Verfahren zum derartigen Steuern eines Schrittmotors zu schaffen.
Diese Aufgabe wird durch eine Datenspeichervorrichtung nach Anspruch 11 gelöst.
Gemäß verschiedenen Aspekten der vorliegenden Erfindung ver­ wendet ein System mit einer Motorsteuerung mehrere Zeitge­ bungssignalgeneratoren, um einen Schrittmotor zu steuern. Die Steuerung basiert auf einem ersten Zeitgebungssignalge­ nerator, wenn die Winkelgeschwindigkeit des Motors geändert wird. Die Steuerung basiert auf einem zweiten Zeitgebungs­ signalgenerator, wenn die Winkelgeschwindigkeit des Motors auf einer gewünschten Winkelgeschwindigkeit gehalten werden soll. Das System überwacht die Zeitgebung zwischen den Zeit­ gebungssignalgeneratoren, um die Möglichkeit einer Motor­ blockierung zu reduzieren, speziell wenn die Steuerung von dem ersten Zeitgebungssignalgenerator zu dem zweiten springt.
Eine Vorrichtung gemäß der vorliegenden Erfindung umfaßt zu­ mindest einen ersten und einen zweiten Zeitgebungssignalge­ nerator und eine Auswahleinrichtung. Der erste Zeitgebungs­ signalgenerator erzeugt ein erstes Signal mit Zeitgebungsin­ formationsmarkierungen mit einem konstanten ersten Inter­ vall. Das erste Signal kann verwendet werden, um einen Motor mit einer im wesentlichen konstanten Winkelgeschwindigkeit zu treiben. Der zweite Zeitgebungssignalgenerator erzeugt ein zweites Signal mit Zeitgebungsinformationsmarkierungen mit einem variierenden zweiten Intervall. Das zweite Signal kann verwendet werden, um den Motor mit einer sich ändernden Winkelgeschwindigkeit zu treiben. Die Auswahleinrichtung führt einen Übergang zwischen der Steuerung der Motordrehung durch: (1) auf eine variierende (beispielsweise beschleuni­ gende) Winkelgeschwindigkeit; und (2) auf eine konstante Winkelgeschwindigkeit. Die Auswahleinrichtung liefert Aus­ gangssignale für die Motorsteuerung mit einem variierenden dritten Intervall zu dem Motor basierend auf dem ersten Si­ gnal und dem zweiten Signal. Die Vorrichtung reduziert die Möglichkeit einer Motorblockierung durch das Sicherstellen, daß das dritte Intervall in einem gewünschten Bereich bleibt. Der gewünschte Bereich kann sich von dem zweiten In­ tervall zu dem ersten Intervall erstrecken.
Im Betrieb kann die Vorrichtung zwei Typen von Motorsteuer­ übergängen durchführen. Beim Durchführen eines sogenannten Variierend-Zu-Konstant-Übergangs vom Steuern der Motordre­ hung auf eine variierende (d. h. allgemein zunehmende oder abnehmende) Winkelgeschwindigkeit zum Steuern der Motordre­ hung auf eine konstante Winkelgeschwindigkeit, liefert die Auswahleinrichtung fortgesetzt Ausgangssignale mit dem zwei­ ten Intervall, bis ein erwartetes Intervall zwischen dem vorher gelieferten Ausgangssignal und einem nächsten Auftre­ ten des ersten Signals in den gewünschten Bereich fällt. Beim Durchführen eines sogenannten Konstant-Zu-Variierend- Übergangs vom Steuern der Motordrehung auf eine konstante Winkelgeschwindigkeit zum Steuern der Motordrehung auf eine variierende (beispielsweise allgemein zunehmende oder abneh­ mende) Winkelgeschwindigkeit, liefert die Auswahleinrichtung fortgesetzt Ausgangssignale mit dem ersten Intervall, bis ein erwartetes Intervall zwischen dem vorher gelieferten Ausgangssignal und einem nächsten Auftreten des zweiten Si­ gnals in den gewünschten Bereich fällt.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen, in denen gleiche Bezugszeichen gleiche Elemente be­ zeichnen, näher erläutert. Es zeigen:
Fig. 1 ein funktionelles Blockdiagramm eines Druckers ge­ mäß verschiedenen Aspekten der vorliegenden Erfin­ dung;
Fig. 2 ein funktionelles Blockdiagramm der Motorsteuerung von Fig. 1;
Fig. 3 ein Zeitgebungsdiagramm eines exemplarischen Be­ triebs der Motorsteuerung von Fig. 2;
Fig. 4 ein funktionelles Blockdiagramm eines Motoran­ triebssystems gemäß verschiedenen Aspekten der vor­ liegenden Erfindung;
Fig. 5 ein Flußdiagramm einer Hauptroutine zum Steuern ei­ nes Motors gemäß verschiedenen Aspekten der vorlie­ genden Erfindung;
Fig. 6 bis 8 Flußdiagramme von Unterbrechungsdienstrouti­ nen, die durch eine Auswahleinrichtung von Fig. 4 durchgeführt werden; und
Fig. 9 ein Zeitablaufdiagramm eines beispielhaften Be­ triebs der Motorsteuerung von Fig. 2.
Ein System der vorliegenden Erfindung umfaßt jegliches Sy­ stem zum Steuern eines Motors mit gepulsten Treibersignalen, um ein Blockieren des Motors zu vermeiden. Wenn die Motor­ steuerung zur Handhabung von Papier verwendet wird, kann ein solches System zusätzliche Funktionen, wie z. B. ein Drucken oder ein Plotten (Zeichnen), aufweisen. Ein Drucker gemäß verschiedenen Aspekten der vorliegenden Erfindung umfaßt ei­ ne Schnittstelle zum Empfangen einer Beschreibung von Daten, die gedruckt werden sollen, einen Bus zum Übertragen der Da­ ten zu einem Prozessor zum Formatieren der Daten, Steuerele­ mente und Anzeigeelemente zur Verwendung durch einen Bedie­ ner, einen Papierweg einschließlich einer Druckmaschine zum Handhaben von Papier und zum Drucken auf dem Papier, und ei­ ne Motorsteuerung zum Steuern von Motoren entlang des Pa­ pierwegs. Beispielsweise weist ein Drucker 100 von Fig. 1 eine I/O-Schnittstelle 110 (I/O = input/output = Einga­ be/Ausgabe), einen Bus 112, einen Prozessor 114, Steuerele­ mente und Anzeigeelemente 116, eine Motorsteuerung 118, eine Druckmaschine 124 und einen Papierweg 120 auf.
Eine I/O-Schnittstelle koppelt einen Drucker mit einem Com­ puternetzwerk oder einem Computersystem. Eine I/O-Schnitt­ stelle umfaßt Schaltungen zum Empfangen von Befehlen und von Daten, die gedruckt werden sollen, und zum Liefern eines Status des Druckerbetriebs. Beispielsweise koppelt die I/O- Schnittstelle 110 den Drucker 100 über eine Leitung 108 mit einem Netzwerk und besitzt sämtliche herkömmlichen Schaltun­ gen zum Empfangen von Befehlsmeldungen und Datenmeldungen und zum Liefern von Statusmeldungen entsprechend den ver­ schiedenen herkäunulichen Protokollen (beispielsweise dem PCL-Protokoll, das von der Hewlett-Packard Company auf dem Markt ist).
Steuerelemente und Anzeigeelemente erleichtern eine Bedie­ nerinteraktion mit dem Drucker. Beispielsweise umfassen die Steuerelemente und Anzeigeelemente 116 herkömmliche Schal­ tungen für verschiedene Schalter (oder eine Tastatur), eine alphanumerische/graphische Anzeige und verschiedene diskrete Anzeiger. Steuerschalter können beispielsweise einen On-Li­ ne-Schalter und einen Rücksetz-Schalter umfassen. Anzeige­ elemente können beispielsweise den Papierstatus (beispiels­ weise leer oder gestaut) und den Protokollstatus enthalten.
Ein Prozessor liefert unter anderen eine Gesamtsteuerung der Druckfunktionen, einschließlich der Vorbereitung von Befeh­ len für die Druckmaschine, die Motorsteuerung und die Steu­ erelemente und Anzeigeelemente, ansprechend auf Befehle, die über die I/O-Schnittstelle empfangen werden. Beispielsweise umfaßt der Prozessor 114 eine herkömmliche Mikroprozessor­ schaltung, die programmiert ist, um Verfahren durchzuführen, die beispielsweise das Empfangen und Senden von Meldungen über den Bus 112 und die I/O-Schnittstelle 110, das Forma­ tieren von empfangenen Daten für die Steuerung der Druckma­ schine 124, das Erfassen von Bedienersteuerungen und das Liefern von Bedienerinformationsanzeigen über die Steuerele­ mente und Anzeigeelemente 116 und das Anweisen der Motor­ steuerung 118, eine Sequenz von Motorsteueroperationen, um den Papierweg 120 zu steuern, durchzuführen, enthalten. Der Bus 112 wird primär durch den Prozessor 114 gesteuert und umfaßt einen herkömmlichen Parallel-Digital-Kommunikations­ bus. Der Prozessor 114 kommuniziert auf eine herkömmliche Art und Weise mit der I/O-Schnittstelle 110, den Steuerele­ menten und Anzeigeelementen 116, der Motorsteuerung 118 und der Druckmaschine 124 durch das Senden von Befehlen und das Empfangen des Status über den Bus 112.
Der Papierweg eines Druckers umfaßt verschiedene herkömmli­ che Sensoren und Papierhandhabungsvorrichtungen zum Leiten von Papier von einem Vorrat durch die Druckmaschine zu einem Ausgabebehälter. Beispielsweise umfaßt der Papierweg 120 ei­ nen Eingabepapiervorrat 122, die Druckmaschine 124, einen Ausgabepapierbehälter 132, Schrittmotoren 126, 128 und 130 und verschiedene Sensoren, die über die Position und die Ausrichtung von Papier entlang des Papierwegs berichten. Al­ ternativ ist der Ausgabepapierbehälter durch eine Papierver­ arbeitungsvorrichtung zum Stapeln, Lochen, Verkleben, Zusam­ menheften oder anderen Papierfertigstellungsoperationen er­ setzt. Eine solche Papierverarbeitungsmaschine kann mehrere Schrittmotoren enthalten, die auf eine zu der Steuerung der Motoren 126, 128 und 130 analoge Art und Weise durch die Mo­ torsteuerung 118 gesteuert werden.
Die Motoren 126, 128 und 130 können von dem Typ sein, der als Schrittmotoren bekannt ist, wie er beispielsweise von Airpax Inc. als S42M048T36-M1 oder von NMB Co. als PM55L- 048-ZGL2A auf dem Markt ist. Motoren dieses Typs besitzen einen Mehrpol-Permanentmagnet-Rotor und einen Mehrpol-Stator und können schrittweise um eine gegebene Anzahl von Grad (beispielsweise 7,5 Grad) für jede Pegeländerung von einem oder mehreren Zweipegel-Motortreibersignalen, die an die Wicklungen des Stators angelegt werden, bewegt werden. Der Mehrpol-Stator kann abwechselnde Pole in zwei Wicklungsgrup­ pen mit einem ersten Paar von Leitern zum Treiben aller Pole der ersten Gruppe und einem zweiten Paar von Leitern zum Treiben aller Pole der zweiten Gruppe aufweisen.
Eine Druckmaschine weist einen beliebigen herkömmlichen Me­ chanismus zum Erzeugen visueller Markierungen auf verschie­ denen Medien auf. Beispielsweise empfängt die Druckmaschine 124 Befehle, die Druckoperationen leiten, von dem Bus 112 und umfaßt einen geeigneten elektrophotographischen Druckme­ chanismus zum Drucken von Text und Graphiken auf Papier. Ab­ weichend davon kann die Druckmaschine 124 einen Tinten­ strahldruckmechanismus aufweisen.
Bei einem weiteren System gemäß anderen Aspekten der vorlie­ genden Erfindung wird eine Motorsteuerung verwendet, um die Position eines Stifts zum Zeichnen von Text und Graphiken auf Medien zu steuern. Ein solches System umfaßt viele Kom­ ponenten, die ähnlich den Komponenten des Druckers 100 sind, und besitzt Schrittgebermotoren zum Positionieren von einem oder mehreren Stiften; derartige Motoren sind von dem Typ, der oben beschrieben ist.
Eine Motorsteuerung gemäß verschiedenen Aspekten der vorlie­ genden Erfindung liefert Signale zum Treiben von einem oder mehreren Motoren auf eine Art und Weise, die die Möglichkeit einer Motorblockierung reduziert. Eine solche Motorsteuerung kann mit analogen oder digitalen Schaltungen, einer Kombina­ tion von analogen und digitalen Schaltungen und/oder pro­ grammierbaren digitalen Verarbeitungsschaltungen, die gemäß einem Verfahren wirksam sind, das als ein Computerprogramm organisiert und in einer Speichervorrichtung gespeichert ist, implementiert sein. Für einen Drucker kann eine Motor­ steuerung, die mit einem Lösungsansatz einer programmierba­ ren digitalen Verarbeitungsschaltung implementiert ist, eine Prozessorschnittstelle zur Kommunikation mit dem Prozessor des Druckers, eine Zentralverarbeitungseinheit zum Durchfüh­ ren eines gespeicherten Steuerprogramms, einen Speicher zur Programm- und Variablen-Speicherung, zwei Zeitgeber, und I/O-Schaltungen, die das Liefern von Motortreibersignalen, die durch die Zentralverarbeitungseinheit geleitet werden, vereinfachen, aufweisen. Beispielsweise empfängt die Motor­ steuerung 118 von Fig. 2 Befehle über den Bus 112, wie oben erläutert wurde, und liefert Signale MD1, MD2 und MD3 auf Leitungen 125, 127 und 129 zum Betreiben der Motoren 126, 128 bzw. 130. Die Motorsteuerung 118 startet jeden Motor während des Druckens, um Papier entlang des Papierwegs 120 zu bewegen, von Zeit zu Zeit, betreibt ihn bei verschiedenen Winkelgeschwindigkeiten und hält ihn an. (Allgemein können Motoren angehalten werden, um eine Papierbewegung zu been­ den, um Leistung zu sparen, eine Wärmeableitung zu reduzie­ ren und das Betriebsgeräusch zu reduzieren). Die Motorsteue­ rung 118 besitzt eine Prozessorschnittstelle 202, eine Zen­ tralverarbeitungseinheit (CPU) 204, einen Bus 206, einen Speicher 208, Zeitgeber 210 und 212, eine Motor-I/O-Schal­ tung 214 und Motortreiber 216, 218 und 220.
Eine Prozessorschnittstelle koordiniert die Kommunikation zwischen einem ersten Bus, der durch einen ersten Prozessor gesteuert wird, und einem zweiten Bus, der durch einen zwei­ ten Prozessor gesteuert wird. Beispielsweise wird die Kom­ munikation zwischen dem Prozessor 114 und der CPU 204 durch die Prozessorschnittstelle 202 gesteuert. Die Prozessor­ schnittstelle 202 kann herkömmliche Schaltungen zur Signal­ pegelumwandlung, zeitlichen Synchronisation, Unterbrechungs­ prioritätskoordination, Busentscheidung und zum Direktspei­ cherzugriff aufweisen.
Eine Zentralverarbeitungseinheit führt ein gespeichertes Programm zur Motorsteuerung durch. Beispielsweise kann die CPU 204 ein beliebiger herkömmlicher Mikroprozessor sein. Bei einer bevorzugten Abweichung umfaßt die CPU 204 einen Mikroprozessor des Typs, der von der Intel Corporation als MCS-51-Reihe-kompatibel bezeichnet auf dem Markt ist. Die CPU 204 führt Befehle durch, die aus dem Speicher 208 geholt werden; modifiziert Werte von Variablen in dem Speicher 208; initialisiert, startet und stoppt die Zeitgeber 210 und 212; und liest einen Status von der Motor-I/O-Schaltung 214 und schreibt Ausgangssteuerdaten in dieselbe. Operationen mit dem Speicher 208 sind bei einer Abweichung erweitert, um mit Speicherelementen eines beliebigen herkömmlichen Typs, die über den Bus 206 oder über die Prozessorschnittstelle 202 einen direkten Zugriff liefern, zu arbeiten. Ein Speicher­ element ist ein Typ einer Datenspeicherungsvorrichtung. Eine Datenspeicherungsvorrichtung umfaßt eine beliebige flüchtige oder nicht-flüchtige, austauschbare oder nicht-austauschbare Vorrichtung, die in geeigneter Weise einen Nur-Lese- oder Lese/Schreib-Zugriff auf Daten zur Verwendung durch eine di­ gitale elektronische Schaltung liefert.
Instruktionsholbefehle durch die CPU 204 werden auf eine herkömmliche Art und Weise durch Unterbrechersignale IRQ1 und IRQ2, die durch Zeitgeber 210 und 212 geliefert werden, bewirkt. Allgemein führt die CPU 204 ein Hauptprogramm durch, bis dieselbe unterbrochen wird, und führt dann eine Unterbrechungsdienstroutine durch, die der Quelle der Unter­ brechung (beispielsweise IRQ1) zugeordnet ist. Wenn die Durchführung der Unterbrechungsdienstroutine abgeschlossen ist, kehrt die Steuerung zu dem Hauptprogramm zurück.
Ein Bus zum Koppeln einer Zentralverarbeitungseinheit mit einem Speicher und peripheren Schaltungen kann jegliche An­ zahl von parallelen Leitern, die in herkömmlicher Weise Ad­ reßsignale, bidirektionale Datensignale und Status- und Steuer-Signale übertragen, aufweisen. Beispielsweise umfaßt der Bus 206 Leiter für ein 16-Bit-Adreßsignal ADDR, ein 8- Bit-Datensignal DATA und Lese/Schreib-Signale, einschließ­ lich eines Speicher-Lese/Schreib-Signals und eines Eingabe- /Ausgabe-Lese/Schreib-Signals IORW; alle dieser Signale ar­ beiten gemäß der Spezifikation für die Mikroprozessoren der Intel-MSC-51-Reihe zusammen.
Ein Zeitgeber umfaßt eine beliebige Zählerschaltung, die, wenn sie initialisiert und gestartet ist, von dem intiali­ sierten Wert ab zählt, ein Signal liefert, wenn ein Grenz­ zählwert erreicht ist, und zum Wiederholen dieser Operatio­ nen auf den Anfangszustand zurückgesetzt werden kann. Bei­ spielsweise sind die Zeitgeber 210 und 212 von dem Typ, der, wie oben erläutert, in einem Prozessor des 8051-Typs enthal­ ten ist.
Eine Motor-I/O-Schaltung erleichtert die Erzeugung von Si­ gnalen durch eine CPU für einen Betrieb eines Schrittgeber­ motors. Eine Motor-I/O-Schaltung kann eine beliebiger her­ kömmliche Parallel-I/O-Tor-Steuerung aufweisen, beispiels­ weise einen peripheren Schnittstellenadapter des Typs, der mit dem Mikroprozessor Intel-8051 kompatibel ist. Zusätzlich kann eine Motor-I/O-Schaltung zum Liefern zwischengespei­ cherter Ausgangssignale und gepufferter Eingangssignale Zeitgeber enthalten, derart, daß solche Zeitgebungsfunktio­ nen aus der Zentralverarbeitungsschaltung beseitigt sein können. Beispielsweise umfaßt die Motor-I/O-Schaltung 214 adressierbare Latchs zum parallelen Ausgeben von zwei Bits für jedes von drei Toren P1, P2 und P3; und umfaßt ein Ein­ gangstor zum Empfangen eines Wellencodierersignals SE. Jedes Ausgangstor wird durch die CPU 204 beschrieben, wenn die CPU 204 ein Adreßsignal ADDR liefert, das das gewünschte Tor identifiziert, ein Signal DATA liefert, das einen gewünsch­ ten logischen Übergang identifiziert (folglich ein Ausgangs­ signal, beispielsweise eine Motortreibersignal-Pegelände­ rung), und das Eingabe/Ausgabe-Schreib/Lese-Signal IORW lie­ fert, um die Schreiboperation auf eine herkömmliche Art und Weise durchzuführen. Die Signale ADDR und DATA werden auf der Leitung 213 von CPU 204 zu der Motor-I/O-Schaltung 214 übertragen.
Eine Motortreiberschaltung spricht auf ein binäres digitales Signal eines geringen Stroms und einer geringen Spannung (wie es beispielsweise durch eine Motor-I/O-Schaltung gelie­ fert wird) an und liefert ein Motortreibersignal, das geeig­ net ist, um eine oder mehrere Statormagnetspulen eines Schrittgebermotors für einen Betrieb mit einer gewünschten mechanischen Leistung, ein augenblickliches Produkt von Drehmoment und Winkelgeschwindigkeit, zu erregen. Beispiels­ weise sind die Motortreiberschaltungen 216 und 218 und 220 zum Betreiben identischer Motoren 126, 128 und 130 iden­ tisch. Ein Motortreibersignal kann auf einem oder mehreren Leitern übertragen werden. Beispielsweise kann ein Signal MD1 zwei Zweipegel-Zweiphasen-Signale enthalten, die jeweils auf einem von zwei Leitern als Signale MD1A und MD1B über­ tragen werden.
Die Motoren 126, 128 und 130 sind ansprechend auf die Motor­ treibersignale auf eine herkömmliche Art und Weise wirksam. Beispielsweise bewegt sich der Motor M1 für jede Pegelände­ rung des Zweipegelsignals MD1A um einen Schritt; d. h., daß sich der Rotor des Motors M1 zu einer Ausrichtung mit einem Pol des Stators, der benachbart zu dem Pol ist, mit dem der Rotor vorher ausgerichtet war, hin bewegt. Die Drehrichtung spricht auf das erste Auftreten einer Pegeländerung auf MD1A gegenüber MD1B an. Beispielsweise bewegt sich zu jedem der Zeitpunkte T2, T4, T6, T8, T12, T14 und T16 von Fig. 3 der Motor 126 ansprechend auf ein fortlaufendes Ausgangssignal um einen Schritt weiter (beispielsweise einen logischen Übergang, der durch die Motortreiberschaltung 216 empfangen wird, oder eine Pegeländerung entweder des Signals MD1A oder des Signals MD1B).
Während des Betriebs des Druckers 100 schreibt die CPU 204 anfängliche Werte in den Zeitgeber 210 und 212 und startet jeden Zeitgeber, um sich wiederholende Unterbrechungssignale IRQ1 und IRQ2 zu liefern. Wenn alle Motoren 126, 128 und 130 angehalten sind (oder angehalten werden sollen), beschreibt die CPU 204 die Tore P1, P2 und P3, um Motortreibersignale zu liefern, die mit einem angehaltenen Zustand konsistent sind. Wenn eine Operation von einem oder mehreren Motoren 126, 128 und 130 gewünscht ist, liefert der Prozessor 114 Motortreiberbefehle über den Bus 112 zu der Prozessor­ schnittstelle 202. Die Prozessorschnittstelle 202 liefert diese Befehle über den Bus 206 zu der CPU 204. Um jeden emp­ fangenen Befehl auszuführen, kann die CPU 204 verschiedene Parameterwerte in den Speicher 208 schreiben und verschiede­ ne Unterroutinen von dem Speicher 208 entsprechend den mo­ mentanen Parameterwerten ausführen. Die Unterroutinen können eine sogenannten Hauptroutine und Unterbrechungsdienstrouti­ nen enthalten, die ansprechend auf die Signale IRQ1 und IRQ2, die durch die Zeitgeber 210 und 212 geliefert werden, wirksam sind. Befehle der Hauptroutine oder der Unterbre­ chungsdienstroutine ermöglichen, daß die CPU 204 mit der Mo­ tor-I/O-Schaltung 214 kommuniziert, um Motorsteuersignale an den Toren P1, P2 und P3 zu liefern. Diese Signale werden durch herkömmliche Motortreiberschaltungen 216, 218 und 220 gepuffert und verstärkt, wie oben erläutert wurde, um Motor­ treibersignale MD1, MD2 und MD3 zu liefern.
Gemäß verschiedenen Aspekten der vorliegenden Erfindung ar­ beitet ein Zentralprozessor, der ein Verfahren der Motor­ steuerung ausführt, mit Zeitgebern zusammen, um eine Mehr­ zahl von Ausgangssignalen für eine Motorsteuerung zu lie­ fern. Jedes Ausgangssignal ist zeitlich durch ein Intervall zwischen Ausgangssignalen getrennt. Jedes Intervall ist zwi­ schen zwei Zeitgebungsinformationsmarkierungen identifi­ ziert. Beispielsweise können die Zeitgeber 210 und 212 wirk­ sam sein, um während eines Abschnitts des Variierend-Zu-Kon­ stant-Winkelgeschwindigkeitsübergangs von Fig. 3 Signale IRQ1 und IRQ2 zu liefern. In Fig. 3 wird jede Pegeländerung jedes Zweipegel-Motortreibersignals MD1A und MD1B von einer der zwei Unterbrechungsdienstroutinen, die durch die CPU 204 durchgeführt werden, als eine Abfolge eines Ausgabetor- Schreibbefehls zu dem Tor P1 geliefert. Bei einem Motorsteu­ er-Betriebsmodus für eine variierende Winkelgeschwindigkeit (der hierin als VAV-Modus bezeichnet wird), wird auf eine gewünschte Ausführung der IRQ2-Unterbrechungsdienstroutine hin ein Ausgabetor-Schreibbefehl ausgeführt (beispielsweise zu Zeitpunkten T6 und T8), um eine Aktivierung des Signals IORW mit einer Bitadresse des Tors P1 zu liefern (die als das Signal ADDR mit einem Wert P1A oder P1B identifiziert ist). Bei einem Motorsteuer-Betriebsmodus für eine konstante Winkelgeschwindigkeit (der hierin als CAV-Modus bezeichnet wird), wird auf eine gewünschte Ausführung der IRQ1-Unter­ brechungsdienstroutine hin ein Ausgabetor-Schreibbefehl aus­ geführt (beispielsweise zu Zeitpunkten T12 und T14), um eine Aktivierung des Signals IORW mit einer Bitadresse des Tors P1 (die als das Signal ADDR, das einen Wert P1A oder P1B aufweist, identifiziert ist) zu liefern.
Die Dauer des Zählwerts, der durch den Zeitgeber 212 verwen­ det wird, steuert das Trennungsintervall zwischen den Aus­ gangssignalen für jedes Zweipegel-Signal MD1A und MD1B wäh­ rend des VAV-Modus. In gleicher Weise steuert die Dauer des Zählwerts, der durch den Zeitgeber 210 verwendet wird, das Trennungsintervall zwischen den Ausgangssignalen für jedes Zweipegel-Signal MD1A und MD1B während des CAV-Modus. Bei­ spielsweise kann der Zeitgeber 212 programmiert sein, um das Signal IRQ2 mit einem Intervall (beispielsweise von dem Zeitpunkt T2 bis zu dem Zeitpunkt T4) von etwa 500 Mikrose­ kunden zu erzeugen; ferner kann der Zeitgeber 210 program­ miert sein, um das Signal IRQ1 mit einem längeren Intervall (beispielsweise von dem Zeitpunkt T12 bis zu dem Zeitpunkt T14) von etwa 1890 Mikrosekunden zu erzeugen. Abweichend da­ von ist der Zeitgeber 212 programmiert, um alle sechzehn Taktzyklen der CPU 204 ein Signal IRQ2 zu erzeugen. Wenn ein solcher Taktzyklus einer Frequenz von 16 MHz entspricht, wird das Signal IRQ2 mit einem Intervall von etwa 1 Mikrose­ kunde erzeugt. Bei einer solchen Abweichung kann der Zeitge­ ber 210 programmiert sein, um das Signal IRQ1 mit einem In­ tervall in dem Bereich von 4 Mikrosekunden bis 10 Millise­ kunden zu erzeugen.
Bei einem System der vorliegenden Erfindung können verschie­ dene Motoren in jeglicher Kombination des VAV- und des CAV- Modus gesteuert werden. Obwohl es bevorzugt ist, daß alle Operationen in einem speziellen Modus von einem Zeitgeber durchgeführt werden (beispielsweise dem CAV-Modus, wie er oben erläutert ist), können bei einem abweichenden Ausfüh­ rungsbeispiel mehrere Zeitgeber derart verwendet sein. Zu­ sätzlich kann jeder Zeitgeber, der in jedem Modus verwendet ist, bei jedem gewünschten Zählwert ohne Rücksicht auf den momentanen Zustand eines anderen Zeitgebers gestartet (oder aktiviert, wobei der Unterbrechungsdienst ebenfalls akti­ viert wird), maskiert (wobei der Unterbrechungsdienst deak­ tiviert wird), gestoppt (deaktiviert) und betrieben werden. Wenn ein Zeitgeber maskiert oder gestoppt ist, führt die Zentralverarbeitungseinheit ansprechend auf den Zeitgeber keine Aktion durch, da entweder Unterbrechungsanforderungs­ signale ignoriert werden, wenn derselbe maskiert ist, oder da durch den Zeitgeber keine Unterbrechungsanforderungssi­ gnale geliefert werden, wenn derselbe gestoppt ist. Die Fä­ higkeit, die Motortreibersignalerzeugung von einem von zwei Zeitgebern, die in einer beliebigen Zeitgebungsbeziehung zu­ einander sein können, zu steuern, liefert eine Entwurfsfle­ xibilität und eine Vereinfachung der Steuersoftware. Wenn von einem speziellen Zeitgeber keine Motoren gesteuert wer­ den, kann der Zeitgeber gestoppt werden. Gemäß einem Aspekt der vorliegenden Erfindung werden durch das Stoppen eines Zeitgebers der Zentralverarbeitungseinheit-Gesamtaufwand re­ duziert, was ermöglicht, daß die Zentralverarbeitungseinheit effizienter arbeitet. Gemäß einem weiteren Aspekt der vor­ liegenden Erfindung ist die Möglichkeit einer Motorblockie­ rung, wenn ein Übergang zwischen Modi der Motorsteuerung durchgeführt wird, reduziert.
Die Steuerfunktionen eines Motorantriebssystems der vorlie­ genden Erfindung können in jeglichem Ausmaß oder in jegli­ cher Kombination von nicht-programmierbarem Schaltungsaufbau und programmierbarem Schaltungsaufbau, der mit Software oder Firmware wirksam ist, implementiert sein. Das Zusammenwir­ ken der Steuerfunktionen für die Implementierung von einer oder mehreren Steuerfunktionen mit entweder einem nicht-pro­ grammierbaren oder einem programmierbaren Schaltungsaufbau wird aus dem funktionellen Blockdiagramm des Motorantriebs­ systems 400 von Fig. 4 besser verständlich.
Das Motorantriebssystem 400 umfaßt einen beliebigen nicht­ programmierbaren oder programmierbaren Schaltungsaufbau, der die Funktionen eines ersten Zeitgebungssignalgenerators 410, eines zweiten Zeitgebungssignalgenerators 420 und einer Aus­ wahleinrichtung 430 durchführt. Der Zeitgebungssignalgene­ rator 410 erzeugt ein Signal DS1 und liefert das Signal DS1 zu einer beliebigen Anzahl von Auswahleinrichtungen, bei­ spielsweise einer Auswahleinrichtung 430 und einer Auswahl­ einrichtung 460. Der Zeitgebungssignalgenerator 420 erzeugt ein Signal DS2 und liefert das Signal DS2 zu einer oder meh­ reren Auswahleinrichtungen, beispielsweise der Auswahlein­ richtung 430. Die Auswahleinrichtung 430 liefert ein Motor­ treibersignal DS12 zu einem Motor M1.
Das Motorantriebssignal DS12 wird abhängig von den Signalen DS1 und DS2 geliefert. Das Signal DS1 liefert Markierungen von Zeitgebungsinformationen im Betrieb bei einem Motorsteu­ ermodus für eine konstante Winkelgeschwindigkeit (CAV-Mo­ dus). Beispielsweise kann das Signal DS1 eine Abfolge von Pulsen enthalten, die zeitlich durch ein im wesentlichen konstantes Intervall gleichmäßig getrennt sind. Das Signal DS2 liefert Markierungen von Zeitgebungsinformationen für einen Betrieb bei einem Motorsteuermodus für eine variieren­ de Winkelgeschwindigkeit (VAV-Modus). Beispielsweise kann das Signal DS2 eine Abfolge von Pulsen enthalten, die durch ein konstantes Intervall, das kürzer als das Intervall des Signals DS1 ist, zeitlich gleichmäßig getrennt sind. Bei dem System 400 können logisch Übergänge (die auch als aktive Flanken bezeichnet werden) Markierungen von Zeitgebungsin­ formationen liefern. Abweichend davon können andere Signal­ merkmale für Zeitgebungsinformationen verwendet werden. Bei dem System 400 kann jede Pegeländerung, die der vorderen oder hinteren Flanke eines Pulses des Motortreibersignals DS12 entspricht, durch die Auswahleinrichtung 430 anspre­ chend auf einen logischen Übergang, der der vorderen oder hinteren Flanke eines Pulses entweder des Signals DS1 oder des Signals DS2 entspricht, geliefert werden. Beispielsweise sind in Fig. 3 jeweils aktive Flanken (entweder vordere oder hintere) der Signale IRQ1 und IRQ2 als eine einzelne verti­ kale Linie gezeigt. Ausgewählte aktive Flanken haben Pegel­ änderungen der Motortreibersignale zur Folge, wie durch Li­ nien, die Pfeilköpfe aufweisen, von einer solchen Flanke zu einem resultierenden Übergang angezeigt ist.
Das Motorantriebssystem 400 umfaßt eine Ablaufsteuerfunk­ tion. Die Ablaufsteuerung identifiziert eine Fortschritt von Motorsteuermodi für einen oder mehrere Motoren. Beispiels­ weise kann die Ablaufsteuerung 410 die Auswahleinrichtung 1 (430) anweisen, den Motor M1 zu betreiben, um die Winkelge­ schwindigkeit des Motors M1 zu beschleunigen (oder zu ver­ langsamen), bis eine erste Grenzbedingung erreicht ist, die Winkelgeschwindigkeit auf einer konstanten Geschwindigkeit zu halten, bis eine zweite Grenzbedingung erreicht ist, und entweder diese Motorsteueroperationen für eine beliebige An­ zahl von Malen mit möglicherweise anderen Grenzbedingungen zu wiederholen, oder dieselben nicht zu wiederholen.
Die Auswahleinrichtung 430 führt jeden Übergang zwischen Mo­ torsteuermodi für den Motor M1 durch. Die Auswahleinrichtung 430 stellt sicher, daß jedes Intervall zwischen aufeinander­ folgenden Ausgangssignalen (beispielsweise Pegeländerungen) des Motortreibersignals DS12 größer ist als ein minimales Intervall und kleiner ist als ein maximales Intervall, um die Möglichkeit einer Blockierung des Motors M1 zu reduzie­ ren.
Das Motorantriebssystem 400 enthält ferner einen Zeitge­ bungssignalgenerator 440, einen Referenzzeitgebungssignal­ generator 450 und eine Auswahleinrichtung 460. Der Zeitge­ bungssignalgenerator 440 liefert ein Signal DS3 zu der Aus­ wahleinrichtung 460. Die Auswahleinrichtung 460 liefert an­ sprechend auf die Signale DS1 und DS3 ein Motortreibersignal DS22 zu einem Motor M2. Der Zeitgebungssignalgenerator 440, die Auswahleinrichtung 460, das Treibersignal DS3 und das Motortreibersignal DS22 sind von dem Typ, der oben bezugneh­ mend auf den Zeitgebungssignalgenerator 420, die Auswahl­ einrichtung 430, das Signal DS2 und das Motortreibersignal DS12 beschrieben wurde. Das Motortreibersignal DS22 wird un­ abhängig von solchen Gegenstückkomponenten für eine unab­ hängige Steuerung des Motors M2 geliefert. In Abweichung hiervon können ein zusätzlicher Zeitgebungssignalgenerator und eine Auswahleinrichtung analog zu dem Zeitgebungssi­ gnalgenerator 440 und der Auswahleinrichtung 460 für jede Gruppe von Motoren, die auf eine von anderen Motorgruppen unabhängige Art und Weise gesteuert werden soll, enthalten sein.
Zusätzlich zu der unabhängigen Steuerung kann eine gemein­ same Steuerung mit einer gemeinsamen Verwendung des Signals DS1, das beiden Auswahleinrichtungen 430 und 460 zugeführt wird, erreicht werden. Wenn die Motoren M1 und M2 beide in dem CAV-Modus betrieben werden, kann ein fortgesetzter Be­ trieb von einer gemeinsamen Signalquelle fortfahren. Der Re­ ferenzzeitgebungssignalgenerator 450 ebenso wie die Zeitge­ bungssignalgeneratoren 420 und 440 können gestoppt werden. Wenn einer von Referenzzeitgebungssignalgenerator 450 und Zeitgebungssignalgeneratoren 420 und 440 softwaremäßig im­ plementiert ist, kann ein effizienterer Betrieb des Prozes­ sors, der eine solche Software ausführt, die Folge sein, wenn diese Funktionen gestoppt werden. Durch das software­ mäßige Implementieren von einem oder mehreren Zeitgebungs­ signalgeneratoren und/oder einer oder mehreren Auswahlein­ richtungen können die Herstellungs- und Betriebs-Kosten ab­ nehmen, während die Systemzuverlässigkeit zunehmen kann.
Der Referenzzeitgebungssignalgenerator 450 liefert ein Re­ ferenzsignal RS zu den Zeitgebungssignalgeneratoren 420 und 440. Das Referenzsignal RS umfaßt Markierungen von Zeitge­ bungsinformationen mit einer festen Frequenz zur Verwendung als eine Zeitbasis. Jeder Zeitgebungssignalgenerator 420 und 440 umfaßt einen Teiler 422 und 442 zum Liefern des jewei­ ligen Teilersignals DS2 und DS3 entsprechend einer Frequenz­ teilungsoperation, die bezüglich des Signals RS durchgeführt wird. Durch die Verwendung einer gemeinsamen Referenzzeit­ basis, beispielsweise einer Oszillatorschaltung, können meh­ rere Zeitgebungssignalgeneratoren effizient softwaremäßig implementiert werden.
Jeder Teiler 422 und 442 kann eine Reihe von Frequenztei­ lungsoperationen durchführen. Jede solche Operation kann einen unterschiedlichen Frequenzdivisor zum Liefern eines unterschiedlichen Intervalls zwischen aufeinanderfolgenden Ausgangssignalen der Signale DS2 und DS3 verwenden. Wenn beispielsweise ein ganzzahliger Frequenzdivisor verwendet wird, wird die resultierende Rate des Auftretens von Zeit­ gebungsinformationsmarkierungen ein ganzzahliger Bruchteil der anfänglichen Rate sein. Im Gegensatz dazu wird das re­ sultierende Intervall zwischen Zeitgebungsinformationsmar­ kierungen ein ganzzahliges Vielfaches des anfänglichen In­ tervalls sein.
Der Betrieb des Motorantriebssystems 400 wird aus einer Se­ quenz von Motorsteueroperationen, wie sie dem Motor M1 zuge­ führt werden, besser verständlich. Eine exemplarische Se­ quenz von Operationen in einer Hauptroutine 500 oder Fig. 5 umfaßt drei Schritte.
In einem Schritt 510 wird der Motor M1 gestartet, d. h., die Winkelgeschwindigkeit des Motors M1 wird von Null auf eine erste Zielgeschwindigkeit erhöht und auf der ersten Ge­ schwindigkeit gehalten. Dieses Ergebnis wird durch einen VAV-Betriebsmodus zur Beschleunigung von der anfänglichen Winkelgeschwindigkeit von Null auf eine Zielwinkelgeschwin­ digkeit, einen VAV-Zu-CAV-Modus-Übergang (d. h. einen Vari­ ierend-Zu-Konstant-Übergang), und schließlich einen CAV-Be­ triebsmodus bei der Zielgeschwindigkeit erreicht.
In einem Schritt 520 wird die Winkelgeschwindigkeit des Mo­ tors M1 von einer ersten Geschwindigkeit auf eine zweite Zielgeschwindigkeit geändert. Dieses Ergebnis wird durch ei­ nen CAV-Zu-VAV-Modus-Übergang (d. h. einen Konstant-Zu-Vari­ ierend-Übergang), einen VAV-Betriebsmodus für eine Beschleu­ nigung (oder Verlangsamung), einen VAV-Zu-CAV-Übergang und schließlich einen CAV-Betriebsmodus bei der zweiten Zielge­ schwindigkeit erreicht.
In einem Schritt 530 wird der Motor M1 gestoppt. Dieses Er­ gebnis wird durch einen CAV-Zu-VAV-Modus-Übergang und einen VAV-Betriebsmodus mit einer Zielgeschwindigkeit von Null er­ reicht. Nach Abschluß des Schritts 530 ist die Hauptroutine abgeschlossen.
Die Operationen, die durch die Schritte 510 bis 530 durch­ geführt werden, stellen auf eine herkömmliche Art und Weise anfängliche Werte ein, um Unterbrechungsdienstroutinen, die nachfolgend erläutert werden, zu ermöglichen. Beispielsweise wird der Zeitgeber 210, der das Signal IRQ1 liefert, (wenn derselbe nicht in Verwendung ist) für eine Rate eingestellt, die einen nachfolgenden Betrieb in einem CAV-Modus bei der gewünschten Zielgeschwindigkeit erleichtert. Der Zeitgeber 212, der das Signal IRQ2 liefert, kann (wenn derselbe nicht in Verwendung ist) auf eine Rate eingestellt werden, die ei­ ne gewünschte Geschwindigkeitserhöhung erleichtert. Eine zu große Erhöhung kann eine Motorblockierung basierend auf sich ändernden Lastbedingungen riskieren; wohingegen eine zu kleine Erhöhung übermäßige CPU-Zyklen verbrauchen kann. An­ dere anfängliche Bedingungen werden nachfolgend bezugnehmend auf die Fig. 6 bis 8 offensichtlich.
Beim Durchführen dieser Sequenz von Motorsteuer-Modi und -Übergängen, liefert die Auswahleinrichtung 430 ein Motor­ treibersignal DS12 in einem VAV-Modus, in einem CAV-Modus und führt Modi-Übergänge durch. Bei einem VAV-Modus wird das Motortreibersignal DS12 ansprechend auf Zeitgebungsinforma­ tionsmarkierungen, die durch das Signal DS2 übertragen wer­ den, geliefert. Bei einem CAV-Modus wird das Motortreibersi­ gnal CS12 ansprechend auf Zeitgebungsinformationsmarkierun­ gen, die durch das Signal DS1 übertragen werden, geliefert. Um einen Übergang durchzuführen, berechnet die Auswahlein­ richtung 430 ein projiziertes Intervall zwischen einem zu­ letzt gelieferten Ausgangssignal DS12 und einer nächsten Un­ terbrechungsanforderung (IRQ1 für VAV-Zu-CAV; und IRQ2 für CAV-Zu-VAV), vergleicht das projizierte Intervall mit Grenz­ bedingungen (beispielsweise Werten, die vor der nächsten Un­ terbrechungsanforderung auftreten) und leitet das Liefern des nächsten Ausgangssignals DS12 basierend auf dem Ver­ gleich durch das Auswählen von Zeitgebungsmarkierungen aus dem Signal, das momentan nicht in Verwendung ist (DS1 oder DS2) zu einem Zeitpunkt, der die Wahrscheinlichkeit einer Motorblockierung reduziert. Wenn der Vergleich den Übergang nicht ermöglicht, kann die nächste Unterbrechungsanforderung ignoriert werden, wobei eine folgende Unterbrechungsanforde­ rung des gleichen Typs diesen Übergang durchführen kann.
Bei einer Implementierung eines Motorantriebssystems als Drucker 100 führt die Motorsteuerung 118 einen VAV-Zu-CAV- Übergang gemäß Fig. 3 durch. Vor dem Zeitpunkt T8 liefert die Auswahleinrichtung 430 das Motortreibersignal DS12 (d. h. die Signale MD1A und MD1B) ansprechend auf aktive Flanken des Signals IRQ2. Nach dem Zeitpunkt T12 liefert die Aus­ wahleinrichtung 430 das Motortreibersignal DS12 ansprechend auf aktive Flanken des Signals IRQ1. Zu dem Zeitpunkt T8 ist das Intervall (oder die Zeitperiode) zwischen dem zuletzt gelieferten Ausgangssignal bei T8 (einer Pegeländerung des Signals MD1B) und der nächsten Zeitgebungsinformationsmar­ kierung des Signals DS1 (einer aktiven Flanke von IRQ1 bei T10) zu kurz. Wenn die Zeitgebungsinformationsmarkierung des Signals DS1 zum Zeitpunkt T10 ausgewählt werden würde, um ein Ausgangssignal zum Zeitpunkt T10 zu liefern (wie durch eine gestrichelte Linie auf dem Signal MD1A gezeigt ist), kann eine Motorblockierung die Folge sein. Das Intervall von dem Zeitpunkt T8 zu dem Zeitpunkt T12 (das nachfolgend mit TC bezeichnet wird) ist, wie bei dem Beispiel von Fig. 3 ge­ zeigt ist, nicht länger als eine maximale Zeit TH, die als das Intervall von dem Zeitpunkt T6 zu dem Zeitpunkt T8 zwi­ schen aufeinanderfolgenden Ausgangssignalen bei dem VAV-Mo­ dus gezeigt ist, und nicht kürzer als eine minimale Zeit TL, die als das Intervall von dem Zeitpunkt T14 zu dem Zeitpunkt T16 (äquivalent von T10 zu T12) gezeigt ist. Die Auswahlein­ richtung 430 verzögert den VAV-Zu-CAV-Modus-Übergang bis zu dem Zeitpunkt T12 (unter Ignorierung von IRQ1 zum Zeitpunkt T10), da das Intervall von dem Zeitpunkt T8 zu dem Zeitpunkt T10 nicht in einem vorbestimmten Bereich lag. Das Intervall von dem Zeitpunkt T8 zu dem Zeitpunkt T12 lag in dem vorbe­ stimmten Bereich.
Die Motorsteuerung 118 führt ferner einen CAV-Zu-VAV-Über­ gang wie in Fig. 9 durch. Der VAV-Modus muß bei einer Win­ kelgeschwindigkeit beginnen, die etwas geringer ist als die Winkelgeschwindigkeit des CAV-Modus. Wenn der VAV-Modus be­ ginnt, wird das Intervall von einem Zeitpunkt T21 zu einem Zeitpunkt T22 mit einer ganzen Zahl 3 multipliziert, um das Intervall von einem Zeitpunkt T30 zu einem Zeitpunkt T36 für die erste Geschwindigkeitserhöhung zu bilden. Vor einem Zeitpunkt T26 liefert die Auswahleinrichtung 430 das Motor­ treibersignal DS12 (d. h. die Signale MD1A und MD1B) anspre­ chend auf aktive Flanken des Signals IRQ1. Nach dem Zeit­ punkt T30 liefert die Auswahleinrichtung 430 ein Motortrei­ bersignal DS12 ansprechend auf aktive Flanken des Signals IRQ2. Zu dem Zeitpunkt T22 wird ein projiziertes Intervall als die Summe von zwei Intervallen TC und TD berechnet. Das Intervall TC erstreckt sich von dem letzten gelieferten Aus­ gangssignal zum Zeitpunkt T22 (eine Pegeländerung des Si­ gnals MD1B) zu der projizierten nächsten Zeitgebungsinforma­ tionsmarkierung des Signals DS2 (einer aktiven Flanke von IRQ2 zum Zeitpunkt T24). Das Intervall TD wird aus dem In­ tervall von dem Zeitpunkt T21 zu dem Zeitpunkt T22 multipli­ ziert mit einem Wert, der das Ergebnis der Subtraktion der ganzen Zahl, die bei der ersten Geschwindigkeitserhöhung zu verwenden ist, minus Eins ist, berechnet. Wenn der Modus- Übergang zum VAV-Modus zum Zeitpunkt T24 durchgeführt werden würde, würde ein Ausgangssignal bei T25 (wie durch eine ge­ strichelte Linie auf dem Signal MD1A gezeigt ist) in einem zu geringen Intervall von dem Zeitpunkt T22 zu dem Zeitpunkt T25 geliefert werden, wobei eine Motorblockierung die Folge sein könnte. Das Intervall von dem Zeitpunkt T26 zu dem Zeitpunkt T30 ist andererseits nicht länger als eine maxima­ le Zeit TH, die als das Intervall von dem Zeitpunkt T30 zu dem Zeitpunkt T36 zwischen aufeinanderfolgenden Ausgangssi­ gnalen bei dem VAV-Modus gezeigt ist, und nicht kürzer als eine minimale Zeit TL, die als das Intervall von dem Zeit­ punkt T22 zu dem Zeitpunkt T26 gezeigt ist. Die Auswahlein­ richtung 430 verzögert den CAV-Zu-VAV-Modus-Übergang bis zu dem Zeitpunkt T28 (unter Ignorierung von IRQ2 bei T24), da das Intervall von dem Zeitpunkt T22 zu dem Zeitpunkt T25 nicht innerhalb eines vorbestimmten Bereichs lag. Das Inter­ vall von dem Zeitpunkt T22 zu dem Zeitpunkt T26 lag inner­ halb des vorbestimmten Bereichs.
Um innerhalb des vorbestimmten Bereichs zu liegen, ist eine gegebene Periode nicht kleiner als eine untere Grenze TL und nicht größer als eine obere Grenze TH. Der Wert der unteren Grenze (T14 bis T16 in Fig. 3; oder T30 bis T36 in Fig. 9) hängt von der Maximalwinkelgeschwindigkeitsfähigkeit und der Trägheit des Motors ab. Beispielsweise kann eine Untergrenze von 0,83 Millisekunden für einen Motor mit einer Maximalwin­ kelgeschwindigkeit von 1200 Schritten pro Sekunde und einer typischen Trägheit verwendet werden. Der Bequemlichkeit hal­ ber kann die untere Grenze während des CAV-Modus durch die Unterbrechungsanforderungsrate (d. h. IRQ1) angenähert wer­ den. Der Wert der oberen Grenze kann das gegenwärtig auftre­ tende Intervall zwischen aufeinanderfolgenden Ausgangssigna­ len bei dem VAV-Modus sein, beispielsweise die Zeitperiode von dem Zeitpunkt T6 bis zu dem Zeitpunkt T8, oder analog von dem Zeitpunkt T24 zu dem Zeitpunkt T26.
Bei einer Implementierung des Motorantriebssystems 400, bei der die Funktionen der Zeitgebungssignalgeneratoren und Aus­ wahleinrichtungen in Software implementiert sind, kann eine solche Software als eine Hauptroutine organisiert sein, die durch eine oder mehrere Unterbrechungsdienstroutinen unter­ brochen wird. Die Unterbrechungsdienstroutinen können auf Zeitgebungsereignisse ansprechen, die den physikalischen Zeitdurchgang identifizieren, so daß Pulsdauern und Inter­ valle zwischen Pulsen mit einer geeigneten Genauigkeit be­ züglich der Echtzeit erzeugt werden können. Die Unterbre­ chungsdienstroutinen können ferner die Funktion einer Ab­ laufsteuerung (beispielsweise von einer Tabelle von vordefi­ nierten Motorantriebsbefehlen) durchführen, wobei die Funk­ tion einer Ablaufsteuerung alternativ durch die Hauptroutine geliefert wird. Bei einem abweichenden Ausführungsbeispiel, bei dem die Hauptroutine keine weitere Funktion besitzt, als die Sequenz von Motorsteueroperationen zu leiten (wie oben in Fig. 5 erläutert ist), kann die Hauptroutine Null-Opera­ tionen enthalten, die nichts durchführen, während auf das Auftreten einer weiteren Unterbrechung gewartet wird.
Wie oben erläutert wurde, kann das Motorantriebssystem 400 durch Verfahren implementiert sein, die durch einen Zentral­ prozessor durchgeführt werden. Beispielsweise kann die CPU 204 in einem Drucker 100 Verfahren des Typs durchführen, die nachfolgend bezugnehmend auf die Fig. 6 bis 8 beschrieben werden. Ferner kann jedes System, das irgendeinen Zentral­ prozessor für eine Motorsteuerung aufweist (beispielsweise ein Stiftpositionierungs-Teilsystem eines Plotters oder ir­ gendein mechanisches System mit Schrittgebermotoren) solche Verfahren insgesamt oder in einem überwiegenden Teil durch­ führen.
Ein Verfahren der vorliegenden Erfindung umfaßt jegliche Se­ quenz von Schritten, die die Funktionen einer Auswahlein­ richtung, wie sie oben beschrieben ist, bezugnehmend auf ein Motorsteuersystem, beispielsweise das Motorsteuersystem 400, durchführen. Beispielsweise führt bei einem Drucker 100 die CPU 204 eine Unterbrechungsdienstroutine 600 von Fig. 6 an­ sprechend auf ein Signal IRQ1 durch, während dieselbe eine Unterbrechungsdienstroutine 700 der Fig. 7 und 8 ansprechend auf ein Signal IRQ2 durchführt.
Ein VAV-Zu-CAV-Übergang gemäß verschiedenen Aspekten der vorliegenden Erfindung ist durch das Verfahren 600 implemen­ tiert. Wenn die CPU 204 auf eine aktive Flanke des Signals IRQ1 anspricht, springt die Programmsteuerung zu einem Schritt 630. Im Schritt 630 wird die Variable MODE getestet, um zu bestimmen, ob ein CAV-Modus fortgesetzt werden soll, oder ob ein Übergang durchgeführt werden soll. Wenn ein VAV-Zu-CAV-Übergang durchgeführt werden soll, springt die Programmsteuerung zu einem Schritt 632. Wenn ein CAV-Zu- VAV-Übergang durchgeführt werden soll, springt die Programm­ steuerung zu einem Schritt 660. Andernfalls ist die Motor­ steuerung im CAV-Modus fortzusetzen, wobei die Programm­ steuerung zu einem Schritt 650 springt.
Im Schritt 650 wird der CAV-Modus fortgesetzt, indem ein Ausgangssignal aktiviert wird, beispielsweise eine geeignete Pegeländerung bezüglich entweder des Signals MD1A oder des Signals MD1B. Die Programmsteuerung springt dann in einem Schritt 695 zu der Hauptroutine zurück.
In einem Schritt 632 wird eine Frequenzdivisorvariable FD dekrementiert. Die Variable FD wird durch die Unterbre­ chungsdienstroutine 700 auf einen Wert größer als die untere Grenze des Bereichs, der oben bezugnehmend auf die Zeit T10 erläutert ist, eingestellt.
In einem Schritt 634 wird bestimmt, ob die Variable FD auf Null dekrementiert wurde. Während eines VAV-Zu-CAV-Übergangs kann die Unterbrechungsdienstroutine 600 kein Ausgangssignal liefern. Beispielsweise hat das Signal IRQ1 zum Zeitpunkt T10 keinen Einfluß. Wenn die Variable FD nicht Null ist, springt die Programmsteuerung in dem Schritt 695 zu der Hauptroutine zurück. Andernfalls ist die Variable FD Null, wobei das Liefern eines Ausgangssignals mit großer Wahr­ scheinlichkeit keine Blockierung des Motors M1 zur Folge hat. Die Programmsteuerung springt zu einem Schritt 636.
In dem Schritt 636 wird eine Variable MODE eingestellt, um anzuzeigen, daß der VAV-Zu-CAV-Übergang abgeschlossen wurde. Durch das Einstellen der Variable MODE auf eine Konstante, die den CAV-Modus der Motorsteuerung anzeigt, wird der CAV- Modus fortgesetzt, wie oben bezugnehmend auf den Schritt 650 beschrieben ist.
In einem Schritt 660 werden ein erster Abschnitt eines pro­ jizierten Intervalls zwischen aufeinanderfolgenden Ausgangs­ signalen (TC), eine untere Grenze (TL) und eine obere Grenze (TH) bestimmt, wie oben erläutert ist. Beispielsweise kann in einem CAV-Modus TC aus der Zeit zwischen dem letzten Auf­ treten von IRQ1 und dem nächsten Auftreten von IRQ2 berech­ net werden. Das nächste Auftreten von IRQ2 kann durch die CPU 204 bestimmt werden, indem der verbleibende Zählwert in dem Zeitgeber 212 gelesen wird, wie oben erläutert wurde.
In einem Schritt 662 kann der zweite Abschnitt des proji­ zierten Intervalls zwischen aufeinanderfolgenden Ausgangssi­ gnalen (TD) wie oben erläutert berechnet werden. Beispiels­ weise kann die Periode des Zeitgebers 212 mit dem Wert, der sich durch Subtrahieren von Eins von dem ersten ganzzahligen Frequenzdivisor ergibt, multipliziert werden. Die Periode des Zeitgebers 212, beispielsweise das Intervall T20 bis T21 von Fig. 9, kann von dem Zeitgeber 212 oder von der Konstan­ ten in dem Speicher 208, der zuletzt verwendet wurde, um den Zeitgeber 212 zu initialisieren, gelesen werden. Der erste ganzzahlige Frequenzdivisor kann durch eine algebraische Be­ rechnung oder durch einen Index auf ein Array von Divisoren, wie nachfolgend erläutert wird, identifiziert werden.
In einem Schritt 664 wird die Summe TC plus TD getestet, um zu bestimmen, ob das projizierte Intervall in dem vorbe­ stimmten Bereich von dem Intervall TL zu dem Intervall TH liegt. Wenn dies nicht der Fall ist, springt die Programm­ steuerung zu dem Schritt 650 und die Motorsteuerung wird in dem CAV-Modus fortgesetzt. Wenn dies der Fall ist, springt die Programmsteuerung zu einem Schritt 666.
Im Schritt 666 werden Anfangszustände zum Betreten des VAV- Modus eingestellt. Die Indexvariable K wird auf den ersten Eintrag der Tabelle, beispielsweise Null, eingestellt. Die Frequenzdivisorvariable FD wird auf den ersten Eintrag der Tabelle minus Eins eingestellt, wie oben erläutert wurde. Eine Variable wird eingestellt, um zwischen einer Verringe­ rung auf eine Zielwinkelgeschwindigkeit und einem Wiederbe­ treten des CAV-Modus von einem Abbremsen auf eine Null-Win­ kelgeschwindigkeit zu unterscheiden. Ferner wird die Variab­ le MODE auf VAV eingestellt, um den Abschluß des CAV-Modus der Motorsteuerung anzuzeigen. Die Programmsteuerung springt dann über den Schritt 695 zu der Hauptroutine zurück.
Wenn die CPU 204 auf eine aktive Flanke des Signals IRQ2 an­ spricht, springt die Programmsteuerung zu einem Schritt 720 von Fig. 7. Im Schritt 720 wird die Variable MODE überprüft, um zu bestimmen, ob die Steuerung in einem VAV-Modus fortge­ setzt werden soll. Wenn dies der Fall ist, springt die Pro­ grammsteuerung zu einem Schritt 740. Wenn dies nicht der Fall ist, springt die Programmsteuerung über eine Rückkehr von einer Unterbrechung im Schritt 795 zu der Hauptroutine zurück.
In dem Schritt 740 wird die Frequenzdivisorvariable FD de­ krementiert.
In einem Schritt 745 wird bestimmt, ob die Variable FD Null ist. Wenn dies nicht der Fall ist, wird keine weitere Aktion unternommen und die Programmsteuerung springt über den Schritt 795 zu der Hauptroutine zurück. Die Durchführung des Schritts 745 bei aufeinanderfolgenden Durchläufen des Ver­ fahrens 700 ergibt eine Funktion des Teilers 422, die bezug­ nehmend auf Fig. 4 erläutert wurde.
Schritte 755 bis 770 liefern Ausgangssignale, die eine vari­ ierende Winkelgeschwindigkeit zur Folge haben. Eine Reihe von Intervallen zwischen aufeinanderfolgenden Ausgangssigna­ len kann durch einen Intervallspezifizierungsalgorithmus be­ schrieben werden (beispielsweise eine algebraische Berech­ nung). Bei einem bevorzugten abweichenden Ausführungsbei­ spiel ist eine solche Reihe durch eine Tabelle, die in dem Speicher gespeichert und als ein eindimensionales Array or­ ganisiert ist, das durch eine Variable indiziert ist, vorge­ schrieben. Bei einem alternativen und äquivalenten abwei­ chenden Ausführungsbeispiel wird als eine verknüpfte Liste auf das Array zugegriffen. Wenn ein Array verwendet ist, um mehrere Gruppen von Motoren unabhängig zu steuern, kann eine Indexvariable für jede Gruppe verwendet werden. Jedes Inter­ vall wird als eine Anzahl von Zeitdauern zwischen dem auf­ einanderfolgenden Auftreten des Signals IRQ2, die auf Null herunterzuzählen ist, aus der Tabelle bestimmt. Jedes Inter­ vall wird über den Index aus der Tabelle gelesen und einer Frequenzdivisorvariable FD zugeordnet.
Eine Tabelle kann eine beliebige Anzahl von Werten enthal­ ten, die geeignet sind, um die Winkelgeschwindigkeit eines speziellen Schrittgebermotors, der mit einer speziellen Last gekoppelt ist, zu erhöhen. Der Speicher 208 kann eine belie­ bige Anzahl von Tabellen für unterschiedliche Schrittgeber­ motoren oder für unterschiedliche Rampengebungsoperationen enthalten (beispielsweise unterschiedliche Startgeschwindig­ keiten, unterschiedliche Endgeschwindigkeiten oder unter­ schiedliche Geschwindigkeitsänderungsraten). Beispielsweise kann eine erste Rampenfrequenz verwendet werden, um einen Motor aus einem anfänglich gestoppten Zustand auf eine mitt­ lere Geschwindigkeit zu bringen. Eine zweite Rampentabelle kann verwendet werden, um den gleichen Motor von der mittle­ ren Geschwindigkeit auf eine maximale Geschwindigkeit zu bringen. Beispielsweise beschreibt Tabelle I den Inhalt ei­ ner Rampentabelle RAMP, die durch die Variable K indiziert ist, zum Starten eines leicht belasteten herkömmlichen Schrittgebermotors. Der achtunddreißigste Wert in der Tabel­ le I ist Null, um das Ende der Reihe von Intervallen, die für diese spezielle variierende Winkelgeschwindigkeit vorge­ schrieben sind, anzuzeigen. Obwohl die Divisorwerte in der Tabelle progressiv abnehmen, kann bei einem abweichenden Ausführungsbeispiel jede Kombination von zunehmenden und ab­ nehmenden Werten verwendet werden.
Tabelle I
In einem Schritt 755 wird die Indexvariable K initialisiert oder inkrementiert, woraufhin in einem Schritt 760 ein Ram­ penwert von dem Array RAMP bei dem Element K gelesen und der Variable FD zugeordnet wird.
In einem Schritt 765 wird bestimmt, ob die Variable FD, wie sie von dem Array gelesen wurde, Null ist, was den Abschluß einer Rampenreihe von Intervalldauern anzeigt. Wenn dies nicht der Fall ist, springt die Programmsteuerung in dem Schritt 795 zu der Hauptroutine zurück. Wenn dies der Fall ist, springt die Programmsteuerung zu dem Schritt 775.
In dem Schritt 775 wird bestimmt, ob ein VAV-Zu-CAV-Übergang durchgeführt werden soll. Wenn dies nicht der Fall ist, wird aufgrund des Einstellens der Variable MODE in einem Schritt 798 auf OFF jedes weitere Liefern von Ausgangssignalen en­ den, wobei die Programmsteuerung über den Schritt 795 zu der Hauptroutine zurückspringt. Wenn dies der Fall ist, springt die Programmsteuerung zu der Unterroutine 780. Bei einem ab­ weichenden Ausführungsbeispiel kann die Unterroutine 780 als unmittelbare Befehle (in-line instructions) implementiert sein, und ist hierin aufgrund der Einfachheit des Vorberei­ tens der Flußdiagramme der Fig. 7 und 8 als eine Unterrouti­ ne gezeigt.
Schritte 782 bis 790 erleichtern den Abschluß eines VAV-Zu- CAV-Übergangs durch die Unterbrechungsdienstroutine 600, die oben erläutert wurde. In dem Schritt 782 von Fig. 8 werden die Variablen TC, TL und TH bestimmt. Beispielsweise wird die Variable TC auf eine ganze Zahl eingestellt, die einem Zeitbetrag entspricht, der erwartungsgemäß zwischen dem letzten Auftreten eines Ausgangssignals und dem nächsten Auftreten einer Unterbrechungsanforderung (beispielsweise einer aktiven Flanke des Signals IRQ1) vergeht. Der Zeitbe­ trag kann als eine Tick-Anzahl des Zeitgebers 210 ausge­ drückt werden. Die CPU 204 kann den Wert für TC durch das Lesen des momentanen Werts des Zeitgebers 210 und das Ver­ gleichen desselben mit dem Zählwert (wenn derselbe nicht Null ist), bei dem die nächste aktive Flanke des Signals IRQ1 durch den Zeitgeber 210 geliefert wird, bestimmen. Die Variable TL wird auf die untere Grenze des vorbestimmten Bereichs eingestellt, wie oben erläutert wurde, ausgedrückt durch das Ticken des Zeitgebers 210. Die Variable TH wird auf die momentane Tick-Anzahl des Zeitgebers 212 zwischen aufeinanderfolgenden aktiven Flanken des Signals IRQ2 multi­ pliziert mit dem zweitletzten Wert der Variable FD, der aus der Rampentabelle gelesen wird, eingestellt. Die Variable TH entspricht der oberen Grenze des vorbestimmten Bereichs, der oben erläutert ist. Ein Skalierungsfaktor kann verwendet werden, wenn das Ticken des Zeitgebers 212 von einer unter­ schiedlichen Dauer wie das Ticken des Zeitgebers 210 ist.
In einem Schritt 784 wird bestimmt, ob ein projiziertes In­ tervall zwischen aufeinanderfolgenden Ausgangssignalen nicht kleiner sein wird als TL und nicht größer als TH. Wenn diese Bedingung erfüllt ist, ist die Möglichkeit einer Motor­ blockierung reduziert. Beispielsweise ist die Bedingung bei einer Implementierung, bei der ein CAV-Modus mit einer Win­ kelgeschwindigkeit gesteuert wird, die (zu dem Zeitpunkt ei­ nes VAV-Zu-CAV-Übergangs) immer größer ist als die Winkelge­ schwindigkeit des letzten Inkrements des VAV-Modes, erfüllt, wenn eine zweite, einfachere Bedingung erfüllt ist. Wenn da­ her im Schritt 784 bestimmt wird, daß TC kleiner als der Un­ terschied zwischen TH und TL ist, springt die Steuerung zu einem Schritt 786, wobei der Übergang in dem CAV-Modus durch das Verfahren 600 abgeschlossen werden kann. Wenn dies nicht der Fall ist, springt die Steuerung zu einem Schritt 788 und die Motorsteuerung bleibt in den VAV-Modus. Das heißt, daß das nächste Auftreten von IRQ1 ignoriert wird.
Im Schritt 786 wird die Variable FD auf Zwei eingestellt, während die Variable MODE auf einen konstanten Wert, der VAV-Zu-CAV anzeigt, eingestellt wird. Dieser Wert bewirkt, daß die Programmsteuerung von dem Schritt 630 zu dem Schritt 632 springt, wie oben erläutert wurde. Die Programmsteuerung springt dann über die Schritte 792 bis 795 zu der Hauptrou­ tine zurück.
In einem Schritt 788 wird die Indexvariable K dekrementiert, so daß das vorherige Geschwindigkeitsinkrement wiederholt wird.
In einem Schritt 790 wird ein Rampenwert aus dem Array RAMP bei dem Element K gelesen und der Variable FD zugewiesen.
In einem Schritt 792 wird ein Ausgangssignal aktiviert, wie oben bezüglich des Schritts 650 erläutert wurde. Die Pro­ grammsteuerung springt dann über die Schritte 794 und 795 zu der Hauptroutine zurück.
Bei einem abweichenden Ausführungsbeispiel werden die Ram­ penerhöhungs-Tabellenwerte in einer umgekehrten Reihenfolge für Rampen-Verringerungs-Operationen verwendet.
Bei den oben erläuterten Verfahren wird vor dem Aktivieren eines nächsten Ausgangssignals ein Vergleich durchgeführt, wobei das Liefern des nächsten Ausgangssignals ansprechend auf ein Ergebnis des Vergleichs gesteuert wird. Zum Bei­ spiel: (a) bei einem CAV-Zu-VAV-Übergang leitet im Schritt 664 ein Vergleichsergebnis das Liefern eines nächsten Aus­ gangssignals im Schritt 770; und (b) bei einem VAV-Zu-CAV- Übergang leitet im Schritt 784 ein Vergleichsergebnis das Liefern eines nächsten Ausgangssignals im Schritt 650. Bei jedem Beispiel stellt der Vergleich sicher, daß das Inter­ vall zwischen aufeinanderfolgenden Ausgangssignalen inner­ halb des vorbestimmten Bereichs von TL und TH ist, so daß die Möglichkeit einer Motorblockierung reduziert ist.
Bei einem weiteren abweichenden Ausführungsbeispiel umfaßt die Motorsteuerung 118 die Fähigkeit, ein diagnostisches Te­ sten zu unterstützen. Wenn für einen speziellen Motor der Inhalt einer Rampenerhöhungs- oder Rampenverringerungs-Ta­ belle oder der Betrieb eines Intervallspezifizierungsalgo­ rithmusses das Risiko einer Motorblockierung nicht auf einen erwünschten geringen Pegel reduziert, kann ein diagnosti­ sches Testen das Überarbeiten von Werten für eine solche Ta­ belle oder von Befehlen eines solchen Algorithmusses unter­ stützen. Diese Fähigkeiten umfassen ein oder mehrere diagno­ stische Verfahren, die in dem Speicher 208 gespeichert sind, einen herkömmlichen Wellencodierer, der in geeigneter Weise angeordnet ist, um die Winkelposition des Rotors des spe­ ziellen Motors zu überwachen, und ein Wellencodierersignal SE von dem Wellencodierer zu der Motor-I/O-Schaltung 214 auf der Leitung 221.
Ein diagnostisches Verfahren kann die Schritte des Empfan­ gens des Signals SE und des Vergleichens der erwarteten Po­ sition der Motorwelle (oder des Rotors) mit der Position, die durch das Signal SE angezeigt wird, aufweisen. Bei einem abweichenden Ausführungsbeispiel analysiert ein solches Ver­ fahren das Signal SE unter einer Vielzahl von vorbestimmten Zuständen und berechnet geeignete Werte für Rampenerhöhungs- und Rampenverringerungs-Tabellen, so daß die Möglichkeit ei­ ner Motorblockierung weiter reduziert ist.
Wie oben erläutert wurde, können Systeme der vorliegenden Erfindung, die einen Prozessor, der die Funktionen eines Mo­ torantriebssystems durchführt, aufweisen, erweitert werden, um eine beliebige Anzahl von Motoren zu steuern. Während die Anzahl von Motoren, die in unabhängigen VAV-Modi zu steuern sind, zunimmt, wird der Prozessordurchsatz abnehmen. Da Sy­ steme und Verfahren der vorliegenden Erfindung ermöglichen, daß Unterbrechungssignalquellen (beispielsweise der Zeitge­ ber 212 oder die Zeitgebungssignalgeneratoren 420 und/oder 440) gestoppt werden, wenn dieselben für die Motorsteuerung nicht benötigt werden, kann die Prozessordurchsatzkapazität erhöht sein und kann dann ausreichen, um eine größere Anzahl von Motoren als es mit herkömmlichen Systemen und Verfahren möglich ist, zu steuern.

Claims (18)

1. Vorrichtung (400) zum Erzeugen einer Mehrzahl von Aus­ gangssignalen (DS12) für eine Schrittgebermotorsteue­ rung, wobei die Vorrichtung folgende Merkmale aufweist:
  • a) einen ersten Zeitgebungssignalgenerator (410) zum Erzeugen eines ersten Zeitgebungssignals (DS1, IRQ1), das ein erstes Intervall (T10-T12) zwischen aufeinanderfolgenden Zeitgebungsinformationsmarkie­ rungen aufweist;
  • b) einen zweiten Zeitgebungssignalgenerator (420) zum Erzeugen eines zweiten Zeitgebungssignals (DS2, IRQ2); und
  • c) eine erste Auswahleinrichtung (430), die auf das erste Zeitgebungssignal (DS1, IRQ1) und das zweite Zeitgebungssignal (DS2, IRQ2) anspricht, um die Mehrzahl von Ausgangssignalen (DS12) zu liefern, wobei:
    • a) die erste Auswahleinrichtung (430) aufeinan­ derfolgend ein erstes (T8) und ein zweites (T12) Ausgangssignal der Mehrzahl liefert, wobei das erste und das zweite Ausgangssignal durch ein zweites Intervall (T8-T12) getrennt sind;
    • b) das erste Ausgangssignal ansprechend auf das zweite Zeitgebungssignal (DS2, IRQ2) gelie­ fert wird;
    • c) das zweite Ausgangssignal ansprechend auf das erste Zeitgebungssignal (DS1, IRQ1) geliefert wird; und
    • d) das zweite Intervall größer ist als das erste Intervall.
2. Vorrichtung nach Anspruch 1, bei der die erste Auswahl­ einrichtung (430) folgende Merkmale aufweist:
  • a) einen Speicher (208) zum Speichern von Markierungen eines Verfahrens für eine Motorsteuerung;
  • b) eine Zentralverarbeitungseinheit (204) zum Ausfüh­ ren des Verfahrens; und
  • c) eine Ausgabeschaltung (214) zum Liefern des zweiten Ausgangssignals entsprechend dem Verfahren.
3. Vorrichtung nach Anspruch 2, bei der:
  • a) der erste Zeitgebungssignalgenerator (410) eine er­ ste Zählerschaltung (210), die mit der Zentralver­ arbeitungseinheit (204) gekoppelt ist, zum Liefern des ersten Zeitgebungssignals (IRQ1) zu der Zen­ tralverarbeitungseinheit (204) aufweist;
  • b) eine jeweilige Unterbrechungsanforderung für die Zentralverarbeitungseinheit (204) für jede Zeitge­ bungsinformationsmarkierung, die das erste Inter­ vall des ersten Zeitgebungssignals identifiziert, durchgeführt wird; und
  • c) die Zentralverarbeitungseinheit (204) bei einer Un­ terbrechung die Ausgabeschaltung (214) zum Erzeugen des zweiten Ausgangssignals (T12) betreibt.
4. Vorrichtung nach einem der Ansprüche 1 bis 3, bei der:
  • a) das System ferner einen Referenzzeitgebungssignal­ generator (450) zum Erzeugen eines Referenzzeitge­ bungssignals (RS), das ein Referenzintervall (T2-T3) zwischen aufeinanderfolgenden Zeitgebungs­ informationsmarkierungen aufweist, aufweist;
  • b) der zweite Zeitgebungssignalgenerator (420) einen ersten Frequenzteiler (422) aufweist, der auf das Referenzzeitgebungssignal (RS) anspricht, um das zweite Zeitgebungssignal (DS2) zu erzeugen; und
  • c) das zweite Zeitgebungssignal (DS2) ein drittes In­ tervall (T6-T8) zwischen Zeitgebungsinformations­ markierungen aufweist, wobei das dritte Intervall ein ganzzahliges Vielfaches des Referenzintervalls ist.
5. Vorrichtung nach Anspruch 4, bei der:
  • a) der Referenzzeitgebungssignalgenerator (450) eine zweite Zählerschaltung, die mit der Zentralverar­ beitungseinheit (204) gekoppelt ist, zum Liefern des Referenzzeitgebungssignals zu der Zentralverar­ beitungseinheit (204) aufweist;
  • b) eine jeweilige Unterbrechungsanforderung für die Zentralverarbeitungseinheit (204) ansprechend auf jede Zeitgebungsinformationsmarkierung, die das Re­ ferenzintervall des Referenzzeitgebungssignals (RS) identifiziert, durchgeführt wird; und
  • c) bei einer Unterbrechung die Zentralverarbeitungs­ einheit (204) die Ausgabeschaltung (214) betreibt, um das erste Ausgangssignal zu erzeugen.
6. Vorrichtung nach Anspruch 5, bei der, während eine Vielzahl von Ausgangssignalen jeweils ansprechend auf das erste Zeitgebungssignal (DS1) geliefert werden, die Zentralverarbeitungseinheit (204) ansprechend auf die zweite Zählerschaltung keine Aktion unternimmt.
7. Vorrichtung nach einem der Ansprüche 4 bis 6, die fer­ ner folgende Merkmale aufweist:
  • a) einen dritten Zeitgebungssignalgenerator (440) zum Erzeugen eines dritten Zeitgebungssignals (DS3), wobei:
    • a) der dritte Zeitgebungssignalgenerator einen zweiten Frequenzteiler (442) aufweist, der auf das Referenzzeitgebungssignal (RS) an­ spricht, um das dritte Zeitgebungssignal (DS3) zu erzeugen;
    • b) das dritte Zeitgebungssignal (DS3) ein vier­ tes Intervall zwischen Zeitgebungsinforma­ tionsmarkierungen aufweist; und
    • c) das vierte Intervall ein ganzzahliges Viel­ faches des Referenzintervalls ist und sich in der Dauer von dem dritten Intervall unter­ scheidet; und
  • b) eine zweite Auswahleinrichtung (460), die auf das erste Zeitgebungssignal (DS1) und das dritte Zeit­ gebungssignal (DS3) anspricht, um eine zweite Mehr­ zahl von Ausgangssignalen (DS22) zu liefern, wobei:
    • a) die zweite Auswahleinrichtung aufeinanderfol­ gend ein drittes und ein viertes Ausgangssi­ gnal der zweiten Mehrzahl liefert, wobei das dritte und das vierte Ausgangssignal durch ein fünftes Intervall getrennt sind;
    • b) das dritte Ausgangssignal ansprechend auf das dritte Zeitgebungssignal (DS3) geliefert wird;
    • c) das vierte Ausgangssignal ansprechend auf das erste Zeitgebungssignal (DS1) geliefert wird; und
    • d) das fünfte Intervall größer ist als das erste Intervall.
8. Vorrichtung nach einem der Ansprüche 4 bis 7, bei der:
  • a) der Speicher ferner zum Speichern einer ersten Rei­ he von Divisorwerten dient; und
  • b) das zweite Zeitgebungssignal (DS2) ferner eine zweite Reihe von jeweiligen Intervallen aufweist, wobei:
    • 1. jedes jeweilige Intervall zwischen aufeinan­ derfolgenden Zeitgebungsinformationsmarkie­ rungen liegt;
    • 2. jedes jeweilige Intervall ein jeweiliges ganzzahliges Vielfaches des Referenzinter­ valls ist; und
    • 3. jedes jeweilige ganzzahlige Vielfache ent­ sprechend einem jeweiligen Divisorwert der ersten Reihe durch den ersten Frequenzteiler (422) bestimmt wird.
9. Vorrichtung nach einem der Ansprüche 1 bis 8, die auf einem integrierten Schaltungssubstrat (118) gebildet ist.
10. Drucker mit folgenden Merkmalen:
  • a) einer Schnittstelle (110) zum Empfangen einer Be­ schreibung von Daten, die gedruckt werden sollen;
  • b) einem Prozessor (114) zum Bestimmen von Daten, die gedruckt werden sollen, und zum Bestimmen eines Be­ fehls für eine Motorsteuerung;
  • c) einer Druckmaschine (124) zum Empfangen der Daten und zum Drucken auf einem vorgesehenen Medium; und
  • d) einer Motorsteuerung (400) zum Bewegen des vorgese­ henen Mediums ansprechend auf den Befehl, wobei die Motorsteuerung folgende Merkmale aufweist:
    • 1. einen ersten und einen zweiten Zeitgeber (410, 412) zum Liefern eines ersten bzw. zweiten Unterbrechungsanforderungssignals (DS1, IRQ1, DS2, IRQ2);
    • 2. eine Ausgabeschaltung (214) zum Liefern eines Zweipegelsignals für eine Schrittgebermotor­ steuerung;
    • 3. eine Zentralverarbeitungseinheit (204), die auf das erste und das zweite Unterbrechungs­ anforderungssignal (DS1, IRQ1, DS2, IRQ2) an­ spricht, um einen Unterbrechungsdienst durch­ zuführen; und
    • 4. einen Speicher (208), auf den durch die Zen­ tralverarbeitungseinheit (204) für den Unter­ brechungsdienst zugegriffen wird, wobei der Speicher zum Speichern von Markierungen eines Verfahrens für eine Motorsteuerung dient, wo­ bei das Verfahren folgende Schritte aufweist:
      ansprechend auf das zweite Unterbrechungsan­ forderungssignal (DS2, IRQ2), Bestimmen eines ersten Intervalls von dem momentanen Zeit­ punkt bis zum Zeitpunkt, zu dem ein nächstes Auftreten des ersten Unterbrechungsanforde­ rungssignals (DS1, IRQ1) erwartet wird;
      Vergleichen des ersten Intervalls mit einem vorbestimmten Intervall; und
      ansprechend auf den Vergleich, Steuern des Lieferns des Zeitpegelsignals ansprechend auf ein folgendes Auftreten des ersten Unterbre­ chungsanforderungssignals (DS1, IRQ1), das dem nächsten Auftreten des ersten Unterbre­ chungsanforderungssignals folgt.
11. Datenspeichervorrichtung (208), die Markierungen eines Verfahrens (600, 700) zum Liefern eines Ausgangssignals für eine Schrittgebermotorsteuerung aufweist, wobei das Verfahren folgende Schritte aufweist:
ansprechend auf eine erste Unterbrechungsanforderung (IRQ2) eines ersten Motorsteuermodus, Bestimmen (782) eines ersten Intervalls von dem momentanen Zeitpunkt bis zu einem Zeitpunkt, zu dem das Auftreten einer nächsten Unterbrechungsanforderung (T10) für einen zweiten Motorsteuermodus (IRQ2) erwartet wird;
Vergleichen (784) des ersten Intervalls mit einem vor­ bestimmten Intervall (TL); und
ansprechend auf den Vergleich, Steuern (786) des Lie­ ferns (650) eines Zweipegelsignals für einen Motor an­ sprechend auf ein Auftreten einer folgenden Unterbre­ chungsanforderung (T12) des zweiten Motorsteuermodus, die der nächsten Unterbrechungsanforderung (T10) für den zweiten Motorsteuermodus folgt.
12. Datenspeichervorrichtung nach Anspruch 11, bei der er­ ste Motorsteuermodus eine im wesentlichen konstante Winkelgeschwindigkeit des Motors implementiert und bei der der zweite Motorsteuermodus eine variierende Win­ kelgeschwindigkeit des Motors implementiert.
13. Datenspeichervorrichtung nach Anspruch 11, bei der der erste Motorsteuermodus eine variierende Winkelgeschwin­ digkeit des Motors implementiert, und bei der der zwei­ te Motorsteuermodus eine im wesentlichen konstante Win­ kelgeschwindigkeit des Motors implementiert.
14. Datenspeichervorrichtung nach Anspruch 13, bei der das Verfahren ferner folgenden Schritt aufweist:
während des Betriebs des Motorsteuermodus für eine va­ riierende Winkelgeschwindigkeit, Empfangen einer Mehr­ zahl von Unterbrechungsanforderungen mit einer ersten Rate und Liefern einer Mehrzahl von Ausgangssignalen für die Motorsteuerung mit einer zweiten Rate, die ein ganzzahliger Bruchteil der ersten Rate ist.
15. Datenspeichervorrichtung nach Anspruch 13, bei der das Verfahren ferner folgende Merkmale aufweist:
  • a) während des Betriebs in dem Motorsteuermodus für die variierende Winkelgeschwindigkeit, Empfangen (720) einer Mehrzahl von Unterbrechungsanforderun­ gen mit einer ersten Rate (T2-T3);
  • b) Liefern (770) einer Mehrzahl von Ausgangssignalen für die Motorsteuerung mit einer Mehrzahl von je­ weiligen zweiten Raten, wobei jede jeweilige zweite Rate ein ganzzahliger Bruchteil der ersten Rate ist, die entsprechend einem jeweiligen Divisor (FD) geliefert wird; und
  • c) Vorsehen (780) eines jeweiligen Divisors aus einer vorbestimmten Reihe.
16. Datenspeichervorrichtung nach Anspruch 15, bei der das Vorsehen eines jeweiligen Divisors eine algebraische Berechnung umfaßt.
17. Datenspeichervorrichtung nach Anspruch 15, bei der das Vorsehen eines jeweiligen Divisors das Aufrufen eines Werts aus einem Array aufweist.
18. Datenspeichervorrichtung nach einem der Ansprüche 1 bis 17, bei der das Verfahren ferner folgende Schritte auf­ weist:
  • a) Aktivieren eines ersten Zeitgebers (212) zum Lie­ fern der ersten Unterbrechungsanforderung des er­ sten Motorsteuermodus;
  • b) Aktivieren eines zweiten Zeitgebers (210) zum Lie­ fern der nächsten Unterbrechungsanforderung und der folgenden Unterbrechungsanforderung; und
  • c) nach dem Schritt des Steuerns, Deaktivieren des er­ sten Zeitgebers (212).
DE19938120A 1998-10-28 1999-08-12 System mit Motorsteuerung unter Verwendung mehrerer Zeitgebungssignalgeneratoren Withdrawn DE19938120A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/182,836 US6014000A (en) 1998-10-28 1998-10-28 System with motor control using multiple timing signal generators

Publications (1)

Publication Number Publication Date
DE19938120A1 true DE19938120A1 (de) 2000-05-11

Family

ID=22670250

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19938120A Withdrawn DE19938120A1 (de) 1998-10-28 1999-08-12 System mit Motorsteuerung unter Verwendung mehrerer Zeitgebungssignalgeneratoren

Country Status (3)

Country Link
US (1) US6014000A (de)
JP (1) JP2000134992A (de)
DE (1) DE19938120A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6239564B1 (en) * 1998-10-06 2001-05-29 H.R. Textron, Inc. State advance controller commutation loop for brushless D.C. motors
US6777844B2 (en) * 2000-10-24 2004-08-17 Rexair, Inc. Brushless motor
US6861817B2 (en) * 2001-12-21 2005-03-01 Freescale Semiconductor, Inc. Method and apparatus for detecting a stall condition in a stepping motor
US6667595B2 (en) * 2002-02-19 2003-12-23 Dresser, Inc. Stall detection in stepper motors
JP4144240B2 (ja) * 2002-04-12 2008-09-03 セイコーエプソン株式会社 制御装置および制御方法
JP2004182414A (ja) * 2002-12-04 2004-07-02 Noritsu Koki Co Ltd 画像記録装置
US20050038527A1 (en) * 2003-07-30 2005-02-17 Vivek Kulkarni Apparatus and method for programming a motor control of a motor
US7564741B2 (en) * 2004-04-06 2009-07-21 Newsco Directional And Horizontal Drilling Services Inc. Intelligent efficient servo-actuator for a downhole pulser
US7719439B2 (en) * 2006-06-30 2010-05-18 Newsco Directional And Horizontal Drilling Services Inc. Rotary pulser
US8040100B2 (en) * 2008-06-16 2011-10-18 International Business Machines Corporation Automatically determining optimal pulse duration for a stepper motor
US20110163700A1 (en) * 2010-01-06 2011-07-07 Putting Around, Inc. Methods and systems related to desulfation of a battery
US8723462B2 (en) * 2012-06-15 2014-05-13 GM Global Technology Operations LLC Methods, systems and apparatus for estimating angular position and/or angular velocity of a rotor of an electric machine
US10093348B2 (en) * 2016-06-17 2018-10-09 Steering Solutions Ip Holding Corporation Electrical power steering with two controllers and closed-loop integral action
US10848093B2 (en) 2018-08-30 2020-11-24 Steering Solutions Ip Holding Corporation Electrical power steering with two controllers using uniform steering angle control

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3644812A (en) * 1969-11-17 1972-02-22 Mohawk Data Sciences Corp Web feed apparatus with stepping motor drive
US4055786A (en) * 1976-05-06 1977-10-25 General Electric Company Control system for time sharing multiple stepper motors with a single controller
US4369402A (en) * 1980-07-22 1983-01-18 Xerox Corporation Motion damping apparatus
JPS5914396A (ja) * 1982-07-15 1984-01-25 Toshiba Corp パルスモ−タ駆動装置
US4469995A (en) * 1982-07-19 1984-09-04 Mcc Associates Method of stopping a stepping motor
US4859923A (en) * 1988-07-14 1989-08-22 Allied-Signal Inc. Microprocessor controlled dual channel closed loop controller for stepper motors used in servo systems

Also Published As

Publication number Publication date
JP2000134992A (ja) 2000-05-12
US6014000A (en) 2000-01-11

Similar Documents

Publication Publication Date Title
DE19938120A1 (de) System mit Motorsteuerung unter Verwendung mehrerer Zeitgebungssignalgeneratoren
DE60012815T2 (de) Numerisches Steuersystem
DE2646023C3 (de) Anordnung zum Steuern der Geschwindigkeit eines Punktschriftdruckers
EP0107026B1 (de) Speicherprogrammierbare Steuerung
CH640491A5 (de) Maschine zum herstellen eines gegenstandes aus glas.
CH621022A5 (de)
DE2660532C2 (de) Verfahren zum Erzeugen der Antriebsimpulse für die Schrittmotoren einer automatischen Nähmaschine und nach diesem Verfahren arbeitende Nähmaschine
EP0094763B1 (de) Steuergerät für einen Schrittmotor
DE2608754C2 (de) Schaltungsanordnung zum teilungsgenauen Positionieren eines Schreibwagens in Fern- oder Datenschreibmaschinen
DE4005042A1 (de) Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit
DE19883000B4 (de) Servosystem-Steuereinrichtung
DE2940019C2 (de)
DE60021495T2 (de) Motorregelschaltung und seine Verwendung in einem Regelsystem
DE19900724A1 (de) Koordinatenmeßgerät
DE2609698A1 (de) Elektronischer rechner
DE4026413C2 (de) Positionier-Steuervorrichtung
EP0071661B1 (de) Steuereinrichtung für einen Zeilendrucker mit einem umlaufenden Zeichenträger und mehreren Druckhämmern
DE2755663C2 (de) Steueranordnung für die Relativbewegung zwischen Druckkopf und Aufzeichnungsmedium in einem Drucker
DE4011491C2 (de) Einrichtung zur Steuerung mindestens einer Werkzeugspindel
DE3204098C2 (de)
DE2139053A1 (de) Numerische Werkzeugmaschinensteue rung
DE4201760C2 (de) Verfahren und Vorrichtung zum Steuern einer elektrischen Nähmaschine
DE19803216C2 (de) Mikrocomputer, der zur Ausgabe von Impulsen in der Lage ist
DE4311531C2 (de) Verfahren zum Steuern eines Nähautomaten
DE4029128C2 (de) Automatische Nähmaschine

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

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

8127 New person/name/address of the applicant

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

8130 Withdrawal