DE19828611C2 - Datenverarbeitungsvorrichtung und zugehöriges Verfahren - Google Patents
Datenverarbeitungsvorrichtung und zugehöriges VerfahrenInfo
- Publication number
- DE19828611C2 DE19828611C2 DE19828611A DE19828611A DE19828611C2 DE 19828611 C2 DE19828611 C2 DE 19828611C2 DE 19828611 A DE19828611 A DE 19828611A DE 19828611 A DE19828611 A DE 19828611A DE 19828611 C2 DE19828611 C2 DE 19828611C2
- Authority
- DE
- Germany
- Prior art keywords
- program code
- data processing
- processing device
- program
- block
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Description
Die Erfindung betrifft eine Datenverarbeitungsvorrichtung
sowie ein zugehöriges Verfahren zum Ausführen eines
Programmes, das aus in einem Programmcode abgelegten Befehlen
besteht. Insbesondere bezieht sich die Erfindung auf eine
Vorrichtung und ein Verfahren zur vorteilhaften Ausführung
des Programmablaufs.
Rechenanlagen sind Systeme, die Informationen aufnehmen
können, mit ihnen vorgeschriebene Operationen ausführen und
die Ergebnisse bereitstellen. Üblicherweise bestehen
Rechenanlagen aus Vorrichtungen zur Eingabe, zur Ausgabe, zum
Speichern und zur Verarbeitung.
Rechenanlagen können vielseitig verwendet werden. Neben der
häufigen Anwendung im Personalcomputer, in denen
Anwendungsprogramme zur Textverarbeitung, Bildbearbeitung,
Datenbanken etc. sowie Systemprogramme wie Betriebssysteme
und Hilfsprogramme betrieben werden, ist eine weitere
bedeutende Anwendung von Rechenanlagen in der Steuerung von
Geräten zu sehen. Dabei sendet die Rechenanlage an die zu
steuernden Geräte Daten in Form von Nachrichten, um die
Geräte zur Ausführung gewünschter Aktionen zu veranlassen.
Zudem empfangen solche Rechenanlagen von den Geräten auch
Daten, die Auskunft über den Zustand der Geräte oder andere
Informationen, wie beispielsweise Meßwerte enthalten.
Ein Beispiel für Rechenanlagen, die zur Gerätesteuerung
eingesetzt werden, stellen öffentliche Vermittlungssysteme
dar. Ein Vermittlungssystem enthält eine Vielzahl von
Prozessorplattformen, die untereinander sowie mit vielen
Daten- und Telefonleitungen verbunden sind sowie eine
zentrale Steuerung und Untereinheiten umfassen. Auch solche
Prozessorplattformen stellen Datenverarbeitungsvorrichtungen
dar.
Allgemein kann man Rechenanlagen in digitale und analog
arbeitende Computer einteilen (Digitalrechner,
Analogrechner). Bei Digitalrechnern ist dabei die Vorrichtung
zur Verarbeitung ein Prozessor, d. h. eine zentrale Einheit,
die ein Leitwerk zur Steuerung sowie ein Rechenwerk zur
eigentlichen Informationsverarbeitung umfaßt. Das Leitwerk
adressiert über den Befehlszähler die Maschinenbefehle und
übernimmt diese schrittweise bei der Programmausführung aus
dem Hauptspeicher. In Abhängigkeit des jeweiligen
Maschinenbefehls generiert das Leitwerk alle Steuersignale
für alle Teilwerke des Rechners zur Ausführung des Befehls.
Leitwerke können mikroprogrammiert oder fest verdrahtet
realisiert sein.
Das Rechenwerk umfaßt eine arithmetisch-logische Einheit, in
der die Daten verknüpft werden, Register zur Speicherung von
Zwischenergebnissen, ggf. weitere transformierende Einheiten
wie Zähler oder Shifter und Datenpfade zwischen diesen
Elementen.
Neben der Unterscheidung in Digital- und Analogrechner lassen
sich Rechenanlagen allgemein in nicht programmierbare und
programmierbare Rechner einteilen. Nicht programmierbare
Rechner, wie z. B. einfache Taschenrechner, zwingen den
Benutzer dazu, jeden einzelnen Arbeitsschritt von Hand
auszulösen, und überlassen ihm so die
Abarbeitungsreihenfolge. Demgegenüber führen programmierbare
Rechner die gewünschten Funktionen mit einem Minimum an
menschlicher Überwachung und Eingriffen durch, wenn das
Programm erstellt und gespeichert ist.
Programme können auf verschiedentliche Art erzeugt werden.
Neben teach-in-, play-back- und master-slave-Verfahren, die
häufig zur Programmierung von robotergesteuerten
Arbeitsabläufen vor Ort Verwendung finden, ist die häufigste
Art der Programmierung die Off-Line-Erstellung von
Ablaufprogrammen. Diese erfolgt in der Regel textuell, kann
aber auch über CAD-Systeme durchgeführt werden. Besonders bei
der textuellen Programmierung bedient sich der Programmierer
einer Programmiersprache.
Eine Programmiersprache ist ein Ausdrucksmittel für
Algorithmen. Grundsätzlich können zunächst funktionale
(applikative) von imperativen (zustandsorientierten)
Programmiersprachen unterschieden werden. Funktionale
Programmiersprachen spiegeln die Philosophie des Lambda-
Kalküls wider. Zentrale Ausdrucksmittel einer solchen Sprache
sind somit Funktionsdefinition und Funktionsanwendung. Ein
Beispiel für eine solche Programmiersprache ist LISP.
Grundlegend für ein Programm in einer imperativen
Programmiersprache ist der Programmzustand, der sich aus den
aktuellen Werten der Programmvariablen konstituiert. Dieser
Zustand wird während des Programmlaufs durch Zuweisungen
sukzessive transformiert. Diese Zuweisungen werden
prinzipiell linear abgearbeitet, der aktuelle Programmzustand
kann aber auch abgefragt werden, wodurch die Möglichkeit zu
Programmverzweigungen eröffnet wird.
Höhere Programmiersprachen stellen hierfür eine Reihe von
Kontrollstrukturen zur Verfügung, wie beispielsweise bedingte
Anweisungen, Fallunterscheidungen und Schleifen. Darüber
hinaus verfeinern höhere Programmiersprachen das zusätzliche
Konzept durch Einführen von Prozeduren, Modulen etc.
Ferner sind logische Programmiersprachen zu nennen, die das
Darstellen von bestimmten Sachverhalten durch logische
Formeln erlauben. Ein Beispiel einer logischen
Programmiersprache stellt PROLOG dar.
Neben einer rein linearen Programmierung erlauben viele
Programmiersprachen strukturiertes Programmieren. Dabei wird
mit einem groben Schema des zu entwickelnden Programms
begonnen und dieses schrittweise durch Konkretisieren
weiterer Einzelheiten verfeinert, bis schließlich das
gesuchte Programm fertig ist, wenn alle Details ausgeführt
sind.
Ebenfalls weit verbreitet ist die objektorientierte
Programmiermethodik, bei der ein Programm als ein System
aktiver Objekte implementiert wird, die physikalischen
Objekten und mentalen Konzepten des Problembereichs
entsprechen. Jedes Objekt enthält lokales Wissen und
spezielle Expertisen. Objekte kommunizieren untereinander
durch Verwenden von Nachrichten, und ein Objekt ist definiert
durch sein Verhalten auf empfangene Nachrichten hin. Objekte
können hierarchisch aus weiteren Objekten aufgebaut sein,
wobei Methoden und Daten vererbt werden können.
Für Programm- und Testabläufe erstellter Programme kann die
Compiler- von der Interpretertechnik unterschieden werden.
Bei der Compilertechnik wird das komplette Programm zunächst
mit einem Editor eingegeben. Die syntaktische Fehlerprüfung
erfolgt anschließend durch einen Compiler, wobei sich Fehler
in der Programmlogik hier nicht immer automatisch erkennen
lassen. Treten Fehler auf, muß das Programm erneut mit dem
Editor behandelt und vollständig übersetzt werden.
Bei der Interpretertechnik erfolgen Eingabe und Übersetzen
des Programms nicht getrennt. Jede Eingabe wird sofort auf
syntaktische Korrektheit überprüft und ein syntaktischer
Fehlerfall beantwortet. Ein Testlauf zur Prüfung auf logische
Fehler kann nach der Programmeingabe erfolgen.
Herkömmliche Programmiermethodiken führen, wie oben
dargestellt, zu statischen Programmen, d. h. zu fest kodierten
Aufrufsequenzen. Nachdem diese Sequenzen erstellt worden
sind, kann das Programm zur Ausführung gebracht werden.
Treten bei der Ausführung des Programms Umstände ein, die
eine Änderung der Programmstruktur notwendig machen, muß die
Ausführung des Programms unterbrochen werden, woraufhin die
Änderung der fest kodierten Aufrufsequenz erfolgen kann.
Solche Umstände können beispielsweise auftretende Fehler
insbesondere während der Steuerung externer Geräte sein.
Gerade bei einer Gerätesteuerung ist es jedoch nachteilig,
daß in einem solchen Fall die Programmausführung unterbrochen
werden muß, da dies zu Situationen führt, in denen die mit
der Rechenanlage verbundenen Geräte nicht länger gesteuert
sind.
Aus der DE 42 05 372 C2 ist ein Verfahren zum Laden von
geänderten Programmteilen in eine programmierbare Steuerung
bekannt. Eine Zielvorrichtung wird von einer Anzahl
programmierbarer Steuerungen gesteuert, die jeweils mit einem
Bestandspflegetool verbunden sind. Jede programmierbare
Steuerung führt eine Vielzahl von Programmen aus und enthält
eine Managementtabelle, die zu jedem Programm neben
Managementinformationen, die den Programmstatus betreffen,
auch Startadressen speichert. Unter Verwendung unter anderem
dieser Managementtabelle ist es möglich, ohne die gesteuerte
Zielvorrichtung anzuhalten, geänderte Programme oder
Programmteile zu laden. Hierzu sind jedoch
Programmunterbrechungen notwendig. Während des
Programmablaufs werden die geänderten Programmteile in einen
reservierten Bereich geladen und erst dann in die
Managementtabelle übertragen, wenn das zu ändernde Programm
beendet ist.
Die DE 41 12 090 A1 offenbart ein Verfahren zum maschinellen
Erstellen eines aus mehreren Programmteilen bestehenden
Programmes. Die Reihenfolge der Programmteile wird zum Zwecke
des Auffindens einer bestmöglichen Anordnung so variiert, daß
ein einzelner Programmteil untersucht werden kann. Hierzu
wird der Ablauf des Programms durch ein Trace-Verfahren
simuliert, um die Anzahl von Cache-Misses zu reduzieren.
Der Erfindung liegt die Aufgabe zugrunde, eine
Datenverarbeitungsvorrichtung sowie ein zugehöriges Verfahren
anzugeben, die ohne großen Programmieraufwand, während der
Programmausführung, flexibel auf Änderungen der den
Programmablauf beeinflussenden Umstände reagieren.
Diese Aufgabe wird durch die Gegenstände der Patentansprüche
1 und 20 gelöst.
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand
der Unteransprüche.
Mit der Erfindung wird insbesondere erreicht, daß der
Testaufwand bei der Erstellung eines Programmes deutlich
reduziert ist. Dies führt zu verringerten Entwicklungszeiten
und damit -kosten.
Weiter wird mit der Erfindung in vorteilhafter Weise eine
Datenverarbeitungsvorrichtung geschaffen, bei der eigene
Softwareabläufe für Fehlerfälle minimiert sind, da lediglich
eine Änderung der Aufrufsequenz bzw. eine Änderung der
Aufrufparameter erforderlich ist.
Zudem kann der Funktionsumfang des Programms auf einfache Art
und Weise erweitert werden, da die Programmcodeblöcke
unabhängige Bausteine darstellen, die auch unabhängig
voneinander geschrieben werden können. Eine Erweiterung der
gesamten Software erfolgt daher durch Hinzufügen eines
weiteren Bausteins und eines Aufrufs in der Aufruftabelle.
Ein weiterer Vorteil liegt in der Verringerung des Umfangs
des Programmcodes und somit in einer Reduktion des hierfür
notwendigen Speichers, da Programmcodeblöcke, die mehrfach
vorkommen, nur einmal kodiert werden müssen.
Schließlich eignen sich vorteilhafterweise die
Datenverarbeitungsvorrichtung und das zugehörige Verfahren
zur parallelen Verarbeitung mehrerer Aufträge. Dies ist
insbesondere für gerätesteuernde Anwendungen nützlich.
Bevorzugte Ausführungsbeispiele der Erfindung werden
nachstehend erläutert. Es zeigen:
Fig. 1 die Gesamtheit eines Programmcodes in kompakter
(Fig. 1a) sowie untergliederter Form (Fig. 1b);
Fig. 2 die erfindungsgemäße Trennung von Programmcode
und Aufruftabelle; und
Fig. 3 eine erfindungsgemäße Datenverarbeitungsvorrich
tung.
In Fig. 1a ist ein Programmcode schematisch als eine nicht
untergliederte Gesamtheit 2 gezeigt. Ein solches Programm ist
vorzugsweise Teil einer Anwendungssoftware, d. h. es ist für
bestimmte Aufgaben entwickelt worden. Die Gesamtheit 2 eines
Programmcodes läßt sich in kleine Bausteine oder Blöcke B1-B5,
Bn aufteilen, wie in Fig. 1b dargestellt. Ein einzelner
Block stellt vorzugsweise eine abgeschlossene Unterfunktion
des Anwendungsprogramms dar. Bei einem Block kann es sich
aber auch um ein unabhängiges Codestück handeln.
Wie in Fig. 1b gezeigt, kann die Gesamtheit des Programmcodes
in der Weise in Blöcke eingeteilt werden, daß Blöcke mehrfach
vorkommen. In dem in Fig. 1b gezeigten Beispiel handelt es
sich dabei um die Blöcke B1 und B3.
Fig. 2 zeigt die erfindungsgemäße Anordnung, in der die
Blöcke B1-B5, Bn in einem Speicher 4 abgelegt sind und ferner
ein Speicher 6 zum Speichern einer Aufruftabelle vorgesehen
ist. Im Speicher 4 für die Programmcodeblöcke sind alle
redundanten Blöcke gelöscht, so daß sich jeder der
gespeicherten Blöcke von den anderen Blöcken unterscheidet.
Die Aufruftabelle ist in eine Vielzahl von Schritten S1-S7,
Sn unterteilt, die jeweils einen der gespeicherten Blöcke
adressieren. Durch diese Adressierung wird eine Reihenfolge
von Programmcodeblöcken definiert, durch deren Abarbeitung
das Anwendungsprogramm ausgeführt wird. Dabei können
verschiedene Schritte S1-S7, Sn auch denselben Block B1-B5,
Bn adressieren, wodurch sich die in Fig. 1b gezeigte
Programmcodesequenz erzielen läßt.
Fig. 3 zeigt eine erfindungsgemäße
Datenverarbeitungsvorrichtung, die aus einem Regelwerk bzw.
einer Steuereinrichtung 8-14, 18 und der Anwendungssoftware
4, 6, 16, 20 besteht.
Die Anwendungssoftware umfaßt zunächst neben den im Speicher
4 gespeicherten Programmcodeblöcken die bereits erwähnte
Aufruftabelle, die festlegt, in welcher Reihenfolge die
einzelnen Softwareblöcke aufgerufen werden. Die Aufruftabelle
enthält vorzugsweise neben der Festlegung der Reihenfolge,
mit der die einzelnen Softwareblöcke aufgerufen werden,
weiterhin Aufrufparameter, die an den jeweiligen Block
übergeben werden und von diesem Block auch geändert werden
können.
Zu Beginn der Programmausführung wird die Aufruftabelle für
den gesamten Ablauf initialisiert. Die in der Aufruftabelle
gespeicherte Information kann jedoch auch während der
Programmausführung geändert werden und kann somit abhängig
vom Ergebnis der Programmausführung des vorherigen
Programmcodeblocks sein, wodurch eine dynamische Änderung des
Programmablaufs erzielt wird.
Eine Änderung des Programmablaufs kann eine völlige
Neustrukturierung der in der Aufruftabelle 6 gespeicherten
Reihenfolge darstellen. Vorzugsweise besteht eine Änderung
jedoch lediglich in der Wiederholung eines Programmcodeblocks
oder einer Gruppe von Programmcodeblöcken. In einer
bevorzugten Ausführung kann eine solche Änderung lediglich in
geänderten Aufrufparametern bestehen, wobei die Reihenfolge
unbeeinflußt bleibt.
Vorzugsweise werden Ergebnisse bei der Abarbeitung eines
Programmcodeblocks in einer Datenbank gespeichert und so
anderen Programmcodeblöcken, insbesondere dem nachfolgenden
Block, bereitgestellt. Dies ermöglicht eine vereinfachte
Kommunikation zwischen Programmcodeblöcken.
In der bevorzugten Ausführungsform von Fig. 3 sind
Schnittstellen zur Außenwelt wie Dateneingabeeinheiten,
Datenausgabeeinheiten, Steuerleitungen, Informationsgeber
etc. Teil der Anwendungssoftware. Für über eine Schnittstelle
eingehende Daten verfügt die Anwendungssoftware vorzugsweise
über einen zentralen Empfangsblock (EB) 16. Ist bei der
Ausführung von in einem Programmcodeblock abgelegten Befehlen
das Empfangen von Nachrichten und Daten vorgesehen, so wird
während der Ausführung dieses Programmcodeblocks zu dem
zentralen Empfangsblock 16 verzweigt und nach Empfang zu dem
Programmcodeblock zurückgewechselt.
Das Regelwerk enthält einen Steuerblock 8, der mit dem
Speicher 6 für die Aufruftabelle verbunden ist und alle Daten
enthält, die das Regelwerk benötigt, um einen Softwareblock
aufrufen und dessen Ablauf bis zum Ende steuern zu können.
Nach Beendigung eines in der Aufruftabelle gespeicherten
Schrittes S1-S7, Sn wird der nachfolgende Schritt aufgerufen.
Der Inhalt des Steuerblocks 8 ist nur solange gültig, wie der
jeweilige Schritt aktiv ist.
Der Steuerblock enthält vorzugsweise Steuerparameter und
Aufrufparameter. Die Steuerparameter können vom Regelwerk
selbst nach einer Standardeinstellung geändert werden. Es
besteht ferner die Möglichkeit, daß auch in den
Programmcodeblöcken die Steuerparameter geändert werden, um
eine Abweichung vom Standardprogrammablauf zu erzwingen. Dies
ermöglicht mehrere Unteraufrufe, bis der jeweilige Schritt
endgültig beendet werden kann. Vorzugsweise findet ein
solches Vorgehen bei einer Kommunikation über eine
Prozeßschnittstelle Anwendung.
Die Aufrufparameter stellen die aktuellen Parameter für den
Aufruf eines Programmcodeblocks dar. Sie werden vorzugsweise
vom Regelwerk beim Aufbau des Steuerblocks 8 aus der
Aufruftabelle kopiert bzw. vom Regelwerk initialisiert.
Während des Ablaufs des Programms können diese Parameter vom
aufgerufenen Programmcodeblock selbst verändert werden,
wodurch beispielsweise eine Wiederholung eines Schritts mit
geänderten Aufrufparametern möglich wird.
Das Regelwerk verfügt vorzugsweise ferner über eine
Aufrufeinheit 10, die zum Aufruf der individuellen
Programmcodeblöcke verwendet wird. Dabei übergibt die
Aufrufeinheit 10 an den jeweiligen Programmcodeblock B1-B5,
Bn die Steuer- und Aufrufparameter aus dem Steuerblock 8.
Vorzugsweise hat die Anwendungssoftware die Möglichkeit, die
Aufrufparameter für einen neuen Aufruf eines Programmblocks
zu ändern. Hierzu gibt der jeweilige Programmblock die
geänderten Aufrufparameter sowie auch neue Steuerparameter an
die Aufrufeinheit 10 zurück.
Eine Steuerparametereinheit 12 dient zunächst der Abfrage, ob
die Anwendungssoftware neue Steuerparameter vorgegeben hat.
In diesem Fall übernimmt die Steuerparametereinheit 12 die
neuen Steuerparameter. Andernfalls werden die Steuerparameter
mit den Standardwerten überschieben, die einen regulären
Ablauf garantieren.
Das Regelwerk umfaßt ferner eine Schrittsteuerung 14 zur
Auswertung der Steuerparameter. Je nach Auswertung der
Steuerparameter wird entweder ein neuer Programmcodeblock
aufgerufen oder der zentrale Empfangsblock 16 angewählt. Wird
ein neuer Programmcode aufgerufen, so muß der Inhalt des
Steuerblocks 8 neu angelegt und initialisiert werden, d. h.
die Aufrufparameter werden aus der Aufruftabelle 6 in den
Steuerblock 8 kopiert. Vorzugsweise hat die Schrittsteuerung
14 ferner die Aufgabe, Nachrichten, die ein Programmcodeblock
an einen anderen Programmcodeblock möchte, ohne eine
Verzweigung zum zentralen Empfangsblock 16 zuzustellen.
In einer bevorzugten Ausführungsform der Erfindung verfügt
die Datenverarbeitungsvorrichtung über Mittel zum Beseitigen
während des Programmablaufs auftretender Fehler. Dies
geschieht vorzugsweise durch im Programmcode der Blöcke
enthaltene Fehlerroutinen, um blockspezifischen Fehlern zu
begegnen. Für programmablaufspezifische Fehler verfügt die
Datenverarbeitungsvorrichtung vorzugsweise über eine zentrale
Fehlerbehandlung. Diese kann in eine Einheit 18 des
Regelwerks und eine Einheit (FB) 20 der Anwendungssoftware
unterteilt sein.
Die zentrale Fehlerbehandlungseinheit 18 des Regelwerks ist
mit der Steuerparametereinheit 12 und der Schrittsteuerung 14
verbunden und erlaubt die Änderung von Steuer- und
Aufrufparametern, um Fehler zu beseitigen. Der zentrale
Fehlerbehandlungsblock 20 der Anwendungssoftware stellt einen
eigenen Programmcodeblock dar, der anwendungsprogramm
spezifische Fehlerbehandlungsroutinen enthält, zu denen im
Fehlerfall verzweigt werden kann.
Vorzugsweise wird zunächst versucht, Fehler innerhalb des
jeweiligen Programmcodeblocks B1-B5, Bn zu beheben. Diese
Fehlerbehandlung hat oberste Priorität. Wurde in dem
Programmcodeblock keine Fehlerbehandlung durchgeführt, so hat
die Anwendungssoftware vorzugsweise nach einer Abfrage die
Möglichkeit, die im zentralen Fehlerbehandlungsblock 20
vorgesehenen Fehlerbehandlungsroutinen zu aktivieren. Der
Fehlerbehandlungsblock wird vorzugsweise jedoch nur dann
aufgerufen, wenn dies durch die Steuerparameter gefordert
wird. Ist dies nicht der Fall oder führt die zentrale
Fehlerbehandlung in Block 20 nicht zum Erfolg, so wird das
Regelwerk durch Ansteuerung der zentralen
Fehlerbehandlungseinheit 18 mit der Fehlerbehandlung
beauftragt.
Ein bevorzugtes Ausführungsbeispiel der Erfindung erlaubt die
parallele Abarbeitung mehrerer Programmcodeblöcke. Dies wird
insbesondere durch das Vorhandensein eines zentralen
Empfangsblocks 16 ermöglicht und erfordert die gleichzeitig
mehrfache Aufrufbarkeit von Programmcodeblöcken. Falls pro
Block eine Datenbank vorhanden ist, so wird diese
vorzugsweise so angelegt, daß Ergebnisse parallel
ausgeführter Programmblöcke separat abgespeichert werden.
Vorzugsweise wird ferner für jeden der parallel ausgeführten
Schritte S1-S7, Sn ein eigener Steuerblock 8 angelegt.
Vorzugsweise wird bei paralleler Abarbeitung mehrerer
Programmcodeblöcke der jeweilige Programmcodeblock
zwangsweise verlassen und auf den zentralen Empfangsblock
gewechselt, um die Laufzeit in einem Programmcodeblock nicht
zu groß für eine parallele Bearbeitung werden zu lassen. Erst
nach Erhalt einer neuen Nachricht oder vorzugsweise nach
Ablauf einer vorbestimmten Zeitdauer kann in den
ursprünglichen Programmcodeblock an die Stelle gewechselt
werden, wo er verlassen wurde. Das Senden einer Nachricht von
einem Block zu einem anderen unter Steuerung der
Schrittsteuerungseinheit 14 am zentralen Empfangsblock 16
vorbei ist besonders vorteilhaft bei parallel ausgeführten
Programmblöcken.
Vorzugsweise dient die Anwendungssoftware zum Steuern von
Geräten, vorteilhafterweise in oder in Verbindung mit einem
Vermittlungssystem oder einem öffentlichen
Vermittlungssystem.
Claims (20)
1. Datenverarbeitungsvorrichtung zum Ausführen eines
Programms, das aus in einem Programmcode (2) abgelegten
Befehlen besteht, wobei die Vorrichtung enthält:
eine Einrichtung (4) zum Speichern des Programmcodes,
eine Einrichtung (6) zum Speichern einer Aufruftabelle (S1-S7, Sn), und
eine Steuereinrichtung (8-14) zum Lesen der Aufruftabelle und zum Lesen des Programmcodes sowie zum Ausführen der in dem gelesenen Programmcode enthaltenen Befehle,
dadurch gekennzeichnet, daß
der Programmcode in eine Vielzahl von Programmcodeblöcken (B1-B5, Bn) aufgeteilt ist,
die Aufruftabelle eine Reihenfolge angibt, in der die Programmcodeblöcke auszuführen sind,
die Steuereinrichtung zum Lesen der Programmcodeblöcke in der in der Aufruftabelle angegebenen Reihenfolge eingerichtet ist, und
die Einrichtung (6) zum Speichern der Aufruftabelle so eingerichtet ist, daß die gespeicherte Reihenfolge während der Ausführung des Programms verändert werden kann.
eine Einrichtung (4) zum Speichern des Programmcodes,
eine Einrichtung (6) zum Speichern einer Aufruftabelle (S1-S7, Sn), und
eine Steuereinrichtung (8-14) zum Lesen der Aufruftabelle und zum Lesen des Programmcodes sowie zum Ausführen der in dem gelesenen Programmcode enthaltenen Befehle,
dadurch gekennzeichnet, daß
der Programmcode in eine Vielzahl von Programmcodeblöcken (B1-B5, Bn) aufgeteilt ist,
die Aufruftabelle eine Reihenfolge angibt, in der die Programmcodeblöcke auszuführen sind,
die Steuereinrichtung zum Lesen der Programmcodeblöcke in der in der Aufruftabelle angegebenen Reihenfolge eingerichtet ist, und
die Einrichtung (6) zum Speichern der Aufruftabelle so eingerichtet ist, daß die gespeicherte Reihenfolge während der Ausführung des Programms verändert werden kann.
2. Datenverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet, daß wenigstens
ein Programmcodeblock eine in sich abgeschlossene
Unterfunktion des Programms darstellt.
3. Datenverarbeitungsvorrichtung nach Anspruch 1 oder 2,
dadurch gekennzeichnet, daß die
Aufruftabelle zusätzlich Aufrufparameter enthält.
4. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 3, dadurch gekennzeichnet, daß die
Aufruftabelle durch in den Programmcodeblöcken enthaltene
Befehle veränderlich ist.
5. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 4, dadurch gekennzeichnet, daß die
Änderung der Aufruftabelle der wiederholten Ausführung eines
Programmcodeblocks dient.
6. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 5, dadurch gekennzeichnet, daß die
Datenverarbeitungsvorrichtung ferner eine Datenbank zum
Speichern von Ergebnissen der Ausführung jedes
Programmcodeblocks enthält.
7. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 6, dadurch gekennzeichnet, daß die
Vielzahl der Programmcodeblöcke einen zentralen Empfangsblock
zum Empfangen von Nachrichten enthält.
8. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 7, dadurch gekennzeichnet, daß die
Steuereinrichtung einen Steuerblock (8) zum Speichern der für
die Ausführung des gegenwärtigen Programmcodeblocks
notwendigen Informationen enthält.
9. Datenverarbeitungsvorrichtung nach Anspruch 8,
dadurch gekennzeichnet, daß der
Steuerblock (8) Mittel zum Übertragen der gespeicherten
Information an die Speichereinrichtung (6) enthält.
10. Datenverarbeitungsvorrichtung nach Anspruch 8 oder 9,
dadurch gekennzeichnet, daß die in dem
Steuerblock (8) gespeicherte Information während der
Ausführung des entsprechenden Programmcodeblocks veränderlich
ist.
11. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 10, dadurch gekennzeichnet, daß die
Steuereinrichtung (8-14) eine Aufrufeinheit (10) zum Aufrufen
der Programmcodeblöcke unter Verwendung der im Steuerblock
(8) enthaltenen Daten enthält.
12. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 11, dadurch gekennzeichnet, daß die
Steuereinrichtung (8-14) eine Steuerparametereinheit (12) zum
Lesen und Schreiben geänderter oder standardmäßiger Daten des
Steuerblocks (8) enthält.
13. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 12, dadurch gekennzeichnet, daß die
Steuereinrichtung (8-14) eine Schrittsteuerung (14) zur
Auswertung der im Steuerblock (8) enthaltenen Daten und zur
Änderung dieser Daten enthält, um die Reihenfolge der
auszuführenden Programmcodeblöcke zu ändern.
14. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 13, dadurch gekennzeichnet, daß die
Steuereinrichtung (8-14) eine zentrale
Fehlerbehandlungseinheit (18) zur zentralen Behandlung von
Fehlern beim Programmablauf enthält.
15. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 14, dadurch gekennzeichnet, daß
einer der Programmcodeblöcke ein zentraler
Fehlerbehandlungsblock (20) zur zentralen Behandlung von
Fehlern beim Programmablauf ist.
16. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 15, dadurch gekennzeichnet, daß die
Steuereinrichtung (8-14) Befehle aus mehreren
Programmcodeblöcken parallel ausführen kann.
17. Datenverarbeitungsvorrichtung nach Anspruch 16,
dadurch gekennzeichnet, daß jedem
parallel auszuführenden Programmcodeblock eine Datenbank zum
Abspeichern von Ergebnissen der Befehlsausführung zugeordnet
ist.
18. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 17, dadurch gekennzeichnet, daß die
Datenverarbeitungsvorrichtung zum Steuern von Geräten
verwendet wird.
19. Datenverarbeitungsvorrichtung nach einem der Ansprüche 1
bis 18, dadurch gekennzeichnet, daß die
Datenverarbeitungsvorrichtung Teil eines Vermittlungssystems
ist.
20. Verfahren zum Ausführen eines Programms, das aus in einem
Programmcode (2) abgelegten Befehlen besteht, wobei der
Programmcode in eine Vielzahl von Programmcodeblöcken (B1-B5,
Bn) aufgeteilt ist und eine Aufruftabelle (S1-S7, Sn) eine
während der Ausführung des Programms veränderliche
Reihenfolge angibt, in der die Programmcodeblöcke auszuführen
sind, wobei das Verfahren die Schritte umfaßt:
Lesen der Aufruftabelle zur Bestimmung des als nächstes auszuführenden Programmcodeblocks,
Lesen dieses Programmcodeblocks, und
Ausführen der in diesem Programmcodeblock enthaltenen Befehle.
Lesen der Aufruftabelle zur Bestimmung des als nächstes auszuführenden Programmcodeblocks,
Lesen dieses Programmcodeblocks, und
Ausführen der in diesem Programmcodeblock enthaltenen Befehle.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19828611A DE19828611C2 (de) | 1998-06-26 | 1998-06-26 | Datenverarbeitungsvorrichtung und zugehöriges Verfahren |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19828611A DE19828611C2 (de) | 1998-06-26 | 1998-06-26 | Datenverarbeitungsvorrichtung und zugehöriges Verfahren |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19828611A1 DE19828611A1 (de) | 2000-01-20 |
DE19828611C2 true DE19828611C2 (de) | 2000-05-18 |
Family
ID=7872167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19828611A Expired - Fee Related DE19828611C2 (de) | 1998-06-26 | 1998-06-26 | Datenverarbeitungsvorrichtung und zugehöriges Verfahren |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19828611C2 (de) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4112090A1 (de) * | 1991-04-12 | 1992-10-15 | Siemens Ag | Verfahren zum maschinellen erstellen eines aus mehreren programmteilen bestehenden programmes |
DE4205372C2 (de) * | 1991-05-07 | 1996-08-22 | Mitsubishi Electric Corp | Verfahren zum Laden von geänderten Programmteilen in eine programmierbare Steuerung |
-
1998
- 1998-06-26 DE DE19828611A patent/DE19828611C2/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4112090A1 (de) * | 1991-04-12 | 1992-10-15 | Siemens Ag | Verfahren zum maschinellen erstellen eines aus mehreren programmteilen bestehenden programmes |
DE4205372C2 (de) * | 1991-05-07 | 1996-08-22 | Mitsubishi Electric Corp | Verfahren zum Laden von geänderten Programmteilen in eine programmierbare Steuerung |
Also Published As
Publication number | Publication date |
---|---|
DE19828611A1 (de) | 2000-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68923888T3 (de) | Speicherprogrammierbare Steuerung mit gespeichertem markierten Quellencode. | |
DE69704624T2 (de) | System und verfahren für dynamische datenreferenz in einer generischen datenaustauschumgebung | |
DE69324388T2 (de) | Speicherprogrammierbare Steuerung | |
DE4331703C2 (de) | Elektronische Einrichtung | |
DE10116809A1 (de) | Programmierbare Steuereinrichtung und Vorrichtung zur Unterstützung einer Steuerprogrammentwicklung | |
DE3732808A1 (de) | Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm | |
DE2630323B2 (de) | Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE3851207T2 (de) | Verfahren zur Bedienung eines Rechnergraphiksystems. | |
DE69206917T2 (de) | Hilfsverfahren für die Entwicklung einer miteinander kommunizierender Automatengruppe | |
DE1900141A1 (de) | Datenverarbeitungsvorrichtung | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE19524402C2 (de) | Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge | |
DE2433436A1 (de) | Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer | |
DE4104568A1 (de) | Verfahren und vorrichtung zur programmverarbeitung | |
EP0838054B1 (de) | Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem | |
DE3121046C2 (de) | ||
DE3323824A1 (de) | Speicherprogrammierbare steuerung | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE19828611C2 (de) | Datenverarbeitungsvorrichtung und zugehöriges Verfahren | |
DE69032835T2 (de) | Prozedurzustandsdeskriptorsystem für digitale Datenprozessoren | |
EP1862901A1 (de) | Eingabe von Programm-Anweisungen bei imperativen Programmiersprachen | |
DE19901879A1 (de) | Verfahren zum Tracen von Daten | |
DE10057575A1 (de) | Verfahren zur automatischen Softwaregenerierung | |
DE19637883B4 (de) | Datenverarbeitungsanlage zur Ausführung großer Programmsysteme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |