Software-Struktur Topographie

Die für die Topographie wesentlichen Dateien sind m_steerg.cpp, m_steerg.h m_topo.cpp und m_topo.h. Letztere übernehmen dabei die Fensterdarstellung und Speicherung von einstellbaren Werten, während die eigentliche Steuerfunktionalität durch m_steerg.* realisiert wird. Allerdings enthält m_steerg.* nicht nur topographiespezifische Funktionen, sondern realisiert auch andere spezielle und allgemeine Steuerfunktionen.
Zum Einlesen der Standarddaten wird die Ini-Datei develop.ini benötigt. Hier findet sich der für die Topographie relevante Ini-Datei Abschnitt. Für das Einstellen des Arbeitspunktes bei Einfachbelichtung wird ein Makro benötigt, welches der Makrodatei (standard.mak) entnommen wird. Hier ist der entsprechende Makrodateiausschnitt dargestellt .

 

Klassendiagramm von m_topo.*

In m_topo.* gibt es drei Klassen: TTopographyExecute, TTopographySetParam und TTopography. Letztere Klasse dient der Datenspeicherung, während TTopographyExecute und TTopographySetParam die jeweilige Fensterdarstellung realisieren und auf die Daten von TTopography zugreifen. TTopographyExecute implementiert das "Topographie Ausführen"-Fenster und TTopographySetParam das "Topographie Einstellen"-Fenster. Die im "Topographie Einstellen"-Fenster eingegebenen Werte werden in TTopography gespeichert und auch vor ihrer Darstellung von dort übernommen.

 

Die in der Topographie verwendeten Werte werden in der Klasse TTopography gespeichert. Ihre Initialisierung erfolgt zum Teil im Konstruktor von TTopography mit fest vorgegebenen Standardwerten und zum anderen durch Einlesen der entsprechenden Werte aus der Ini-Datei. Für das Einlesen der Werte aus der Ini-Datei werden immer auch Standardwertangaben benötigt, die verwendet werden, falls der entsprechende Eintrag in der Ini-Datei fehlt oder das Einlesen fehlschlägt. Somit existieren auch für die aus der Ini-Datei eingelesenen Werte Standardangaben im Programm.

Initialisierungsort der Variablen
( und Programmstandardwerte )
Konstruktor Ini-Datei
fMoveStep = 3 fWorkPoint = 0.6
fMaxAngleEscape = 50 bSmallAngleSide = TRUE
lMesurementTime = 600 fControlRange = 0.03
nNumberCycle = 1 fControlStep = 0.2
bMultibleShot = FALSE fMaxTime = 10.0
dStartAngle = -20.0 dwMaxCounts = 10000
fAngleBetweenShots = 3.0  
fFailure = 0.02  
bMonitorUsed = FALSE  
Sensor = NULL  
Monitor = NULL  
nMotor = -1  

 

Realisierung der topographiespezifischen Steuerfunktionen

Für die Ansteuerung der Motoren und das Einlesen der Detektorwerte bedient sich die Topographie der Klasse TSteering aus m_steerg.*. In m_steerg.* ist unter anderem die Möglichkeit der Makro-Steuerung implementiert (siehe auch Beschreibung Makrosprache ). Jeder Makrobefehl ist dabei als eigene Klasse implementiert, d.h. zu jedem Makrobefehl existiert eine entsprechende Klasse. Diese Makrobefehlsklassen leiten sich von der Basisklasse TCmd ab, die die Grundzüge eines Makrobefehls beschreibt. Werden mehrere Makrobefehle nacheinander ausgeführt, so entsteht eine Makrosequenz. m_steerg.* ermöglicht es, im RTK-Programm nutzerdefinierte Makrosequenzen auszuführen. Neben dieser zusätzlich für die Anwendung bereitgestellten Funktionalität, werden Makrosequenzen aber auch programmintern genutzt.

Für die Topographie ergeben sich folgende Möglichkeiten der Nutzung der Makrofähigkeit:

  1. Nutzung eines allgemeinen Makrobefehls,
  2. eigener Makrobefehl der topographiespezifisch ist,
  3. Makroablauf, z.B. Arbeitspunkt anfahren bei der Einfachbelichtung.

Variante 1 wird bei der Mehrfachbelichtung für das Einstellen des Arbeitspunktes und das Anfahren der nächsten Belichtungsposition verwendet. Der genutzte Makrobefehl ist "MoveToPoint".

Die Topographiefunktionalität "Nachregeln während der Einfachbelichtung" wird durch einen eigenen Makrobefehl "ControlFlank" realisiert. Dieser Makrobefehl ist speziell für die Topographiefunktionalität "Nachregeln während der Messung" entwickelt. Er kann aber auch für nutzerdefinierte Makrosequenz verwendet werden, in denen diese Funktionalität benötigt wird.

Für die Topographiefunktion "Arbeitspunkt anfahren bei Einfachbelichtung" gibt es eine Makrosequenz ("SetupTopography"), die in dem von dem RTK-Programm standardmäßig verwendeten Makrodatei beschrieben ist. Der entsprechende Abschnitt aus zwei standardmäßig verwendeten Makrodateien findet sich hier. Dieser Abschnitt wird durch Aufruf von Steering.GetMakroByName("SetupTopography") durch die m_topo.* Funktion TTopographyExecute::Dlg_OnInit eingelesen. Anschließend werden für den zweiten Makrobefehl die Parameter für die Seite vom Peak und die anzufahrende Arbeitspunktintensität entsprechend der Topographieeinstellungen geändert - das Makro wird sozusagen auf die aktuellen Einstellungen angepaßt.

 

Direkter Zugriff auf m_layer.*  Funktionen

Leider werden nicht alle die Motoren betreffenden Zugriffe über m_steerg.* realisiert. So setzt die Topographie den aktuellen Motor mit mlSetAxis direkt über eine m_layer.* Funktion. Ebenso erfolgt das Rückschreiben der Motorenwerte mittels mPushSettings(). Auch die Schrittweite des Motors wird durch die Topographie mittels (Width,Topography.fControlStep) gesetzt. m_steerg.* greift dann später bei der Ausführung wieder auf die Motorenvariable Width zu.

 


02.11.2000 Marlies Gollnick gollnick@informatik.hu-berlin.de