DE19915850C1 - Verfahren zum Abarbeiten mehrerer Befehlslisten in einer Datenverarbeitungsanlage - Google Patents

Verfahren zum Abarbeiten mehrerer Befehlslisten in einer Datenverarbeitungsanlage

Info

Publication number
DE19915850C1
DE19915850C1 DE19915850A DE19915850A DE19915850C1 DE 19915850 C1 DE19915850 C1 DE 19915850C1 DE 19915850 A DE19915850 A DE 19915850A DE 19915850 A DE19915850 A DE 19915850A DE 19915850 C1 DE19915850 C1 DE 19915850C1
Authority
DE
Germany
Prior art keywords
command list
command
list
lists
cycle time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19915850A
Other languages
English (en)
Inventor
Heino Sand
Thomas Merklein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19915850A priority Critical patent/DE19915850C1/de
Application granted granted Critical
Publication of DE19915850C1 publication Critical patent/DE19915850C1/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

Die vorliegende Erfindung betrifft ein Verfahren zum Abarbeiten mehrerer Befehlslisten (L¶1¶, L¶2¶, L¶3¶) in einer Datenverarbeitungsanlage. Jede Befehlsliste (L¶1¶, L¶2¶, L¶3¶) weist eine bestimmte Laufzeit (Z¶1¶, Z¶2¶, Z¶3¶), sowie eine bestimmte Zykluszeit (T¶1¶, T¶2¶, T¶3¶) auf. Erfindungsgemäß wird zum Auswählen der abzuarbeitenden Befehlsliste (L¶1¶, L¶2¶, L¶3¶) jeder Befehlsliste ein Prioritätsrang (P¶1¶, P¶2¶, P¶3¶) zugeordnet. Die Befehlslisten (L¶1¶, L¶2¶, L¶3¶) werden nacheinander in absteigendem Prioritätsrang (P¶1¶, P¶2¶, P¶3¶) abgearbeitet. In einzelnen Zeitabschnitten (DELTAt) wird geprüft, ob die Zykluszeit (T¶2¶) einer Befehlsliste (L¶2¶) mit höherem Prioritätsrang (P¶2¶) als die derzeit ablaufende Befehlsliste (L¶3¶) abgelaufen ist. Ist dies der Fall, wird die ablaufende Befehlsliste (L¶3¶) unterbrochen und die Befehlsliste (L¶2¶) mit dem höheren Prioritätsrang (P¶2¶) gestartet. Ansonsten wird die ablaufende Befehlsliste (L¶3¶) weiter abgearbeitet.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Abarbei­ ten mehrerer Befehlslisten in einer Datenverarbeitungsanlage, wobei jede Befehlsliste eine bestimmte Laufzeit und eine be­ stimmte Zykluszeit aufweist und eine Anzahl von aneinander gereihten Einzelbefehlen umfaßt.
Derartige zyklische Befehlslisten werden in vielen Fällen un­ abhängig voneinander in einer Datenverarbeitungsanlage abge­ arbeitet. Einsatzgebiete sind beispielsweise die Überwachung und Steuerung einer chemischen Anlage oder einer Fertigungs­ straße. Es ist auch der Einsatz im Kraftwerksbereich zur Verbrennungsüberwachung und Verbrennungsdiagnose möglich.
Beispielsweise sind aus der DE 43 39 030 A1 und der DE 195 00 957 A1 Verfahren zur Abarbeitung von mehreren Be­ fehlslisten, insbesondere Tasks bzw. Aufgabenprogrammen, in einer Datenverarbeitungsanlage bekannt, wobei den Befehls­ listen unterschiedliche Prioritäten zugeordnet werden, und wobei die Befehlslisten nacheinander in absteigendem Priori­ tätsrang abgearbeitet werden.
Bisher wurde beim Abarbeiten mehrerer Befehlslisten manuell festgelegt, in welcher Reihenfolge die Befehlslisten abgear­ beitet werden sollen. Die Auslegung und Projektierung ist aufwendig, da das Abarbeiten im Regelfall in Echtzeit erfol­ gen muß. Nachteilig ist weiter, daß jede Änderung an einem bestehenden System aufwendig per Hand eingearbeitet werden muß.
Aufgabe der vorliegenden Erfindung ist es daher, ein Verfah­ ren bereitzustellen, bei dem mehrere Befehlslisten unabhängig voneinander gleichzeitig abgearbeitet werden können, ohne daß eine aufwendige manuelle Fertigung erforderlich ist.
Erfindungsgemäß wird diese Aufgabe bei einem Verfahren der eingangs genannten Art dadurch gelöst, daß jeder Befehlsliste ein Prioritätsrang zugeordnet wird, daß die Befehlslisten nacheinander in absteigendem Prioritätsrang ablaufen und ab­ gearbeitet werden, wobei nach einzelnen Zeitabschnitten ge­ prüft wird, ob die Zykluszeit einer Befehlsliste mit höherem Prioritätsrang als die derzeit ablaufende Befehlsliste abge­ laufen ist, und beim Ablauf einer derartigen Zykluszeit diese Befehlsliste gestartet und die laufende Befehlsliste unter­ brochen wird, und ansonsten die ablaufende Befehlsliste wei­ ter abgearbeitet wird.
Jede Befehlsliste weist eine bestimmte Laufzeit auf, die im wesentlichen der Bearbeitungsdauer entspricht. Im Regelfall wird danach die Befehlsliste nicht sofort erneut abgearbei­ tet, sondern für einige Zeit in einen Wartezustand versetzt. Diese Wartezeit sowie die Laufzeit ergeben die Zykluszeit der Befehlsliste.
Erfindungsgemäß wird jeder Befehlsliste ein Prioritätsrang zugeordnet. Die Datenverarbeitungsanlage kann somit durch ei­ nen Vergleich der Prioritätsränge erkennen, welche Befehlsli­ ste vorrangig abgearbeitet werden soll. Während des Abarbei­ tens wird nach einzelnen Zeitabschnitten geprüft, ob die Zy­ kluszeit einer Befehlsliste mit höherem Prioritätsrang abge­ laufen ist. Ist dies der Fall, wird diese Befehlsliste ge­ startet und die laufende Befehlsliste unterbrochen. Hierdurch wird sichergestellt, daß das Abarbeiten einer Befehlsliste höherer Priorität nicht durch eine Befehlsliste niedrigerer Priorität aufgeschoben oder verhindert wird. Liegt nach dem einzelnen Zeitabschnitt keine Befehlsliste mit einem höheren Prioritätsrang vor, wird die ablaufende Befehlsliste weiter abgearbeitet.
Die Erfindung geht davon aus, daß jede Befehlsliste innerhalb der vorgegebenen Zykluszeit vollständig abgearbeitet werden muß. Es ist nicht erforderlich, daß jede Befehlsliste durch­ gehend ohne Unterbrechung zu Beginn der Zykluszeit abgearbei­ tet wird. Erfindungsgemäß können zumindest Teile der Warte­ zeit während des Abarbeitens der Befehlsliste ablaufen. Hier­ durch wird Rechenzeit für Befehlslisten mit höherem Priori­ tätsrang zur Verfügung gestellt. Eine Beeinträchtigung ist hierdurch nicht zu erwarten, da für den Großteil der Anwen­ dungen das Ende der Zykluszeit einer Befehlsliste maßgeblich ist.
Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfin­ dung gehen aus den abhängigen Ansprüchen hervor.
Vorteilhaft wird nach dem vollständigen Abarbeiten einer Be­ fehlsliste geprüft, welche der noch nicht oder noch nicht vollständig abgearbeiteten Befehlslisten den höchsten Priori­ tätsrang aufweist, worauf diese Befehlsliste gestartet wird. Sowohl während des Ablaufs als auch nach dem vollständigen Abarbeiten einer Befehlsliste wird stets zuverlässig die Be­ fehlsliste mit dem höchsten Prioritätsrang gestartet. Ein ma­ nuelles Eingreifen ist nicht erforderlich.
In vorteilhafter Ausgestaltung wird über einen Flag erfaßt, ob eine Befehlsliste innerhalb ihrer Zykluszeit abgearbeitet worden ist. Sobald der Flag gesetzt ist, wird diese Befehls­ liste bei der erfindungsgemäß vorgesehenen Prüfung nach ein­ zelnen Zeitabschnitten oder nach dem vollständigen Abarbeiten nicht mehr berücksichtigt. Hierdurch wird ein wiederholtes Abarbeiten der Befehlsliste mit dem höchsten Prioritätsrang zuverlässig verhindert.
Gemäß einer vorteilhaften Weiterbildung wird der Flag nach Ablauf der Zykluszeit zurückgesetzt. Bei der nächsten Prüfung wird daher die Befehlsliste wieder berücksichtigt.
Nach einer vorteilhaften Ausgestaltung wird über einen Zähler erfaßt, wie oft die Zykluszeit einer Befehlsliste ohne Abar­ beiten der Befehlsliste verstrichen ist. Falls die Kapazität der Datenverarbeitungsanlage zum Abarbeiten sämtlicher vorge­ sehener Befehlslisten nicht ausreicht, werden eine oder meh­ rere Befehlslisten mit niedrigem Prioritätsrang nicht ausge­ führt. Durch das Erfassen über den Zähler können diese Be­ fehlslisten eindeutig identifiziert werden.
Vorteilhaft wird bei Erreichen eines bestimmten, vorgebbaren Werts des Zählers eine Warnung ausgegeben. Diese Warnung alarmiert das Bedienpersonal, das dann nach Einschätzung der Sachlage die nicht abgearbeitete Befehlsliste manuell startet oder andere geeignete Schritte einleitet. Ein manuelles Star­ ten der Befehlsliste ist nur in Einzelfällen vorgesehen, in denen vorübergehend nicht genug Rechenzeit zur Verfügung ge­ standen hat. In anderen Fällen werden die Prioritätsränge und/oder Zykluszeiten der Befehlslisten angepaßt.
In vorteilhafter Weiterbildung wird bei Erreichen eines be­ stimmten, vorgebbaren Werts des Zählers die zugehörige Be­ fehlsliste vollständig abgeschaltet. Dieses Vorgehen vermei­ det eine Überlastung der Datenverarbeitungsanlage durch eine Vielzahl von möglicherweise unnötigen Befehlslisten mit nied­ rigem Prioritätsrang. Auch das Abschalten der Befehlsliste kann angezeigt werden.
Nach dem vollständigen Abarbeiten einer Befehlsliste können zwei oder mehrere der verbleibenden, noch nicht oder nicht vollständig abgearbeiteten Befehlslisten den gleichen Priori­ tätsrang aufweisen.
In erster vorteilhafter Ausgestaltung wird bei gleichem Prio­ ritätsrang von Befehlslisten die Befehlsliste mit der kürze­ sten Laufzeit bevorzugt. Diese Befehlsliste wird rasch abge­ arbeitet, und nach dem Abarbeiten wird eine erneute Prüfung vorgenommen.
Nach einer zweiten vorteilhaften Ausgestaltung wird bei glei­ chem Prioritätsrang von Befehlslisten die Befehlsliste mit der kürzesten Zykluszeit bevorzugt. Diese Befehlsliste muß häufiger als die verbleibenden Befehlslisten abgearbeitet werden.
Gemäß einer dritten vorteilhaften Ausgestaltung wird bei gleichem Prioritätsrang von Befehlslisten die Befehlsliste mit dem höchsten Wert des Zählers bevorzugt. Hierdurch wird sichergestellt, daß die Befehlsliste abgearbeitet wird, die bereits seit längerer Zeit nicht mehr abgelaufen ist.
Die Auswahl des Kriteriums, das bei gleichem Prioritätsrang von Befehlslisten angewendet wird, hängt vom Einzelfall ab. Alternativ kann bei der Projektierung sowie bei Änderungen jeder Prioritätsrang nur einmal vergeben werden, so daß eine Auswahl nach weiteren Kriterien nicht erforderlich ist.
Vorteilhaft entspricht ein Zeitabschnitt der Bearbeitungsdau­ er eines Einzelbefehls der gerade ablaufenden Befehlsliste. Hierdurch wird sichergestellt, daß jeder Einzelbefehl der ge­ rade ablaufenden Befehlsliste vollständig abgearbeitet wird und erst danach die erfindungsgemäß vorgesehene Prüfung vor­ genommen wird. Ein Unterbrechen der gerade ablaufenden Be­ fehlsliste an einer unzulässigen Stelle wird zuverlässig ver­ hindert. Sofern Einzelbefehle vorliegen, deren Bearbeitungs­ dauer unzulässig hoch ist, werden diese in mehrere Einzelbe­ fehle mit kürzerer Bearbeitungsdauer unterteilt. Diese Unter­ teilung wird manuell vorgenommen, wobei die Bearbeitungszeit bereits beim Programmieren berücksichtigt wird.
In anderer vorteilhafter Ausgestaltung entspricht ein Zeitab­ schnitt der Bearbeitungsdauer mehrerer Einzelbefehle der ge­ rade ablaufenden Befehlsliste. Hierdurch werden mehrere Ein­ zelbefehle zusammengefaßt und stets vollständig abgearbeitet. Dies ist von Vorteil, wenn durch das Abarbeiten der zusammen­ gefaßten Einzelbefehle bereits eine Teilaussage getroffen werden kann oder die Datenverarbeitungsanlage entlastet wird. Es ist ebenfalls möglich, Befehlslisten mit sehr kurzer Lauf­ zeit vollständig zusammenzufassen, so daß diese nicht unter­ brochen werden.
Nachstehend wird die Erfindung an Hand eines Ausführungsbei­ spiels näher erläutert, das schematisch in der Zeichnung dar­ gestellt ist. Dabei zeigt:
Fig. 1 eine schematische Darstellung der Erfindung am Bei­ spiel der Verbrennungsüberwachung und Verbrennungs­ regelung;
Fig. 2 eine schematische Darstellung mehrerer Befehlsli­ sten;
Fig. 3 eine schematische Darstellung des Abarbeitens von drei Befehlslisten in einer Datenverarbeitungsanla­ ge;
Fig. 4 ein Flußdiagramm des erfindungsgemäßen Verfahrens;
Fig. 5 ein Flußdiagramm zur Auswahl einer Befehlsliste; und
Fig. 6 ein Flußdiagramm zur Erläuterung des Setzen und Lö­ schen des Flags; und
Fig. 7 ein Flußdiagramm zum Erhöhen und Erniedrigen des Zählers.
Fig. 1 zeigt eine schematische Darstellung der Erfindung am Beispiel einer Verbrennungsüberwachung und Verbrennungskon­ trolle. Selbstverständlich ist die Erfindung nicht auf dieses Ausführungsbeispiel beschränkt.
In einem Verbrennungsraum 10 ist ein Brenner 11 vorgesehen, der eine Flamme 12 erzeugt. Die Flamme 12 wird über einen Sensor 13 überwacht. Die Signale des Sensors 13 werden an ei­ ne Datenverarbeitungsanlage 14 weitergeleitet und dort ausge­ wertet. Diese Auswertung kann mittels eines Moduls 15 ange­ zeigt und/oder abgespeichert werden. Sie wird weiter über ei­ ne Regelung 16 an den Brenner 11 zur Verbrennungskontrolle zurückgeführt.
In Fig. 2 sind schematisch drei Befehlslisten L1, L2, L3 dar­ gestellt, die zur Bearbeitung der Signale des Sensors 13 die­ nen. Jede Befehlsliste L1, L2, L3 ist ein Prioritätsrang P1, P2, P3 zugeordnet. Weiter ist jede Befehlsliste L1, L2, L3 mit einem Flag 23 oder einem Zähler 24 versehen.
Die Befehlslisten L1, L2, L3 umfassen eine Anzahl von aneinan­ dergereihten Einzelbefehlen 17, 18, 19. Diese Einzelbefehle 17, 18, 19 können unterschiedlich komplex sein und sich daher in der Bearbeitungsdauer unterscheiden. Dies ist schematisch durch die Größe der Rechtecke für die Einzelbefehle 17, 18, 19 in Fig. 2 dargestellt. Jede Befehlsliste L1, L2, L3 wird in Pfeilrichtung in Echtzeit t abgearbeitet und weist eine bestimmte Laufzeit Z1, Z2, Z3 sowie eine bestimmte Zykluszeit T1, T2, T3 auf. Die Laufzeit Z1, Z2, Z3 ist die Zeit, die zum Abarbeiten sämtlicher Einzelbefehle 17, 18, 19 der jeweiligen Befehlslisten L1, L2, L3 benötigt wird. An die Laufzeit Z1, Z2, Z3 schließt sich bei jeder Befehlsliste L1, L2, L3 eine Wartezeit 20, 21, 22 an. Die Wartezeiten 20, 21, 22 sind nicht maßstabsgetreu dargestellt, wie durch die Strichpunkt­ linien angegeben. Die Laufzeit Z1, Z2, Z3 sowie die Wartezeit 20, 21, 22 addieren sich zur Zykluszeit T1, T2, T3. Nach Ab­ lauf der Zykluszeit T1, T2, T3 soll die Befehlsliste L1, L2, L3 erneut abgearbeitet werden.
Fig. 3 zeigt eine Darstellung des Ablaufs beim Abarbeiten der drei Befehlslisten L1, L2, L3 in der Datenverarbeitungsan­ lage 14. Die Befehlslisten L1, L2, L3 weisen folgende Daten auf:
Zunächst wird die Befehlsliste L1 mit dem höchsten Priori­ tätsrang P1 gestartet. Nach einem ersten Zeitabschnitt Δt wird geprüft, ob die Zykluszeit einer weiteren Befehlsliste höherem Prioritätsrang abgelaufen ist. Da der Prioritätsrang P2, P3 der Befehlslisten L2, L3 geringer ist als der Priori­ tätsrang P1 der ablaufenden Befehlsliste L1 wird diese weiter abgearbeitet. Nach dem vollständigen Abarbeiten der Befehls­ liste L1 wird geprüft, welche der beiden verbleibenden Be­ fehlslisten L2, L3 den höchsten Prioritätsrang P2, P3 auf­ weist. Der Prioritätsrang P2 der Befehlsliste L2 ist größer als der der Befehlsliste L3. Daher wird die Befehlsliste L2 gestartet. Während des Ablaufens der Befehlsliste L2 erfolgt erneut eine Prüfung, ob die Zykluszeit T1 der Befehlsliste L1 mit höherem Prioritätsrang P1 abgelaufen ist. Dies ist nicht der Fall, so daß die Befehlsliste L2 vollständig abgearbeitet wird. Im Anschluß wird die einzige verbleibende Befehlsliste L3 gestartet. Während des Abarbeitens der Befehlsliste L3 en­ det die Zykluszeit T2 der Befehlsliste L2. Nachdem der Prio­ ritätsrang P2 der Befehlsliste L2 größer ist als der der Be­ fehlsliste L3, wird die Befehlsliste L3 unterbrochen. An­ schließend wird die Befehlsliste L2 abgearbeitet.
Während des zweitens Abarbeitens der Befehlsliste L2 wird er­ neut geprüft, ob die Zykluszeit T1 der Befehlsliste L1 abge­ laufen ist. Dies ist nicht der Fall, so daß die Befehlsliste L2 nochmals vollständig abgearbeitet wird. Anschließend wird auch die unterbrochene Befehlsliste L3 vollständig abgearbei­ tet.
Nach dem Ablaufen der Zykluszeit T1 der Befehlsliste L1 wird diese erneut gestartet. Der Prioritätsrang P1 der Befehlsli­ ste L1 ist größer als der der Befehlsliste L2. Daher wird die Befehlsliste L1 beim erneuten Ablauf der Zykluszeit T2 der Befehlsliste L2 nicht unterbrochen, sondern weiter abgearbei­ tet.
Dieses Ablaufschema setzt sich fort, bis zum Zeitpunkt t = 3000 ms wieder der Startzustand erreicht ist, wie durch die Linie 25 angegeben.
Fig. 4 zeigt ein Flußdiagramm des erfindungsgemäßen Verfah­ rens. In Schritt I werden die Befehlslisten L1, L2, L3 festge­ legt und die Prioritätsränge P1, P2, P3 zugewiesen. Anschlie­ ßend wird das erfindungsgemäße Verfahren gestartet. In Schritt II wird die abzuarbeitende Befehlsliste L1, L2, L3 ausgewählt. Das Auswahlschema ist in Fig. 5 näher darge­ stellt. Nach dem Auswählen wird in Schritt III mit dem Abar­ beiten dieser ausgewählten Befehlsliste L1 begonnen. In Schritt IV wird der jeweils anstehende Einzelbefehl 17, 18, 19 der Befehlsliste L1 in den zugeordneten Zeitabschnitt Δt abgearbeitet. Dieser Zeitabschnitt entspricht der Bearbei­ tungsdauer für den Einzelbefehl 17, 18, 19. Nach dem Abarbei­ ten wird in Schritt V geprüft, ob in der Befehlsliste L1 noch weitere Einzelbefehle enthalten sind. Ist dies nicht der Fall, wird gemäß Verzweigung 1 in Schritt VIII der Flag 23 der Befehlsliste L1 gesetzt. Der Flag 23 zeigt an, daß die Befehlsliste L1 bereits abgearbeitet worden ist. Anschließend wird zu Schritt II zurückgesprungen und die nächste abzuar­ beitende Befehlsliste L2, L3 ausgeführt.
Bei Verwendung eines Zählers 24 wird der Wert des Zählers 24 verringert. Sollte ein hoher Wert des Zählers 24 vorliegen, ist die fragliche Befehlsliste bereits mehrmals nicht abgear­ beitet worden. In diesem Fall kann die Befehlsliste nochmals abgearbeitet werden, falls keine andere Befehlsliste mit hö­ herem Prioritätsrang abgearbeitet werden muß. Ein hoher Wert des Zählers 24 kann nur für Befehlslisten mit niedrigem Prio­ ritätsrang auftreten, da Befehlslisten mit hohem Prioritäts­ rang bevorzugt abgearbeitet werden. Ein wiederholtes Abarbei­ ten derselben Befehlsliste wird daher durch Befehlslisten mit höherem Prioritätsrang verhindert. Das Abarbeiten dieser Be­ fehlslisten mit höherem Prioritätsrang wird daher nicht be­ einträchtigt.
Sofern die Befehlsliste L1 noch weitere Einzelbefehle 17, 18, 19 enthält, wird gemäß Verzweigung 0 zu Schritt VI gesprungen und geprüft, ob die Zykluszeit einer Befehlsliste mit höherem Prioritätsrang abgelaufen ist. Die Befehlsliste L1 weist den höchsten Prioritätsrang P1 auf. Daher wird gemäß Verzweigung 1 zu Schritt IV zurückgesprungen und der nächste Einzelbefehl 17, 18, 19 abgearbeitet.
Beim Abarbeiten der Befehlsliste L3 wird demgegenüber, wie in Fig. 3 dargestellt, in Schritt VI festgestellt, daß die Zy­ kluszeit T2 der Befehlsliste L2 mit höherem Prioritätsrang P2 abgelaufen ist. Daher wird in Schritt VI gemäß Verzweigung 0 in Schritt VII die laufende Befehlsliste L3 unterbrochen. Es wird abgespeichert, bei welchem Einzelbefehl 17, 18, 19 die Unterbrechung stattgefunden hat. Nach dem Unterbrechung und Abspeichern wird die Befehlsliste L2 mit dem höheren Priori­ tätsrang P2 ausgewählt und zur Schritt III zurückgesprungen. Dort wird mit dem Abarbeiten der Befehlsliste L2 begonnen.
In Schritt IV kann ein einziger Einzelbefehl 17, 18, 19 abge­ arbeitet werden. Der Zeitabschnitt Δt entspricht in diesem Fall der Bearbeitungsdauer eines einzigen Einzelbefehls. Beim Abarbeiten der Befehlsliste L3 wird jedoch zuverlässig si­ chergestellt, daß das Abarbeiten der Befehlsliste L2 mit hö­ herem Prioritätsrang P2 nicht verzögert wird.
Alternativ können mehrere Einzelbefehle 17, 18, 19 in Schritt IV zusammengefaßt und abgearbeitet werden. Der Zeitabschnitt Δt entspricht in diesem Falle der Bearbeitungszeit, die für die zusammengefaßten Einzelbefehle 17, 18, 19 erforderlich ist. Hierdurch wird sichergestellt, daß zusammengehörige Ein­ zelbefehle 17, 18, 19 nicht voneinander getrennt werden. Wei­ ter können kurze Befehlslisten L2, L3 durchgehend abgearbei­ tet werden. Es wird vom Benutzer festgelegt, ob Einzelbefehle 17, 18, 19 zusammengefaßt werden sollen.
Fig. 5 zeigt ein Flußdiagramm zum Auswählen der abzuarbei­ tenden Befehlsliste L1, L2, L3 beim ersten Start des erfin­ dungsgemäßen Verfahrens oder nach dem vollständigen Abarbei­ ten einer Befehlsliste L1, L2, L3. Das Auswählen geschieht in Schritt II des erfindungsgemäßen Verfahrens. Zunächst werden die abzuarbeitenden Befehlslisten L1, L2, L3 in Schritt A auf unterschiedliche Prioritätsränge P1, P2, P3 untersucht. Falls die Befehlslisten L1, L2, L3 unterschiedliche Prioritätsränge P1, P2, P3 aufweisen, wird gemäß Verzweigung 1 die Befehlsli­ ste L1 mit dem höchsten Prioritätsrang P1 selektiert. Diese Befehlsliste L1 wird anschließend in Schritt E ausgewählt und gemäß Fig. 4 abgearbeitet.
Weisen sämtliche noch abzuarbeitenden Befehlslisten L1, L2, L3 denselben Prioritätsrang P1, P2, P3 auf, so wird gemäß Ver­ zweigung 0 in Schritt B die Laufzeit Z1, Z2, Z3 der Befehlsli­ sten L1, L2, L3 überprüft. Vorteilhaft wird die Befehlsliste L2, L3 mit der kürzesten Laufzeit Z2, Z3 selektiert und gemäß Abzweigung 1 in Schritt E ausgewählt. Unterscheiden sich die Laufzeiten Z2, Z3 der Befehlslisten L2, L3 nicht, so wird ge­ mäß Verzweigung 0 in Schritt 10 die Zykluszeit T2, T3 ge­ prüft. Die Befehlsliste L2 mit der kürzeren Zykluszeit T2 wird gemäß Verzweigung 1 selektiert und in Schritt E ausge­ wählt.
Weisen sämtliche noch abzuarbeitenden Befehlslisten L2, L3 auch dieselbe Zykluszeit T2, T3 auf, so wird in Schritt D ge­ prüft, welchen Wert der Zähler 24 aufweist. Der Wert des Zäh­ lers 24 wird gemäß Fig. 6 ermittelt. Es wird die Befehlsli­ ste mit dem höchsten Wert des Zählers 24 selektiert und in Schritt E ausgewählt.
In Abhängigkeit vom Einzelfall können die Schritte A bis D auch in anderer Reihenfolge abgearbeitet werden.
Fig. 6 zeigt ein Flußdiagramm zum Setzen und Löschen des Flags 23. Der Flag 23 wird in den Schritten II, VIII des er­ findungsgemäßen Verfahrens gemäß Fig. 2 beeinflußt. In Schritt VIII wird nach dem vollständigen Abarbeiten einer Be­ fehlsliste L1, L2, L3 der zugehörige Flag 23 gesetzt. Dieser Flag 23 zeigt das vollständige Abarbeiten der zugeordneten Befehlsliste L1, L2, L3 innerhalb der Zykluszeit T1, T2, T3 an. In Schritt F wird das Ende der Zykluszeit T1, T2, T3 festge­ stellt und anschließend in Schritt G der Flag 23 rückgesetzt. Bei der nächsten Prüfung wird daher diese Befehlsliste L1, L2, L3 erneut berücksichtigt. Falls der Flag 23 nicht gesetzt worden ist, wurde die zugehörige Befehlsliste L1, L2, L3 inner­ halb der Zykluszeit T1, T2, T3 nicht abgearbeitet. Mit Ablauf der Zykluszeit T1, T2, T3 wird die Information, ob die Be­ fehlsliste L1, L2, L3 abgearbeitet worden ist, gelöscht.
In Fig. 7 ist das Erhöhen und Erniedrigen des Zählers 24 dargestellt. In Schritt VIII wird nach dem vollständigen Ab­ arbeiten einer Befehlsliste L1, L2, L3 der Zähler 24 um eins erniedrigt. Mit Ablauf der Zykluszeit T1, T2, T3 wird der Zäh­ ler 24 gemäß Schritt H anschließend um eins erhöht. In Schritt K wird geprüft, ob der Wert des Zählers 24 unterhalb eines ersten einstellbaren Werts liegt. Ist dies der Fall, wird gemäß Verzweigung 1 zu Schritt II des übergeordneten Verfahrens gemäß Fig. 2 zurückgesprungen. Anderenfalls wird gemäß Verzweigung 0 in Schritt L eine Warnung für das Bedien­ personal ausgegeben, die auch abgespeichert werden kann. Da­ nach wird ebenfalls zu Schritt II zurückgesprungen.
Im Anschluß wird in Schritt M geprüft, ob der Wert des Zäh­ lers 24 oberhalb eines zweiten einstellbaren Werts liegt. Falls dies der Fall ist, wird die jeweilige Befehlsliste L1, L2, L3 gemäß Verzweigung 1 in Schritt N abgeschaltet. Dieses Abschalten kann angezeigt und gespeichert werden.
Der Zähler 24 weist einen Wert von 0 auf, wenn die jeweilige Befehlsliste L1, L2, L3 innerhalb der Zykluszeit T1, T2, T3 vollständig abgearbeitet worden ist. Mit Ablauf der Zyklus­ zeit T1, T2, T3 wird der Wert des Zählers 24 um eins erhöht. Falls eine Befehlsliste L1, L2, L3 mehrmals nicht innerhalb ihrer Zykluszeit T1, T2, T3 vollständig abgearbeitet worden ist, kann der Wert des Zählers 24 auch größer als 1 sein. Da­ her wird jeder von 0 verschiedene Wert des Zählers 24 so in­ terpretiert, daß die zugehörige Befehlsliste L1, L2, L3 abge­ arbeitet werden soll. In Einzelfällen kann eine Befehlsliste L3 mit niedrigem Prioritätsrang P3 und einem hohen Wert des Zählers 24 mehrmals nacheinander abgearbeitet werden. Das Ab­ arbeiten von Befehlslisten L1, L2 mit höherem Prioritätsrang P1, P2 wird hierdurch nicht beeinträchtigt, da diese die Be­ fehlsliste L3 unterbrechen.
Die Warnung macht das Bedienpersonal darauf aufmerksam, daß eine bestimmte Befehlsliste L1, L2, L3 während eines bestimm­ ten Zeitraums nicht abgearbeitet worden ist. Dieser Zeitraum ist das Produkt des Werts des Zählers 24 mit der Zykluszeit T1, T2, T3 der jeweiligen Befehlsliste L1, L2, L3. Falls erfor­ derlich kann dann die jeweilige Befehlsliste L1, L2, L3 manu­ ell vom Bedienpersonal gestartet werden. Alternativ werden die Prioriotäten P1, P2, P3 und/oder Zykluszeiten T1, T2, T3 verändert, um einen reibungslosen Ablauf zu gewährleisten.
Das Abschalten der Befehlsliste L1, L2, L3 gemäß Schritt N entlastet die Datenverarbeitungsanlage 14. Das Abschalten wird ebenso wie die Warnung zum Unterrichten des Bedienperso­ nals angezeigt und abgespeichert.
Falls neue Befehlslisten aufgenommen werden sollen, können diese in die Datenverarbeitungsanlage 14 eingespeist werden. Nach Ablauf des jeweiligen Zeitabschnitts Δt werden die neu eingespeisten Befehlslisten bereits berücksichtigt. Ein manu­ elles Umprogrammieren ist nicht mehr erforderlich. Falls die Kapazität der Datenverarbeitungsanlage 14 nicht ausreicht, wird das Bedienpersonal automatisch gewarnt. In diesem Fall können entweder eine oder mehrere Befehlslisten L1, L2, L3 entfernt, die Zykluszeiten T1, T2, T3 angepaßt oder die Kapa­ zität der Datenverarbeitungsanlage 14 erhöht werden.
Das erfindungsgemäße Verfahren ermöglicht den gleichzeitigen Ablauf mehrerer Befehlslisten unabhängig voneinander. Ein ma­ nuelles Festlegen und Zuweisen des Ablaufbeginns ist nicht erforderlich. Änderungen und das Aufnehmen neuer Befehlsli­ sten sind rasch und unkompliziert automatisch möglich.

