3. 9 Stack
Der Stack eines Jobs enthält die Information an welcher Stelle sich der
Job bezüglich seiner Technologie (und evetueller Untertechnologien) im
Simulationsmodell zum aktuellen Simulationszeitpunkt befindet. Der
Stack eines Jobs in einer Station kann über stationCmd job
index stack abgefragt werden. Zusätzlich wird die Angabe des Stacks
zur Platzierung eines Jobs bei der Modellerstellung benötigt: jobCmd check|place|enter.
Die Darstellung des Stacks erfolgt über eine geordnete Liste von Tupeln
aus Tcl-Bezeichnern und Indizes. Die Tcl-Bezeichner sind dabei
Technologie-Objekte (Technologie
oder Verzweigung) und die
Indizes sind die jeweiligen Arbeitsgang-Indizes im entsprechenden
Technologie-Objekt:
Bsp: {tech2 2} {branch1 1} {tech1 4}
Dabei ist der Stack so aufgebaut, dass das letzte Tupel die
Haupttechnologie des Jobs beinhaltet und mit jedem weiteren Tupel die
Untertechnologien des Jobs gemäß ihrer Hierarchie aufgelistet sind. Das
erste Tupel beinhaltet demnach die unterste Technologie des Jobs.
Aus dem obigen Beispiel kann man also ablesen: Die Verzweigung branch1 befindet sich im 4.
Arbeitsgang der Technologie tech1 und
die Technologie tech2 befindet
sich im ersten Zweig der Verzweigung branch1.
Die Haupttechnologie des betreffenden Jobs ist demnach die Technologie tech1 und die unterste Technologie
ist tech2, wobei sich der Job
aktuell in deren 2. Arbeitsgang befindet oder platziert werden soll.
Nach Abarbeitung der
Arbeitsgänge in tech2 wird
der Stack des Jobs wieder abgebaut und die weitere Bearbeitung erfolgt
im 5. Arbeitsgang der Technologie tech1,
falls vorhanden.
Modell: stack1 (DEMO)
Beschreibung:
Diese einfache Modell beinhaltet eine Technologie tech1 mit 3 Stationen
(Eingangslager queue1,
Maschine machine1,
Ausgangslager queue2) und
soll lediglich den Umgang mit den Befehlen zur Abfrage des Stacks oder
zum Platzieren des Jobs job1
zeigen. Im Ausgangszustand ist der Job nicht mit der Technologie verknüpft
und somit nicht im Simulationsmmodell platziert. Durch den
Konsolenbefehl job1 check -stack
"{tech1 1}" kann abgefragt werden, ob der Job regulär im
Eingangslager der Technologie platziert werden kann. Der Befehl ergibt
den Rückgabewert able, damit
ist der Transfer erlaubt und der Job kann über job1 enter -stack "{tech1 1}"
transferiert werden. Nach dem platzieren kann der Stack dann über queue1 job 1 stack abgefragt werden
(Rückgabewert {tech1 1}).
Unter bestimmten Bedingungen ist der reguläre Transfer eines Jobs
nicht
erlaubt (stationCmd
job index transf). Wenn man etwa im Ausgangszustand den
Bereitstellungstermin des Jobs in die Zukunft legt (z.B. job1 date esd 10), dann ergibt der
Test job1 check -stack "{tech1 1}" den
Rückgabewert jobsupply. In
diesem Fall kann der Job nur durch den Befehl job1 place -stack "{tech1 1}" platziert
werden, wobei eventuell vergebene Arbeitsgangparameter wie
Bearbeitungs- oder Weitergabezeiten im Anschluss vom Anwender manuell
gesetzt werden müssen. Dieses Verhalten kann beobachtet werden, falls
man im Ausgangsmodell den Job direkt auf der Maschine platziert: job1 place/enter -stack "{tech1 2}".
Bei Verwendung von enter
erhält der Job die in der Technologie angegebene Bearbeitungszeit auf
der Maschine. Bei der Verwendung von place
muss diese nachträglich durch machine1
job 1 rest busy 60 gesetzt werden.
Modell: stack2 (DEMO)
Beschreibung:
Dieses Modell ist dem obigen Beispielstack nachempfunden. Durch job1 enter -stack "{tech2 2} {branch1 1}
{tech1 4}" wird der Job in der Maschine machine4 platziert und durchläuft
in der Simulation die folgenden Stationen: machine4 --> queue3
--> machine5 -> queue4.
Wenn man die Angabe des Stacks reduziert (job1 enter -stack "{tech2 2}"),
dann wird der Job zwar weiterhin in machine4
platziert, aber die Simulation bricht nach der Bearbeitung in
dieser Maschine ab, da dem Scheduler die Information über den weiteren
Technologieverlauf des Jobs fehlt. Stellt man den Parallelitätsgrad der
Verzweigung auf all (branchCmd parallel
min/max all), dann wird der Job bei
job1 enter -stack "{tech1 4}" sowohl in machine3 als auch in
machine2 platziert (bei Verwendung von place nicht!).
Modell: stack3 (DEMO)
Beschreibung:
An diesem Beispiel ist zu erkennen, dass sich der Stack eines Jobs bei
Rekursionsschleifen in einer Technologie praktisch unbegrenzt aufbauen
kann. Die Technologie im Modell beinhaltet im ersten Arbeitsgang ein
Lager und im zweiten Arbeitsgang eine Verzweigung, die wiederum auf die
Technologie verweist. Im Ausgangsmodell ist der Job bereits im Lager
platziert. Die Abfrage des Stacks im Ausgangszustand ergibt {tech1 1}. Zu jedem
Simulationsschritt wird der Job aus dem Lager über die Verzweigung
erneut in den ersten Arbeitsgang der Technologie und somit in das Lager
transferiert, wodurch sich der Stack jeweils um zwei Einträge
erweitert. So erhält man für die Abfrage des Stacks bereits nach 5
Schritten {tech1 1} {branch1 1}
{tech1 2} {branch1 1} {tech1 2} {branch1 1} {tech1 2} {branch1 1}
{tech1 2} {branch1 1} {tech1 2}.
simcron MODELLER 3.4
Copyright © 2025 simcron
27.02.2025
|