DE19828611C2 - Datenverarbeitungsvorrichtung und zugehöriges Verfahren - Google Patents

Datenverarbeitungsvorrichtung und zugehöriges Verfahren

Info

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
Application number
DE19828611A
Other languages
English (en)
Other versions
DE19828611A1 (de
Inventor
Ludwig Schoenauer
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 DE19828611A priority Critical patent/DE19828611C2/de
Publication of DE19828611A1 publication Critical patent/DE19828611A1/de
Application granted granted Critical
Publication of DE19828611C2 publication Critical patent/DE19828611C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates 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.
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.
DE19828611A 1998-06-26 1998-06-26 Datenverarbeitungsvorrichtung und zugehöriges Verfahren Expired - Fee Related DE19828611C2 (de)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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