Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
Diplomarbeit - Hochschule für Technik und Wirtschaft Dresden
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