24.11.2012 Aufrufe

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Diplomarbeit</strong>: Modulares System Testen der Steuerungsskripte im Simulator<br />

7.2. Arbeiten mit der Virtuellen Maschine<br />

Während der Entwicklung der verschiedenen Steuerungen, die in den folgenden Abschnitten<br />

beschrieben werden, hat sich herausgestellt, dass es einen enormen Aufwand darstellt, bei einer<br />

Änderung der Virtuellen Maschine die verschiedenen Steuerungen mit zu ändern. Da einige Fehler<br />

<strong>und</strong> Unschönheiten erst im laufenden Betrieb sichtbar werden, sind solche Änderungen aber<br />

unabdingbar. Daher wurde die Virtuelle Maschine in eine DLL eingebettet, die von allen<br />

Steuermodulen verwendet werden kann. Sie hat zusätzlich den Vorteil, dass die Programmiersprache<br />

des Entwicklers (ob VC++, Delphi oder Java), der ein Steuermodul schreiben will, keine Rolle mehr<br />

spielt.<br />

7.2.1. Aufbau der VM.DLL<br />

Die originale Virtuelle Maschine, wie sie auch als Kommandozeilenversion vorliegt, ist als<br />

prozedurales Programm geschrieben. Um die Übersichtlichkeit zu erhöhen <strong>und</strong> die Maschine stärker<br />

vom Kellerspeicher zu trennen, wurden die einzelnen Funktionen in Klassen eingebettet. Um auf die<br />

Virtuelle Maschine von außen zugreifen zu können, müssen einige Funktionen freigegeben werden<br />

<strong>und</strong> Funktionen des Steuermoduls der DLL bekannt gegeben werden. Da der Code <strong>und</strong> die<br />

Ressourcen der DLL nur einmal global im Programmspeicher gehalten werden <strong>und</strong> von jedem<br />

Steuermodul innerhalb des Programms nur referenziert werden, muss das aufrufende Modul bei jeder<br />

Funktion eindeutig identifiziert werden. Da<strong>für</strong> wird von der DLL beim initialisieren eine eindeutige<br />

Nummer vergeben, die bei den Funktionsaufrufen mit übergeben werden muss. Zusätzlich kann vom<br />

aufrufenden Modul ein Zeiger übergeben werden, der bei Funktionsaufrufen aus der DLL heraus in<br />

das Modul hinein wieder übergeben wird. Dadurch können spezifische Daten (z.B. welcher Roboter<br />

gemeint ist) gespeichert werden.<br />

exportierte Funktionen:<br />

vmInit Initialisiert die Virtuelle Maschine <strong>und</strong> erwartet Zeiger auf die von der<br />

Virtuellen Maschine benötigten Funktionen (Get, Put, GetValue,<br />

PutValue), um Werte einzulesen <strong>und</strong> auszugeben<br />

Liefert die ID zurück<br />

vmOpenFile Öffnet eine Codedatei (auch im laufenden Betrieb möglich)<br />

vmRun Startet den Ablauf der Codedatei<br />

vmRestart Setzt die Virtuelle Maschine in ihren Ausgangszustand zurück<br />

vmStep Ermöglicht die Schrittweise Ausführung der Codedatei<br />

Abbildung 7.5 - Aufbau der VM.DLL<br />

26.07.2004 Seite 52 von 85

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!