Hallo,
Wir haben folgendes Problem. Wir simulieren eine Pressstraße bei welcher zehn verschiedene Teile gepresst und anschließend montiert werden. Dazu sind von jedem Teile eine bestimmte Anzahl nötig.
Zwischen Presse und Montage ist ein Puffer für jedes Produktionsteil geschalten. Da die Teile sehr unterschiedlich im Puffer ankommen und dieser eine begrenzte Kapazität hat, ist der Puffer voll und die Montage kann nicht stattfinden, da andere Teile fehlen.
Wir haben jetzt versucht die Generierung der BEs pausieren zu lassen, wenn der Puffer eine bestimmte Anzahl an BEs erreicht hat. Leider funktioniert die Methode nicht richtig.
is
do
if .modelle.presswerk.Variantenlager2.Puffer_Stoßfänger.AnzahlBEs = 5
then .modelle.presswerk.Ausgangslager.Eingang_Stoßfänger.Pause := true;
--wenn im Puffer 5 BEs vorliegen, soll die dazugehörige Quelle pausieren, damit keine weiteren BEs generiert werden
waituntil .modelle.presswerk.Variantenlager2.Puffer_Stoßfänger = 1 prio 1;
.modelle.presswerk.Variantenlager2.Eingang_Stoßfänger.Pause := false;
--es soll so lange gewartet werden bis nur noch ein BE im Puffer vorhanden ist und die Quelle soll daraufhin wieder freigeschalten werden
end;
end;
Das Presswerk ist unser Netzwerk, in welchem das Variantenlager2 geschlaten ist und dort ist die Methode enthalten.
Wir hatten auch gedacht, dass eventuell eine init-Methode fehlt. Daher haben wir diese folgendermaßen formuliert.
is
do
.modelle.presswerk.Auftragseingang.Eingang_Stoßfänger.Pause = false;
--Damit die andere Methode funktioniert, soll angegeben werden, dass die Quelle nicht pausiert (ist das richtig?)
end;
Leider funktioniert diese auch nicht richtig. :-( Habt ihr irgendwelche Verbesserungsideen?
Vielen Dank für eure Hilfe!
[Diese Nachricht wurde von AndreasFranz am 03. Jul. 2014 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP