-
Die vorliegende Erfindung betrifft
Positionscodier-/-decodier-Vorrichtungen zum Überwachen der Position von
Motorwellen in medizinischen Infusionspumpen.
-
Hintergrund
der Erfindung
-
Die Verabreichung von intravenösen medizinischen
Fluiden an einen Patienten ist im Stand der Technik wohlbekannt.
Typischerweise wird eine Lösung,
wie etwa Salzlösung,
Glucose oder Elektrolyt, die in einem Glasbehälter oder einem flexiblen Behälter enthalten
ist, durch eine Leitung, wie etwa einen intravenösen (IV-) Schlauch aus Polyvinylchlorid (PVC),
die bzw. der über
einen Katheter an einen Patienten angeschlossen ist, in das Venensystem
des Patienten eingeführt.
-
Oftmals wird die Infusion des Fluids
unter Schwerkrafteinwirkung durchgeführt, und die Durchflußrate wird
durch eine Rollenklemme gesteuert, die so eingestellt ist, daß sie das
Durchflußlumen
des IV-Schlauches einengt, bis die gewünschte Durchflußrate erhalten
ist.
-
Es ist auch bekannt, den Fluß aus dem
Behälter
zum Patienten mit anderen Mitteln als einer Rollenklemme zu regulieren.
Allgemein setzt sich die Verwendung einer elektronisch gesteuerten
Infusionspumpe durch. Solche Infusionspumpen umfassen beispielsweise
Pumpen vom Peristaltiktyp und Pumpen vom Ventiltyp. Pumpen vom Ventiltyp
verwenden Pumpenkammern sowie vor- und nachgeschaltete Ventile,
welche das Fluid sequentiell weiterbewegen.
-
Pumpen vom Peristaltiktyp weisen
typischerweise eine Anordnung von winkelmäßig beabstandeten Nocken auf,
welche mit Druckfingern verbundene Nockenstößel antreiben. Diese Bauelemente
wirken derart zusammen, daß sie
den Druckfingern eine lineare Wellenbewegung mitteilen.
-
Diese lineare Wellenbewegung wird
dazu verwendet, eine Kraft auf den IV-Schlauch aufzubringen, welcher
die Bewegung an das Fluid im IV-Schlauch weitergibt, so daß das Fluid
gefördert wird.
Ein alternativer Typ einer Peristaltikpumpe wendet eine Vielzahl
von Rollenelementen an, welche über
den IV-Schlauch abrollen, um die Bewegung an das Fluid in dem IV-Schlauch
weiterzugeben.
-
Solche Infusionspumpen beinhalten
verschiedene Motoren. Beispiele für solche Motoren umfassen Antriebsmotoren,
welche die Pumphardware antreiben, und Schlauchlademotoren, welche Schlauchladehardware
antreiben. Bei solchen Antriebsmotoren kann es sich um Motoren mit
regelbarer Drehzahl handeln.
-
Die genaue Überwachung der Motoren solcher
Infusionspumpen mit geschlossenen Regelsystemen ist in vielen Bereichen
wünschenswert.
Beispielsweise besteht bei Infusionspumpen des Standes der Technik
die Möglichkeit,
daß sich
mechanische Effekte während
der Pumpperioden auf die Drehung des Motors auswirken.
-
Solche mechanischen Effekte können beispielsweise
durch Temperaturschwankungen, eine variable Batterieleistung, Motorreibung,
Unregelmäßigkeiten
des Schlauches und maximale Drehmomentanforderungen hervorgerufen
werden. Bei ihrer Erfassung können
solche mechanische Effekte abgestellt werden, indem die dem Motor
zugeführte Leistung
so eingestellt wird, daß die
Drehzahlschwankung kompensiert wird.
-
Ein weiterer Bereich, in dem eine
genaue Überwachung
wichtig ist, liegt in der Überwachung der
Richtung und Drehung des Motors. Beispielsweise kann die Drehrichtung
von Pumpenmotoren aufgrund eines nicht ordnungsgemäß angelegten
Ansteuersignals anormal sein. Beim Auftreten eines solchen anormalen
Betriebs ist es wünschenswert,
diesen anormalen Betrieb anzuzeigen, damit eine Korrektur vorgenommen
werden kann.
-
Die Verwendung von geschlossenen
Regelsystemen, die Positionsaufnehmer auf der Motorwelle zum Überwachen
von Infusionspumpenmotoren anwenden, ist im Stand der Technik bekannt.
Solche elektromechanische Positionscodier-/-decodiervorrichtungen
weisen im allgemeinen einen Quadratur-Wellencodierer bzw. Quadratur wellengeber
auf, dessen zwei Ausgänge
die Anwesenheit bzw. Abwesenheit einer Markierung oder eines Flags
abtasten, um Motorwellen-Positionsinformationen in Bezug auf einen
Anfangspunkt anzugeben.
-
Die Verwendung von zwei Kanälen, die
Quadratursignale erzeugen, ermöglicht
es, die Richtung wie auch den Betrag der Bewegung zu überwachen, und
ist ebenfalls im Stand der Technik bekannt. Der Auflösungsgrad
der Überwachungsinformationen wird
durch die Anzahl von Flags auf dem Codierrad bestimmt. Ein Decoder,
wie etwa ein Vor-Rückwärts-Zähler mit
Vorschaltung einer geeigneten Zustandsdecodierschaltung, wird zum
Verarbeiten der Signale vom Codierer verwendet.
-
Die Zustands-Decodierlogik tastet
die Eingangssignale mit einer Rate ab, durch die gewährleistet
ist, daß bei
der maximalen Signalfrequenz aufeinanderfolgende Zustände zuverlässig abgetastet werden.
Der Ausgang des Vor-Rückwärts-Zählers stellt
Positionsinformationen bezogen auf die Ausgangsposition zur Verfügung.
-
Derartige Motorwellencodier-/-decodiervorrichtungen
des Standes der Technik sind jedoch mit mehreren Nachteilen behaftet.
Die Eingangssignale sind asynchron zum Taktgeber des Decoders, und wenn
die Zustandsdecodiererlogik die Eingangssignale an der Signalflanke
abtastet, kann der Decoder in einen metastabilen Zustand übergehen,
der unbestimmt ist und zu einer unrichtigen Aktualisierung der Position
führen
kann.
-
Während
die Wahrscheinlichkeit des Eintretens einer Metastabilität durch
geeignete digitalisierte Vorgehensweisen, die auf diesem Fachgebiet
bekannt sind, auf akzeptable Niveaus reduziert werden kann, erhöht der Einsatz
dieser Vorgehensweisen die Kosten solcher Systeme.
-
Es besteht folglich ein Bedarf nach
einer Motorwellencodier-/-decodiervorrichtung, welche die Entstehung
einer Metastabilität
während
Zustandsübergängen der
Signale von einem Quadratur-Wellengeber vermeidet. Der Codier-/Decodiervorrichtung sollte
des weiteren auf effektive Weise Drehrichtungsinformationen erfassen.
Des weiteren sollte eine solche Vorrichtung die Verwendung eines
zusätzlichen
Zählers
oder Takt gebers vermeiden. Die Vorrichtung sollte diese Vorteile
in einer kostengünstigen
und wirkungsvollen Bauart zur Verfügung stellen.
-
Zusammenfassung
der Erfindung
-
Die vorliegende Erfindung stellt
eine Codier-/Decodiervorrichtung zur Verfügung, die auf effektive Weise
Drehrichtungsinformationen erfaßt.
Die vorliegende Erfindung beseitigt die Notwendigkeit einer separaten
Schaltung zum Zählen
von Zustandsübergängen der
Codier-/Decodiervorrichtung. Die vorliegende Erfindung stellt diese
Vorteile in einer wirkungsvollen, kostengünstigen Bauart zur Verfügung.
-
Die vorliegende Erfindung erzielt
diese Vorteile durch die Nutzung eines Zustandsübergangs eines ersten Sensors
zum Initiieren einer Abtastprobe eines Konstantsignals von einem
zweiten Sensor, das der Mitte eines Flags oder eines Sektors entspricht,
welcher das Blockieren von Licht bewirkt.
-
Kurzbeschreibung
der Zeichnung
-
1 ist
eine perspektivische Ansicht einer Infusionspumpe, in der die vorliegende
Erfindung angewendet werden kann;
-
2 ist
eine perspektivische Ansicht eines Bereichs der Pumpenhardware-Anordnung
der Infusionspumpe in 1;
-
3 ist
eine auseinandergezogene Ansicht eines weiteren Bereichs der Infusionspumpenhardware-Anordnung
der Infusionspumpe in 1;
-
4 ist
eine auseinandergezogene Ansicht einer gemäß den Prinzipien der vorliegenden
Erfindung ausgeführten
Codiereranordnung;
-
5 ist
eine auseinandergezogene Aufrißansicht
eines gemäß den Prinzipien
der vorliegenden Erfindung ausgeführten Codierrades und von Sensoren;
-
6 ist
eine Schemazeichnung der Zustandswellenform einer herkömmlichen
Codier-/Decodiervorrichtung;
-
7 ist
eine Schemazeichnung der Zustandswellenform einer gemäß den Prinzipien
der vorliegenden Erfindung ausgeführten Codier-/Decodiervorrichtung;
und
-
8 ist
ein Ablaufdiagramm eines Überwachungsverfahrens
gemäß den Prinzipien
der vorliegenden Erfindung.
-
Detaillierte
Beschreibung einer bevorzugten Ausführungsform
-
Unter Bezugnahme auf 1 ist eine Infusionspumpe, bei der die
vorliegende Erfindung verwendet werden kann, allgemein unter 10 gezeigt.
Die Infusionspumpe 10 kann an einen standardmäßigen IV-Ständer 12 angeklemmt
werden. Die Infusionspumpe 10 weist einen Hauptkörper- bzw.
Gehäusebereich 14 und
mindestens einen Pumpenmodulbereich 16 auf. Bei der vorliegend
abgebildeten und beschriebenen Ausführungsform sind zwei Pumpenmodulbereiche 16 vorgesehen.
-
Am oberen Umfang des Gehäusebereichs 14 ist
ein Traggriff 20 ausgebildet. Das Gehäuse 14 weist des weiteren
einen Flüssigkristallanzeige (LCD)-Bereich 23 auf,
der dazu verwendet wird, dem Anwender verschiedene Informationen über die
Infusionspumpe 10 mitzuteilen, und eine Anwenderschnittstelle
mit der Infusionspumpe 10 zur Verfügung zu stellen. Das Gehäuse 14 weist
Dateneingabetasten 25 auf. Das Pumpenmodul 16 weist
eine Schlauchladepassage 27 und einen Vakuumfluoreszenz-Displaybereich 29 auf.
Die Schlauchladepassage 27 wendet eine weiter unten beschriebene
automatische Schlauchladeeinrichtung an.
-
Der Gehäusebereich 14 weist
einen Slave-Mikroprozessor auf, der einem Master-Mikroprozessor untergeordnet ist. Bei
einer bevorzugten Ausführungsform
ist der Master-Mikroprozessor ein 80C186 EB, der von Intel Corporation,
Santa Clara, California verfügbar
ist, und der Slave-Mikroprozessor ist ein 80C552, der von Phillips Semiconductors, Sunnyvale,
California verfügbar
ist. Die Pumpenmodule 16 weisen des weiteren einen Pumpenmodul-Mikroprozessor
auf.
-
Bei einer bevorzugten Ausführungsform
ist der Pumpenmodul-Mikroprozessor ein 68 HC11, der von Motorola,
Schaumburg, Illinois verfügbar
ist. Der Pumpenmodul-Mikroprozessor
beinhaltet Software in einem Festwertspeicher (ROM), der die unten
beschriebenen Überwachungsfunktionen
ansteuert.
-
Wie in den 2 und 3 gezeigt
ist, ist die Schlauchlade-Untereinheit auf zwei Wellen gelagert. Diese
zwei Wellen sind die Schlauchlade-Nockenwelle 32 und die
Schlauchlade-Vorgelegewelle 34. Die Schlauchlade-Vorgelegewelle 34 stellt
eine Achse zur Verfügung,
um welche die von der Nockenwelle 32 angetriebenen Bauteile
drehen. In einer stromaufwärtigen
Richtung entlang der Vorgelegewelle 34 sind die am weitesten
außen
liegenden und damit in Verbindung stehenden Elemente die stromabwärtigen Schlauchladeklinken 36.
Die stromabwärtigen Schlauchladeklinken 36 bestehen
jeweils aus einem Ringkörper 38,
der dazu ausgelegt ist, lagefest auf der Schlauchlade-Vorgelegewelle 34 zu
sitzen.
-
In Vorwärtsrichtung vom Klinkenringkörper 38 erstreckt
sich der Klinkenarm 40. Der Klinkenarm 40 weist
einen im wesentlichen geradlinigen Bereich 42 auf sowie
einen bogenförmigen
Bereich 44, die sich vom Klinkenring 38 nach außen und
unten erstreckt. Die Klinkenspitze 46 umfaßt eine
Vielzahl von Bereichen. Die Innenseite der Klinkenspitze 46 begrenzt
eine horizontale Schlaucheingriffsfläche 48, eine abgewinkelte
Schlaucheingriffsfläche 50,
eine vertikale Schlaucherfassungsfläche 52, und eine horizontale
Schlauchladefehler-Auslösefläche 54.
-
Die Außenseite der Klinkenspitze 46 begrenzt
eine nach außen
gewendete Schlauchabweisefläche 55.
Diese Flächen
wirken zusammen mit einer stromabwärts angeordneten Andruckplatte
(nicht gezeigt). Die Formgebung des bogenförmigen Bereichs 44 der
Klinke 36 ist derart, daß beim vollständigen Absenken
der Klinke 36 der Schlauch an der stromabwärts angeordneten
Andruckplatte festgekeilt ist. Die Bauform und Funktion der Schlauchladeklinkenspitze 46 wiederholen
sich an der Unterkante einer oberen Pumpenbacke 57.
-
Wenn eine Bedienperson einen Schlauch
in die Infusionspumpe 10 lädt und den Schlauchladezyklus
mit Hilfe eines geeigneten Betätigungselementes
betätigt,
werden die Schlauchladeklinkenspitzen 46 über den
Schlauch in der Schlauchladepassage 27 abgesenkt, die in
Kombination mit dem Absenken der oberen Backe 57 dazu dient,
die Schlauchladepassage 27 an der Außenseite der Infusionspumpe 10 vollständig abzuschließen.
-
Falls daß ein Schlauch teilweise in
die Infusionspumpe 10 eingesetzt ist, aber vollständig außerhalb
der Schlauchladepassage 27 verbleibt, bewirkt die Schlauchabweisefläche 55 ein
Ausstoßen
des Schlauches aus der Infusionspumpe 10. Falls ein Schlauch
teilweise in die Schlauchladepassage 27 geladen wurde,
hilft die Ladefehler-Auslösefläche 54 beim
Einklemmen des Schlauches.
-
Wenn der Schlauch in den Schlauchladepassage 27 eingesetzt,
aber nicht vollständig
in die Infusionspumpe 10 eingezogen wurde, dient die Schlaucherfassungsfläche 52 dazu,
den Schlauch nach hinten zu ziehen und somit ein ordnungsgemäßes Laden
des Schlauches durchzuführen.
Die Kombination aus Schlauchabweisefläche 44, Ladefehler-Auslösefläche 54 und
Schlaucherfassungsfläche 52 stellt eine
scharfe Abgrenzung zwischen den verschiedenen Ladekonfigurationen
zur Verfügung.
-
Die vertikale Schlaucherfassungsfläche 52 arbeitet
darüber
hinaus in Kombination mit der abgewinkelten Schlaucheingriffsfläche 50 und
der horizontalen Schlaucheingriffsfläche 48, um den Schlauch
sicher in der Infusionspumpe 10 zu halten. Diese Kombination
hilft auch dabei, eine Verformung des Schlauches durch ein Zusammenwirken
der abgewinkelten Fläche 50 und
der horizontalen Fläche 48 zur
Verfügung
zu stellen, um den Schlauch sicher in der Infusionspumpe 10 festzulegen.
-
Unter Bezugnahme auf 3 sind zwei Schrägstirnräder 59, 61 in
einer zueinander senkrechten Anordnung vorgesehen, um eine Drehung von
einem Schlauchlademotor 63 auf die querliegende Schlauchlade-Nockenwelle 32 zu übertragen.
Der Schlauchlademotor 63 ist ein Motor.
-
Der Schlauchlademotor 63 weist
des weiteren ein Untersetzungsgetriebe 65 auf, das die
Funktion hat, ein ausreichendes Drehmoment zum Drehen der Nockenwelle 32 gegen
den Widerstand zur Verfügung
zu stellen, der durch die mit dieser in Berührung stehenden und auf der
Vorgelegewelle 34 sitzenden Bauteile auf der Nockenwelle
entsteht. Unter Bezugnahme auf 4 erstreckt
sich eine Schlauchlademotorwelle 67 vom Schlauchlademotor 63 nach
vorn und durchsetzt die Schlauchlademotorhalterung 69 durch
eine mittige Aussparung 71.
-
Die Schlauchlademotorwelle 67 weist
eine in ihr ausgebildete Abflachung 73 auf, welche die
Funktion hat, einen Sitz für
die Schlauchlade-Antriebsradstellschraube 75 zur Verfügung zu
stellen, die durch eine mit Gewinde versehene Stellschraubenöffnung 77 im
Schlauchlade-Antriebsrad 59 eingesetzt ist und somit das
Schlauchlade-Antriebsrad 59 drehfest
an der Schlauchlademotorwelle 67 befestigt.
-
Unter erneuter Bezugnahme auf 3 ist das Schlauchlade-Antriebsrad 59 ein
Schrägzahnrad,
bei dem die Zähne
um dessen Umfangsseite angeordnet sind. Diese Zähne greifen in entsprechende Zähne auf
der Oberfläche
des Schlauchlade-Nockenwellenrades 61 ein, so daß sie eine
senkrechte Betätitung
der querliegend dazu angeordneten Nockenwelle 32 durch
den in Längsrichtung
angeordneten Schlauchlademotor 63 ermöglichen.
-
Es ist ein Handrad 79 vorgesehen,
das ein Gehäuse
für eine
verschwenkbare Kupplungslasche 80 aufweist. Im Betrieb
führt dann
eine Betätigung der
Kupplungslasche 80 dazu, daß die Nockenwelle 32 mit
Hilfe eines Handrades 79 von Hand frei gedreht werden kann,
ohne daß das
Nockenwellenrad 61 mitgedreht wird.
-
Die Nockenwelle 32 trägt zwei
Verbundnocken, die als stromabwärtige
Nocken 82 bzw. stromaufwärtige Nocken 84 bezeichnet
sind. Der stromabwärtige
Nocken und der stromaufwärtige
Nocken 82, 84 weisen in der Richtung aus dem Gehäuse hinaus jeweils
ein Nockenwellenarretierelement 86, 88, die einen
Anschlag für
die Drehung der Nockenwelle bilden, Schlauchladeklinkennocken 90, 92,
die dazu dienen, die Schlauchladeklinken 36 zu betätigen, Ventilladenocken 94, 96,
die dazu dienen, während des
Ladevorganges Ventile wegzuheben, und Sensorarmnocken 98, 100 mit
der Funktion auf, den stromabwärtigen
Sensor anzuheben oder abzusenken.
-
Unter erneuter Bezugnahme auf 4 ist eine auseinandergezogene
Ansicht einer gemäß den Prinzipien
der vorliegenden Erfindung erstellten Codiereranordnung 101 zu
sehen. Die Codiereranordnung 101 weist ein an der Ankerwelle 105 des
Motors 63 angebrachtes Codierrad 103 auf. Die
Codiereranordnung 101 ist ein einem Pumpenmotorcodierer-Tragbund 107 untergebracht,
der eine Gleitpassung über
dem Motorgehäuse 63 bildet
und an diesem mittels einer Schelle 109 befestigt ist.
Zwei Optokoppler 111, 113 sind vorgesehen, die
mit der dazugehörigen
Signalverarbeitungselektronik durch einen als Pumpensensorstreifen 115 bezeichneten
Streifen in Form einer gedruckten Schaltung elektrisch verbunden
sind.
-
Unter Bezugnahme auf 5 ist das Codierrad 103 im Detail
zu sehen. Das Codierrad 103 weist bei der beschriebenen
Ausführungsform
der vorliegenden Erfindung zwei Flags 117 auf, welche sich
in Radialrichtung von seiner Nabe 121 nach außen erstrecken.
-
Zwischen den Flags befindet sich
eine Vielzahl von Abstandssektoren 119 mit einer gleichen Größe. Während bei
der vorliegend beschriebenen Ausführungsform jeder Sektor 119 eine
Breite von 90° besitzt,
zieht die vorliegende Erfindung die Verwendung von Codierrädern mit
einer beliebigen Anzahl von Sektoren und somit jeglicher Breite
in Betracht.
-
Auch während bei der vorliegend beschriebenen
Ausführungsform
jedes Flag 117 zwischen den jeweiligen Sektoren 119 eine
Breite von 90° besitzt,
zieht die vorliegende Erfindung die Verwendung von Codierrädern mit
einer beliebigen Anzahl von Flags und somit jeglicher Breite in
Betracht. Die Sektoren 119 haben die Funktion, Licht durchzulassen, während die
Flags 117 die Funktion haben, Licht zu blockieren.
-
Blockiertem Licht kann ein digitales
logisches Hoch bzw. ein Bezugswert 1 zugeordnet werden,
während
durchgelassenem Licht ein digitales logisches Tief bzw. ein Bezugswert 0 zugeordnet
werden kann. Diese Flags weisen eine Vielzahl von optischen Bildern
auf. Das erste dieser Bilder ist durch die Kante 118 des
einzelnen Flags 117 begrenzt. Das zweite Bild ist durch
den Mittenbereich des Flags 117 begrenzt.
-
Die Flags 117 wirken in
Verbindung mit den zwei Optokopplern 111, 113,
um die Anordnung der Ankerwelle 105 des Pumpenmotors 63 festzulegen. Der
Abstand zwischen den beiden Optokoppiern 111, 113 ist
so vorgesehen, daß die
gewünschten
Quadratursignale erhalten werden, wobei die Signale nominal um 90° phasenverschoben
sind. Daher sind die Optokoppler 111, 113 so positioniert,
daß dann,
wenn einer mit der Kante eines Flags 118 fluchtet, der
andere Optokoppler mit der Mitte eines Flags 120 fluchtet.
-
Bei der vorliegend beschriebenen
Ausführungsform
sind die Optokoppler entweder um 45° oder um 135° beabstandet. Bei Verwendung
von vier Flags und vier Sektoren wären die Optokoppler dann um
22½°, 67½° , 112½° oder 157½° beabstandet,
um die nominale Phasenverschiebung von 90° zu erzeugen.
-
Bei einer bevorzugten Ausführungsform
weisen die Optokoppler 111, 113 einen fotoelektrischen Schalter
auf. Bei einer weiteren bevorzugten Ausführungsform weisen die fotoelektrischen
Schalter eine erste Fotodiode 123 und eine erste Fotozelle 125 auf. Die
Optokoppler 111, 113 sind so ausgerichtet, daß sie der
Vielzahl von Flags 117 auf dem Codierrad 103 entsprechen
und somit das optische Ablesen der Flags 117 und Sektoren 119 bewirken.
Wie weiter unten detailliert beschrieben ist, kann der Zeittakt
der von den Optokopplern 111, 113 genommenen Ablesungen
durch den Pumpenmodul-Mikroprozessor gesteuert werden oder durch Änderungen
in den Ablesungen selbst initiiert werden.
-
Die optischen Ablesungen der Optokoppler werden
mit Hilfe von Rechteckformern in Digitalsignale umgewandelt und
in einen im Mikroprozessor enthaltenen Digitalprozessor eingegeben.
Bei dieser gegenwärtig
bevorzugten Ausführungsform
hat die Auflösung
des Codierers 103 einen Wert von 1/960 einer Drehung der
Schlauchlade-Nockenwelle 32.
-
Wie für den Fachmann ersichtlich
ist, kann die genaue Konfiguration der vorliegenden Ausführungsform
unter Beibehaltung der erwünschten
Effekt der vorliegenden Vorrichtung jederzeit geändert werden. Beispielsweise
können
die Optokoppler in eine gleichwertige Position bewegt werden, die
immer noch den gewünschten
Effekt zur Verfügung stellt.
Darüber
hinaus werden Codierräder
mit einer beliebigen Anzahl von Flags und Sektoren als innerhalb
des Schutzbereiches der vorliegenden Erfindung liegend angesehen.
-
Die vorliegende Vorrichtung kann
mit der Verwendung verschiedener Typen von Antriebsmotoren, wie
etwa des Antriebsmotors für
die Pumpbewegung, koordiniert werden. Diese verschiedenen Konfigurationen
werden selbstverständlich
als innerhalb des Schutzbereichs der vorliegenden Erfindung liegend
angesehen.
-
Wie aus 6 hervorgeht, weist die Wellenform einer
herkömmlichen
Codier-/Decodiervorrichtung zwei Kanäle (A, B) auf, wobei jeder
Kanal einen ersten digitalen logischen Hochzustand und einen zweiten
digitalen logischen Tiefzustand aufweist. Somit entspricht bei der
herkömmlichen
Bauart die Zustandsdefinition vier unterschiedlichen Zuständen. Im
ersten Zustand, der als Zustand 0 definiert ist, befinden sich beide
Kanäle
(A, B) in einem digitalen logischen Tiefzustand (z. B. A, B).
-
Im Zustand 1 befindet sich der erste
Kanal (A) in einem digitalen logischen Hochzustand, während sich
der zweite Kanal (B) in einem digitalen logischen Tiefzustand (z.
B. A, B) befindet. Der Zustandsübergang
vom Zustand 0 zum Zustand 1 findet statt, wenn der erste Optokoppler 111 den Übergang von
einem Sektor 119 zu einem Flag 117 erfaßt.
-
Im Zustand 2 befindet sich der erste
Kanal (A) in einem digitalen logischen Hochzustand, und der zweite
Kanal (B) befindet sich in einem digitalen logischen Hochzustand
(z. B. A, B). Der Übergang vom
Zustand 1 zum Zustand 2 findet statt, wenn der zweite Optokoppler 113 den Übergang
von einem Sektor 119 zu einem Flag 117 erfaßt.
-
Im Zustand 3 befindet sich der erste
Kanal (A) in einem digitalen logischen Tiefzustand, während sich
der zweite Kanal (B) in einem digitalen logischen Hochzustand befindet
(z. B. A, B). Der Zustandsübergang
vom Zustand 2 zum Zustand 3 findet statt, wenn der erste
Optokoppler 111 den Übergang von
einem Flag 117 zu einem Sektor 119 erfaßt.
-
Nach dem Zustand 3 kehrt die Zustandsdefinition
zum Zustand 0 zurück,
wobei sich beide Kanäle
(A, B) in einem digitalen logischen Tiefzustand befinden (z. B.
A, B). Der Zustandsübergang
vom Zustand 3 zum Zustand 0 findet statt, wenn der zweite Optokoppler 113 den Übergang
von einem Flag 117 zu einem Sektor 119 erfaßt. Darauffolgende
Zustandsübergänge wiederholen
diese Muster. Diese herkömmliche
Bauart erfordert die Verwendung einer Taktzustandsmaschine, wie
etwa eines Decodierzählers,
um aufeinanderfolgende Zählwerte
in einem internen Register aufzubewahren.
-
Ein in herkömmlichen Bauarten verwendeter typischer
Decodierzähler
war z. B. ein Hewlett Packard HTCL 2000. Der Decodierzähler weist
eine Einrichtung zum Adressieren der Metastabilitätszustände auf,
die sich in der internen Logik des Decodierzählers während Zustandsübergängen ereignen
können.
-
Bei der vorliegenden Erfindung liefern
zwei Zustandswellenformen (A',
B') zwei Codiererausgänge. Bei
der vorliegenden Erfindung ist die Zustandsbestimmung jedoch selbsttaktend.
Bei der vorliegenden Erfindung wird eine Zustandsänderung
in einer der Wellenformen (A',
B') als Unterbrechung
oder internes Steuersignal im Mikroprozessor registriert. Anstelle
der Verwendung eines externen Taktgebers oder Registers erkennt
die dazugehörige
Software jede Unterbrechung und bewirkt eine Zustandsänderung
im Mikroprozessor selbst.
-
Unter Bezugnahme 7 ist gemäß der Bestimmung durch das
Verfahren der vorliegenden Erfindung der Zustand 0 dadurch definiert,
daß der zweite
Optokoppler 113 den Übergang
von einem Flag 117 zu einem Sektor 119 oder umgekehrt
erfaßt, und
der erste Optokoppler 111 den Mittelpunkt eines Sektors 119 erfaßt.
-
Der Zustand 1 ist dadurch
definiert, daß der erste
Optokoppler 111 einen Übergang
von einem Sektor 119 zu einem Flag 117 oder umgekehrt
erfaßt, und
der zweite Optokoppler 113 den Mittelpunkt eines Sektors 119 erfaßt.
-
Der Zustand 2 ist dadurch definiert,
daß der zweite
Optokoppler 113 einen Übergang
von einem Sektor 119 zu einem Flag 117 oder umgekehrt
erfaßt, und
der erste Optokoppler 111 den Mittelpunkt eines Flags 117 erfaßt.
-
Der Zustand 3 ist dadurch
definiert, daß der erste
Optokoppler 111 einen Übergang
von einem Flag 117 zu einem Sektor 119 oder umgekehrt
erfaßt, und
der zweite Optokoppler 113 den Mittelpunkt eines Flags 117 erfaßt. Nach
dem Zustand 3 kehrt die Zustandsdefinition zum Zustand 0 zurück. Dies
findet statt, wenn der zweite Optokoppler 113 einen Übergang
von einem Flag 117 zu einem Sektor 119 erfaßt und der
erste Optokoppler 111 den Mittelpunkt eines Sektors 119 erfaßt.
-
Da die Kante eines Flags 117 bzw.
Sektors 119 verwendet wird, um eine Ablesung des Zustands basierend
auf dem entgegengesetzten, sich nicht verändernden Signal zu takten,
und zwar im Gegensatz zur Verwendung der Kante eines Flags oder Sektors
zum Definieren des Zustandsübergangs, vermeidet
die vorliegende Erfindung somit die Problematik der Metastabilität ohne die
Verwendung von kostspieliger Hardware. Darüber hinaus behält die vorliegende
Erfindung die Fähigkeit
der Codier-/Decodiervorrichtung zum Erstellen von Drehrichtungsinformationen
bei.
-
Unter Bezugnahme 8 wird das Verfahren der vorliegenden
Erfindung beschrieben. Während
des Betriebs in einer kontinuierlichen Schleife tasten die optischen
Sensoren Änderungen
in den Wellenformen A' oder
B' ab. Dies findet
statt, wenn der optische Sensor einen Übergang von einem Flag 117 zu
einem Sektor 119 oder von einem Sektor 119 zu
einem Flag 117 erfaßt.
-
Wenn im Schritt 1 eine Änderung
in der Wellenform A' erfaßt wird,
wird im Schritt 3 die Wellenform B abgetastet. Wenn im
Schritt 1 keine Änderung der
Wellenform A' erfaßt wird,
wird im Schritt 2 die Wellenform B' erfaßt. Wenn im Schritt 2 eine Änderung
der Wellenform B' erfaßt wird,
wird im Schritt 4 die Wellenform A' abgetastet.
-
Das Verfahren beinhaltet drei Größen bzw. Variable:
die Neuzustandsvariable, die Altzustandsvariable und die Positionsvariable.
Wenn sich im Schritt 5 die Wellenform B' in einem digitalen Hochzustand befindet,
wird im Schritt 7 der Neuzustand als Drei (3)
definiert. Wenn sich im Schritt 5 die Wellenform B' in einem digitalen
Tiefzustand befindet, wird im Schritt 9 der Neuzustand
als Eins (1) definiert.
-
Wenn sich im Schritt 6 die
Wellenform A' in einem
digitalen Hochzustand befindet, wird im Schritt 8 der Neuzustand
als Zwei (2) definiert. Wenn sich in Schritt 6 die
Wellenform A' in
einem digitalen Tiefzustand befindet, wird im Schritt 10 der
Neuzustand als Null (0) definiert.
-
Wenn der Neuzustand im Schritt 7 als
Drei (3) definiert ist, wird im Schritt 11 der
Altzustand abgelesen. Wenn der Altzustand Zwei (2) ist,
wird im Schritt 13 die Positionsvariable um Eins inkrementiert,
und die Altzustandsvariable wird im Schritt 28 auf den
Wert der Neuzustandsvariable von Drei (3) eingestellt.
-
Nach dem Einstellen der Altzustandsvariable wird
die Schleife fortgeführt.
Wenn der Altzustand im Schritt 11 nicht Zwei (2)
ist, wird der Altzustand im Schritt 15 erneut überprüft. Wenn
der Altzustand im Schritt 15 Null (0) ist, wird
im Schritt 17 die Positionsvariable um Eins dekrementiert,
und die Altzustandsvariable wird im Schritt 28 auf den
Wert der Neuzustandsvariable von Drei (3) zurückgesetzt.
-
Nach dem Einstellen der Altzustandsvariable wird
die Schleife fortgeführt.
Wenn der Altzustand im Schritt 15 nicht Null (0)
ist, wurde eine Zustandsänderung
der Wellenform übergangen,
oder die Wellenform wurde falsch gelesen, und ein Fehlerzustand tritt
ein.
-
Wenn der Neuzustand im Schritt 9 als
Eins (1) definiert ist, wird der Altzustand im Schritt 19 überprüft. Wenn
der Altzustand Null (0) ist, wird im Schritt 21 die Positionsvariable
um Eins inkrementiert, und die Altzustandsvariable wird im Schritt 28 auf
den Wert Null (0) der Neuzustandsvariable gesetzt.
-
Nach dem Einstellen der Altzustandsvariable wird
die Schleife fortgeführt.
Wenn im Schritt 19 der Altzustand nicht Null (0)
ist, wird der Altzustand im Schritt 23 erneut überprüft. Wenn
im Schritt 23 der Altzustand Zwei (2) ist, wird
im Schritt 25 die Positionsvariable um Eins dekrementiert,
und die Altzustandsvariable wird im Schritt 28 auf den
Wert Null (0) der Neuzustandsvariablen zurückgesetzt.
-
Nach dem Einstellen der Altzustandsvariable wird
die Schleife fortgeführt.
Wenn im Schritt 23 der Altzustand nicht Zwei (2)
ist, wurde eine Zustandsänderung
der Wellenform übergangen,
oder die Wellenform wurde falsch gelesen, und ein Fehlerzustand tritt
ein.
-
Wenn der Neuzustand im Schritt 8 als
Zwei (2) definiert ist, wird der Altzustand im Schritt 12 überprüft. Wenn
der Altzustand Eins (1) ist, wird die Positionsvariable
im Schritt 14 um Eins inkrementiert, und die Altzustandsvariable
wird im Schritt 28 auf den Wert der Neuzustandsvariable
von Zwei (2) gestellt.
-
Nach dem Einstellen der Altzustandsvariable wird
die Schleife fortgeführt.
Wenn der Altzustand im Schritt 12 nicht Eins (1)
ist, wird der Altzustand im Schritt 16 erneut überprüft. Wenn
der Altzustand im Schritt 16 Drei (3) ist, wird
im Schritt 18 die Positionsvariable um Eins dekrementiert,
und die Altzustandsvariable wird im Schritt 28 auf den
Wert der Neuzustandsvariablen von Zwei (2) eingestellt.
-
Nach dem Einstellen der Altzustandsvariable wird
die Schleife fortgeführt.
Wenn im Schritt 16 der Altzustand nicht Drei (3)
ist, dann wurde eine Zustandsänderung
in der Wellenform übergangen,
oder die Wellenform wurde falsch gelesen, und ein Fehlerzustand
wird angegeben.
-
Wenn der Neuzustand im Schritt 10 als
Null (0) definiert ist, wird im Schritt 20 der
Altzustand überprüft. Wenn
der Altzustand Drei (3) ist, wird im Schritt 22 die
Positionsvariable um Eins inkrementiert, und die Altzustandsvariable
wird im Schritt
28 auf den Wert der Neuzustandsvariable
von Null (0) eingestellt. Nach dem Einstellen der Altzustandsvariablen wird
die Schleife fortgeführt.
Wenn der Altzustand im Schritt 20 nicht Drei (3)
ist, wird der Altzustand im Schritt 24 erneut überprüft.
-
Wenn im Schritt 24 der Altzustand
Eins (1) ist, wird im Schritt 26 die Positionsvariable
um Eins dekrementiert, und die Altzustandsvariable wird im Schritt 28 auf
den Wert der Neuzustandsvariable von Null (0) gestellt.
Nach dem Einstellen der Altzustandsvariable wird die Schleife fortgeführt. Wenn
im Schritt 24 der Altzustand nicht Eins (1) ist,
wurde eine Zustandsänderung
in der Wellenform übergangen, oder
die Wellenform wurde falsch gelesen, und ein Fehlerzustand wird
angegeben.