Projektaufbau

1 Allgemein

Das Projekt wird durch Strukturbausteine, die einander aufrufen, hierarchisch in Ebenen gegliedert.

Beim Bearbeiten des Projekts werden Klassen und Instanzen unterschieden. Klassen werden beim Editieren erzeugt und speichern die Vorgabewerte. Instanzen werden beim Wechsel in die Inbetriebnahme gebildet und können dort parametriert werden.

Im Projekt sind nur die definierten Strukturbausteine enthalten. Die aufgerufenen Funktionsbausteine sind in geladenen Bibliotheken gespeichert. Zugeladene Projekte und exportierte Strukturbausteine ermöglichen die Wiederverwendung einmal entwickelter Algorithmen und Funktionen.

Der folgende Abschnitt wird die Gliederung des Projekts in Ebenen, Klassen und Instanzen und die Bindungen zu den Bibliotheken näher beleuchten.

2 Projektebenen

Ein Projekt kann in unbegrenzt tiefe, hierarchische Strukturen gegliedert werden, besteht aber mindestens aus zwei Ebenen, der Konfiguration und den Programmbausteinen.

testcon Projektebenen

Konfiguration, Programm- und Makrobausteine werden unter dem Begriff Strukturbausteine zusammengefasst.

Konfiguration

Die oberste Ebene eines Projektes ist die Konfiguration (&Main). Sie ermöglicht die grafische Konfiguration der Tasks des Zielsystems.Programmbausteine werden in die Konfiguration eingefügt. Durch Festlegung ihrer Priorität und der Zykluszeit stellt man die Parameter der Taskverwaltung ein. Verbindungen zwischen den Programmbausteinen ermöglichen den asynchronen Datenaustausch über den Speicher des Zielsystems. Die Anzahl der Programmbausteine ist durch die Anzahl der parallelen Tasks im Zielsystem (meist 15) begrenzt. Eine Konfiguration ohne Programmbaustein erzeugt ein Programm ohne Tasks und ist nicht sinnvoll. Neben Programmbausteinen können in die Konfigurationsebene auch Bausteine ohne Zielfunktion, wie Parameter- und Visualisierungsbausteine, eingefügt werden.

Programmbausteine

Die Programmbausteine bilden die zweite Ebene des Projekts. Jedes Programm läuft als eigenständige Task. In ihnen werden die von den Tasks aufgerufenen Funktionen durch Einfügen der entsprechenden Bausteine definiert und ihre Reihenfolge festgelegt. Parameterbausteine legen lokale bzw. instanzspezifische Werte für die Verarbeitung fest. Durch Verwendung von Makrobausteinen werden die Programme gegliedert. Sie vereinfachen den Aufruf mehrfach verwendeter Funktionen. Zur Kennzeichnung von Programmbausteinen wird ihrer Bezeichnung ein $-Zeichen vorangestellt.

Makrobausteine

Makrobausteine können in Programmbausteine und andere Makrobausteine eingefügt werden. Ein rekursiver Aufruf ist aber nicht erlaubt. Makrobausteine enthalten Teilfunktionen der Programme und zugehörende lokale Parameter. Sie sind keine Unterprogramme. Bei der Codegenerierung erzeugen sie für jeden Aufruf den vollständigen Zielcode.

Alle Projektebenen können Visualisierungsbausteine (ohne Zielfunktion) enthalten. Zum Datenaustausch über die Projektebenen werden die Bausteine Input und Output der Bibliothek Standard verwendet. Zur bedingten Verarbeitung von Programm- und Makrobausteinen wird der Enable-Baustein aus der gleichen Bibliothek benutzt.

3 Klassen und Instanzen

Programm- und Makrobausteine (in Abb. links ist Baustein Nr. 8 ein Makrobaustein) können in einem Projekt mehrfach aufgerufen werden. Damit diese Aufrufe unterschiedlich parametriert werden können, gibt es in miCon-L das Konzept der Instanziierung. Für jeden Aufruf wird beim Wechsel in den Inbetriebnahmemodus eine neue Instanz des Strukturbausteins gebildet. Jede Instanz besitzt zwar die gleiche Struktur (Bausteine und Verbindungen), ihr kann aber ein eigener Satz lokaler Parameter zugeordnet werden. Diese lokalen Instanzparameter werden in den Bausteinen des Strukturbausteins und der untergeordneten Ebenen festgelegt.

Beim Bearbeiten werden in die Parameterdialoge der Bausteine nur Vorgabewerte eingetragen. Diese werden beim ersten Wechsel in den Inbetriebnahmemodus als Instanzparameter übernommen. Danach können die Instanzparameter im Inbetriebnahmemodus geändert werden. Diese Änderungen haben natürlich keine Auswirkungen auf die Vorgabewerte in den Strukturbausteinklassen.

Wechselt man zurück zum Bearbeiten und verändert dort die Vorgabewerte, so bleiben die Instanzparameter davon unberührt. Die Instanzen neu eingefügter Strukturbausteine erhalten die Vorgabewerte als Instanzparameter.

Werden Strukturbausteine durch Einfügen neuer Bausteine erweitert, bleiben die Instanzparameter der bereits vorhandenen Bausteine erhalten. Die neu eingefügten Bausteine werden mit den Vorgabewerten initialisiert.

Zum Abgleich der Parameter mehrerer Instanzen eines Strukturbausteins können die Befehle Parameter sichern und Parameter laden des Untermenüs Strukturbaustein genutzt werden. Mit dem zuerst genannten Befehl werden die Instanzparameter aller im Strukturbaustein befindlichen Bausteine und der darunter liegenden Ebenen in eine Datei geschrieben. Mit dem zweiten Befehl werden sie wieder eingelesen.

Speichert man die Parameter einer Instanz, wechselt dann zu einer anderen und lädt die Datei, so besitzen beide Instanzen nach dieser Operation identische Parametersätze.

Zum leichteren Unterscheiden der Strukturbausteininstanzen können ihnen verschiedene Namen zugewiesen werden. Die Kontextmenüs für Strukturbausteine im Inbetriebnahmemodus enthalten den Befehl Instanzname. Im aufgerufenen Dialog kann eine Bezeichnung eingegeben werden, die danach im Symbol des Strukturbausteins und im Projektbaum (nach zwei Doppelpunkten) erscheint.

Instanznamen werden nur im Inbetriebnahmemodus angezeigt. Eine Ausnahme bildet die Konfiguration, in der auch beim Editieren die Instanznamen der Programme sichtbar sind.

Die Konfiguration ist der einzige Strukturbaustein, der nur einmal im Projekt aufgerufen wird. Sowohl beim Editieren als auch im Inbetriebnahmemodus kann auf die Instanz der Konfiguration zugegriffen werden. Die Parameter in der Konfiguration fungieren als globale Parameter für die übrigen Strukturbausteininstanzen.