Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

30.04.1976 - 

Mehr Komfort für Prozeßrechner-Anwender

Programmiersprache für Förderprozesse

DORTMUND - Auch im Bereich der Prozeßsteuerung trägt der Einsatz höherer Programmiersprachen wie Prozeß-Fortran, Coral 66 oder Pearl wesentlich zur Steigerung der Software-Produktivität und der Zuverlässigkeit der Programme bei. In noch verstärktem Maße wird das für Sprachen zutreffen, die für spezielle Anwendungsgebiete entwickelt werden, damit beispielsweise der Materialfluß-Ingenieur selbst den zu automatisierenden Prozeß in den Begriffen seiner Fachsprache programmieren kann und die bisher nötigen Abstimmungsgespräche zwischen Anwendern und fachfremden Systemprogrammierern entfallen können, die ja häufig genug zu teuren Mißverständnissen führen.

Der Lehrstuhl für Förder- und Lagerwesen der Universität Dortmund (Prof. Dr. Jünemann), der Mathematische Beratungs- und Programmierdienst GmbH (mbp) und das Entwicklungsbüro Wulf Werum (Lüneburg) begannen 1973 eine solche Anwendersprache für Stückgutprozesse unter dem Namen PSF (Problemorientierte Sprache für Förderprozesse) zu entwickeln. Das Vorhaben wurde im Rahmen des Projektes "Prozeßlenkung mit DV-Anlagen" der Gesellschaft für Kernforschung mbH (Karlsruhe) mit Bundesmitteln gefördert.

Am Lehrstuhl wurde eine umfangreiche Problemanalyse durchgeführt, die zur Bildung eines Modells für Hochregallager und innerbetriebliche Förderprozesse führte. Dieses Modell zeigte deutlich, daß angesichts der vielfältigen anwendungsspezifischen Formen der Förder- und Lagersysteme sowie ihrer zunehmenden Integration in den gesamten Produktionsprozeß die Sprache PSF sehr erweiterungs- und anpassungsfähig werden müßte.

Ein flexibler Kern

Daher entwickelten mbp/Werum ein flexiblen Sprachkern von PSF, genannt Dipol (Discrete Process Oriented Language), der leicht durch den Anwender erweitert und so dem Fortschritt der Technologie oder zusätzlichen Anwenderanforderungen angepaßt werden kann, ohne daß das Übersetzungssystem geändert werden muß. Der Sprachkern ist sogar über den Lager- und Förderbereich hinaus universell zur Programmierung diskreter Prozesse geeignet - z.B. für verkettete Fertigungs-, Dispositions- oder Krankenhaussysteme - und kann als Basis für (PSF benachbarte) Anwendersprachen auch in diesen Gebieten eingesetzt werden. Zur Zeit arbeiten mbp/Werum an dem Übersetzungssystem, während der Lehrstuhl Prof. Jünemann Dipol zu PSF erweitert.

Programme sind viergeteilt

Dipol-Programme gliedern sich in

l. Systemteil, in dem die Hardware Konfiguration des eingesetzten Rechners, Frequenzen und Zeitkontrolle für Interrupts sowie Eichfunktionen für die Prozeß-E/A angegeben werden;

2. Topologieteil der die gegenseitige Zuordnung z.B. von

Fördereinrichtungen beschreibt;

3. Speicherteil, in dem Angaben zur Ablage und Ansprache von Dateien,

Mengen und Warteschlangen erfolgen;

4. Problemteil, in dem die Objekte und Aktionen z.B. eines Fördersystems beschrieben werden.

Durch diese Aufteilung können Änderungen im Systemteil (z.B. eine andere Interruptfrequenz), im Topologieteil (z.B. eine andere Streckenführung) oder im Speicherteil (z.B. weniger residente Daten oder Änderungen der Zugriffsstrategie auf eine Warteschlange) ohne Änderungen des Problemteils erfolgen.

Bei den derzeit verfügbaren Prozeßprogrammiersprachen müssen der Austausch von Daten zwischen Programmen (z.B. zwischen einem Lese- und, einem Entschlüsselungsprogramm) und die Koordination des Zugriffs auf gemeinsam benutzte Betriebsmittel (z.B. Dateien, Geräte) vom Programmierer selbst organisiert werden.

