Volltextsuche Druckansicht Zurück Weiter
Inhalt Bedienung Befehle Beispiele  
Einfache Modelle
Betriebsmittel
Cluster-Tool
Schichtpläne
Datenimport
Rüsten
Event-Handler
Bedarf
Stack

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