| |
Programmgesteuertes Riesenrad : LLWin Version
Schrittweise Entwicklung eines Betriebsprogrammes für das Riesenrad aus Fun
Park unter Nutzung von LLWin 3.0. Basiert auf der Modellbeschreibung von Riesenrad.
Schritt 1 : Aus- und Einsteigen der Fahrgäste
|
Alle Gondeln werden nacheinander zu
Einsteigeposition gefahren. Zum Aus- und Einsteigen wird gehalten.
Kernpunkt der Positionserkennung ist der Baustein Flanke (Warten auf
einen 0/1-Durchgang). Ein schlichtes Warten auf E2 = 1 reicht
nicht, da es noch auf 1 stehen kann.
Da mit E2 = 1 die exakte Einsteigeposition nicht gewährleistet ist
(Lage des Taster, Masse des Riesenrades), wird nach E2 = 1 noch ein
paar (1,5) Sekunden weitergefahren und dann erst abgeschaltet. Danach
folgt die Pause für das Aus- und Einsteigen. Das ganze immer schön in
einer 6er-Schleife.
ACHTUNG : Die Länge der Pause (hier Warte 1.5)
hängt beim Original Riesenrad von der Beladung und der Befestigung der
Hauptachse ab. Sie lag bei mir zwischen 1,5 (12 Männeken) und 3,2 (leer).
|
Schritt 2 : Die Fun-Runden :
|
Das ganze Programm wird in eine Endlosschleife gepackt, so erhält man ein schönes Demo-Programm, das
durch E1 = 0 und über die Entwicklungsumgebung abgebrochen werden kann. Zusätzlich wird mit
dem Baustein Meldung im Baustein Terminal die aktuelle Funktion angezeigt. Nach
dem Ein-/Aussteigen (wie bisher) wird 15 Sek. links und dann 15 Sek rechts gedreht.
Da es bei sofortiger Richtungsumschaltung richtig knirschen kann, wird
dazwischen 1 Sek. Pause eingelegt.
|
Schritt 3 : Echt-Betrieb
|
Bei einem Echt-Betrieb sind die Zeiten für
Aus- und Einsteigen nicht vorhersehbar, der Baustein Warte 4 wird deswegen durch
eine Flanke E1 ersetzt. Das Programm wartet bis E1 gedrückt und
wieder freigegeben wird.
Nach dem Aus-/Einsteigen muß der Betrieb durch erneutes Drücken der E1-Taste innerhalb von 3 Sek. freigegeben werden, sonst wird das Programm
beendet : Feierabend.
Man kann sich zum Betrieb natürlich noch mehr einfallen lassen. |
Schritt 4 : Zählen statt Warten, Rundenanzeige
|
Anstelle des Bausteins Warte 15 wurde in $MAIN
das Unterprogramm Fahrschleife verwendet.
Hier wird anstelle des Warte 15 ein Baustein Position 12 in einer
Schleife verwendet. Die 12 steht für eine Runde (zur Erinnerung Position
zählt 0/1- und 1/0-Durchgänge getrennt). Der Baustein Position liegt in
einer Schleife,Beginn mit VAR1 = 1, Ende mit VAR1 > EA des Terminal
Bausteins. Der von Position verwendete Zähler Z2 muß dazu vor jeder
Nutzung auf Z2 = 0 gesetzt werden.
Grund für die Schleifenkonstruktion ist der Wunsch, die aktuell
gefahrene Runde anzeigen zu können. Dabei zählt VAR1 die vollen Runden,
die mit Baustein Display in Display1 des Terminal-Bausteins angezeigt
werden.
|
Schritt 5 : Überkreuz Beladen
|
In Praxis werden bei einem Riesenrad die
Gondeln selten in ihrer direkten Reihenfolge "beladen". Das
Beladen übernimmt hier das gleichnamige Unterprogramm. Das Unterprogramm selber
entspricht weitgehend dem bisherigen Belade-Code, lediglich die
Ansteuerung der Position findet jetzt in einer Schleife statt. Anstelle des Belade-Codes in
$MAIN findet man dort eine Schleife, die Beladen aufruft. Beladen entnimmt
VAR2 die Anzahl der zu überspringenden Gondel (VAR2-1). VAR3 enthält die
laufende Gondelnummer, die in Display1 des Terminal-Bausteins angezeigt
wird.
Beladen wird in der Reihenfolge 1 - 4 - 5 - 2 - 3 - 6. Also die
gegenüberliegende Gondel oder die nächste.
Denkbar sind natürlich auch noch andere Beladepläne.
In einem separaten Ablaufplan kann man dann noch über den Baustein
Display in Display2 des Terminals den Zähler Z2 anzeigen, um einen
genaueren Überblick zu bekommen.
|
Schritt 6 ff : Weiterer Aus- und Umbau
- Anbringen eines zusätzlichen Tasters, der die Gondel Nr. 1 identifiziert.
- Anbringen eines Impulsrades (siehe Industry Robots) anstelle des Taster
eRadPos und der 6 Nocken.
Lösung unter Einsatz von LLWin 3.0. Die Source der vorgestellten Lösung ist
in RiesenTut.ZIP enthalten. Zusätzlich wird
LLWin 3.0 benötigt.
Stand : 17.05.2004
|