Mit Dipol kann die Kommunikation zwischen Programmen oder der Zugriff auf Betriebsmittelmittels eines "Briefkastens" bzw. unter direkter Angabe der zu sichernden Betriebsmittel einfach formuliert werden (message-concept bzw. an Blöcke gebundene seize- und share-Anweisungen); in beiden Fällen sorgt der Dipol-Generator aufgrund einer automatischen internen Analyse des Programmgraphen für eine sichere und deadlock-freie Organisation der nötigen Abläufe.

Selbstkontrolle der Anwender-Programme

Programme zur Steuerung komplexer technischer Prozesse müssen jedoch nicht nur sicher, sondern auch selbstkontrollierend sein. Bei Förderprozessen genügt es beispielsweise nicht, auf einen Interrupt zu reagieren; es muß darüber hinaus kontrolliert werden, ob dieser Interrupt in einem vorgegebenen Zeitintervall oder in einer bestimmten zeitlichen Relation zu anderen Interrupts auftritt (etwa nach Passieren einer Weiche). Dipol enthält Sprachelemente zur problemorientierten Formulierung solcher Kontrollvorschriften in Form von Netzplänen. Da auch Reaktionen für die Verletzung derartiger Vorschriften eingeplant werden können, behält das generierte Programm-System im Fehlerfall die Kontrolle, so daß die Gefahr von Systemausfällen reduziert wird.

Analog zu Reaktionen auf Interrupts erlaubt Dipol die Einplanung von Reaktionen auf Meldungen von Programmen, auf das Einfügen (Entfernen) von Elementen in (aus) Dateien sowie auf den Zugriff zu Dateien. Diese "ereignisbedingten Anweisungen" können für Test-, Dimensionierungs- oder Statistikzwecke eingesetzt werden; da sie nachträglich an ein fertiges Programm angefügt werden können, ist so die Trennung logisch unabhängiger Aufgaben leicht möglich (etwa die Trennung des Zugriffs von der Registrierung des Zugriffs zu einer Datei).

Selbstsprechende Beschreibung

Aufbauend auf den bereits eingeführten Typen von Dipol (z.B. Zahlen, Interrupts, Geräte, Warteschlangen) können neue, anwendungsspezifische Typen und Operationen für diese Typen allgemein definiert und in eine Bibliothek- eingebracht werden. So erarbeitet der Lehrstuhl Prof. Jünemann für die PSF-Bibliothek allgemeine, flexibel anwendbare Datenstrukturen für die in einem Förder- und Lagersystem auftretenden Objekte (z.B. Regalförderzeug mit Tischen, Auftragsdatensatz, Stammdatei) sowie universell einsetzbare Prozeduren (z.B. Ein-, Aus-, Umlagerung oder Auftragsverfolgung in einem Hochregallager). Die selbstsprechende Beschreibung dieser Datenstrukturen und Programme unterstützt den Anwender schon bei der Problemanalyse. Im speziellen Anwendungsfall werden die allgemeinen Typen auf die erforderliche Struktur "zurechtgeschnitten" (z.B. "declare RFZ Regalförderzeug [quant (Tisch) - 2]").

Implizites Task-Handling

Die Programmierung simultaner Abläufe ("Task-Handling") mit den heute zur Verfügung stehenden Sprachen ist meist nicht problembezogen, daher aufwendig und undurchsichtig für den Anwender. In Dipol benutzt der Anwender, selbstsprechende Anweisungen, aus denen der Dipol-Generator sicher die nötigen, komplizierten Tasksteuerungsanweisungen erzeugt ("implizites Task-Handling"). Des weiteren stehen zur Formulierung komplexen Abhängigkeitsverhältnisse Anweisungen zum Gebrauch der Entscheidungstabellentechnik zur Verfügung.

Versteckte Dateien

