31.10.2012 Aufrufe

referenzanleitung val3 d28056202b - 06/2005 - eule-roboter.de

referenzanleitung val3 d28056202b - 06/2005 - eule-roboter.de

referenzanleitung val3 d28056202b - 06/2005 - eule-roboter.de

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.

REFERENZANLEITUNG VAL3 - Version 5.2<br />

Sequentielles Ordnen<br />

Wenn in einer Applikation mehrere Tasks ausgeführt wer<strong>de</strong>n, hat es <strong>de</strong>n Anschein, als ob dies gleichzeitig und<br />

unabhängig voneinan<strong>de</strong>r erfolgt. Das ist jedoch nur richtig, wenn man die Applikation global, d.h. über genügend lange<br />

Zeitintervalle von z.B. einer Sekun<strong>de</strong> betrachtet. Bei kurzen Zeitintervallen ist diese Aussage nicht mehr gültig.<br />

Da das System nur einen Prozessor besitzt, kann es auch nur jeweils eine Task ausführen. Die Gleichzeitigkeit <strong>de</strong>r<br />

Ausführung wird durch ein rasches sequentielles Ordnen <strong>de</strong>r einzelnen Tasks erreicht, die reihum einige Anweisungen<br />

abarbeiten, bevor das System auf die nächste Task weitergeht.<br />

Priorität<br />

T1<br />

Normale<br />

Ausführung<br />

T2<br />

Sequentielles Ordnen<br />

T1 führt die<br />

Funktion <strong>de</strong>lay()<br />

aus.<br />

T1<br />

T2<br />

Zeit abgelaufen<br />

T2 T2<br />

T3 T3 T3 T3<br />

T1<br />

Normale<br />

Ausführung<br />

Unter VAL3 sind die Sequenzen <strong>de</strong>r Tasks nach folgen<strong>de</strong>n Regeln geordnet:<br />

1. Die Tasks wer<strong>de</strong>n in <strong>de</strong>r Reihenfolge ihrer Erstellung sequentiell geordnet.<br />

2. In je<strong>de</strong>r Sequenz versucht das System, die Anzahl von VAL3-Programmzeilen auszuführen, die <strong>de</strong>r<br />

Priorität <strong>de</strong>r Task entspricht.<br />

3. Sobald eine Programmzeile nicht been<strong>de</strong>t wer<strong>de</strong>n kann (Ausführungsfehler, Warten auf ein Signal, Task<br />

unterbrochen...), fährt das System mit <strong>de</strong>r nächsten Task fort.<br />

4. Je<strong>de</strong> Task wird min<strong>de</strong>stens alle 10 ms aufgerufen.<br />

Folgen<strong>de</strong> Anweisungen in VAL3 bewirken ein sofortiges Weitergehen zur Sequenz <strong>de</strong>r nächsten Task:<br />

• watch() (zeitlich begrenztes Warten auf eine Bedingung)<br />

• <strong>de</strong>lay() (Wartezeit)<br />

• wait() (Warten auf eine Bedingung)<br />

• waitEndMove() (Warten auf Stillstand <strong>de</strong>s Roboters)<br />

• open() und close() (Warten auf Stillstand <strong>de</strong>s Roboters mit anschließen<strong>de</strong>r Wartezeit)<br />

• get() (Warten auf eine Tasteneingabe)<br />

• resume() (wartet, bis die Task zum Neustart bereit ist)<br />

• kill() (wartet, bis die Task tatsächlich gekillt ist)<br />

• disablePower() (wartet, bis die Leistung tatsächlich abgeschaltet wur<strong>de</strong>)<br />

• Die Anweisungen zum Zugriff auf <strong>de</strong>n Inhalt <strong>de</strong>r Festplatte (libLoad, libSave, libDelete, libList)<br />

• Die Anweisungen zum Lesen / Schreiben von sio (Bediener =, sioGet(), sioSet())<br />

D28056202B - <strong>06</strong>/<strong>2005</strong> 53 / 122<br />

T2<br />

T3<br />

Zeit

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!