3. 2. 8 Transportwagen
Die folgenden Beispiele zeigen recht eindrucksvoll, wie auch
komplizierte Transportsysteme modelliert werden können. Wesentlicher
Bestandteil ist dabei die Verknüpfung verschiedener Technologien unter
Verwendung von Bedarfs-Objekten.
Modell: cargo (DEMO)
Beschreibung:
Ein Transportwagen "Cargo" soll 5 Ladestationen ("LS1 ... 5")
entleeren.
Seine Aufnahmekapazität
ist begrenzt und beträgt 2. Die Größe aller
wartenden Jobs ist 1. Der Wagen fährt zunächst die Ladestationen an, um
anschließend seinen Inhalt (maximal 2 Jobs) an die Entladestationen
"ES" abzugeben. Danach fährt der leere Wagen wieder zurück zur
Ladestation "LS1" und der Vorgang beginnt von vorn, bis alle Jobs in
der Entladestation liegen. Die Funktion eines Motors, der den Wagen
antreibt, übernimmt der Pseudo-Job "C". Der Job belegt den Wagen
permanent, beeinträchtigt dessen Aufnahmekapazität aber nicht, da seine
Größe 0 ist. Gesteuert wird der Motor durch die Technologie "C", die
für jede Lade-/Entladestation je zwei Arbeitsgänge enthält. Der jeweils
erste Arbeitsgang besitzt die Zeitdauer 0 und bezeichnet das Ereignis
"Ankunft".
Der folgende Arbeitsgang beschreibt den eigentlichen
Lade-/Entladevorgang und ist mit einer Zeitdauer versehen. Ein
zusätzlicher Arbeitsgang ist für die Rückfahrt zuständig. Die
Verzweigung "C" verknüpft das Ende mit dem Anfang der Technologie, so
dass ein endloser Ablauf entsteht. Die Bedarfs-Objekte "decr1 ... 5"
und "decrES" buchen nach erfolgter Beladung/Entladung vom
Ankunftsereignis der vorhergehenden Station ab. Damit erreicht man, das
immer nur ein Ankunftsereignis in der Technologie "C" den Buchungswert
1, alle anderen dagegen den Buchungswert 0 besitzen. Die
Ankunftsereignisse lassen sich so zur Steuerung des eigentlichen
Transportvorganges heranziehen.
Für den eigentlichen Transport sind die Technologien "LS1 ... 5"
zuständig. Sie enthalten jeweils nur 3 Arbeitsgänge: LSi -> Cargo
-> ES. Die Transport- bzw. Belade- und Entladezeiten werden durch
die Bedarfs-Objekte "time1 ... 5" und "timeES" bestimmt, die direkt mit
den Ankunftsereignissen der Steuerungstechnologie "C" verknüpft sind.
Es ist wichtig, dass bei diesen Bedarfs-Objekten die Abbuchungsfunktion
abgeschaltet wird, um Rückwirkungen des materiellen Transports auf die
Steuerung auszuschließen. Ein in der Ladestation "LSi" wartender Job
kann den Wagen nur dann belegen, wenn der zugehörige Bedarf "timei"
erfüllt ist, der Wagen sich somit an der richtigen Station "LSi"
befindet. Analog gilt das auch für den Entladevorgang - den jeweils
dritten Arbeitsgang in den Transporttechnologien -, der durch den
Bedarf "timeES" gesteuert wird.
Anmerkungen:
Der Motor des Wagens schaltet sich nicht selbst aus, arbeitet also auch
dann noch
weiter, wenn alle Stationen geleert sind. Nach Ablauf von 90 Minuten
(Realzeit) wird die Simulation daher durch Erreichen des Zeithorizonts
beendet.
Die Methode "C" enthält ein
kleines Skript, welches den Wagen
bewegt. Dies dient lediglich der besseren Anschaulichkeit, ist aber für
die korrekte Wiedergabe des Ablaufs nicht erforderlich. Davon kann man
sich überzeugen, wenn man das Methoden-Objekt einfach löscht und die
Gantt-Diagramme miteinander vergleicht.
Die Bewegungsanimation ist recht einfach programmiert und verhält
sich nur solange konsistent, wie alle Objekte an ihrem vorgesehenen
Platz verbleiben.
Modell: bus (DEMO)
Beschreibung:
Das Modell baut auf dem Modell "cargo" auf. Der Transportwagen kann
jedoch sowohl auf dem Hin- als auch auf dem Rückweg be- und entladen
werden. Es gibt nicht nur 5 Ladestationen ("LS1 ... 5") sondern auch 5
Entladestationen ("ES1 ... 5"). In welche Station ein Job entladen
wird, bestimmt sein Kennzeichen (1 -> "ES1", 2 -> "ES2" usw.).
Das Prinzip ist am einfachsten an den Transporttechnologien "LS1" und
"LS5" der beiden Endstationen zu erkennen, worin der dritte Arbeitsgang
anstelle der Entladestation eine Verzweigung enthält, die die
Kennzeichen der im Wagen liegenden Jobs bewertet. Bei Übereinstimmung
von Job- und Zweigkennzeichen wird der Job an die eigentliche
Entlade-Technologie "ES1" bzw. "ES2" weitergereicht. Diese wiederum
bestehen nur aus einem einzigen Arbeitsgang, der analog zu den
Lade-Technolgien "LS1" bzw. "LS2" über die nichtabbuchenden
Bedarfs-Objekte "time1" bzw. "time5" mit der Steuerungs-Technologie "C"
verknüpft ist.
Für die Zwischenstationen gilt das gleiche Prinzip, nur muss hier
noch unterschieden werden, ob sich der Wagen auf dem Hin- oder auf dem
Rückweg befindet. Der zweite Arbeitsgang der Lade-Technologien "LSx" (x
= 2 ... 4) enthält daher nicht den Wagen, sondern eine Verzweigung
(lastorientiert)
"LSx", die alternativ auf "LSxh" (hin - im Modell nach oben) und "LSxz"
(zurück - im Modell nach unten) verteilt. Die Lade-Technologien "LSxh"
bzw. "LSxz" werden ebenfalls über die Bedarfe "timexh" bzw. "timexz"
mit der Steuerungs-Technologie "C" verknüpft. Bei eingeschalteter
Animation kann man sich davon überzeugen, dass der Wagen immer nur aus
der Station beladen wird, vor der er gerade hält. Das gleiche gilt für
das Entladen. Am Ende liegen alle Jobs sortiert nach Kennzeichen in den
zugehörigen Entladestationen.
Anmerkungen:
Das Modell beschreibt sehr gut das Verhalten eines Linienbusses, der
zwischen zwei Endstationen hin und her pendelt. Die Fahrgäste warten an
den Haltestellen, steigen zu, wenn der Bus anhält und steigen aus, wenn
sie ihr Ziel (Kennzeichen) erreicht haben.
Die Kennzeichen sind den Jobs als Jobvariablen
zugewiesen. Die Zuordnung Jobs zu der jeweils passenden Lade- bzw.
Entladestation erfolgt über eine Ereignisroutine
an der Verzweigung "C". Jobs, deren Kennzeichen auf keine Verzweigung
passt, verbleiben im
Bus. Sie verringern dessen Aufnahmekapazität, was im Extremfall dazu
führen kann, dass der Bus nutzlos zwischen den Haltestellen pendelt,
ohne seine Dauerfahrgäste loswerden zu können.
|