5. Planung und Realisierung der Software
Die Hauptaufgabe der Software besteht in
der Messwertaufnahme, Messwertverarbeitung und in der grafischen Darstellung
der Messkurven auf dem Monitor. Die Software soll durch eine mausgesteuerte
Benutzeroberfläche in Menütechnik dargestellt werden. Durch strukturierte
Programmierung können die gestellten Aufgaben erfüllt werden.
5. 1. Die Softwarehilfsmittel
Das Grundprinzip der strukturierten
Programmierung heißt Aufgabenteilung. Das gesamte Programm hat eine komplexe
Aufgabe zu erledigen, die sich in viele Teilfunktionen aufspalten lässt. Jede
dieser Teilaufgaben wird von einer Unterroutine erledigt. Die Aufteilung des
gesamten Problems sollte nach dem Top-Down-Prinzip geschehen.
Eine Programmiersprache die sich gut für
diese Aufgaben eignet ist Pascal. Das Programm ist in TURBO PASCAL 4.0 der
Firma BORLAND erstellt. In Turbo Pascal lassen sich die Teilaufgaben in den
"Units" als eigenständige Programmteile zusammenfassen. Units sind
Programmblöcke, die, anders als die Includedateien, eigenständig kompilierbar
sind. Jede Unit kann bis zu 64 KByte groß sein. So kann ein Programm aus
beliebig vielen Units bestehen. Statt COM-Files erzeugt der
4.0-Compiler EXE-Files. Damit wird die 64 KByte Grenze für das ablauffähige
Gesamtprogramm überwunden. Units werden über den nicht standardmäßigen Befehl
USES in ein Programm eingebunden.
Ganz ähnlich wie ein Hauptprogramm ist eine
Unit aufgebaut.
UNIT Unit-Name;
INTERFACE
{ Deklarationen - unter anderem auch USES möglich }
IMPLEMENTATION
{
Vereinbarungen/Definition von Prozeduren und
Funktionen }
{
BEGIN Initialisierungs-Anweisungen }
END.
Im INTERFACE-Teil werden alle globalen
Deklarationen aufgeführt, auf die ein anderer Programmteil Zugriff haben kann,
der diese Unit verwendet. Dazu gehören Konstanten, Variablen, Datentypen sowie
Prozeduren und Funktionen. Letztere werden nur namentlich genannt, ihre
Definition gehört in den IMPLEMENTATION -Teil.
Dieser Teil der Unit ist nach außen nicht
verfügbar. Außer der Definition von Funktionen und Prozeduren können hier
weitere Vereinbarungen getroffen werden, die alle nur lokal für die jeweilige
Unit gelten. Anderen Programmteilen außerhalb der Unit bleibt ein
Direktzugriff verschlossen.
Wird nach der IMPLEMENTATION ein BEGIN gesetzt,
können noch weitere Anweisungen folgen. Wird in einem Programm diese Unit
verwendet, so gilt ein solcher Anweisungsblock als Initialisierungsteil dieser
Unit und wird noch vor dem Hauptteil des aufrufenden Programms ausgeführt.
Abgeschlossen wird eine Unit wie ein Programm mit END. .
Aufgerufene Units sind bereits kompiliert
und werden durch den TurboLinker eingebunden. Prozeduren oder Funktionen die
nicht im Programm aufgerufen werden, bindet der Linker
nicht in den ausführbaren Quellcode mit ein. Dadurch lassen sich beliebig große
Programmbibliotheken auch in "kleinen" Programmen verwenden.
Ebenfalls lassen sich OBJ- und ASM-Dateien durch den Turbo Linker einbeziehen.
Da in dieser Diplomarbeit eine A/D-Karte
mit I/0-Port verwendet werden soll, ist eine Programmierung dieser Karte
notwendig. Die Karte muss zur Analog-digital- und zur Digital-Analog-Wandlung
über die auf der Karte vorhandene Register softwaremäßig programmiert werden.
Der auf der Karte vorhandene I/0-Port wird ebenfalls über die Register
programmiert. Die Routinen zur Programmierung der Register sollen als
Unterprogramme realisiert werden.
Die Programmierung von Zusatzhardware des PCs
ist über Assembler am besten möglich. Es gibt unter Turbo Pascal zwar den
PORT-Befehl, mit dem direkt auf Speicherstellen zugegriffen werden kann, jedoch
verliert das Programm dadurch an Übersichtlichkeit. Größere
Assemblerprogrammteile sollten deshalb mit einem Assembler geschrieben werden.
Alle Assemblermodule sind mit dem MASM der
Firma MICROSOFT erstellt worden.