Claims (12)

1. Verfahren zum Abarbeiten mehrerer Befehlslisten (L1, L2, L3) in einer Datenverarbeitungsanlage (14), wobei jede Be­ fehlsliste (L1; L2; L3) eine bestimmte Laufzeit (Z1; Z2; Z3) und eine bestimmte Zykluszeit (T1; T2; T3) aufweist und eine An­ zahl von aneinander gereihten Einzelbefehlen (17, 18, 19) um­ faßt, dadurch gekennzeichnet, daß jeder Befehlsliste (L1; L2; L3) ein Prioritätsrang (P1; P2; P3) zuge­ ordnet wird, daß die Befehlslisten (L1; L2; L3) nacheinander in absteigendem Prioritätsrang (P1; P2; P3) ablaufen und abge­ arbeitet werden, wobei nach einzelnen Zeitabschnitten (Δt) geprüft wird, ob die Zykluszeit (T2) einer Befehlsliste (L2) mit höherem Prioritätsrang (P2)als die derzeit ablaufende Be­ fehlsliste (L3) abgelaufen ist, und beim Ablauf einer derar­ tigen Zykluszeit (T2) diese Befehlsliste (L2) gestartet und die laufende Befehlsliste (L3) unterbrochen wird, und anson­ sten die ablaufende Befehlsliste (L3) weiter abgearbeitet wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß nach dem vollständigen Abar­ beiten einer Befehlsliste (L1; L2: L3) geprüft wird, welche der noch nicht oder nicht vollständig abgearbeiteten Befehls­ listen (L1; L2; L3) den höchsten Prioritätsrang (P1; P2; P3) aufweist, worauf diese Befehlsliste (L1; L2; L3) gestartet wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß über einen Flag (23) erfaßt wird, ob eine Befehlsliste (L1; L2; L3) innerhalb ihrer Zy­ kluszeit (T1; T2; T3) abgearbeitet worden ist.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß der Flag (23) nach Ablauf der Zykluszeit (T1; T2; T3) zurückgesetzt wird.
5. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß über einen Zähler (24) er­ faßt wird, wie oft die Zykluszeit (T1; T2; T3) einer Befehls­ liste (L1; L2; L3) ohne Abarbeiten der Befehlsliste (L1; L2; L3) verstrichen ist.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß bei Erreichen eines bestimm­ ten, vorgebbaren Werts des Zählers (24) eine Warnung ausgege­ ben wird.
7. Verfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, daß bei Erreichen eines bestimm­ ten, vorgebbaren Werts des Zählers (24) die zugehörige Be­ fehlsliste (L1; L2; L3) vollständig abgeschaltet wird.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß bei gleichem Prioritätsrang (P1; P2; P3) von Befehlslisten (L1; L2; L3) die Befehlsliste (L2; L3) mit der kürzesten Laufzeit (Z2; Z3) be­ vorzugt wird.
9. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß bei gleichem Prioritätsrang (P1; P2; P3) von Befehlslisten (L1; L2; L3) die Befehlsliste (L2) mit der kürzesten Zykluszeit (T2) bevorzugt wird.
10. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß bei gleichem Prioritätsrang (P1; P2; P3) von Befehlslisten (L1; L2; L3) die Befehlsliste (L1) mit dem höchsten Wert des Zählers (24) bevorzugt wird.
11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß ein Zeitab­ schnitt (Δt) der Bearbeitungsdauer eines Einzelbefehls (17; 18; 19) der gerade ablaufenden Befehlsliste (L1; L2; L3) ent­ spricht.
12. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß ein Zeitab­ schnitt (Δt) der Bearbeitungsdauer mehrerer Einzelbefehle (17, 18, 19) der gerade ablaufenden Befehlsliste (L1; L2; L3) entspricht.
DE19915850A 1999-04-08 1999-04-08 Verfahren zum Abarbeiten mehrerer Befehlslisten in einer Datenverarbeitungsanlage Expired - Fee Related DE19915850C1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19915850A DE19915850C1 (de) 1999-04-08 1999-04-08 Verfahren zum Abarbeiten mehrerer Befehlslisten in einer Datenverarbeitungsanlage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19915850A DE19915850C1 (de) 1999-04-08 1999-04-08 Verfahren zum Abarbeiten mehrerer Befehlslisten in einer Datenverarbeitungsanlage

