Programmiersprache für kontrollierte Ablaufsteuerungen:

Zykluszeiten im Bereich von Mikrosekunden

03.05.1985

HEIDELBERG (hh) - Mit einer neuen Programmiersprache für schnelle Steuerungen tritt die Ruprecht-Karls-Universität aus Heidelberg an die Öffentlichkeit. "Sorca" wurde ursprünglich für prozeß- und zeitplankontrollierte Ablaufsteuerungen entwickelt, erst später kamen komplexere digitale und analoge Funktionen hinzu.

Anwendungen findet diese Sprache in Bereichen der digitalen Ablaufsteuerung, der Prozeßsteuerung, der Meß- und Regeltechnik und der stochastischen Rechentechnik. Auch Signalverarbeitung, Mustererkennung und Simulation gehören zu den geplanten Einsatzbereichen.

Das Projekt der Heidelberger Universität umfaßt vier Stufen. Der Definition der Sprache und der Festlegung der Syntax folgte die Implementierung von Sorca als Compiler für einen herkömmlichen Mikroprozessor. Die dritte Stufe beinhaltet den Einsatz eines Single-Chip-Mikros, der die Sprachfunktion emuliert. Die Entwicklung eines speziellen Sorca-Prozessors, der alle Funktionen unmittelbar ausführen kann, steht an vierter Stelle der Projektvorgehensweise. Mit diesem Schritt hoffen die Forscher, die Arbeitsgeschwindigkeiten nochmals um zwei Größenordnungen zu erhöhen.

Mehrere Prozesse unabhängig steuerbar

Die Stufe zwei ist bezüglich der digitalen Funktionen bereits realisiert und jetzt vorgestellt. Für verschiedene Mikrocomputer (so IBM PC/XT, Apple II mit Z80-Karte und für die meisten Z80-Systeme) sind Compiler verfügbar (Version 1.0), die alle Z80-Code erzeugen. Für den IBM Personal Computer PC/XT/AT gibt es in der Zwischenzeit eine Sorca-Zusatzende mit einem Z80H (8MHz) als Koprozessor und vielen digitalen und analogen Interfaces.

Der Ablauf eines Sorca-Programms verdeutlicht die zyklische Arbeitsweise (siehe Abbildung):

Alle Ein- und Ausgänge von Funktionen werden als Variablen mit beliebig wählbaren Namen definiert. Über diesen Namen kann dann jede Funktion jede Variable als Input- oder Output-Variable verwenden. Auf einige Variablen mit festgelegtem Namen ist von außen, also hardwaremäßig, der Zugriff möglich.

Nach der Initialisierung und der Deklarierung der Hardware-Adressen für die Ein- und Ausgänge und einen Zeitgeber sowie weiterer Funktionen, die nur nach dem Start des Programms einmal abgearbeitet werden sollen, folgen die Funktionen, die zyklisch zu durchlaufen sind:

Jeder Zyklus beginnt bei der Funktion "FUNC" mit dem Lesen der Hardware-Eingänge und der Zuweisung an die entsprechenden Variablen. Dann werden die übrigen Funktionen abgearbeitet, also der Zustand aller Variablen neu bestimmt. Nach der Funktion "ENDFUNC" ist ein Zyklus beendet. Das Programm wartet jetzt, bis die vorprogrammierte Zykluszeit vorbei ist und setzt dann alle Hardware-Ausgänge entsprechend den zugeordneten Variablen. Anschließend beginnt der nächste Zyklus wieder bei der Funktion "FUNC".

Die maximal mögliche Zykluszeit ergibt sich aus der Summe der Durchlaufzeiten aller aufgerufenen Funktionen, die für Stufe zwei im Bereich von 5 bis 50 Mikrosekunden liegen kann. Diese Zeit wird vom Compiler ermittelt und ausgegeben. Damit sind in vielen Anwendungen Zykluszeiten von wenigen 100 Mikrosekunden erreichbar.

In der zur Zeit verfügbaren Version 1.0 gibt es Funktionen zur Initialisierung und Deklarierung der Hardware zum Programmablauf und einfache und komplexe Logikfunktionen. Komplexe Funktionen sind Vorwahlzähler, verschiedene Flip-Flops, Oszillator, Verzögerung, Majoritätsgatter und Vorwärts-Rückwärts-Zähler, deren Inhalte auch ausgedruckt werden können.