Umsetzung der Software
Schnittstellen:
Eingänge von der HMI (Human-Machine-Interface), d.h. vom Browser:
- Übergabestring, enthält das im Webbrowser erstellte Programm,
übersetzt in Textform - Befehle (Start, Pause/Weiter,Stopp)
zur Steuerung des Programms
Eingänge von der HW (Hardware)
- Analog-/Digitaleingänge (Ports) ( - Digitale Zählereingänge (digitale Ports))
Ausgänge an die HW (Hardware) - PWM-Signale für Motoren - PWM-Signale für LED
Ausgänge an die HMI (z.B. Programm nicht lauffähig, Programm Ende, aktueller Status,
ausgewählte Sensorsignale, etc.)
Ablauf des Programms
Die Umsetzung des in der HMI erstellten
Programms erfolgt durch eine verkettete Liste (Queue). Nachdem der
Benutzer auf der Web-Oberfläche das Programm zusammegenstellt hat
und auf "Start" drückt wird auf der HMI-Seite ein Übergabestring
erstellt. Aufgrund dieses Strings werden
Objekte erstellt und in die Queue eingereiht. Die Queue
repräsentiert das im Web erstellte Programm und die
(Programm-)Objekte repräsentieren die Befehle "Verzweigung",
"Schleife", "Motorausgang", "Sensoreingan", etc. Aus-/Eingänge,
Wartezeiten und Verzweigungen werden entsprechend den Werten in den
Queue-Objekten gesetzt.
Ursprünglich
war geplant, die Objekte der Queue sofort mit jeder Aktion des
Benutzers einzufügen. Der Vorteil ist: Drückt der
Benutzer auf "Start", ist die verkettete Liste bereits erstellt und
kann nach einer Vollständigkeitsprüfung sofort ablaufen. Eine
"Compilerzeit" würde somit entfallen. Diese Queue-Erstellung wird
aber ungleich schwieriger, da mit jeder Benutzeraktion der
Programmablauf und somit die Queue komplett verändert werden könnte.
Außerdem erhöht sich die per W-LAN zu übertragende Datenmenge
erheblich.
Kontrollstrukturen
Notwendige Nutzerkontrollstrukturen (vom User über den Browser bedienbar)
- Start - Pause / Weiter (im laufenden Betrieb) - Stopp / Reset (im laufenden Betrieb)
Notwendige interne Kontrollstrukturen
- Anfang/Ende - If-else - Schleifen: while
- Objekte, enthalten alle Input-/Output-relevanten Funktionen - Initialisierung Start - Initialisierung Pause
Optionale Kontrollstrukturen
- Schleifen: do-while, for
Objektauswahl für den Programmablauf
Abb.: Exemplarische Objektauswahl für den Programmablauf
Jedes Objekt enthält:
- Zeiger auf vorheriges Objekt (max. 8: Array mit 8 Zeigern)
- Methoden für Input
- Methoden für Output
- Variablen
- Zeiger auf nächstes Objekt (max. 2: Array mit 2 Zeigern)
- Zeiger auf Pause-Objekt
Beispielaufbau eines Programms mit
verketteter Liste
Init (Start):
Hier werden alle verwendeten (Programm-)Objekte vorbereitet. Die
Konfiguration des Roboters wird auf Start gesetzt (alle
Ausgänge = 0, d.h. Lampen aus, Motoren aus, etc.).
Start: Enthält den Pointer auf das erste Objekt.
Init (Pause): Drückt der Anwender auf "Pause" geht die
Verkettete Liste in dieses Objekt. Es speichert die aktuelle
Konfiguration und setzt alle Motorausgänge auf 0. Drückt der
Anwender auf "Weiter", wird die gespeicherte Konfiguration
geladen und die verkettete Liste fortgesetzt.
Ende:
Mit dem Aufruf dieses Objekts werden alle Ausgänge auf 0
zurückgesetzt und die verkettete Liste verlassen. Gegebenenfalls muss die Liste jetzt auch gelöscht werden um
den internen Speicher wieder freizugeben |
Abb.: Grafische Darstellung eines Queue-Beispiels |
Konzeptentwicklung - Seite der Gesamtgruppe:
../Fischertechnik/0309Konzeptentwicklung.html
|