[0001] Die Erfindung betrifft eine Anordnung zur Verarbeitung von Zeitbefehlen, in der Einstellzeiten
zur Zeitsteuerung von zeitabhängigen Abläufen einstellbar sind.
[0002] Für viele Anwendungen in der Datenverarbeitung, z. B. in speicherprogrammierbaren
Steuerungen, benötigt man programmierbare Zeiten zur zeitabhängigen Steuerung von
Abläufen. Eine speicherprogrammierbare Steuereinheit, die verschiedene Zeitfunktionen
verwirktlicht, ist aus der Siemens-Beschreibung "Automatisieren mit S5-115U", Ausgabe
1987 bekannt. Ein Programm, nach dem eine speicherprogrammierbare Steuereinheit arbeiten
soll, wird in einem Programmspeicher dieser Steuereinheit hinterlegt. In diesem Programm
wird z. B. festgelegt, wie die Steuereinheit Geberkontakte abfragen, UND- bzw. ODER-Verknüpfungen
bilden und Leistungsschalter, z. B. für Motoren, schalten soll.
[0003] Um eine Zeit programmieren zu können, kann man einen Zähler einsetzen, der einen
einstellbaren Zeitwert in einem bestimmten Zeitraster z. B. bis auf den Wert Null
herunterzählt. Erreicht der Zählerstand den Wert Null, so ist die Zeit abgelaufen,
und ein zeitabhängiger Steuerungsvorgang wird gestartet. Besteht allerdings die Notwendigkeit,
mehrere Zeiten einzuprogrammieren, so ist der Einsatz von vielen Zählern notwendig,
was schaltungstechnisch sehr aufwendig ist.
[0004] Man kann auch mehrere Zeitwerte in einem Zeitspeicher ablegen und diese im Abstand
eines Zeitrasters, das z. B. von einem Taktgeber geliefert wird, dekrementieren. Hierzu
müssen alle in dem Zeitspeicher abgelegten Zeitwerte zunächst aus diesem ausgelesen,
dann dekrementiert und schließlich wieder im Zeitspeicher abgelegt werden. Dieses
Verfahren hat den Nachteil, daß ein Prozessor, der die Aktualisierung der Zeitwerte
steu ert, während dieser Zeitspanne für andere Aufgaben nicht verfügbar ist. Dieser
Nachteil wirkt sich insbesondere dann aus, wenn eine große Anzahl von programmierbaren
Zeitwerten benötigt wird. Eine größere Anzahl von Zeitwerten bedeutet einen größeren
Ausbau des Zeitspeichers. Je größer der Ausbau des Zeitspeichers ist, desto länger
ist die Zeitspanne, die benötigt wird, um die Zeitwerte im Zeitspeicher zu aktualisieren.
[0005] Aus der DE-PS 25 53 926 ist eine Anordnung zur Verarbeitung von Wartezeitbefehlen
mit einem Zeitspeicher bekannt, in dem Wartezeiten gespeichert sind, die in konstanten
Zeitabständen ausgelesen und mit einem Inkrementierer oder Dekrementierer um Eins
erhöht oder erniedrigt werden. Eine Überwachungseinheit gibt ein Endesignal ab, wenn
eine Wartezeit auf einen vorgegebenen Wert in- bzw. dekrementiert ist. Auch hier werden
die Inhalte der Zeitspeicherzellen zyklisch ein- und ausgelesen, was eine Prozessorbelastung
bedeutet.
[0006] In der Patentanmeldung P 38 40 966.6 wird eine Anordnung zur Verarbeitung von Zeitbefehlen
mit einem Zeitsteuerwerk vorgeschlagen, das eine Referenzzeiten liefernde Referenzuhr
und eine Auswerteeinheit enthält, die Endzeiten durch Addition der Einstellzeiten
zur jeweiligen Referenzzeit ermittelt und in einen Zeitspeicher abspeichert. Auf eine
Zeitabfrage der Einstellzeit werden die gespeicherten Endzeiten aus dem Zeitspeicher
ausgelesen und mit dem aktuellen Zeitwert der Referenzuhr verglichen. Ist der aktuelle
Zeitwert größer oder gleich der Endzeit, so weist dies auf einen Ablauf der Einstellzeit
hin. Das Ergebnis der Zeitabfrage ist hier erst nach einem Vergleich zwischen dem
aktuellen Zeitwert und der abgespeicherten Endzeit verfügbar.
[0007] Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, eine Anordnung zur Verarbeitung
von Zeitbefehlen zu schaffen, in der nach einer Zeitabfrage der aktuelle Zeitwert
möglichst schnell vorliegt.
[0008] Diese Aufgabe wird durch die im kennzeichnenden Teil des Anspruchs 1 angegebenen
Maßnahmen gelöst.
[0009] Die Erfindung ermöglicht mit einfachen schaltungstechnischen Maßnahmen, daß bei einer
Zeitabfrage der aktuelle Zeitwert unmittelbar verfügbar ist. Ein Bestandteil der Bearbeitungslogik
kann ein Dekrementierer sein, der in vorgegebenen Zeitabständen, z. B. von 10 ms,
die aus dem ersten Speicher ausgelesene, zu aktualisierende Einstellzeit dekrementiert.
Dieser aktuelle Zeitwert wird in den zweiten Speicher abgelegt und wird dem Zentralprozessor
nach Ablauf der Aktualisierungsphase als gültiger Zeitwert bereitgestellt. Für den
Fall, daß der Zentralprozessor während der Aktualisierungsphase des Zeitwertes diesen
abfragt, ist die Bearbeitungslogik so ausgebildet, daß sie dem Zentralprozessor den
vor dieser Aktualisierungsphase gültigen Zeitwert, der im ersten Speicher abgelegt
ist, liefert. Während der nächsten Aktualisierungsphase wird der im zweiten Speicher
abgelegte Zeitwert ausgelesen, aus diesem ein neuer Zeitwert gebildet und im ersten
Speicher hinterlegt. Bei einer erneuten Zeitabfrage durch den Zentralprozessor während
der Aktualisierungsphase wird wiederum der vor der Aktualisierungsphase gültige Zeitwert
ausgegeben, der im zweiten Speicher hinterlegt ist. Nach Ablauf dieser Aktualisierungsphase
steht dem Zentralprozessor der im ersten Speicher hinterlegte Zeitwert bereit. Es
ist für den Zentralprozessor unerheblich, in welchem Speicher der Zeitwert abgespeichert
ist, da dieser - wie üblich - nur einen einzigen Zeitspeicher adressiert. Die Bearbeitungslogik
übernimmt diese Zeitspeicheradresse und greift, je nachdem, wo der aktuelle gültige
Zeitwert abgespeichert ist, auf den ersten oder zweiten Speicher zu. Eine Umschaltung
zwischen dem ersten und zweiten Speicher führt die Bearbeitungslogik taktgesteuert
aus.
[0010] Anhand der Zeichnung, in der das Blockschaltbild eines Ausführungsbeispiels dargestellt
ist, werden die Erfindung, deren Ausgestaltungen sowie Vorteile näher erläutert.
[0011] In einem Arbeitsspeicher AS einer speicherprogrammierbaren Steuereinheit ist ein
Steuerprogramm zum Steuern eines technischen Prozesses abgespeichert. Während der
Bearbeitung dieses Steuerprogrammes durch einen Zentralprozessor ZP wird eine Anweisung
verarbeitet, einen Zeitwert in eine Speicherzelle eines Zeitspeichers ZS, der aus
einem ersten und einem zweiten Speicher S1, S2 besteht, abzuspeichern. Der Adreßraum
des Zeitspeichers ZS entspricht dem des Speichers S1 bzw. S2, das bedeutet: Der
Zentralprozessor adressiert unabhängig davon, in welchem Speicher S1 oder S2 dieser
Zeitwert abgelegt wird, eine Speicherzelle des Zeitspeichers ZS. Die Speicheradresse
und der Zeitwert liegen über einen Systembus SYB an einer Ein- und Ausgabeeinheit
EA. Wesentliche Bestandteile einer Bearbeitungslogik BL sind eine Ablaufsteuerung
AL und ein Dekrementierer DE. Ein Taktgeber TG, der ebenfalls Bestandteil der Bearbeitungslogik
sein kann, liefert der Ablaufsteuerung AL in einem zeitlichen Abstand, z. B. in einem
Abstand von 10 ms, ein Taktsignal, welches die Ablaufsteuerung AL veranlaßt, von einem
Speicher auf den anderen umzuschalten. Die Ablaufsteuerung liest Zeitwerte aus einem
der Speicher S1, S2 und führt diese dem Dekrementierer DE zu. Der Dekrementierer DE
dekrementiert die Zeitwerte z. B. um den Wert Eins und stellt die aktualisierten
Zeitwerte wieder der Ablaufsteuerung AL bereit, die diese entweder in den Speicher
S1 oder S2 abspeichert. Eine weitere Aufgabe der Ablaufsteuerung AL besteht darin,
Schalter SW1 ... SW4 zu steuern.
[0012] Während der Einschreibphase, in der der Zentralprozessor ZP eine Zeitspeicheradresse
und Zeitwerte zum Abspeichern in den Zeitspeicher ZS in die Ein-/Ausgabeeinheit EA
schreibt, ist es möglich, daß die Ablaufsteuerung AL die Schalter SW1 und SW2 derart
steuert, daß der Inhalt der Ein-/Ausgabeeinheit EA zum Speicher S1 und zur Ablaufsteuerung
AL selbst durchgeschaltet wird. Der Schalter SW4 ist offen. Die Zeitwerte werden dekrementiert,
der Schalter SW3 wird geschlossen und die dekrementierten Daten im Speicher S2 abgelegt.
[0013] Entsprechend können während der Einschreibphase die Schalter SW3 und SW4 auch derart
gesteuert sein, daß der Inhalt der Ein-/Ausgabeeinheit EA dem Speicher S2 und der
Ablaufsteuerung AL zugeführt wird. In diesem Fall ist der Schalter SW2 gesperrt.
Der Schalter SW1 wird nach der Bearbeitung der Zeitwerte geschlossen, und die dekrementierten
Zeitwerte werden im Speicher S1 abgelegt.
[0014] Während einer Auslesephase, in der die Ablaufsteuerung AL veranlaßt, daß ein Zeitwert
dem Zentralprozessor ZP in der Ein-/ Ausgabeeinheit EA bereitgestellt wird, sind entweder
die Schalter SW1, SW2 geschlossen und die Schalter SW3, SW4 offen oder umgekehrt.
Im ersten Fall wird der Zeitwert aus dem Speicher S1, im zweiten Fall aus dem Speicher
S2 zur Ein-/Ausgabeeinheit EA übertragen.
[0015] Das Ende des Einschreib- bzw. Auslesevorganges teilt die Bearbeitungslogik BL dem
Zentralprozessor ZP mit einem Freigabesignal über eine Leitung Ry mit.
[0016] Im folgenden wird die Funktion der Anordnung näher erläutert. Ein Steuerprogramm
zum Steuern einer Zirkulationspumpe eines Heizkreislaufes, das in dem Arbeitsspeicher
AS hinterlegt ist, wird von dem Zentralprozessor ZP abgearbeitet. Soll nach einer
vorgegebenen Zeit die Zirkulationspumpe eingeschaltet werden, erzeugt der Zentralprozessor
ZP einen Schreibbefehl, einen der vorgegebenen Zeit entsprechenden Zeitwert in den
Zeitspeicher ZS einzuschreiben. Die Adresse des Bereiches des Zeitspeichers ZS,
in dem der Zeitwert hinterlegt wird, der Zeitwert und ein entsprechendes Schreibsignal
werden auf den Systembus SYB geschaltet. Die Bearbeitungslogik BL erkennt aufgrund
der Adresse und des Schreibsignals, daß der Zeitwert in den Zeitspeicher ZS geschrieben
werden soll. Es wird davon ausgegangen, daß ein Taktsignal an der Bearbeitungslogik
angelegen hat und die Bearbeitungslogik BL auf den Speicher S1 zugreifen kann und
daß die Schalter SW1 und SW2 geschlossen sind, der Schalter SW4 dagegen offen ist.
Das bedeutet, daß die Bearbeitungslogik BL die Adresse und den Zeitwert vom Systembus
SYB über die Ein-/Ausgabeeinheit übernimmt und veranlaßt, daß der Zeitwert im Speicher
S1 unter der vom Zentralprozessor ZP ausgegebenen Adresse abgespeichert wird. Anschließend
schaltet die Bearbeitungslogik BL über die Leitung Ry ein Freigabesignal auf den
Zentralprozessor ZP, was diesem anzeigt, daß die Bearbeitungslogik BL den Zeitwert
übernommen hat. Weiterhin veranlaßt die Bearbeitungslogik BL, daß der gespeicherte
Zeitwert um einen der Periodendauer des Taktsignals entsprechenden Betrag vermindert
wird. Die Ablaufsteuerung AL liefert hierzu den Zeit wert dem Dekrementierer DE.
Dieser dekrementiert den Zeitwert und schaltet das Ergebnis als neuen Zeitwert auf
die Ablaufsteuerung AL. Diese legt über den Schalter SW3 den neuen Zeitwert zusammen
mit der ursprünglichen Adresse an den Speicher S2, so daß der neue Zeitwert im Speicher
S2 unter dieser Adresse abgespeichert wird. Nach dem nächsten Taktsignal schaltet
die Ablaufsteuerung AL auf den Speicher S2 um, d. h., der Zentralprozessor ZP kann
nun Zeitwerte in den Speicher S2 schreiben oder aus diesem auslesen. Weiterhin liest
die Ablaufsteuerung AL den im Speicher S2 abgespeicherten Zeitwert und führt ihn
dem Dekrementierer DE zu, der den Zeitwert abermals um den der Periodendauer des Taktsignals
entsprechenden Betrag vermindert. Die Ablaufsteuerung AL speichert den so gebildeten
neuen Zeitwert über den Schalter SW1 unter der ursprünglichen Adresse im Speicher
S1 ab.
[0017] Dieser Vorgang wiederholt sich bei jedem Auftreten des Taktsignals.
[0018] Zum Auslesen des aktuellen Zeitwertes, nachdem der neue Zeitwert im Speicher S1
hinterlegt wurde, gibt der Zentralprozessor ZP die Adresse, unter der der ursprüngliche
Zeitwert hinterlegt wurde, sowie ein Lesesignal auf den Systembus SYB. Die Bearbeitungslogik
erkennt, daß die adressierte Speicherzelle des Zeitspeichers ZS ausgelesen werden
soll. Es wird angenommen, daß der aktuelle Zeitwert im Speicher S1 abgelegt ist und
die Bearbeitungslogik BL, nachdem wiederum ein Taktsignal an der Bearbeitungslogik
BL angelegen hat, auf den Speicher S1 umgeschaltet hat. Weiterhin wird angenommen,
daß die Bearbeitungslogik BL gerade keine Zelle des Zeitspeichers ZS ausliest. Die
Schalter SW1 und SW2 sind von der Bearbeitungslogik BL so geschaltet, daß die Adresse
zur Bearbeitungslogik BL durchgeschaltet werden kann. Die Ablaufsteuerung AL adressiert
mit dieser Adresse den Speicher S1, liest den aktuellen Zeitwert aus und stellt diesen
dem Zentralprozessor ZP über die Ein-/Ausgabeeinheit EA bereit. Die Bearbeitungslogik
BL legt auf den Zentralprozessor ZP wiederum ein Freigabesignal über die Leitung Ry,
was bedeutet, daß die Bearbeitungslogik BL den Auslesevorgang abgeschlossen hat und
der Zentralprozessor ZP den Zeitwert übernehmen kann. Anschließend wird, wie beschrieben,
der Zeitwert wie alle im Speicher S1 abgespeicherten Zeitwerte dekrementiert und in
den Speicher S2 eingeschrieben. Befindet sich der neueste Zeitwert im Speicher S2,
wenn der Zentralprozessor ZP den Zeitwert abfragt, so läuft der Ausgabevorgang entsprechend
ab.
[0019] Es kann der Fall eintreten, daß der Zentralprozessor ZP gerade einen Zeitwert in
den Zeitspeicher ZS einschreiben bzw. einen Zeitwert aus diesem auslesen will, während
die Bearbeitungslogik BL einen im Speicher S1 bzw. S2 abgelegten, zu aktualisierenden
Wert ausliest oder einen aktualisierten Zeitwert einschreibt. Während dieser Zeitspanne
sorgt - wie bekannt - der Zentralprozessor ZP dafür, daß Adresse und Lesesignal bzw.
Adresse, Schreibsignal und abzuspeichernder Zeitwert auch noch nach Beendigung des
Einschreibens bzw. Auslesens des Zeitspeicherinhalts durch die Bearbeitungslogik
BL auf dem Systembus SYB anliegen. Das bedeutet, daß der Zentralprozessor ZP, wie
beschrieben, den Zeitspeicher ZS nach Beendigung des Schreib- bzw. Lesevorgangs durch
die Bearbeitungslogik BL bearbeiten kann.
[0020] Wird ein größerer Zeitspeicher ZS benötigt als die Anordnung umfaßt, so ist es möglich,
mehrere Anordnungen der beschriebenen Art an dem Systembus SYB parallel zu betreiben.
Dabei werden die Ablaufsteuerungen aller Anordnungen von einem gemeinsamen Taktgeber
getaktet.
[0021] Es können aber auch mehrere Anordnungen, die parallel an den Systembus SYB angeschlossen
sind, mit Taktgebern unterschiedlicher Taktfrequenzen betrieben werden. So ist es
z. B. denkbar, daß eine erste Anordnung mit einem Takt von 10 ms und eine zweite
Anordnung mit einem Takt von 1 s betrieben wird. Dies hat den Vorteil, daß die beiden
Anordnungen mit unterschiedlichen "Zeitbasen" arbeiten können. Die Zeitwerte können
dann auch Vielfache von 10 ms bzw. 1 s sein, so daß in beiden Anordnungen die Zeitwerte
mit dem Wert Eins dekrementiert werden können.
1. Anordnung zur Verarbeitung von Zeitbefehlen, in der Einstellzeiten zur Steuerung
von zeitabhängigen Abläufen einstellbar sind und als Zeitwerte in einem Zeitspeicher
(ZS) gespeichert werden, dadurch gekennzeichnet,
- daß der Zeitspeicher (ZS) einen ersten Speicher (S1) und einen zweiten Speicher
(S2) aufweist und
- daß eine Bearbeitungslogik (BL), mit einem Taktsignal gesteuert,
- wechselweise aus dem einen Speicher (S1, S2) gespeicherte Zeitwerte ausliest, bearbeitet
und in den anderen Speicher (S2, S1) einschreibt und
- bei einer Zeitabfrage den jeweils gültigen Zeitwert bereitstellt.
2. System mit mehreren Anordnungen nach Anspruch 1, die über einen Systembus (SYB)
parallel geschaltet sind.
3. System nach Anspruch 2, dadurch gekennzeichnet, daß die Anordnungen die in ihren Zeitspeichern enthaltenen Zeitwerte mit Taktsignalen
unterschiedlicher Frequenz aktualisieren.