Werker / TM - Plant Simulation
Lele01 20. Mrz. 2017, 20:16


Netzwerk.PNG

 
Hallo!

in meiner Simulation ist in einem Zwischenlager (P1) ein Fahrzeug mit 50 Teilen und in einem zweiten Zwischenlager (P2) ist ein leeres Fahrzeug mit einer Kapazität von 50 Teilen. Aus dem Fahrzeug wird immer ein Teil entnommen, danach in einer Maschine (Tieflochbohren) bearbeitet und dann in das leeres Fahrzeug gelegt, das geschieht solange bis das erste Fahrzeug leer ist.


Dafür verwende ich folgenden Code

if ? = P1 then
  @.inhalt.umlagern(tieflochbohren)
elseif ?=tieflochbohren then
  @.umlagern(p2.inhalt)
  if p2.inhalt.voll then
      p2.inhalt.umlagern(W2)
      p1.inhalt.umlagern(p2)
  else
      p1.inhalt.inhalt.umlagern(tieflochbohren)
  end
end


Nun möchte ich dass das Umlagern durch einen Werker erfolgt. Und sobald das Fahrzeug in P1 leer ist, soll der Werker zur Montagestation gehen und ein volles Fahrzeug zum Zwischenlager P1 bringen.

Kannst du mir sagen wie ich das am besten realisiere?

Viele Grüße

Lele

nadin1223 20. Mrz. 2017, 20:50

Hallo Lele01,

Hilfe-->Suche: "Einen Werker modellieren, der Teile zwischen Arbeitsplätzen trägt" sollte weiterhelfen 


vg
Nadin

Lele01 21. Mrz. 2017, 11:19

Vielen Dank für deine Antwort. Soweit so gut.
Ich habe anfangs 50 Teile im Puffer P1. Nachdem der Werker das erste Teil zur Maschine Tieflochbohren gebracht hat, geht er sofort zurück und holt das nächste Teil aus P1. Daduch kommt es zu einem Stau an der Maschine Tieflochbohren.

Ich möchte aber, dass der Werker in der Zeit, in der die Maschine läuft, frei verfügbar ist und sobald die Maschine Tieflochbohren fertig ist, soll der Werker das Teil aus der Maschine entnehmen und zum Puffer P2 bringen. Erst jetzt soll der Werker zurück zum Puffer P1 und das nächste Teil holen.

Ist es möglich dem Werker zu sagen

wenn Teil in P2, dann gehe zurück zu P1 und hole nächstes Teil
ansonsten gehe zu WorkerPool

und wenn Puffer P1 leer, dann gehe zu Montagestation und hole neues Fahrzeug.

Liebe Grüße

Lele

nadin1223 21. Mrz. 2017, 13:03

Importeranfrage und Exporteranfrage in Broker steuern Belegung und Freigabe von MA. Um Broker zu sagen, dass der Auftrag zum Eventzeitpunkt noch gegen ein weiteres Kriterium geprüft werden sollte, kannst du die Importeranfragesteuerung (impAnfrageSt) verwenden.

Code:
(obj : object;  -- Importer
typ : integer) -- Importertyp (0=Entstörimporter, 1=Rüstimporter, 2=Bearbeitungsimporter, 3=Transportimporter)
is
do
if typ = 3 then
--wegtragen
waituntil current.deineSTATION.leer prio 1;
?.standardImportDurchführen(obj, typ);
else
?.standardImportDurchführen(obj, typ);
end;
end;

vg
Nadin

Lele01 21. Mrz. 2017, 15:57


Bild1.PNG


Bild2.PNG

 
Ich habe nun eine Importeranfragesteuerung erstellt.
Aber nun bringt der Werker ein einziges Teil von P1 zu Tieflochbohren und danach macht er nichts mehr, obwohl er nach Ablauf der Maschinenlaufzeit, das Teil weiter zu P2 bringen soll und danach das nächste Teil wieder von P1 zu Tieflochbohren.

viele Grüße

Lele

nadin1223 21. Mrz. 2017, 16:46

Die Importeramfragesteuerung sendet alle Anfragen an den MA. Zum Zeitpunkt warten alle Anfragen des Transportimportes bis die Station X leer wird. Ist lustig wenn von dieser Station etwas dann weggetragen werden sollte.   
Mit If-Blöcken kannst du dafür sorgen, dass nur die richtigen Anfragen warten müssen. Die restlichen Anfragen werden im else-Block behandelt ohne wait.
Tipp: Station die den Dienst anfordert ist obj

vg
Nadin

Lele01 22. Mrz. 2017, 12:18

Vielen Dank für die Antwort.
Hat soweit alles geklappt.

Kann man auch die Kapazität des Werkers ändern, je nachdem welche Anfrage er gerade bearbeitet?

Viele Grüße

Lele

nadin1223 23. Mrz. 2017, 10:37

Zitat:
Kann man auch die Kapazität des Werkers ändern, je nachdem welche Anfrage er gerade bearbeitet?

verstehe ich nicht ganz. Bitte ein Beispiel

vg
Nadin

Lele01 23. Mrz. 2017, 11:10


Netzwerk.PNG

 
Aktuell entsteht in der Montagestation ein Wagen mit 50 Teilen. Dieser wird vom Werker geholt und zur Station Abladen_Tieflochbohren gebracht. Dort werden die 50 Teile abgeladen und gehen in den Puffer P1, damit der Werker Zugriff auf die einzelnen Teile hat, um diese dann zur Maschine Tieflochbohren zu bringen.

Ich habe überlegt, ob man das ganze auch ohne Wagen realisieren kann, indem man dem Werker eine Kapazität von 50 Teilen gibt.
Der Werker soll zur Quelle_Teil gehen, dort 50 Teile aufnehmen und diese direkt zum Puffer P1 bringen. Somit könnte ich mir die Montage und Demontage sparen.

Das Problem an der ganzen Sache ist, dass er nur bei diesem Dienst 50 Teile auf einmal mitnehmen soll, beim Transport von "P1" zu "Tieflochbohren" und von "Tieflochbohren" zu "P2" soll er immer nur ein Teil transportieren.

Viele Grüße

Lele

nadin1223 23. Mrz. 2017, 13:33

Die einfachste Methode ist die Zeiten in Demontage und Montagestation auf 0 zu setzen. Dann ist es ein Pufferplatz.
----------------
Im Prinzip nimmt der Werker dann mehr als ein Teil auf, wenn die Kapazität von Werker höher als 1 ist und Maximale Verweilzeit an Station nicht 0 ist. Somit reicht es eigentlich aus, wenn an der Station die "Maximale Verweilzeit" auf mehr als 0 gesetzt ist. Auf anderen Stationen nimmt es dann immer noch ein Teil auf, solange dort die "Maximale Verweilzeit" auf 0 gesetzt ist.

vg
Nadin