Bei umfangreichen Förder- und Lagersystemen entfällt der größte Teil der Software auf Datenorganisation (Dateiaufbau, -verwaltung,

-prüfung und -kommunikation einschließlich der zugehörigen Datensicherungs- und Wiederanlaufroutinen). Dafür bietet Dipol E/A-Anweisungen auf PL/1-Niveau; darüber hinaus können jedoch Objekte (z.B. Datensätze) gleicher Struktur zu Mengen oder Warteschlangen ("versteckten" Dateien) zusammengefaßt werden. Im Problemteil formuliert nun der Anwender strategiefrei.- also ohne Berücksichtigung konkreter Dateigrenzen, Satznummern, Zugriffsstrategien - auf logischer Ebene das Erzeugen, den assoziativen Zugriff über Atribute oder Schlüssel und das Löschen von Objekten dieser Mengen mittels entsprechender Mengenoperationen ("verstecktes, implizites File-Handling"). Wie die benutzte Menge abgelegt ist (z.B. teilweise resident, der Rest auf einer Platte mit Sicherheitskopie) und nach welcher Strategie auf die Elemente zugegriffen werden kann (z.B. FIFO oder nach Schlüssel), wird im Speicherteil angegeben. Standardmäßig stehen die Strategien FIFO, LIFO, ORDERED und KEY zur Verfügung.

Programmieren auf logischem Niveau

Allgemein - nicht nur bei Mengen und Warteschlangen - ist es in Dipol möglich, Objekten Attribute zuzuweisen und über diese Attribute auf die Objekte zuzugreifen. Somit kann der Anwender z.B. "if FOERDERZEUG (I)! (FREI) then..." programmieren, anstatt abfragen zu müssen, ob das i-te Bit eines Merkers gesetzt ist. Auf diese Weise kann der Dipol-Anwender seine Automationsaufgabe schnell auf logischem, problemorientiertem Niveau programmieren, während die erforderlichen rechnerorientierten Befehlssequenzen automatisch und sicher durch den Dipol-Generator erzeugt werden.

Portabilität eingebaut

Mit Ausnahme des Systemteils, in dem die Hardware-Konfiguration beschrieben wird, sind Dipol-Programme rechnerunabhängig. Damit der Einsatz auf den gängigen

Prozeßrechneranlagen gesichert ist, können sie in die rechnerunabhängige Realzeitsprache Pearl (Process- and Experiment-Automation Realtime Language) übersetzt werden. Im einzelnen werden Dipol oder PSF-Programme durch ein mehrstufiges Übersetzungssystem ("Dipol- Generator") auf Vollständigkeit und Widerspruchsfreiheit geprüft und in die rechnerunabhängige Zwischensprache IL1 übersetzt; auf dieser Ebene ist automatische Optimierung möglich. Aus der IL1-Form werden Dipol-Programme schließlich in Pearl umgesetzt.

Mit und ohne Pearl-Compiler

Verfügt ein Dipol-Anwender über keinen Pearl-Compiler, so können die IL1-Programme mittels eines für den entsprechenden Rechner zu erstellenden Code-Generators direkt in den Maschinencode, Assembler oder die Systemprogrammiersprache des Zielrechners übersetzt werden. In diesem Fall muß der Zielrechner auch noch über die einheitliche Betriebssystemschnittstelle BAPAS2 (Basis für Prozeß

Automationssysteme) des mbp verfügen. Dieses Standard-Realzeit-Betriebssystem setzt der mbp auch als Betriebssystemschnittstelle für seinen rechnerunabhängigen Pearl-Compiler ein.

Auf PL/l-Basis

Da der Dipol-Generator, der Umsetzer nach Pearl und der jeweilige Code-Generator in einem Subset von PL/1 programmiert sind, können Dipol-Programme auf Rechenanlagen mit einem PL/1-Compiler übersetzt werden - sie können also mit dem Komfort eines Großrechners im Rechenzentrum entwickelt und (teilweise) getestet werden (cross-Compilierung).

Lieferbar 1977

Das gesamte Dipol-Übersetzungssystem kann jedoch auf den Zielrechner transportiert werden, so daß Dipol-Programme auch "vor Ort" entwickelt, übersetzt und getestet werden können, wobei der Generator nur einen Laufbereich von etwa 30K Bytes benötigt.

Die Definition des PSF-Kerns Dipol erfolgte l975 in Form eines vor allem für die Implementatoren geeigneten Sprachreports. Eine benutzerfreundliche Beschreibung des Systems und ein ausgetesteter Dipol/Pearl-Übersetzer werden 1977 zur Verfügung stehen,

*Dr. Hans Windauer ist Projektleiter für Realzeit-Programmiersysteme beim Mathematischen Beratungs- und Programmierdienst in Dortmund.