Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Konzeptentwicklung
Hochschule Karlsruhe Logo Labor Informationstechnik
FischerTechnik mit ESP 32
Software - Queue- und HW-Controller
Wintersemester 2017/18
hama1067, majo1033

Konzeptentwicklung

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
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
Beispielablauf eines Programms mit verketteter Liste
Abb.: Grafische Darstellung eines Queue-Beispiels

Konzeptentwicklung - Seite der Gesamtgruppe:
../Fischertechnik/0309Konzeptentwicklung.html


  Mit Unterstützung von Prof. J. Walter Wintersemester 2017/18