-
Die
vorliegende Erfindung bezieht sich auf eine Antriebssteuervorrichtung
und ein Verfahren zum Steuern eines Antriebsmechanismus mit Antriebssteuereinrichtung
sowie eine von der Antriebssteuereinrichtung gesteuerte Antriebseinrichtung, wobei
der Antriebsmechanismus mit großer
Genauigkeit arbeiten muß.
Ferner bezieht sich die Erfindung auf ein Verfahren zum Durchführen einer
Antriebsvorgangsbestätigung
eines Antriebsmechanismus.
-
Antriebsmechanismen
vieler moderner elektronischer Geräte müssen extrem schnell und äußerst genau
arbeiten. Bei Druckern bedeutet das beispielsweise, daß Schrittmotoren
oder Linearmotoren zum Antrieb des Papiertransportmechanismus und des
den Druckkopf tragenden Schlittens verwendet wurden. Um den gewünschten
Text oder Graphik an der richtigen Stelle zu drucken, ist es außerdem nötig, den
Druckkopf (Druckvorgang) rasch und genau entsprechend der Bewegung
des Schlittens und des Papiers anzusteuern. Diese Erfindung bezieht
sich auf eine Steuervorrichtung zum genauen Hochgeschwindigkeitsantrieb
eines Antriebsmechanismus, wie er in modernen elektronischen Geräten verwendet
wird, ein entsprechendes Steuerverfahren sowie einen Datenträger mit
einem Rechnerprogramm zum Ausführen
der Schritte dieses Steuerverfahrens.
-
Herkömmliche
Techniken zum Steuern von Antriebsmechanismen umfassen Steuerverfahren, bei
denen Zentraleinheit (CPU)-Unterbrechungssignale verwendet werden,
sowie Steuerverfahren, die mit zweckgebundener Hardware arbeiten.
Die schnelle und präzise
Steuerung eines Druckkopfantriebsmechanismus mit diesen herkömmlichen
Verfahren wird nachfolgend unter Hinweis auf einen Schrittmotor
als Beispiel der Antriebseinrichtung näher beschrieben. Es sei darauf
hingewiesen, daß eine ähnliche
Steuerung auch für
andere Antriebsmechanismen erforderlich ist. Als Teil der Motorsteuerung
muß das
Phasenmuster des dem Motor zugeführten
Stroms im Zeitpunkt einer Phasenänderung geändert werden,
und die Menge des zum Motor fließenden Stroms muß möglicherweise
auch geändert werden.
Eine Steuerung während
der Motorbeschleunigung und -verlangsamung ist besonders kompliziert,
weil je nach den spezifischen Beschleunigungs- oder Verlangsamungsbedingungen
der Phasenänderungszeitpunkt
sequentiell geändert werden
muß, während gleichzeitig
auch die Menge des dem Motor gelieferten Stroms sequentiell geändert werden
muß.
-
Bei
einer Steuerung mit zweckgebundener Hardware werden sogenannte festverdrahtete
Controller benutzt, um die Motorphasenänderung und Stromzufuhr zu
steuern. Die Verwendung zweckgebundener Hardware hat zwar den Vorteil
einer sehr genauen Steuerung; aber die Bereitstellung solcher zweckgebundener
Hardware verursacht im allgemeinen hohe Kosten. Weitere Nachteile
der Verwendung zweckgebundener Hardware sind eine längere Entwicklungszeit
und die Unmöglichkeit,
das Steuerverfahren flexibel und leicht zu ändern.
-
Bei
Unterbrechungssteuerverfahren auf CPU-Basis läuft in der Zentraleinheit ein
Unterbre chungsprozeß in
einem spezifischen Zeitpunkt, um aus einem Speicher Steuerdaten
zum Lesen des Phasenmusters von an den Motor angelegtem Strom zu ändern oder
um die Menge des zum Motor fließenden
Stroms zu steuern und diese Steuerdaten einer Antriebssteuerung
zuzuführen.
Mit diesem Verfahren ist es möglich,
die Produktentwicklungszeit zu verkürzen und den Steuervorgang
flexibel zu ändern, was
gleichzeitig dazu beiträgt,
die Kosten für
die Entwicklung und das Erzeugnis auf ein Minimum zu senken. Deshalb
werden CPU Unterbrechungsverfahren in der Entwicklung moderner Elektronik
vielfältig
angewandt, weil sich mit ihnen die Entwicklungszeit verkürzen und
rasche Änderungen
der Auslegungserfordernisse berücksichtigt
werden können.
-
Der
CPU Unterbrechungssteuerprozeß kann eine
exakte Steuerung des Antriebs mittels der Antriebssteuerung entsprechend
den von der CPU gesandten Steuerdaten sicherstellen, sofern die
Antriebseinrichtung funktioniert. Aber es gibt verschiedene Fehler
und Problemfaktoren, die verhindern können, daß die Antriebseinrichtung entsprechend den
Steuerdaten arbeitet. Bei einem Schlittenantriebsmechanismus zum
Bewegen des Druckkopfes eines Druckers kann beispielsweise der Schlitten durch
ein Hindernis, beispielsweise einen Papierstaub im Schlittenweg
an der Bewegung gehindert sein. Unter diesen Umständen wird
ein Ändern
des Phasenmusters oder der Stromzufuhr von der Antriebssteuerung
den Motor (als Antriebseinrichtung des Schlittenantriebsmechanismus)
nicht zum Drehen veranlassen, weil sich der Schlitten nicht bewegen
kann. Wenn das geschieht, ist die erwartete Schlittenposition (das
heißt
die Position, an der sich der Schlitten befinden sollte, nachfolgend
als "logische Position" bezeichnet), die
die Antriebssteuerung aus den Kontrolldaten berechnet hat, eine
andere als die Position, an der sich der Schlitten wirklich befindet
(die "tatsächliche
Position" des Schlittens), und
der Schlittenantrieb kann nicht exakt gesteuert werden.
-
Es
muß deshalb
ein angemessenes Verfahren ausgeführt werden, um mit derartigen
Problemen fertig zu werden. Beim Antriebsmechanismus für den Druckkopfschlitten
beispielsweise nehmen Meßfühler regelmäßig die
tatsächliche
Schlittenposition wahr, um zu bestätigen, ob der Schlitten tatsächlich richtig
angetrieben wird. Der Betrieb wird von der CPU-Steuerung bestätigt, die
den Schlitten zu einer regelmäßigen Bewegung
(beispielsweise alle 6 Sekunden) zu einer bestimmten Sensorposition
veranlaßt
(beispielsweise die Ausgangsstellung), um die echte Position des
Schlittens zu erfassen, die tatsächliche
Schlittenposition mit der logischen Schlittenposition zu vergleichen
und irgendeine Verschiebung zwischen den beiden festzustellen.
-
Diese
Positionsbestätigung
wird auch von einem CPU Unterbrechungsprozeß durchgeführt, der Antriebssteuerdaten
aus dem Speicher liest, um den Motor anzutreiben und den Schlitten
in die Ausgangsstellung zu bewegen. Die Genauigkeit der Antriebssteuerung
wird anhand der aus den Steuerdaten berechneten, logischen Schlittenposition
und der an der Ausgangsstellung erfaßten Verschiebung aus der tatsächlichen
Schlittenposition bestätigt.
-
Ein
herkömmliches
Verfahren zur Bestätigung
des Antriebsvorganges mittels einer CPU wird nachfolgend unter Hinweis
auf 18 beschrieben. Im Zeitpunkt der Phasenänderung
liest eine CPU 1 Motorantriebssteuerdaten aus einer in
einem Speicher 2 gespeicherten Steuerdatentabelle und sendet die
Steuerdaten an eine Motorantriebssteuerung 6. Die Antriebssteuerung 6 treibt
einen Motortreiber 74 auf der Grundlage der Steuerdaten
und veranlaßt
dadurch die Umdrehung eines Motors 7. Wenn sich der Motor 7 dreht,
bewegt sich ein Schlitten 73 im Schlittenweg mit Hilfe
eines Antriebskrafttransfermechanismus 71 hin und her.
Gleichzeitig mit dem Senden der Steuerdaten berechnet die CPU 1 das
Ausmaß des
Motorantriebs aus den Steuerdaten und bestimmt anhand der berechneten
Größe die logische Position
des Schlittens 73. Ein Photosensor oder sonstiger Detektor 72 ist
an der Ausgangsstellung in der Bewegungsbahn des Schlittens 73 angeordnet. Wenn
sich der Schlitten 72 in die Ausgangsstellung bewegt, nimmt
eine Detektorschaltung 75 den Schlitten wahr. Wenn die
Detektorschaltung 75 den Schlitten 73 in der Ausgangsstellung
erfaßt,
sendet sie ein Unterbrechungssignal an die CPU 1 (in diesem
Fall ein HP-Erkennungssignal der Ausgangsstellung). Wenn die CPU 1 dieses
Unterbrechungssignal empfängt,
vergleicht sie die logische Schlittenposition mit der Ausgangsstellung,
um festzustellen, ob der Schlitten 73 normal angetrieben
wird. Wenn die logische Position gegenüber der tatsächlichen
Schlittenposition in der Ausgangsstellung stark versetzt ist, weiß die CPU 1,
daß der
Schlitten 73 nicht normal angetrieben wurde und läßt einen
bestimmten Fehlerbehandlungsprozeß ablaufen. Durch die Motorantriebssteuerung
und die Positionsbestätigung
im Unterbrechungssteuerverfahren der CPU 1 wird also die genaue
Schlittenbewegung aufrechterhalten.
-
Mit
einem CPU Unterbrechungssteuerverfahren, wie oben beschrieben, wird
allerdings die Belastung der CPU dadurch erhöht, daß Steuerdaten immer dann aus
dem Speicher gelesen werden müssen,
wenn der Antrieb gesteuert werden muß. Die CPU führt normalerweise
viele verschiedene Prozesse aus, und wenn die Gesamtverarbeitungsleistung der
CPU nicht ausreicht für
die Unterbrechungssteuerung und diese weiteren Prozesse, variiert
die Unterbrechungsprozeßzeit,
und es kann sich als schwierig erweisen, eine schnelle, sehr präzise Antriebssteuerung
aufrechtzuerhalten. Um in solchen Fällen eine Schwankung des Unterbrechungsprozesses
zu unterdrücken
und eine hochgenaue Motorsteuerung zu ermöglichen; muß entweder die CPU beschleunigt
oder andere Maßnahmen
getroffen werden. Das gilt auch, wenn der Vorgang der Antriebsfehlererfassung
und der entsprechende Prozeß innerhalb
des CPU Unterbrechungsprozesses ablaufen.
-
Eine
Vorrichtung und ein Verfahren zum Steuern eines Antriebsmechanismus
entsprechend dem Oberbegriff von Anspruch 1 bzw. von Anspruch 14
sind aus US-A-5 583 410 bekannt. Bei dieser Vorveröffentlichung
spricht die erste direkte Speicherzugriffseinrichtung auf ihr eigenes
zweites Startsignal dadurch an, daß sie die nächsten Zeitsteuerdaten in die
Zeitsteuerung lädt.
-
Es
ist eine Aufgabe der Erfindung, eine Antriebssteuervorrichtung und
ein entsprechendes Steuerverfahren zu schaffen, die es erlauben,
eine schnelle und genaue Antriebssteuerung zu erzielen und dabei
die CPU Unterbrechungsprozesse auf ein Minimum einzuschränken, sobald
die Antriebssteuerung begonnen hat.
-
Noch
eine weitere Aufgabe der Erfindung ist es, eine Antriebssteuervorrichtung
zum Vergleich eines aus Steuerdaten festgelegten, berechneten Antriebsvorganges
mit dem tatsächlichen
Antriebsvorgang zu schaffen, um zu bestätigen, ob der Antriebsmechanismus
normal arbeitet, und um eine präzise Antriebssteuerung
zu ermöglichen.
-
Diese
Ziele werden erreicht mit einer Antriebssteuervorrichtung gemäß Anspruch
1, einem Verfahren gemäß Anspruch
14, einem Rechnerprogramm gemäß Anspruch
18 bzw. einem Datenträger gemäß Anspruch
19. Bevorzugte Ausführungsbeispiele
der Erfindung sind der Gegenstand der abhängigen Ansprüche.
-
In
Anbetracht und als ein Ergebnis von Forschung nach Lösungen für die zuvor
genannten Probleme hat der Erfinder festgestellt, daß die obigen Probleme
gelöst
werden können
durch die Benutzung eines Controllers mit direktem Speicherzugriff zum
Lesen von Zeit- und Steuerdaten aus dem Speicher und Senden der
Steuerdaten an eine Antriebssteuerung.
-
Bei
einem Ausführungsbeispiel
der Erfindung werden, ehe der Antriebsmechanismus angetrieben zu
werden beginnt, in einem Speicher eine Zeitdatentabelle einschließlich Zeitdaten
zum Steuern der Antriebszeit und eine Vielzahl von Steuerdatentabellen
gespeichert, die jeweils eine von mehreren Steuerdatentypen speichern.
Ein jeweiliger Eintrag in die Zeitdatentabelle und ein entsprechender Eintrag
in jede der Steuerdatentabellen bilden einen Datensatz. Wenn die
CPU einen Antriebsstartbefehl ausgibt, liest ein DMA-Controller
(direkter Speicherzugriff) die ersten Zeitdaten, die benutzt werden,
um das Lesen der ersten Steuerdaten aus jeder Steuerdatentabelle
auszulösen,
und die nächsten
Zeitdaten. Folglich liest der DMA-Controller der Reihe nach jeden
Steuerdatentyp für
jeden Zeitpunkt, zu dem ein Antriebsvorgang sich ändern soll,
und sendet die nötigen
Steuerdaten an die Antriebssteuerung. Der Betrieb des Antriebsmechanismus
kann also unabhängig
und ohne jegliche CPU Unterbrechungen gesteuert werden, sobald der
Betrieb begonnen hat. Die Änderungszeit
wird dadurch gesteuert, daß Zeitdaten
in einem Zeitgeber gesetzt und das Signal des Zeitgebers, daß die Zeit
abgelaufen ist, zum Auslösen
der nächsten
Schritte benutzt wird.
-
Gemäß der vorliegenden
Erfindung werden also Zeitdaten und spezifische Steuerdaten vor
der Steuerung des Antriebsmechanismus in einem Speicher gespeichert,
und es wird ein direkter Speicherzugriff angewandt, um die Zeitdaten
in einem Zeitgeber und die Steuerdaten in der Antriebssteuerung des
zu steuernden Antriebsmechanismus zu setzen. Infolgedessen ermöglicht die
vorliegende Erfindung eine hochgenaue Steuerung des Antriebsmechanismus
ohne Verwendung von CPU Unterbrechungen und ohne Verwendung teurer,
zweckgebundener Hardware.
-
Weitere
Ziele und Erreichtes wird mit einem volleren Verständnis der
Erfindung unter Hinweis auf die nachfolgende Beschreibung eines
bevorzugten Ausführungsbeispiels
im Zusammenhang mit den beigefügten
Zeichnungen offensichtlich und zu schätzen sein.
-
Es
zeigt:
-
1 ein
erstes Ausführungsbeispiel
einer Antriebssteuervorrichtung gemäß der vorliegenden Erfindung;
-
2 ein
Funktionsblockschaltbild eines mehr ins einzelne gehenden Beispiels
der in 1 gezeigten Antriebssteuervorrichtung;
-
3 ein
Funktionsblockschaltbild des ersten Ausführungsbeispiels mit zwei Arten
von Steuerdaten;
-
4 den
Datenfluß und
das Datenübertragungsprozedere,
wenn die in 3 gezeigte Antriebssteuervorrichtung
Steuerdaten an den Antriebsmechanismus sendet;
-
5 ein
Funktionsblockschaltbild einer Antriebssteuervorrichtung zum Steuern
eines Schrittmotors gemäß einem
zweiten Ausführungsbeispiel der
vorliegenden Erfindung;
-
6 eine
graphische Darstellung der typischen Steuersequenz eines Schrittmotors;
-
7 die
Zustandsübergänge einer
kontinuierlichen Steuerbetriebsfolge von einem Startbefehl für den Motorantrieb
bis zum Setzen des Änderungszeitpunktes,
Steuerdaten eines ersten Typs und Steuerdaten eines zweiten Typs,
das Ansteuern des Motors und das Setzen des Zeitpunktes für die nächste Änderung;
-
8 ein
Ablaufdiagramm des Motorsteuerverfahrens gemäß dem zweiten Ausführungsbeispiel;
-
9 ein
Funktionsblockschaltbild einer Antriebssteuervorrichtung zum Steuern
eines Druckkopfes gemäß einem
dritten Ausführungsbeispiel
der vorliegenden Erfindung;
-
10 die
Zustandsübergänge einer
kontinuierlichen Steuerbetriebsfolge vom Startbefehl des Kopfantriebs
bis zum Setzen des Änderungszeitpunktes,
erste Steuerdaten und zweite Steuerdaten, Drucken und Setzen des
nächsten Änderungszeitpunktes;
-
11 ein
schematisches Blockschaltbild einer Antriebssteuervorrichtung zum
Steuern eines Schlittenantriebsmechanismus für die Bewegung des Druckkopfes
eines seriellen Druckers gemäß einem vierten
Ausführungsbeispiel
der Erfindung;
-
12 ein
Funktionsblockschaltbild zur detaillierteren Beschreibung des Betriebs
der in 11 gezeigten Antriebssteuervorrichtung;
-
13 die
Orte eines Schlittenbewegungsbereichs, eines Druckbereichs, eines
nicht zu bedruckenden Bereichs und der Ausgangsstellung;
-
14 ein
Zustandsübergangsdiagramm der
verschiedenen Zustände
im Antriebsbestätigungsprozeß;
-
15 eine
beispielhafte Konfiguration der Antriebsbestätigungseinrichtung 50 der
vorliegenden Erfindung;
-
16 ein
Ablaufdiagramm des Bestätigungsbetriebs
eines Controllers 60 der Antriebsbestätigungseinrichtung 50;
-
17 ein
Zustandsübergangsdiagramm des
Verhältnisses
zwischen einem kontinuierlichen Steuervorgang ab dem Startbefehl
für den
Motorantrieb bis zum Setzen der Änderungszeitdaten,
Phasenmusterdaten und Phasenstromdaten bis zum Setzen des nächsten Änderungszeitpunktes
und dem Antriebsbestätigungsprozeß dieses
Steuervorgangs;
-
18 ein
Blockschaltbild eines herkömmlichen
Antriebsbestätigungsprozesses
mit einer CPU.
-
Erstes Ausführungsbeispiel
-
1 ist
ein schematisches Blockschaltbild, welches den Grundaufbau einer
Antriebssteuervorrichtung zeigt, die nachfolgend als erstes Ausführungsbeispiel
der vorliegenden Erfindung erläutert wird.
-
Eine
CPU 1 erledigt verschiedene Operationen entsprechend einem
in einem Speicher 2 gespeicherten Programm (einschließlich Firmware
und eines Betriebssystems (OS)). Ein DMA-Controller 3 ermöglicht den
Datenaustausch unmittelbar zwischen dem Speicher 2 und
I/O-Bausteinen, ohne durch die CPU 1 zu gehen.
-
Es
sei erwähnt,
daß zur
Vereinfachung der nachfolgenden Beschreibung nur ein Zeitgeber 4 und ein
Antriebsmechanismus 5 in 1 als I/O-Bausteine
gezeigt sind. Bei diesem Ausführungsbeispiel
umfaßt
der Antriebsmechanismus 5 eine Antriebssteuerung 6 und
eine Antriebseinheit oder Betätigungseinheit 7.
Die aus dem Speicher 2 zu lesende Adresse und das Ziel
der gelesenen Daten sind von Adressendaten auf einem Adressenbus 8 spezifiziert,
und die gelesenen Daten werden auf einen Datenbus 9 ausgegeben.
-
Wenn
Zeitdaten, die ein bestimmtes Zeitintervall darstellen, vom Speicher 2 an
den Zeitgeber 4 gesendet werden, zählt der Zeitgeber 4 die
diesem Zeitintervall entsprechende Zeit und gibt ein Zeit-abgelaufen-Signal
an den DMA-Controller 3 aus, wenn das angegebene Zeitintervall
beendet ist. Der DMA-Controller 3 sendet dann die spezifizierten Steuerdaten
vom Speicher 2 zur Antriebssteuerung 6, die ihrerseits
eine Antriebseinheit oder einen Treiber 7 in Übereinstimmung
mit den Steuerdaten steuert.
-
Ein
mehr ins einzelne gehendes Beispiel der Antriebssteuervorrichtung
wird nachfolgend unter Hinweis auf das in 2 gezeigte
Funktionsblockschaltbild beschrieben.
-
Wie 2 zeigt,
speichert ein Zeitdatenspeicher 10 eine Zeitdatentabelle,
einschließlich
der Zeitdaten zur Benutzung beim Steuern des Zeitpunktes, zu dem
die Antriebssteuerung den Betrieb oder Antriebszustand des Antriebsmechanismus
umschalten soll. Ein erster bis Nter Steuerdatenspeicher 11, 12, 13 speichert
erste bis Nte Steuerdatentabellen. Die Datenspeicher 10 bis 13 werden
vorzugsweise durch Zuteilen eines bestimmten Adressenraums im Speicher 2 erhalten
(siehe 1), und die jeweiligen Daten werden in diesen
Datenspeichern von der CPU 1 gespeichert, ehe der Antriebssteuerbetrieb
beginnt. In der nachfolgenden Beschreibung werden die Be zugszeichen 10 bis 13 sowohl
für die
Datenspeicher als auch die jeweils in ihnen gespeicherten Datentabellen
verwendet.
-
Bei
diesem Beispiel weist der DMA-Controller 3 eine DMA-Einheit 14 (nachfolgend
als "Zeitsteuereinheit" bezeichnet) und
eine DMA-Einheit 15 auf. Die Zeitsteuereinheit 14 und
die DMA-Einheit 15 können
entweder Untereinheiten einer einzigen DMA-Einheit oder auch einzelne
DMA-Einheiten sein.
-
Der
Zeitgeber 4 zählt
die Zeit entsprechend dem von den Zeitdaten angegebenen Zeitintervall und
gibt ein Zeit-abgelaufen-Signal aus, wenn dieses Zeitintervall abläuft. Die
Antriebssteuerung 6 steuert den Treiber 7 auf
der Grundlage der von der DMA-Einheit 15 empfangenen Steuerdaten.
Der Treiber 7 ist normalerweise ein Schrittmotor oder ein Druckkopf,
kann aber auch von einer Vielfalt anderer Steuereinheiten verkörpert sein.
-
Wenn
die CPU 1 ein Startsignal an die Zeitsteuereinheit 14 sendet,
liest die Zeitsteuereinheit 14 erste Zeitdaten aus der
Zeitdatentabelle 10 und sendet die Zeitdaten an den Zeitgeber 4.
Die Zeitdaten spezifizieren das Zeitintervall vom aktuellen Betriebszustand
des Antriebsmechanismus 5 bis zu dem Moment, zu dem der
Betriebszustand zu einem nächsten
geändert
werden soll. Wenn die Zeitdaten an den Zeitgeber 4 gesandt
werden, beginnt der Zeitgeber 4 mit dem Zählen des
angegebenen Zeitintervalls und gibt ein Zeit-abgelaufen-Signal an
die DMA-Einheit 15 aus, wenn das Zeitintervall abgelaufen
ist.
-
Wenn
die DMA-Einheit 15 dieses Zeit-abgelaufen-Signal empfängt, liest
sie zunächst
erste Steuerdaten aus der ersten Steuerdatentabelle 11 und sendet
diese ersten Steuerdaten an die Antriebssteuerung 6. Bei
Beendigung des Sendens dieser ersten Steuerdaten werden erste Steuerdaten
aus der zweiten Steuerdatentabelle 12 gelesen und an die
Antriebssteuerung 6 gesendet. Dieser Vorgang wird fortgesetzt,
um der Reihe nach die jeweiligen ersten Steuerdaten aus jeder Steuerdatentabelle
zu senden, bis die ersten Steuerdaten von der Nten Steuerdatentabelle 13 gesendet
wurden. Die Antriebssteuerung 6 steuert dann den Treiber 7 anhand
der empfangenen ersten bis Nten ersten Steuerdaten. Es sei erwähnt, daß "N" von der Anzahl der Arten Steuerdaten
abhängt,
die zum Steuern eines bestimmten Treibers, beispielsweise eines
Druckkopfes, eines Schlittenantriebsmotors oder eines Papierzufuhrtransportmotors
benötigt
werden.
-
Wenn
die letzten, das heißt
die Nten ersten Steuerdaten an die Antriebssteuerung 6 gesendet werden
oder wurden, wird die Zeitsteuereinheit 14 durch ein bestimmtes
Auslöseereignis
erneut aktiviert. Als das auslösende
Ereignis wird zwar vorzugsweise die vollendete Übermittlung der Nten Steuerdaten
an die Antriebssteuerung 6 herangezogen, aber es kann alternativ
auch irgend ein anderes Ereignis in Bezug auf die Steuerdatenübertragung
benutzt werden (beispielsweise der Beginn der Übermittlung). Bei dem Beispiel
hier wird davon ausgegangen, daß das
Auslöseereignis
die Beendigung der Steuerdatenübertragung
ist.
-
Wie
mit einer durchgezogenen Linie 27 in 2 gezeigt,
kann die Zeitsteuereinheit 14 mit einem Aktivierungssignal
von der DMA-Einheit 15 an die Zeitsteuereinheit 14 aktiviert
werden, wenn die Übermittlung
der Nten Steuerdaten endet. Als Alternative kann die Zeitsteuereinheit 14 dadurch
aktiviert werden, daß die
Antriebssteuerung 6 ein Aktivierungssignal an die Zeitsteuereinheit 14 sendet,
wie in 2 mit einer gestrichelten Linie 28 angedeutet.
-
Bei
Auslösung
durch das Aktivierungssignal von der DMA-Einheit 15 (oder
Antriebssteuerung 6) liest die Zeitsteuereinheit 14 die
nächsten
(zweiten) Zeitdaten, falls vorhanden, aus der Zeitdatentabelle 10 und
sendet diese Zeitdaten an den Zeitgeber 4. Der Zeitgeber 4 zählt dann
wiederum das von diesen nächsten
Zeitdaten spezifizierte Zeitintervall und sendet ein zweites Zeit-abgelaufen-Signal
an die DMA-Einheit 15, wenn dieses Zeitintervall zu Ende ist.
Wenn die DMA-Einheit 15 dieses Zeitabgelaufen-Signal empfängt, liest
sie der Reihe nach zweite Steuerdaten aus der ersten bis Nten Steuerdatentabelle
und sendet dann die gelesenen zweiten Steuerdaten an die Antriebssteuerung 6.
Es liegt auf der Hand, daß die
Zeit- und Steuerdatentabellen eine oder mehr Datensätze speichern,
von denen jeder Datensatz aus Zeitdaten und N Arten (N = 1) Steuerdaten
besteht. Gibt es mehr als einen Datensatz, so werden die einzelnen
Datensätze
einer nach dem anderen abgerufen und verarbeitet, wobei die zeitliche Folge
von den Zeitdaten gesteuert wird.
-
Während im
Fall von vielen Datensätzen
diese Operationen wiederholt werden, wird der Treiber 7 entsprechend
den Zeitdaten und Steuerdaten jedes Datensatzes angesteuert, bis
der spezifizierte Antriebsvorgang vollendet ist und alle Datensätze verarbeitet
worden sind. Damit ist es möglich,
den Antriebsmechanismus 5 genau und exakt zu steuern, ohne
daß die
CPU 1 beteiligt würde,
sobald der Antriebssteuervorgang begonnen hat. Die CPU 1 braucht
nur vor dem tatsächlichen
Anlaufen der Antriebssteuerung alle Zeitdaten und Steuerdaten zu speichern,
beispielsweise die Entfernung und/oder Geschwindigkeit des Antriebs,
die für
den jeweiligen Antriebsmechanismus in den Datentabellen 10 bis 13 erforderlich
sind.
-
Als
nächstes
wird die DMA-Einheit 15 im einzelnen beschrieben.
-
Während 2 die
ersten bis Nten Steuerdatentabellen (N Arten Steuerdaten) zusätzlich zu den
Zeitdaten darstellt, sind Zahl und Arten der tatsächlich benutzten
Steuerdaten je nach dem jeweiligen Antriebsmechanismus und Antriebsmodus
unterschiedlich. So werden beispielsweise zwei Arten Steuerdaten üblicherweise
in jedem Datensatz zum Steuern eines Schrittmotors verwendet. Um
die folgende Beschreibung zu vereinfachen, wird ein Datensatz benutzt,
der Zeitdaten und nur zwei Arten von Steuerdaten umfaßt.
-
3 ist
ein Funktionsblockschaltbild der Verwendung von Zeitdaten und zwei
Arten von Steuerdaten und veranschaulicht ein mehr ins einzelne gehendes
Beispiel der DMA-Einheit 15 für diesen Fall. Wie gezeigt,
weist die DMA-Einheit 15 einen ersten Controller 16 und
einen zweiten Controller 17 auf, die den Arten der Steuerdaten
entsprechen. Die beiden Controller 16 und 17 sind
DMA-(unter)-Controller,
die Daten unmittelbar aus dem Speicher lesen können, ohne die CPU zu benutzen.
-
Wenn
Zeitdaten eines ersten Datensatzes von der Zeitsteuereinheit 14 an
den Zeitgeber 4 gesendet werden und der Zeitgeber 4 feststellt,
daß das von
den Zeitdaten spezifizierte Zeitintervall abgelaufen ist, sendet
der Zeitgeber 4 ein Zeit-abgelaufen-Signal an den ersten
Controller 16.
-
Wenn
der erste Controller 16 das Zeit-abgelaufen-Signal empfängt, liest
er die erste Art Steuerdaten des ersten Datensatzes aus der ersten
Steuerdatentabelle 11 und gibt die gelesenen Daten an die Antriebssteuerung 6 weiter.
Wenn die Übersendung der
ersten Art Steuerdaten an die Antriebssteuerung 6 endet,
wird der zweite Controller 17 aktiviert. Es sei darauf
hingewiesen, daß der
zweite Controller 17 aktiviert werden kann, wenn der erste
Controller 16 dem zweiten Controller 17 ein Aktivierungssignal
(über die durchgezogene
Linie 26 in 3) sendet, wenn das Übersenden
der ersten Art Steuerdaten endet, oder daß er aktiviert werden kann,
wenn die Antriebssteuerung 6 dem zweiten Controller 17 ein
Aktivierungssignal (über
die gestrichelte Linie 29) sendet, nachdem der Empfang
der ersten Art von Steuerdaten vollendet ist.
-
Der
zweite Controller 17 liest nach der Aktivierung die zweite
Art Steuerdaten des ersten Datensatzes aus der zweiten Steuerdatentabelle 12 und sendet
sie an die Antriebssteuerung 6. Aufgrund dieser Steuerdaten
beginnt die Antriebssteuerung 6 mit der Betätigung des
Treibers 7, wenn sie die erste Art Steuerdaten empfängt oder
wenn sie sowohl die erste als auch die zweite Art Steuerdaten empfangen hat.
-
Wenn
die Übersendung
der zweiten Art Steuerdaten an die Antriebssteuerung 6 endet,
wird die Zeitsteuereinheit 14 erneut aktiviert. Es sei
darauf hingewiesen, daß die
Zeitsteuereinheit 14 durch ein Aktivierungssignal vom zweiten
Controller 17 (über die
durchgezogene Linie 27), wenn das Senden der zweiten Art
Steuerdaten endet, oder daß sie
durch ein Aktivierungssignal von der Antriebssteuerung 6 (über die
gestrichelte Linie 28) aktiviert werden kann.
-
Wenn
die Zeitsteuereinheit 14 das Aktivierungssignal vom zweiten
Controller 17 (oder der Antriebssteuerung 6) empfängt, liest
sie die Zeitdaten des nächsten
(zweiten oder weiteren) Datensatzes aus der Zeitdatentabelle und
sendet diese an den Zeitgeber 4. Der Zeitgeber 4 zählt dann
das von diesen Zeitdaten spezifizierte Zeitintervall, und wenn das
spezifizierte Zeitintervall abgelaufen ist, sendet er ein nächstes (zweites
oder weiteres) Zeit-abgelaufen-Signal an den ersten Controller 16.
-
Wie
schon gesagt, liest der erste Controller 16 dann die erste
Art Steuerdaten des nächsten (zweiten
oder weiteren) Datensatzes von der ersten Steuerdatentabelle und
sendet diese an die Antriebssteuerung 6. Wenn das Übersenden
der ersten Art Steuerdaten endet, wird der zweite Controller 17 wieder
aktiviert, wie schon beschrieben, um die zweite Art Steuerdaten
des nächsten
(zweiten oder weiteren) Datensatzes von der zweiten Steuerdatentabelle zu
lesen und die Daten an die Antriebssteuerung 6 zu senden.
Der Betrieb des Treibers 7 auf der Grundlage der vorherigen
Steuerdaten endet in diesem Zeitpunkt, und es beginnt der Betrieb
auf der Grundlage der nächsten
Steuerdaten.
-
Der
vorstehend beschriebene Betrieb wird fortgesetzt, so daß der Treiber 7 anhand
der in der Zeitdatentabelle bzw. den Steuerdatentabellen gespeicherten
Zeitdaten und Steuerdaten angesteuert wird, bis der spezifische
Antriebsvorgang endet.
-
4 zeigt
den Datenfluß und
die Datenübertragung
zum Senden von Zeitdaten und Steuerdaten an den Antriebsmechanismus 5.
-
Wie
schon gesagt, sind in einem spezifischen Adressenraum im Speicher 2 die
Zeitdatentabelle 10, erste Steuerdatentabelle 11 und
zweite Steuerdatentabelle 12 gespeichert, und die erste Zeitsteuereinheit 14,
der erste Controller 16 und der zweite Controller 17 sind
im DMA-Controller 3 angeordnet.
-
Ehe
der Betrieb des Antriebsmechanismus beginnt, schreibt die CPU 1 zunächst die
nötigen
Datensätze
der Zeitdaten und Steuerdaten zum Steuern des Antriebsmechanismus 5 an
spezifische Adressen im Speicher 2 entsprechend den jeweiligen
Datentabellen. Dann läuft
die Operation wie nachfolgend beschrieben weiter, um den Betrieb
des Antriebsmechanismus 5 zu steuern.
- 1.)
CPU 1 sendet ein Signal zum Aktivieren der Zeitsteuereinheit 14 an
eine Steuereinheit 18 des DMA-Controllers 3.
- 2.) Die Steuereinheit 18 aktiviert die Zeitsteuereinheit 14.
- 3.) Wie gesagt, liest die Zeitsteuereinheit 14 Zeitdaten
aus der Zeitdatentabelle 10 des Speichers 2. Die
Adresse der zu lesenden Daten ist in einem Quellenadressenregister
in der Zeitsteuereinheit 14 gespeichert und wird nach jedem
Lesen inkrementiert, um die nächste
Adresse zu spezifizieren.
- 4.) Die gelesenen Zeitdaten (in der Figur nicht gezeigt) werden
anhand der in einem Zieladressenregister 20 spezifizierten
Adresse an den Zeitgeber 4 gesendet.
- 5.) Der Zeitgeber 4 überwacht den Ablauf des von den
Zeitdaten spezifizierten Zeitintervalls und sendet ein Zeit-abgelaufen-Signal
an den ersten Controller 16, wenn das Zeitintervall vorbei
ist. Als Zeitgeber 4 kann ein normaler Zeitgeberaufbau benutzt
werden.
- 6.) Wenn der erste Controller das Zeit-abgelaufen-Signal empfängt, liest
er die erste Art Steuerdaten aus der ersten Steuerdatentabelle durch Bezugnahme
auf sein eigenes Quellenadressenregister (in der Figur nicht gezeigt).
Die in diesem Quellenadressenregister gespeicherte Adresse wird
dann zur nächsten
Adresse inkrementiert.
- 7.) Die gelesene erste Art Steuerdaten wird dem Antriebsmechanismus 5 anhand
der Adresse in einem Zieladressenregister (in der Figur nicht gezeigt)
zugesandt.
- 8.) Der zweite Controller 17 wird aktiviert, wenn das
Senden der ersten Art Steuerdaten endet.
- 9.) Der zweite Controller 17 liest dann die zweite Art
Steuerdaten aus der zweiten Steuerdatentabelle durch Bezugnahme
auf sein eigenes Quellenadressenregister (in der Figur nicht gezeigt). Wie
im Fall der Zeitsteuereinheit 14 und des ersten Controllers 16 wird
das Quellenadressenregister dann auf die nächste Adresse inkrementiert.
- 10.) Die gelesene zweite Art Steuerdaten wird dem Antriebsmechanismus 5 zugesandt.
- 11.) Wenn das Senden der zweiten Art Steuerdaten endet, wird
die Zeitsteuereinheit 14 wieder aktiviert und liest die
Zeitdaten des nächsten
Datensatzes anhand der inkrementierten Adresse im Quellenadressenregister 19.
-
Dieser
Prozeß wird
zum Steuern des Antriebsmechanismus wiederholt, bis alle Datensätze verarbeitet
sind und das Ansteuern endet.
-
Zweites Ausführungsbeispiel
-
Als
zweites Ausführungsbeispiel
der vorliegenden Erfindung wird als nächstes ein Ausführungsbeispiel
beschrieben, welches die Grundsätze des
ersten Ausführungsbeispiels
auf einen Antriebsmechanismus anwendet, der als Beispiel eines Treibers
einen Schrittmotor benutzt.
-
5 ist
ein Funktionsblockschaltbild einer Antriebssteuervorrichtung. Bei
diesem Ausführungsbeispiel
dient die Zeitsteuereinheit 14 aus 3 als Zeitsteuereinheit
für den
Phasenwechsel, während der
erste Controller 16 und der zweite Controller 17 aus 3 als
Steuerungen für
das Phasenmuster bzw. für
den Phasenstrom dienen. Wie im Fall von 3, sind
diese Komponenten vorzugsweise Teile eines einzigen DMA-Controllers
und nur zur Erleichterung des Verständnisses als getrennte Funktionsblöcke dargestellt.
Wie gesagt, ist der Antrieb 7 bei diesem Ausführungsbeispiel
ein Schrittmotor und dementsprechend die Antriebssteuerung 6 eine
Motorantriebssteuerung.
-
6 ist
eine graphische Darstellung eines Beispiels einer typischen Steuerfolge
eines Schrittmotors. Zum Steuern eines Schrittmotors ist es nötig, der
Reihe nach die Phase des an den Motor angelegten Stroms zu ändern. Wie
in 6(A) gezeigt, muß der Motor
vom Start an allmählich
beschleunigt werden, bis die Motorgeschwindigkeit einen bestimmten Wert
erreicht, dann muß die
Geschwindigkeit auf diesem Wert gehalten werden, und schließlich muß bei der
Annäherung
an eine gewünschte
Halteposition der Motor verlangsamt werden. Die Zeitsteuerung der
Phasenänderungen
während
der Beschleunigung unterscheidet sich von der des Betriebs bei konstanter
Geschwindigkeit und Verlangsamung. Es ist auch nötig, sowohl bei der Beschleunigung,
dem Betrieb mit konstanter Geschwindigkeit und der Verlangsamung
den Strom zu steuern.
-
Um
den Motor zu starten, ist für
den Anlauf und die Beschleunigung der Motorumdrehung starker Strom
nötig (siehe 6(B)). Weniger Strom ist erforderlich,
um den Betrieb bei gleichbleibender Geschwindigkeit aufrechtzuerhalten,
aber während
der Verlangsamung muß wieder
viel Strom geliefert werden, um den Motor abzubremsen. Es sei erwähnt, daß, wie 6(B) zeigt, ein Stromfluß zum Motor selbst
nach dem Anhalten des Motors noch beibehalten wird, wenn er auch
sehr schwach ist. Dies dient dazu, jegliche restliche Erregung des
Motors rasch zu vernichten, und ein schwacher Strom fließt zum Motor
in allen Phasen nach dem Anhalten des Motors (dies ist als "Stoßstrom" bekannt). Nachdem
der Motor die Haltestellung erreicht, werden der Antriebssteuerung 6 die
endgültigen
Steuerdaten, einschließlich
des Stoßstromphasenmusters
(alle Phasen), Stoß stroms
und der Stoßstromzufuhrzeit
gesendet, und der Motorantriebsvorgang endet, nachdem die Stoßstromzufuhr
vorüber
ist.
-
Die
unterhalb der Abszisse in 6(A) und 6(B) angegebenen Zahlen zeigen den Phasenänderungszeitpunkt
an. Wie aus 6 hervorgeht, beginnt die Umdrehung
des Motors 7 mit der zweiten Phasenänderungszeit.
-
Die
Zeitdaten und sonstigen Steuerdaten, einschließlich aller Steuerdaten, die
zum aufeinanderfolgenden Steuern des Motors 7 von der Beschleunigung,
dem Betrieb bei gleichbleibender Geschwindigkeit, der Verlangsamung
bis zum Anhalten entsprechend der geplanten Antriebsgröße nötig sind,
werden von der CPU 1 erzeugt, ehe der Motorantrieb beginnt,
und werden in den Datentabellen 10 bis 12 im Speicher 2 gespeichert.
-
Dies
wird unter Hinweis auf 7 näher erläutert. 7 zeigt
die Zustandsübergänge der
Steuerfolge, beginnend mit dem Empfang eines Startbefehls für den Motorantrieb
bis zum Setzen der Änderungszeitdaten,
Phasenmusterdaten, Phasenstromdaten und dann dem Setzen der nächsten Änderungszeitdaten.
-
Wenn
der Steuerungsbeginn durch die CPU 1 angezeigt wird, liest
die Zeitsteuereinheit 14 aus der Zeitdatentabelle 10 die
Zeitdaten des ersten Datensatzes, welche die Phasenänderungszeit
bestimmen, und sendet diese Daten an den Zeitgeber 4. Auf der
Grundlage der empfangenen Zeitdaten (Zustand 1: 40) überwacht
der Zeitgeber 4 den Verlauf des spezifischen Zeitintervalls.
-
Wenn
der Zeitgeber 4 den Ablauf des spezifischen Zeitintervalls
erfaßt,
liest der erste Controller 16 die Phasenmusterdaten des
ersten Datensatzes aus der ersten Steuerdatentabelle 11 und
sendet die Phasenmusterdaten an die Antriebssteuerung 6 (Zustand
2: 41).
-
Wenn
das Senden der Phasenmusterdaten endet, liest der zweite Controller 17 die
Phasenstromdaten des ersten Datensatzes aus der zweiten Steuerdatentabelle 12 und
sendet die ersten Phasenstromdaten an die Antriebssteuerung 6.
Sobald die Phasenstromdaten gesetzt sind, beginnt der Motorantrieb
(Zustand 3: 42).
-
Wenn
das Senden der Phasenstromdaten endet, wird die Zeitsteuereinheit 14 erneut
angesteuert und liest und sendet die Zeitdaten des nächsten Datensatzes
an den Zeitgeber 4 (Zustand 1: 40). Wenn der Zeitgeber 4 den
Ablauf des spezifischen Zeitintervalls erfaßt, sendet die DMA-Einheit 15 die Phasenmusterdaten
(Zustand 2: 41) und anschließend die Phasenstromdaten (Zustand
3: 42) dieses nächsten
Datensatzes an die Antriebssteuerung 6. Damit beginnt der
Antrieb auf der Grundlage der Steuerdaten dieses nächsten Datensatzes.
-
Aus
der obigen Beschreibung geht hervor, daß die Zeitdaten eines willkürlichen
iten Datensatzes ein Zeitintervall bestimmen (ab dem Moment gezählt, zu
dem die Zeitdaten im Zeitgeber 4 gesetzt werden), nach
welchem die Phasenmusterdaten und die Phasenstromdaten des iten
Datensatzes gesetzt werden müssen.
Der Motor 7 arbeitet mit dem Phasenmuster und Phasenstrom
dieses iten Datensatzes, bis das von den Daten des (i + 1)ten Datensatzes
spezifizierte Zeitintervall abgelaufen ist und das Phasenmuster
erneut geändert
wird. Der Motor 7 wird dann entsprechend dem Phasenmuster
und den Phasenstromdaten des (i + 1)ten Datensatzes angesteuert,
bis das von den Zeitdaten des (i + 2)ten Datensatzes spezifizierte
Zeitintervall abgelaufen ist, und so weiter.
-
Der
Motor 7 beginnt also im zweiten Zeitpunkt mit der Umdrehung
(Start des zweiten Zeitintervalls) wie in 6(A) gezeigt,
und danach wird der Motor entsprechend den spezifizierten Zeitdaten
und Steuerdaten gesteuert.
-
8 ist
ein Ablaufdiagramm zur Beschreibung dieses Motorsteuerprozesses.
-
Wenn
zum Beispiel ein Programm zum Antrieb des Motors 7 auffordert,
berechnet die CPU 1 die Phasenänderungszeitdaten (Zeitintervalle
bei diesem Beispiel), die für
die Steuerung vom Start bis zum Stop des Steuerverfahrens erforderlich
sind, ebenso wie die Phasenmuster und Phasenstromdaten, die in jedem Änderungszeitpunkt
zu setzen sind, und speichert diese Daten in den Tabellen 10 bis 12 an
jeweiligen Adressen im Speicher 2 (S100). Dann sendet die
CPU 1 einen Startbefehl für den Motorantrieb an die Zeitsteuereinheit 14 (S101).
-
Als
Reaktion auf den Antriebsstartbefehl von der CPU 1 liest
die Zeitsteuereinheit 14 die ersten Zeitdaten (Zeitdaten
des ersten Datensatzes) aus der Zeittabelle im Speicher 2 (S102)
und setzt diese in den Zeitgeber 4 (S103). Der Zeitgeber
beginnt mit dem Zählen,
wenn die Zeitdaten gesetzt sind, und dieser Zustand wird fortgesetzt
(S104 ergibt NEIN), bis das spezifizierte Zeitintervall vorüber ist
und der Zeitgeber ein Zeit-abgelaufen-Signal an den ersten Controller 16 ausgibt.
Wenn das Zeit-abgelaufen-Signal ausgegeben wird (S104 ergibt JA)
liest der erste Controller 16 die ersten Phasenmusterdaten
(diejenigen des ersten Datensatzes) aus der Phasenmusterdatentabelle
im Speicher 2 (S105) und sendet sie an die Antriebssteuerung 6 (S106).
-
Wenn
das Senden der Phasenmusterdaten endet, liest der zweite Controller 17 die
ersten Phasenstromdaten (diejenigen des ersten Datensatzes) aus
der Phasenstromdatentabelle (S107) und sendet die Phasenstromdaten
an die Antriebssteuerung 6 (S108). Folglich fließt Phasenstrom
zum Motor 7, und der Motor beginnt sich zu drehen.
-
Wenn
es einen weiteren Datensatz gibt, das heißt Zeitdaten für eine nächste Phasenänderung (S109
ergibt JA) liest die Zeitsteuereinheit 14 die nächsten (zweiten)
Zeitdaten aus der Zeitdatentabelle und leitet diese an den Zeitgeber 4 weiter
(S102, S103). Der Zeitgeber beginnt wieder mit dem Zählen (S104),
bis das gezählte
Zeitintervall vorüber
ist (S104 ergibt JA). Das bedeutet, daß das Phasenmuster und der
Phasenstrom, wie von den Steuerdaten des ersten Datensatzes festgelegt,
für das
Zeitintervall an den Motor 7 angelegt werden, welches von den
Zeitdaten des nachfolgenden (zweiten) Datensatzes angezeigt ist.
-
Wenn
der Zeitgeber 4 wahrnimmt, daß das Zeitintervall vorüber ist
(S104 ergibt JA), werden in der Antriebssteuerung 6 die
nächsten
(zweiten) Phasenmuster- und Phasenstromdaten gesetzt (S105 bis S108),
und Strom fließt
während
des von den dritten Zeitdaten entsprechend diesem Phasen muster und
diesen Phasenstromdaten festgelegten Zeitintervalls (S102 bis S104).
Die gleichen Schritte S102 bis S109 sind danach Wiederholungen auf
der Grundlage der Zeitdaten aus der Zeitdatentabelle. Dieser Prozeß endet,
wenn es keine nächsten
Zeitdaten in der Zeitdatentabelle mehr gibt.
-
Drittes Ausführungsbeispiel
-
Ein
drittes Ausführungsbeispiel
der vorliegenden Erfindung wird unter Hinweis auf 9 beschrieben.
Das dritte Ausführungsbeispiel
wendet die Grundsätze
des ersten Ausführungsbeispiels
auf einen Antriebsmechanismus zum Antrieb eines Druckkopfes in einem
Drucker an. 9 ist ein Funktionsblockschaltbild
einer Antriebssteuervorrichtung zum Steuern des Druckkopfes. Die
in 3 gezeigte Zeitsteuereinheit 14, der
erste Controller 16 und der zweite Controller 17 dienen
als Zeitsteuereinheit für den
Antrieb, als Controller zum Auslösen
des Kopfantriebs bzw. als Controller für Druckdaten. Wie in dem in 3 gezeigten
Fall sind diese Komponenten vorzugsweise Teile eines einzigen DMA-Controllers und
lediglich zum leichteren Verständnis
als separate Funktionsblöcke
gezeigt. Die Antriebssteuerung 6 ist eine Kopfantriebssteuerung
und der Treiber ist bei diesem Ausführungsbeispiel der Druckkopf 7'.
-
Der
grundlegende Betrieb dieses Ausführungsbeispiels
ist der gleiche wie zuvor unter Hinweis auf das zweite Ausführungsbeispiel
beschrieben, aber die verarbeiteten Steuerdaten sind unterschiedlich.
Genauer gesagt sind die Zeitdaten die Zeitdaten des Kopfantriebs
und die Steuerdaten weisen Auslösedaten
für den
Kopfantrieb in einer Datentabelle 11' und Druckdaten in einer Datentabelle 12' auf. Diese Daten
werden von der CPU vor Beginn des Antriebs in entsprechende Tabellen
eingeschrieben.
-
Als
nächstes
wird unter Hinweis auf 10 der grundlegende Betrieb
beschrieben.
-
Die
Zeitsteuereinheit 14 setzt zunächst die Zeitdaten (für den Kopfantrieb)
in den Zeitgeber 4 (Zustand 1: 40a). Wenn der
Zeitgeber 4 ausläuft, sendet
der erste Controller 16 ein Antriebstriggersignal an die
Antriebssteuerung 6, um den Druckkopf anzusteuern (Zustand
2: 41a). Aus der folgenden Beschreibung ist ersichtlich,
daß zu
dieser Zeit nichts gedruckt wird, da noch keine Druckdaten gesendet wurden.
Als nächstes
sendet der zweite Controller 17 beispielsweise eine Punktzeile
Druckdaten an die Antriebssteuerung 6 (Zustand 3: 42a).
Es sei darauf hingewiesen, daß die
Menge der gesendeten Druckdaten vorzugsweise die Datenmenge ist,
die in einem Kopfdruckvorgang (Druckvorgang) gedruckt werden kann.
Die Antriebssteuerung 6 speichert die empfangenen Druckdaten
und veranlaßt
den Druckkopf 7' sie
dann zu drucken, wenn das nächste
Antriebstriggersignal empfangen wird.
-
Es
sei noch erwähnt,
daß das
zweite und dritte Ausführungsbeispiel
getrennt beschrieben wurde. Es ist aber klar, daß die beiden Ausführungsbeispiele
kombiniert werden können
und die Motorantriebssteuerung des zweiten Ausführungsbeispiels zum Antrieb
eines Papiertransportmechanismus, des Schlittenmechanismus usw.
im Drucker benutzt werden kann. Ferner sei erwähnt, daß bei Verwen dung des Motors
des zweiten Ausführungsbeispiels
zum Antrieb von etwas anderem als dem Schlittenmechanismus, dem
zweiten Ausführungsbeispiel,
dieses dritte Ausführungsbeispiel
und das folgende vierte Ausführungsbeispiel
in einem einzigen Drucker kombiniert werden könnten.
-
Im
Fall einer Kombination des zweiten und dritten Ausführungsbeispiels
kann die Antriebssteuerung 6 gemäß 5 und die
Antriebssteuerung 6 gemäß 9 nach
Bedarf zum gemeinsamen Arbeiten veranlaßt werden. Die vorliegende
Erfindung kann also getrennt auf eine Kopfantriebssteuervorrichtung und
eine Motorantriebssteuervorrichtung angewandt werden, und der Betrieb
dieser beiden Steuervorrichtungen kann synchronisiert werden. Synchronisiert werden
kann der Betrieb beispielsweise durch Synchronisieren der Steuerdaten
für den
Motorantriebsmechanismus und den Kopfantriebsmechanismus, wenn die
Steuerdaten erzeugt werden, und durch Speichern der synchronisierten
Steuerdaten im Speicher, so daß der
tatsächliche
Antrieb auf der Basis der bereits synchronisierten Steuerdaten gesteuert wird.
Es könnten
auch andere Verfahren angewandt werden, einschließlich der
Synchronisation der Motorantriebszeitsteuerung mit der tatsächlichen
Kopfantriebszeitsteuerung oder auch durch Synchronisieren der Zeitsteuerung
des tatsächlichen
Betriebs.
-
Im
Fall der vorliegend beschriebenen Auslegung werden nächste Zeit-
und Steuerdaten gelesen und ausgegeben, wenn das Senden der vorherigen Zeit-
und Steuerdaten vollendet ist. Es ist auch möglich, je nach den Eigenschaften
des jeweiligen Treibers, Zeitdaten und Steuerdaten gleichzeitig
zu senden.
-
Viertes Ausführungsbeispiel
-
Ein
viertes Ausführungsbeispiel
einer Antriebssteuervorrichtung gemäß der vorliegenden Erfindung
wird als nächstes
unter Hinweis auf 11 beschrieben, in der ein schematisches
Blockdiagramm dieses Ausführungsbeispiels
dargestellt ist. Der Antriebsmechanismus bei diesem Ausführungsbeispiel
ist ein Schlittenantriebsmechanismus zum Hin- und Herbewegen des
Druckkopfes eines seriellen Druckers in horizontaler Richtung längs einer Druckzeile.
Gleiche Bezugszeichen werden in den 1 und 11 benutzt,
um einander entsprechende Teile zu bezeichnen, und diese Teile werden nicht
noch einmal erläutert.
-
Der
Schlittenantriebsmechanismus 70 weist eine Motorantriebssteuerung 6,
einen Motortreiber 74 (anzumerken ist, daß ein solcher
Motortreiber normalerweise im Antriebsmechanismus 5 gemäß 5 eingeschlossen
ist, obwohl hier nicht gezeigt), und einen Schrittmotor 7 zum
Antrieb eines Schlittens 73 über einen Antriebskrafttransfermechanismus 71 (mit
einem Zahnriemen, Zahnrädern
oder anderen Mitteln) auf. Durch exaktes Ändern der Phasen des Motors 7 wird
die Stellung des Schlittens und die Schlittenbewegung exakt gesteuert.
-
Wenn
Zeitdaten vom Speicher 2 an den Zeitgeber 4 übermittelt
werden, zählt
der Zeitgeber 4 das Zeitintervall entsprechend den empfangenen
Zeitdaten und gibt ein Zeit-abgelaufen-Signal an den DMA-Controller 3 aus,
wenn das Zeitintervall abläuft. Der
DMA-Controller 3 sendet dann spezifische Daten vom Speicher 2 an
die Antriebssteuerung 6 des Antriebsmechanismus 70.
Die Antriebssteue rung 6 treibt den Motortreiber 74 entsprechend
diesen Steuerdaten, und der Schrittmotor 7 rotiert. Während der Rotation
des Schrittmotors 7 wird der Schlitten 73 mittels
des Antriebskrafttransfermechanismus 71 bewegt.
-
Im
Weg des Schlittens ist an der Ausgangsstellung (HP) des Schlittenbewegungsbereichs
ein Sensor 72 für
die Ausgangsstellung angeordnet. Dieser HP-Detektor 72 kann
ein Photodetektor, ein Ultraschalldetektor, ein mechanischer Meßfühler oder eine
sonstige Sensoreinrichtung sein.
-
Das
Ausgangssignal des HP-Detektors 72 wird an eine Antriebsbestätigungseinrichtung 50 angelegt.
Die Antriebsbestätigungseinrichtung 50 verfolgt
der Reihe nach die logische (errechnete) Schlittenposition und stellt
jegliche Verschiebung zwischen der tatsächlichen Schlittenposition
und der logischen Schlittenposition fest, wenn der HP-Detektor 72 den Schlitten
wahrnimmt. Wenn die Verschiebung einen spezifizierten Bereich übersteigt,
wird der CPU ein Unterbrechungssignal übermittelt. Wenn die CPU das
Unterbrechungssignal von der Antriebsbestätigungseinrichtung 50 erfaßt, läßt sie einen
spezifischen Fehlerbehandlungsprozeß ablaufen.
-
Das
in 11 gezeigte Ausführungsbeispiel wird unter Hinweis
auf 12 näher
erläutert. 12 ist
ein Funktionsblockschaltbild, welches den Betrieb der Antriebssteuervorrichtung
und des Schlittenantriebsmechanismus mehr im einzelnen beschreibt.
Die Zeit- und Steuerdatentabellen 10 bis 12 sind
im Speicher 2 gemäß 12 vorgesehen.
Die in diesen Tabellen gespeicherten Daten sind die Daten, die zum
Steuern des Motors gemäß der gewünschten
Bewegung des Schlittens erforderlich sind. Die Zeit- und Steuerdaten
werden entsprechend einem in der Figur nicht gezeigten Motorsteuerprogramm
erzeugt und im Speicher 2 gespeichert, ehe der Motorantriebsvorgang
beginnt.
-
Gemäß 12 speichert
die Zeitdatentabelle 10 die Zeitdaten, welche den Zeitpunkt
steuern, zu dem der Motorbetrieb umschaltet. Die Phasenmusterdatentabelle 11 (erste
Steuerdatentabelle) speichert die Phasenmusterdaten des dem Motor
bei jeder Änderung
des Betriebs zugeführten
Stroms, und die Phasenstromdatentabelle 12 (zweite Steuerdatentabelle)
speichert die Phasenstromdaten, die den Phasenstromfluß zum Motor
bei jeder Änderung
des Betriebs steuern.
-
Es
sei noch darauf hingewiesen, daß 12 zwei
Arten von Steuerdaten zeigt, die gespeichert werden; aber es können je
nach Bedarf mehr oder weniger Arten von Steuerdaten gespeichert
werden. Ferner können
diese Daten in einem Register oder einer anderen Speichereinrichtung
als im Speicher 2 gespeichert werden.
-
Die
Datentabellen 10 bis 12 werden von einer Zeitsteuereinheit 14 für Phasenänderung,
einem ersten Controller 16 (Phasenmustersteuerung) bzw. einem
zweiten Controller 17 (Phasenstromsteuerung) gesteuert,
die alle im DMA-Controller 3 enthalten sind. Die gelesenen
Daten werden wie bei den vorhergehenden Ausführungsbeispielen dem Zeitgeber 4 und
der Antriebssteuerung 6 zugeleitet. Der erste Sendevorgang
an den DMA-Controller 3 wird durch ein Startsignal von
der CPU 1 aktiviert. Danach wird die Zeitsteuereinheit 14 und
die Controller 16 und 17 der Reihe nach aktiv
gemacht, um die vom Zeitgeber 4 gesteuerten jeweiligen
Daten zu lesen und zu senden, wie schon gesagt.
-
Die
Zeitsteuereinheit 14 sendet zuerst Zeitdaten von der Zeitdatentabelle 10 an
den Zeitgeber 4. Nach Ablauf des von den Zeitdaten angezeigten Zeitintervalls
gibt der Zeitgeber 4 ein Zeit-abgelaufen-Signal an den
ersten Controller 16 und auch an die Antriebsbestätigungseinrichtung 50 aus.
Wenn er das Zeit-abgelaufen-Signal empfängt, liest der erste Controller 16 Phasenmusterdaten
aus der Phasenmusterdatentabelle 11 und sendet die Daten
an die Antriebssteuerung 6. Die Antriebssteuerung 6 gibt die
empfangenen Phasenmusterdaten an den Motortreiber 74 aus.
Als nächstes
liest der zweite Controller 17 Phasenstromdaten aus der
Phasenstromdatentabelle 12 und sendet sie an die Antriebssteuerung 6.
Die Antriebssteuerung 6 gibt die empfangenen Phasenstromdaten
an den Motortreiber 74 aus, und dann beginnt sich der Motor 7 zu
drehen. Wenn der Motor 7 zu drehen beginnt, veranlaßt der Antriebskrafttransfermechanismus 71,
daß der
Schlitten 73 beginnt, den Schlittenweg zu durchlaufen.
-
Wenn
das Senden der Phasenstromdaten endet, übergibt der zweite Controller 17 die
Steuerung an die Zeitsteuereinheit 14. Die Zeitsteuereinheit 14 liest
dann die nächsten
Zeitdaten und sendet sie an den Zeitgeber 4. Der Zeitgeber 5 gibt
ein Zeit-abgelaufen-Signal aus, wenn das spezifizierte Zeitintervall
vorüber
ist, wodurch der erste Controller 16 aktiv wird und die
nächsten
Phasenmusterdaten sendet. Danach setzt sich der gleiche Prozeß fort, und
damit wird der Motor 7 allmählich beschleunigt und bewegt
den Schlitten 73.
-
Der
Schlittenweg wird als nächstes
unter Hinweis auf 13 beschrieben. 13 zeigt
den Bewegungsbereich 81 des Schlittens, Druckbereich 82,
Nichtdruckbereich 83 sowie den Ort der Ausgangsstellung
eines typischen seriellen Druckers. Der größte Teil des Schlittenbewegungsbereichs
ist der Druckbereich 82. Drucken erfolgt mittels des in der
Fig. nicht gezeigten Druckkopfes, während sich der Schlitten 73 durch
den Druckbereich 82 bewegt. Der Druckbereich 82 ist
beispielsweise je nach Art des Druckers unterschiedlich, und aus
Gründen
der Einfachheit ist in 13 nur ein Druckbereich 82 dargestellt.
Ein an den Druckbereich nach rechts angrenzender spezifischer Bereich
ist ein Nichtdruckbereich 83. Der Schlitten 73 kann
auch durch den Nichtdruckbereich 83 bewegt werden, aber
Drucken ist dort verboten.
-
An
einer bestimmten, als Ausgangsstellung (abgekürzt "HP")
bekannten Stellung (entsprechend einer ersten Bezugsposition) im
Nichtdruckbereich 83 ist ein Detektor 72 für die Ausgangsstellung
angeordnet (einem Ortssensor gleichwertig) (siehe 11 und 12).
Wenn der Schlitten 73 über
den HP-Sensor bewegt wird, nimmt dieser den Schlitten 73 wahr
und ermöglicht
dadurch eine Bestätigung,
ob der Schlitten 73 tatsächlich in die Ausgangsstellung bewegt
wurde. Der HP-Detektor 72 gibt ein Erkennungssignal an
die Antriebsbestätigungseinrichtung 50,
wenn er den Schlitten erfaßt.
-
Der
Schlitten 73 wird durch das Antreiben des Motors 7 bewegt.
Um beispielsweise eine durchgehende Zeile zu drucken, bewegt sich
der Schlitten 73 vom rechten Ende des Druckbereichs 82 zum
linken Ende des Druckbereichs. Wenn das Drucken vollendet ist, kann
der Schlitten 73 entweder an dieser Position anhalten,
zum rechten Ende des Druckbereichs zurückkehren oder zu einer anderen
gewünschten
Stelle bewegt werden.
-
Wie
schon gesagt, wird das Bewegen des Schlittens 73 zum Drucken
dadurch bewerkstelligt, daß für eine gewünschte Bewegung
erforderliche Zeit- und Steuerdaten erzeugt und in einem Speicher gespeichert
werden. Die gespeicherten Steuerdaten werden dann von einem DMA-Controller
gelesen und an die Antriebssteuerung übermittelt. Das Erzeugen und
Speichern der Zeit- und Steuerdaten kann mittels einer CPU und eines
spezifischen Programms durchgeführt
werden.
-
Wie
im Fall des Druckens wird auch ein Schlittenantriebsvorgang, der
durchgeführt
wird, um zu bestätigen,
ob er richtig vollendet wurde (nachfolgend "Antriebszustandsbestätigungsprozeß") auch dadurch erzielt,
daß zunächst Zeit-
und Steuerdaten erzeugt und gespeichert werden und dann diese Daten
der Reihe nach mittels eines DMA-Controllers gelesen und an die
Antriebssteuerung gesendet werden. Diese Antriebszustandsbestätigung wird
vorzugsweise in einem regelmäßigen Intervall
durchgeführt,
um eine genaue Antriebssteuerung zu erreichen.
-
Beispielsweise
wird im Fall eines Tintenstrahldruckers ein vorgetäuschter
Tintenausstoßvorgang
(Reinigung) regelmäßig dann
durchgeführt, wenn
kein Drucken bewirkt wird, um zu verhindern, daß die Düsen des Druckkopfes durch angetrocknete Tinte
verstopfen, wenn das Intervall zwischen Druckvorgängen lang
ist. Der Schlitten wird also regelmäßig (zum Beispiel alle 6 bis
10 Sekunden) in eine Tintenempfangsstellung bewegt, bei der Tinte
in ein Tintengefäß ausgestoßen wird.
Das Tintengefäß ist normalerweise
in der Nähe
der Ausgangsstellung im Nichtdruckbereich 83 angeordnet.
Der Antriebszustandsbestätigungsprozeß kann deshalb
mit diesem scheinbaren Tintenausstoßvorgang kombiniert werden.
Es sei darauf hingewiesen, daß zwar
für beide Verfahren
der Schlittenantriebsvorgang der gleiche ist, aber der Bestätigungsprozeß für den Antriebszustand
muß parallel
zur Druckkopfsteuerung auf den Tintenausstoß durchgeführt werden.
-
Ein
Beispiel des Bestätigungsprozesses
für den
Antriebszustand soll nachfolgend unter Hinweis auf 14 beschrieben
werden. 14 ist ein Zustandsübergangsdiagramm
zum Erläutern
des Bestätigungsprozesses
für den
Antriebszustand.
-
Ehe
der in 14 gezeigte Prozeß beschrieben
wird, soll kurz auf eine typische Schlittenbewegung im Zusammenhang
mit der Antriebszustandsbestätigung
eingegangen werden.
-
Der
Schlitten wird zuerst an einer zweiten Bezugsposition (S in 13)
im Bereitschaftszustand angehalten. In diesem Zustand werden Steuer- und
Zeitdaten für
den Vorgang der Antriebszustandsbestätigung erzeugt und im Speicher
gespeichert. Wenn dann die CPU ein Startsignal an den DMA-Controller 3 ausgibt,
liest dieser die Steuerdaten aus dem Speicher und sendet sie an
den Zeitgeber bzw. die Antriebssteuerung. So beginnt die Antriebssteuerung
des Motors 7. Wenn der Motor angetrieben wird, bewegt sich
der Schlitten 73 allmählich aus
der zweiten Bezugsposition S nach rechts. Wenn der Schlitten die
Ausgangsstellung durchläuft,
gibt der HP-Sensor ein Erkennungssignal aus. Der Antriebszustand
wird auf der Grundlage des Erkennungssignals vom HP-Sensor bestätigt.
-
Als
nächstes
wird das Verfahren der Antriebszustandsbestätigung beschrieben. Im Bereitschaftszu stand 51,
wenn das Verfahren der Antriebszustandsbestätigung nicht läuft, sind
alle Kennzeichen und Zähler
usw. gelöscht.
Um das Verfahren der Antriebszustandsbestätigung zu starten, erzeugt die
CPU 1 Zeitdaten und Steuerdaten, um den Schlitten 73 in
die Ausgangsstellung für
das Verfahren der Antriebszustandsbestätigung zu bewegen und speichert
diese Daten in Tabellen 10 bis 12. Nach dem Speichern
dieser Daten aktiviert die CPU 1 die Zeitsteuereinheit 14 des
DMA-Controllers 3 (siehe 12) und
startet die Motorantriebssteuerung, damit der Schlitten bewegt wird.
Das Signal, mit dem die Antriebssteuerung gestartet wird, läßt gleichzeitig das
Verfahren der Antriebszustandsbestätigung anlaufen und eröffnet den
Untergrenzen-Bereitschaftszustand 52, wie in 14 gezeigt.
-
In
diesem Untergrenzen-Bereitschaftszustand 52 wird geprüft, ob die
berechnete, logische Position des Schlittens 73 einen unteren
Grenzwert erreicht hat, der für
die logische Position erlaubt ist, wenn die tatsächliche Position die Ausgangsposition HP
ist. Wenn das HP-Erkennungssignal erfaßt wird, ehe die logische Position
des Schlittens 73 den unteren Grenzwert erreicht, weiß man, daß die tatsächliche
Schlittenposition gegenüber
der logischen Schlittenposition stark nach rechts versetzt ist (in 13 gesehen),
und es wird festgestellt, daß ein
Antriebsfehler aufgetreten ist. Es wird also bestimmt, ob die Ausgangsstellung
HP wahrgenommen wird, ehe die logische Position den unteren Grenzwert
erreicht (HP-Erkennung 1). Ein Antriebsfehler wird erkannt, wenn
die Ausgangsstellung HP erfaßt
wird, ehe die logische Schlittenposition den unteren Grenzwert erreicht,
und dann wird ein Unterbrechungssignal an die CPU für einen
Fehlerbehandlungsprozeß ausgegeben
(Fehlerbehandlungsverfahren, Ausgabe INT Zustand 54). Wenn
die Ausgangsstellung HP bei der HP-Erkennung 1 nicht festgestellt
wird, wird der Untergrenzen-Bereitschaftszustand 52 fortgesetzt.
-
Wenn
die logische Position den unteren Grenzwert erreicht hat, ohne daß ein HP-Erkennungssignal
erfaßt
wurde; wird der Obergrenzen-Bereitschaftszustand 53 angenommen.
Ob die logische Position des Schlittens 73 den für die logische
Position erlaubten oberen Grenzwert, wenn die tatsächliche
Position die Ausgangsposition HP ist, erreicht hat, wird in diesem
Obergrenzen-Bereitschaftszustand 53 geprüft. Ist
das HP-Erkennungssignal noch nicht erfaßt, wenn die logische Position
des Schlittens 73 den oberen Grenzwert erreicht, weiß man, daß die tatsächliche
Schlittenposition gegenüber
der logischen Schlittenposition stark nach links versetzt ist (in 13 gesehen),
und es wird festgestellt, daß ein
Antriebsfehler aufgetreten ist.
-
Um
diesen Zustand zu erkennen, ob die Ausgangsstellung HP erfaßt ist,
wird bei jeder Phasenänderungszeit
geprüft,
bis die logische Position den oberen Grenzwert erreicht (HP-Erkennung
2). Wenn die Ausgangsstellung HP nicht erfaßt ist, bis der obere Grenzwert
erreicht ist, wird an die CPU 1 ein Unterbrechungssignal
ausgegeben, um die CPU 1 zu aktivieren und ein spezifisches
Fehlerbehandlungsverfahren ablaufen zu lassen (Zustand 54).
Wenn eine Fehlerunterbrechung an die CPU 1 angelegt wird,
zeigt die CPU 1 einen Antriebsfehler an, läßt ein geeignetes
Fehlerbehandlungsverfahren ablaufen und wartet auf die Berichtigung
des Fehlers (Zustand 56).
-
Wenn
die Ausgangsstellung HP im HP-Erkennungszustand 2 erfaßt wird,
weiß man,
daß die Verschiebung
zwischen der logischen Schlittenposition und der tatsächlichen
Schlittenposition innerhalb eines annehmbaren Bereiches liegt, und
ein normaler Beendigungsprozeß 55 läuft ab,
um das Verfahren der Antriebszustandsbestätigung normal zu beendigen.
Dieser normale Beendigungsprozeß 55 kann beispielsweise
nach der HP-Erkennung den Schlitten zum rechten Ende des Druckbereichs 82 bewegen und
erneut das Drucken ermöglichen
(Zustand 56).
-
15 ist
ein Funktionsblockdiagramm einer exemplarischen Antriebsbestätigungseinrichtung 50 gemäß dieser
Erfindung.
-
Die
Antriebsbestätigungseinrichtung 50 hat ein
Untergrenzenregister 61 zum Speichern des erlaubten unteren
Grenzwertes und ein Obergrenzenregister 65 zum Speichern
des oberen Grenzwertes. Die unteren und oberen Grenzwerte werden
von der CPU 1 über
den Datenbus 9 im Untergrenzenregister 61 bzw.
Obergrenzenregister 65 gespeichert. Die Antriebsbestätigungseinrichtung 50 weist
auch einen Zähler 63 auf,
der die Phasenänderungssignale (Zeit-abgelaufen-Signale) zusammenzählt. Der
Zähler 63 wird
durch ein Signal von einem Controller 60 gelöscht, ehe
das Verfahren der Antriebszustandsbestätigung gestartet wird. Der
Zählwert
des Zählers 63 wird
von Vergleichsgliedern 62 und 64 mit den Werten
des Untergrenzenregisters 61 bzw. des Obergrenzenregisters 65 verglichen.
Wenn der Zählwert des
Zählers 63 zu
dem Wert im Untergrenzenregister 61 oder im Obergrenzenregister 65 paßt, wird
ein Treffersignal an den Controller 60 ausgegeben.
-
Der
Controller 60 arbeitet in Übereinstimmung mit Daten, die
in einem Steuerregister 66 gespeichert sind, und wenn das
Verfahren der Antriebszustandsbestätigung ausgeführt worden
ist, wird dessen Zustand (das Ergebnis) in einem Zustandsregister 67 gespeichert.
Daten von der CPU 1 werden in das Steuerregister 66 geschrieben,
und die CPU 1 kann aus dem Zustandsregister 67 lesen.
Die CPU 1 kann auch den aktuellen Zählwert des Zählers 63 über den
Datenbus 9 lesen. Das Treffersignal, Phasenänderungssignale
(Zeit-abgelaufen-Signale), Ausgangsstellungssignal HP und weitere
Signale werden in den Controller 60 eingegeben, der Antriebsfehler
auf der Grundlage des Treffersignalausgabezeitpunktes vom Vergleichsglied 64 und
dem Zeitpunkt erfaßt,
an dem das Ausgangsstellungssignal HP empfangen wird.
-
Die
Arbeitsweise des Controllers 60 soll anhand von 13, 15 und 16 erläutert werden. 16 ist
ein Ablaufdiagramm des Verfahrens der Antriebszustandsbestätigung des
Controllers 60 der Antriebsbestätigungseinrichtung 50.
Es sei angenommen, daß der
Schlitten 73 anfänglich
an der Position S in 13 angehalten ist.
-
Vor
der Aufnahme des Verfahrens der Antriebszustandsbestätigung gibt
die CPU 1 die Zeit- und Steuerdaten in den Speicher 2 ein,
wie vorstehend beschrieben. Zur gleichen Zeit löscht die CPU 1 auch
das Untergrenzenregister 61, das Obergrenzenregister 65,
das Steuerregister 66 und den Zähler 63. Die im Obergrenzenregister 65 und
im Untergrenzenregister 61 eingestellten Werte können je
nach dem gewünschten
Grad an Genauigkeit der Fehlererkennung frei festgelegt werden.
Bei diesem Beispiel ist die untere Grenzposition auf "1000" im Untergrenzenregister 61 und
die obere Grenzposition auf "1020" im Obergrenzenregister 65 gesetzt.
-
Wenn
die CPU 1 die Zeitsteuereinheit 14 im DMA-Controller 3 aktiviert,
aktiviert sie gleichzeitig auch die Antriebsbestätigungseinrichtung 50 (S200). Auf
der Grundlage von Zeitdaten von der Zeitsteuer einheit 14 (siehe 12)
gibt der Zeitgeber 4 in jedem Phasenänderungszeitpunkt ein Zeitabgelaufen-Signal
aus. Aufgrund dieses Zeit-abgelaufen-Signals werden Phasenmuster-
und Phasenstromdaten vom ersten Controller 16 und zweiten
Controller 17 an die Antriebssteuerung 6 gesandt.
Die Antriebssteuerung 6 steuert dann auf der Basis dieser
Steuerdaten den Motor 7 an, und der Schlitten 73 beginnt, sich
in die Ausgangsstellung HP zu bewegen.
-
Sobald
die Antriebsbestätigungseinrichtung 50 mit
dem Verfahren der Antriebszustandsbestätigung beginnt, wird der Zähler 63 immer
dann inkrementiert, wenn der Zeitgeber 4 das Zeit-abgelaufen-Signal ausgibt (S201,
S202). Dann wird geprüft, ob
der HP-Detektor 72 ein Erkennungssignal ausgibt (S203 ergibt
NEIN). Wenn das HP-Erkennungssignal nicht ausgegeben wird, werden
die Werte vom Zähler 63 und
vom Untergrenzenregister 61 verglichen (S204). Hat der
Wert des Zählers 63 den
Wert der unteren Grenze nicht erreicht (S204 ergibt NEIN), wird der
gleiche Prozeß wiederholt
(das heißt
die Schritte S201, S202, S203 und S204).
-
Anmerkung:
Die Erfassung des HP-Erkennungssignals zu diesem Zeitpunkt bedeutet,
daß der Schlitten 73 tatsächlich die
Ausgangsstellung HP erreicht hat, obwohl die logische Position des
Schlittens 73 nicht die Einstellung der unteren Grenze
von 1000 erreicht hat. Deshalb wird ein Fehler erkannt (S203 ergibt
JA), und es wird ein Unterbrechungssignal an die CPU 1 ausgegeben
(S209). Dann werden die Register 61, 65 gelöscht (S211)
und ein Bereitschaftszustand angenommen (S200). Anmerkung: Die CPU 1 kann
auf den Inhalt des Zählers 63 und
des Zustandsregisters 67 mittels eines Unterbrechungsfehlerbehandlungsprozesses
Bezug nehmen.
-
Wenn
der Zählwert
des Zählers 63 1000
erreicht, paßt
der Wert des Untergrenzenregisters 61 zum Zählwert des
Zählers 63 (S204
ergibt JA). Der Obergrenzen-Bereitschaftszustand 53 (siehe 14)
wird daher angenommen, und es wird auf das nächste Zeit-abgelaufen-Signal
gewartet (S205 ergibt NEIN). Wenn ein Zeit-abgelaufen-Signal empfangen
wird (S205 ergibt JA), wird der Zähler 63 inkrementiert
(S206), und es wird geprüft,
ob das HP-Erkennungssignal ausgegeben wird (S207). Wenn das HP-Erkennungssignal
nicht ausgegeben wird (S207 ergibt NEIN), wird der Wert im Obergrenzenregister 65 mit
dem Zählwert
des Zählers 63 verglichen
(S208). Wenn die Werte nicht gleich sind (S208 ergibt NEIN), werden
die gleichen Verfahrensschritte wiederholt (das heißt die Schritte
S205, S206, S207, S208).
-
Wenn
das HP-Erkennungssignal erfaßt
wird (S207 ergibt JA), hat der Schlitten 73 die tatsächliche Ausgangsstellung
HP innerhalb des Bereichs
Untergrenze (1000) < logische Position
(Zählwert) < Obergrenze (1020)
erreicht.
-
Die
logische und die tatsächliche
Schlittenposition liegen also beide innerhalb eines spezifizierten
Toleranzbereichs, es wird festgestellt, daß der Antrieb normal ist, der
Zähler 63 und
das Register 65 werden gelöscht (S210), und der Bereitschaftszustand 51 (siehe 14)
wird angenommen.
-
Wenn
der Zählwert
1020 erreicht, paßt
der im Obergrenzenregister 65 gesetzte Wert mit dem Zählwert des
Zählers 63 zusammen
(S208 ergibt JA). Das bedeutet, daß der Schlitten, obwohl er
in die logische obere Grenzposition 1020 hätte bewegt werden sollen, nicht
tatsächlich
die Ausgangs position erreicht hat. Deshalb wird ein Antriebsfehler
erfaßt.
-
Wenn
ein Fehler festgestellt wird, nachdem die Ausgangsstellung HP erfaßt wurde,
kann eine Unterbrechung an die CPU 1 ausgegeben werden, die
dann aufhört,
den Motor 7 anzusteuern, oder der Motor 7 kann
in eine bestimmte Stellung angetrieben werden, um eine Fehlerkorrektur
zu ermöglichen.
Um den Prozeß normal
zu beendigen, können
die Zeit- und Steuerdaten, die für
das Antriebszustandsbestätigungsverfahren
erzeugt und im Speicher 2 gespeichert werden, Daten umfassen,
um den Schlitten in eine spezifische Position zurückzubewegen
(zum Beispiel die zweite Bezugsposition, die in 13 mit S
gekennzeichnet ist), wenn die Schrittzählung (identisch mit der vom
Zähler 63 verfolgten
Zählung)
die Obergrenze 1020 oder 1021 übersteigt.
-
Als
nächstes
wird unter Hinweis auf 17 und 12 das
Verhältnis
zwischen der Schlittenantriebssteuerung (Motorantriebssteuerung)
und der Antriebsbestätigungseinrichtung
beschrieben.
-
17 zeigt
die Zustandsübergänge der kontinuierlichen
Steuerschleife, beginnend mit dem Empfang des Startbefehls für den Motorantrieb
bis zum Setzen der Änderungszeitdaten,
Phasenmusterdaten, Phasenstromdaten und dann dem Setzen der nächsten Änderungszeitdaten
sowie das Verhältnis zwischen
dem Verfahren der Antriebszustandsbestätigung und dieser Operation.
-
Wenn
die CPU 1 den Beginn der Antriebssteuerung für das Verfahren
der Antriebszustandsbestätigung
anzeigt, werden die ersten Zeitdaten in der Zeitdatentabelle 10 gelesen
und an den Zeitgeber 4 übermittelt.
Der Zeitgeber 4 überwacht
den Verlauf des spezifischen Zeitintervalls anhand der empfangenen
Zeitdaten (Zustand 1: 57).
-
Wenn
der Zeitgeber 4 den Ablauf des spezifischen Zeitintervalls
erfaßt,
gibt er ein Zeit-abgelaufen-Signal
aus. Auf der Grundlage dieses Signals liest der erste Controller 16 die
ersten Phasenmusterdaten aus der Phasenmusterdatentabelle 11 und sendet
die Phasenmusterdaten an die Antriebssteuerung 6 (Zustand
2: 58). Die Antriebsbestätigungseinrichtung 50 inkrementiert
ihren Zähler 63 zur
gleichen Zeit auch auf der Grundlage des Zeit-abgelaufen-Signals.
-
Wenn
das Senden der ersten Phasenmusterdaten endet, liest der zweite
Controller 17 die ersten Phasenstromdaten aus der Phasenstromdatentabelle 12 und
sendet die Phasenstromdaten an die Antriebssteuerung 6.
Die Umdrehung des Motors 7 beginnt, wenn dies vollendet
ist (Zustand 3: 59).
-
Wenn
das Senden der Phasenstromdaten endet, wird die Zeitsteuereinheit 14 erneut
angesteuert, um die nächsten
Zeitdaten aus der Zeitdatentabelle 10 zu lesen und an den
Zeitgeber 4 zu senden (Zustand 1: 57). Der Motor 7 wird
weiterhin auf der Grundlage der ersten Phasenmuster- und Phasenstromdaten
angesteuert, bis der Zeitgeber 4 anhand der zweiten Daten
ein Zeit-abgelaufen-Signal
ausgibt.
-
Wenn
der Zeitgeber 4 erkennt, daß das spezifische Zeitintervall
abgelaufen ist, gibt er ein Zeitabgelaufen-Signal aus. Auf der Grundlage
dieses Signals liest der erste Controller 16 die nächsten (zweiten)
Phasenmusterdaten und sendet sie an die Antriebssteuerung 6 (Zustand
2: 58). Zur gleichen Zeit inkrementiert die Antriebsbestätigungseinrichtung 50 den
Zähler 63 auf
der Grundlage des Zeit-abgelaufen-Signals. Die nächsten (zweiten) Phasenstromdaten
werden dann vom zweiten Controller 17 gelesen und weitergeleitet
(Zustand 3: 59). Der Motor 7 wird folglich aufgrund
der zweiten Phasenmuster- und Phasenstromdaten angesteuert, bis
das nächste (dritte)
Zeit-abgelaufen-Signal ausgegeben wird.
-
Aus
der vorstehenden Beschreibung ist erkennbar, daß die ersten Zeitdaten einen
Scheinwert darstellen für
die Einstellung der ersten Phasenmuster- und Phasenstromdaten. Der
Motor 7 wird mit diesem ersten Phasenmuster und Phasenstrom
angetrieben, bis das von den zweiten Zeitdaten spezifizierte Zeitintervall
vorüber
ist und das Phasenmuster geändert
wird. Ebenso wird der Motor 7 als nächstes auf der Grundlage des
neu gesetzten Phasenmusters und Phasenstroms bis zur nächsten Phasenänderungszeit
angetrieben.
-
Der
Antrieb des Motors 7 beginnt also mit der zweiten Phasenänderungszeit,
wie in 6(A) gezeigt, und der Motor
wird entsprechend spezifischen Zeitdaten und Steuerdaten gesteuert.
Der Zähler 63 der
Antriebsbestätigungseinrichtung 50 wird
immer dann inkrementiert, wenn das Zeitabgelaufen-Signal ausgegeben
wird, und der Zählwert
wird mit den Werten im Untergrenzenregister 61 und im Obergrenzenregister 65 verglichen.
-
Es
sei darauf hingewiesen, daß die
vorstehend beschriebene Operation der Antriebsbestätigung von
einem in einem Speicher gespeicherten Programm gesteuert wird. Im
Fall eines Druckers ist zum Beispiel ein Sensor für die Ausgangsstellung normalerweise
an einem Ort angeordnet, der vom Druckbereich getrennt ist, und
der Schlitten wird so angetrieben, daß er von dem Sensor für die Ausgangsstellung
mindestens einmal pro Zeiteinheit erfaßt wird, um den Schlittenbetrieb
zu bestätigen.
Die Frequenz dieses Verfahrens der Antriebszustandsbestätigung kann
vom Entwurfsingenieur frei bestimmt werden, wenn er das Antriebssteuerprogramm
schreibt. Zum Beispiel kann durch regelmäßige Durchführung dieser Operation in einem
bestimmten Intervall der Zeitpunkt des Bestätigungsprozesses auch entsprechend
dem Betrieb des tatsächlichen
Antriebsmechanismus geändert
werden.
-
Wenn
die erste Bezugsposition auf die Ausgangsposition vom Druckbereich
entfernt gesetzt wird, kann außerdem
ein Fehler sofort erfaßt
werden, wenn die Ausgangsposition erfaßt wird, während gedruckt wird. Allerdings
sollte klar sein, daß die
erste Bezugsposition nicht notwendigerweise außerhalb des Druckbereichs liegt.
Eine erste Bezugsposition kann auch in den Druckbereich verlegt
werden, wenn ein Sensor dort angeordnet wird, so daß das Verfahren
der Antriebszustandsbestätigung
während
des Druckens durchgeführt
werden kann.
-
Ferner
können
mehrere Positionssensoren mit entsprechenden Antriebsbestätigungseinrichtungen
vorgesehen sein. So könnten
Positionssensoren beispielsweise an beiden Seiten der Bewegungsbahn
vorgesehen sein, mehr als einer könnte im Druckbereich angeordnet
sein, oder Sensoren könnten
zu beiden Seiten des Bewegungsweges innerhalb des Druckbereichs
angeordnet sein. Die Anordnung einer Vielzahl von Positionssensoren
und Antriebsbestätigungseinrichtungen
ermöglicht
eine noch mehr ins einzelne gehende präzise Bestätigung der Antriebssteuerung
und kann die Zuverlässsigkeit weiter
verbessern.
-
Außerdem wird
in einem regelmäßigen Intervall
in einem Tintenstrahldrucker ein Scheinvorgang des Tintenausstoßens durchgeführt, um
normales Drucken zu gewährleisten.
Durch Anordnen eines Behälters
für die
durch dieses Scheinausstoßen
ausgestoßene
Tinte in der Nähe
der Ausgangsstellung kann der Schlittenantrieb für den Scheinausstoß von Tinte
auch für
das Verfahren der Antriebszustandsbestätigung genutzt werden.
-
Es
sei noch erwähnt,
daß das
obige Verfahren der Antriebszustandsbestätigung unter Hinweis auf einen
Schlittenantriebsmechanismus für
einen Drucker beschrieben wurde, daß die Erfindung aber nicht
auf diesen Fall begrenzt ist. Der erfinderische Gedanke könnte sowohl
hinsichtlich der Antriebssteuerung als auch des Verfahrens der Antriebszustandsbestätigung auf
praktisch jedes Gebiet angewandt werden, wo eine Präzisionssteuerung
des Antriebsmechanismus erforderlich ist, einschließlich eines
Druckpapiertransportmechanismus, eines Rechnungstransportmechanismus
in einem Geldautomaten, eines Antriebsmechanismus für einen
Magnetkopf oder sonstigen Kopf, Kartenlese- und Abtastgeräte. Es liegt
auf der Hand, daß der
Ort der ersten und zweiten Bezugsposition auf der Grundlage der Kenntnis
und Praxis auf dem jeweiligen Gebiet ordnungsgemäß bestimmt werden sollte.
-
Auch
die vorstehenden Ausführungsbeispiele
sind anhand eines Schrittmotor-Antriebsmechanismus und eines Druckkopf-Antriebsmechanismus
beschrieben worden. Aber wie schon gesagt, kann die Erfindung auch
auf andere Antriebsmechanismen angewandt werden, beispielsweise
diejenigen, die einen Linearmotor, Ultraschalloszillatoren, Elektromagnete
oder eine Kombination derselben benutzen. Die für diese Antriebsmechanismen
spezifischen Steuerdaten können
außerdem
zu Zeitpunkten geliefert werden, die für den Antriebsmechanismus spezifisch sind,
wofür die
DMA-Steuerung gemäß der vorliegenden
Erfindung benutzt wird, so daß die
Steuerung des Antriebsmechanismus, sobald der Antrieb startet, ohne
Beteiligung der CPU fortgesetzt werden kann.