Publications (1)

Publication Number Publication Date
DE19915850C1 true DE19915850C1 (de) 2000-06-21

Family

ID=7903890

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19915850A Expired - Fee Related DE19915850C1 (de) 1999-04-08 1999-04-08 Verfahren zum Abarbeiten mehrerer Befehlslisten in einer Datenverarbeitungsanlage

Country Status (1)

Country Link
DE (1) DE19915850C1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1221639A2 (de) * 2000-12-27 2002-07-10 Siemens Aktiengesellschaft Programmierung von zyklischen Maschinen

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4339030A1 (de) * 1993-11-15 1995-05-18 Siemens Ag Einrichtung mit einem Betriebssystem, insbesondere einem Echtzeit-Betriebssystem
DE19500957A1 (de) * 1994-07-19 1996-01-25 Bosch Gmbh Robert Verfahren zur Steuerung von technischen Vorgängen oder Prozessen

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4339030A1 (de) * 1993-11-15 1995-05-18 Siemens Ag Einrichtung mit einem Betriebssystem, insbesondere einem Echtzeit-Betriebssystem
DE19500957A1 (de) * 1994-07-19 1996-01-25 Bosch Gmbh Robert Verfahren zur Steuerung von technischen Vorgängen oder Prozessen

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1221639A2 (de) * 2000-12-27 2002-07-10 Siemens Aktiengesellschaft Programmierung von zyklischen Maschinen
EP1221639A3 (de) * 2000-12-27 2006-08-09 Siemens Aktiengesellschaft Programmierung von zyklischen Maschinen

