(19)
(11) EP 0 387 767 A2

(12) EUROPÄISCHE PATENTANMELDUNG

(43) Veröffentlichungstag:
19.09.1990  Patentblatt  1990/38

(21) Anmeldenummer: 90104669.8

(22) Anmeldetag:  12.03.1990
(51) Internationale Patentklassifikation (IPC)5G05B 19/05, G04G 15/00
(84) Benannte Vertragsstaaten:
CH DE FR GB IT LI SE

(30) Priorität: 17.03.1989 DE 3908884

(71) Anmelder: SIEMENS AKTIENGESELLSCHAFT
D-80333 München (DE)

(72) Erfinder:
  • Sülzle, Helmut, Dipl.-Ing. (FH)
    D-7500 Karlsruhe (DE)


(56) Entgegenhaltungen: : 
   
       


    (54) Anordnung zur Verarbeitung von Zeitbefehlen


    (57) Die Erfindung betrifft eine Anordnung zur Verarbeitung von Zeitbefehlen. Für viele Anwendungen in der Datenverarbeitung, z. B. in speicherprogrammierbaren Steuerungen, benötigt man programmierbare Zeiten zur zeitabhängigen Steuerung von Ab­läufen. Eine möglichst schnelle Verfügbarkeit eines aktuellen Zeitwertes nach einer Zeitabfrage wird dadurch erreicht, daß ein 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, be­arbeitet und in den anderen Speicher (S2, S1) einschreibt und bei einer Zeitabfrage den jeweils gültigen Zeitwert bereit­stellt.
    Die Erfindung wird angewendet in Datenverarbeitungsanlagen, insbesondere in speicherprogrammierbaren Steuereinheiten.




    Beschreibung


    [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 spei­cherprogrammierbaren Steuerungen, benötigt man programmierbare Zeiten zur zeitabhängigen Steuerung von Abläufen. Eine spei­cherprogrammierbare Steuereinheit, die verschiedene Zeitfunk­tionen verwirktlicht, ist aus der Siemens-Beschreibung "Auto­matisieren 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üp­fungen bilden und Leistungsschalter, z. B. für Motoren, schal­ten soll.

    [0003] Um eine Zeit programmieren zu können, kann man einen Zähler einsetzen, der einen einstellbaren Zeitwert in einem bestimm­ten Zeitraster z. B. bis auf den Wert Null herunterzählt. Er­reicht der Zählerstand den Wert Null, so ist die Zeit abge­laufen, und ein zeitabhängiger Steuerungsvorgang wird gestar­tet. Besteht allerdings die Notwendigkeit, mehrere Zeiten ein­zuprogrammieren, so ist der Einsatz von vielen Zählern not­wendig, 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 aus­gelesen, dann dekrementiert und schließlich wieder im Zeit­speicher 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 ver­fü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öße­ren Ausbau des Zeitspeichers. Je größer der Ausbau des Zeit­speichers 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 Überwachungsein­heit 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 ausge­lesen, was eine Prozessorbelastung bedeutet.

    [0006] In der Patentanmeldung P 38 40 966.6 wird eine Anordnung zur Verarbeitung von Zeitbefehlen mit einem Zeitsteuerwerk vorge­schlagen, 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 Ein­stellzeit werden die gespeicherten Endzeiten aus dem Zeit­speicher ausgelesen und mit dem aktuellen Zeitwert der Refe­renzuhr verglichen. Ist der aktuelle Zeitwert größer oder gleich der Endzeit, so weist dies auf einen Ablauf der Ein­stellzeit 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 An­spruchs 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 Bearbeitungs­logik kann ein Dekrementierer sein, der in vorgegebenen Zeit­abständen, z. B. von 10 ms, die aus dem ersten Speicher ausge­lesene, 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 Zeit­wertes diesen abfragt, ist die Bearbeitungslogik so ausgebil­det, daß sie dem Zentralprozessor den vor dieser Aktualisie­rungsphase 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 Zentral­prozessor während der Aktualisierungsphase wird wiederum der vor der Aktualisierungsphase gültige Zeitwert ausgegeben, der im zweiten Speicher hinterlegt ist. Nach Ablauf dieser Aktuali­sierungsphase 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 Zeitspeicher­adresse und greift, je nachdem, wo der aktuelle gültige Zeit­wert 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üh­rungsbeispiels 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 tech­nischen 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 Zeit­speichers ZS entspricht dem des Speichers S1 bzw. S2, das be­deutet: 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 Bearbei­tungslogik BL sind eine Ablaufsteuerung AL und ein Dekremen­tierer DE. Ein Taktgeber TG, der ebenfalls Bestandteil der Be­arbeitungslogik 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 Ablaufsteue­rung liest Zeitwerte aus einem der Speicher S1, S2 und führt diese dem Dekrementierer DE zu. Der Dekrementierer DE dekre­mentiert 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 dekre­mentiert, der Schalter SW3 wird geschlossen und die dekremen­tierten 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 ge­sperrt. Der Schalter SW1 wird nach der Bearbeitung der Zeit­werte 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 Spei­cher S1, im zweiten Fall aus dem Speicher S2 zur Ein-/Ausgabe­einheit EA übertragen.

    [0015] Das Ende des Einschreib- bzw. Auslesevorganges teilt die Be­arbeitungslogik BL dem Zentralprozessor ZP mit einem Freigabe­signal ü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 Zeit­speicher ZS einzuschreiben. Die Adresse des Bereiches des Zeit­speichers 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 Zeit­speicher 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 Bearbei­tungslogik BL über die Leitung Ry ein Freigabesignal auf den Zentralprozessor ZP, was diesem anzeigt, daß die Bearbeitungs­logik BL den Zeitwert übernommen hat. Weiterhin veranlaßt die Bearbeitungslogik BL, daß der gespeicherte Zeitwert um einen der Periodendauer des Taktsignals entsprechenden Betrag ver­mindert 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 Ablauf­steuerung AL. Diese legt über den Schalter SW3 den neuen Zeit­wert 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 schal­tet 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 Ablauf­steuerung 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 Takt­signals.

    [0018] Zum Auslesen des aktuellen Zeitwertes, nachdem der neue Zeit­wert im Speicher S1 hinterlegt wurde, gibt der Zentralprozes­sor ZP die Adresse, unter der der ursprüngliche Zeitwert hinterlegt wurde, sowie ein Lesesignal auf den Systembus SYB. Die Bearbeitungslogik erkennt, daß die adressierte Speicher­zelle 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 Takt­signal 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 Bearbei­tungslogik BL so geschaltet, daß die Adresse zur Bearbeitungs­logik BL durchgeschaltet werden kann. Die Ablaufsteuerung AL adressiert mit dieser Adresse den Speicher S1, liest den ak­tuellen 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 be­schrieben, 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 Ausgabe­vorgang 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 Bearbeitungs­logik BL einen im Speicher S1 bzw. S2 abgelegten, zu aktuali­sierenden Wert ausliest oder einen aktualisierten Zeitwert ein­schreibt. 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 Zeitspei­cherinhalts 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 beschriebe­nen Art an dem Systembus SYB parallel zu betreiben. Dabei werden die Ablaufsteuerungen aller Anordnungen von einem ge­meinsamen Taktgeber getaktet.

    [0021] Es können aber auch mehrere Anordnungen, die parallel an den Systembus SYB angeschlossen sind, mit Taktgebern unterschied­licher Taktfrequenzen betrieben werden. So ist es z. B. denk­bar, 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 unter­schiedlichen "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.


    Ansprüche

    1. Anordnung zur Verarbeitung von Zeitbefehlen, in der Ein­stellzeiten zur Steuerung von zeitabhängigen Abläufen ein­stellbar sind und als Zeitwerte in einem Zeitspeicher (ZS) gespeichert werden, dadurch gekennzeich­net,
    - daß der Zeitspeicher (ZS) einen ersten Speicher (S1) und einen zweiten Speicher (S2) aufweist und
    - daß eine Bearbeitungslogik (BL), mit einem Taktsignal ge­steuert,
    - 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 be­reitstellt.
     
    2. System mit mehreren Anordnungen nach Anspruch 1, die über einen Systembus (SYB) parallel geschaltet sind.
     
    3. System nach Anspruch 2, dadurch gekenn­zeichnet, daß die Anordnungen die in ihren Zeitspei­chern enthaltenen Zeitwerte mit Taktsignalen unterschiedlicher Frequenz aktualisieren.
     




    Zeichnung