16.08.2013 Aufrufe

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6.4. KONTROLLFLUSS IN FUNKTIONALEN DATENNETZEN 151<br />

griff auf den Vorgängerzyklus angezeigt wird. Dieser sollte nach Möglichkeit erkannt <strong>und</strong> lokalisiert<br />

werden. Geschieht <strong>die</strong>s nicht, wird durch <strong>die</strong> wartenden Zugriffe eine Verklemmung<br />

provoziert: Trifft der Anfragestrom auf eine Sequenz, <strong>die</strong> bereits aktiv ist, wartet er auf das Ergebnis<br />

der dort laufenden Aktualisierung. Wird da<strong>für</strong> jedoch <strong>die</strong> Antwort der laufenden Anfrage<br />

benötigt, kommt der Zyklus zu keinem Ende <strong>und</strong> der Prozeß hängt.<br />

Hier ergeben sich nun entscheidende Unterschiede zwischen einem synchronen <strong>und</strong> einem<br />

asynchronen Kontrollfluß. Wird das Modul ausschließlich synchron angesteuert, d.h. alle Relationen<br />

sind synchron spezifiziert <strong>und</strong> der komplette Zyklus läuft in einem einzigen Thread ab,<br />

kann es bei regulärem Netzdesign nicht vorkommen, daß ein Funktor mehrfach mit ÐÐ aufgerufen,<br />

oder daß <strong>für</strong> eine Sequenz während einer bereits laufenden ØØ -Methode ein erneuter<br />

Zugriff mit ØØ gestartet wird. Hat der <strong>Daten</strong>flußgraph jedoch einen Rückkopplungszweig<br />

ohne den obligatorischen Rückgriff auf den vorangegangenen Zyklus, tritt genau einer <strong>die</strong>ser<br />

beiden Fälle ein. Dies kann lokal leicht erkannt werden, <strong>und</strong> zu einer entsprechenden Ausnahmebehandlung<br />

führen.<br />

Können im Modul jedoch auch asynchrone Programmzweige vorkommen, ist <strong>die</strong>ses Kriterium<br />

nicht geeignet, einen Konflikt zu erkennen, da auch im regulären Betrieb, wie Abb. 6.40<br />

zeigt, parallele Mehrfachaufrufe <strong>die</strong>ser Methoden auftreten. Lokal ist dabei nicht zu unterscheiden,<br />

ob wartende Aufrufe durch einen noch aktiven Thread beantwortet werden können, oder<br />

ob durch das Anhalten eines Ausführungszweiges, um auf ein Datum zu warten, genau <strong>die</strong>s verhindert<br />

wird. Hier können nur weitergehende Kontrollmechanismen, wie sie in Abschnitt 6.4.5<br />

beschrieben wurden, zum Erkennen von Fehlern im Netzdesign beitragen. Um im regulären<br />

Betrieb den Overhead aufwendiger Tests zu vermeiden, bietet es sich beispielsweise an, zu Beginn<br />

des Programms <strong>und</strong> nach jeder Änderung der Netztopologie einen Testzyklus — synchron<br />

oder durch einen Agenten überwacht — zu starten. Ein solcher Mechanismus kann leicht in <strong>die</strong><br />

Sequenz- <strong>und</strong> Funktorobjekte integriert werden.<br />

Zugriffe auf <strong>die</strong> Eingangsdaten des Moduls<br />

Anders als bei der datengetriebenen Steuerung, wo <strong>die</strong> Zykluszeit direkt von den (dominanten)<br />

Eingangsdaten abhängt (Ø Ø Ë ÅÁÒ ), wird in anfragegetriebenen Modulen <strong>die</strong> Zykluszeit<br />

i.d.R. durch <strong>die</strong> anfragende Instanz vorgegeben, ohne daß dabei <strong>die</strong> durch <strong>die</strong> Eingangssensoren<br />

vorgegebenen <strong>Daten</strong>meßzeiten bekannt wären. Zeittolerante <strong>Daten</strong>zugriffe, wie sie in<br />

Abschnitt 6.4.4 diskutiert wurden, spielen daher <strong>für</strong> <strong>die</strong> Zugriffe auf <strong>die</strong> Eingangsdaten des<br />

Moduls in <strong>die</strong>sem Steuerungsmodell eine wichtige Rolle, selbst wenn keine unsynchronisierten<br />

Eingangsdaten zu verarbeiten sind.<br />

Welches Zugriffsverfahren über <strong>die</strong> Relationen Ø ℄ , Ø Ø℄ , Ø Ø , Ø Ø <strong>und</strong> Ø <br />

im einzelnen auszuwählen ist, muß sich auch hier an der Netztopologie, den Eigenschaften der<br />

externen Sensoren sowie an Kriterien, wie Zugriffskonsistenz, <strong>Daten</strong>verzögerung, Wartezeit<br />

<strong>und</strong> Anwendbarkeit orientieren. Da <strong>die</strong>se Problematik bereits ausführlich in Abschnitt 6.4.4<br />

diskutiert wurde, soll an <strong>die</strong>ser Stelle nur kurz auf <strong>die</strong> verschiedenen Zugriffsrelationen eingegangen<br />

werden.<br />

Ø ℄ liefert den neuesten in der Sequenz verfügbaren Wert <strong>und</strong> stellt damit <strong>die</strong> einfachste<br />

Zugriffsmethode dar. Aufgr<strong>und</strong> des fehlenden Zeitbezugs ist <strong>die</strong>se Relation allerdings relativ<br />

ungeeignet <strong>für</strong> <strong>Daten</strong>flußgraphen, in denen mehrere Funktoren auf ein Eingangsdatum zugreifen.<br />

Wird zwischen zwei Zugriffen <strong>die</strong> Sequenz aktualisiert, rechnen <strong>die</strong> Funktoren mit in-<br />

Ø

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!