Similar Documents

Publication Publication Date Title
EP1330685B1 (de) Prüfverfahren und prüfvorrichtung zur inbetriebnahme von mittels einer programmlogik gesteuerten systemen
DE19744230B4 (de) Steuergeräte für ein System und Verfahren zum Betrieb eines Steuergeräts
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE3521930C2 (de)
DE2713253A1 (de) Programmlader fuer ein steuergeraet
DE102016000160B4 (de) Numerische Steuerung, eingerichtet für einen Teach-Betrieb mit wechselnden Arbeitsbereichen
EP0048991B1 (de) Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung
DE102016123235A1 (de) Betriebsverwaltungssystem zum direkten anzeigen eines arbeitsbefehls auf basis einer betriebsverwaltungsinformation an einer werkzeugmaschine
DE4106164A1 (de) Verfahren zum suchen und beseitigen von programmfehlern durch ausfuehren eines blockmodenlaufes
DE102019001129A1 (de) Numerische Steuervorrichtung
DE4445651A1 (de) Verfahren zur Steuerung von technischen Vorgängen
EP0801340B1 (de) Verfahren und Vorrichtung zur Steuerung einer Werkzeugmaschine, insbesondere einer Funkenerosionsmaschine
EP3396479B1 (de) Engineering-system
EP2433189B1 (de) Verfahren zum analysieren von meldungsarchiven und korrespondierendes computerprogramm zur ableitung eines endlichen automaten
DE19915850C1 (de) Verfahren zum Abarbeiten mehrerer Befehlslisten in einer Datenverarbeitungsanlage
DE102008035176A1 (de) Verfahren zum anwendungsspezifischen Hinzufügen von Funktionsbausteinen zu einem Automatisierungssystem
DE3743438A1 (de) Verfahren und einrichtung zum steuern des uebergangs eines endlichen automaten von einem momentanzustand in einen folgezustand
WO1996012218A1 (de) Verfahren und vorrichtung zur steuerung von funkenerosionsmaschinen
DE10065498B4 (de) Verfahren und Vorrichtung zur Rekonstruktion des Prozessablaufs eines Steuerprogramms
EP0894296B1 (de) Verfahren zum erfassen und dokumentieren nicht erfüllter fortschaltbedingungen bei systemen, die von schrittorientierten sps-programmen gesteuert werden
EP1593007A2 (de) Verfahren zur ermittlung der verarbeitungsreihenfolge von funktionsbausteinen eines automatisierungssystems und automatisierungssystem
DE3688506T2 (de) Datenverarbeitungsanlage.
EP0654155B1 (de) Einrichtung zum steuern des überganges von prozessor-betriebszuständen von einem momentanzustand in einen folgezustand
EP3948449B1 (de) Verfahren und engineering-system zur änderung eines programms einer industriellen automatisierungskomponente
EP2392705A1 (de) Weitergabe von Informationen mittels der Maschinensteuerung einer Textilmaschine

Legal Events

Date Code Title Description
8100 Publication of patent without earlier publication of application
D1 Grant (no unexamined application published) patent law 81
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20131101