Autor
|
Thema: Quelle mit Lieferliste (1375 mal gelesen)
|
NiemeyerLukas Mitglied Student
Beiträge: 21 Registriert: 02.03.2015
|
erstellt am: 06. Aug. 2015 12:32 <-- editieren / zitieren --> Unities abgeben:
Moin Moin, ich hab in meiner Simulation die Quelle mit einer Lieferliste gefüttert. Funktioniert auch wunderbar. Nun soll aber eine Erweiterung her und die bereitet mir Schwierigkeiten. Ich habe 2 Tabellen als Lieferlisten, eine für Montageobjekt_A und eine für Montageobjekt_B. Nun habe ich in einer weiteren Liste stehen in welcher Reihenfolge Montageobjekt A und B erstellt werden sollen. Nun habe ich in meiner Init-Methode stehen: if Lieferliste[2,1] = 1 then Arbeitsschritte_A.kopiereBereichNach({1,1}..{5,50}, Arbeitsschritte, 1, 1); elseif Lieferliste[2,1] = 2 then Arbeitsschritte_B.kopiereBereichNach({1,1}..{5,50}, Arbeitsschritte, 1, 1); end; Lieferliste: Ob A oder B erstellt werden soll Arbeitsschritte: Tabelle aus der am Ende die Quelle BE's erstellt. Nur funktioniert dies leider nicht. Ich denke mir, das die Init-Methode zu langsam ausgeführt wird, so dass die Quelle die Arbeitschritte noch nicht kennt und deswegen nicht erstellt. Wer kann mir da helfen? Gruß Lukas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NiemeyerLukas Mitglied Student
Beiträge: 21 Registriert: 02.03.2015
|
erstellt am: 06. Aug. 2015 12:41 <-- editieren / zitieren --> Unities abgeben:
Da sucht man ewig nach einer Lösung, findet nichts und fragt denn hier nach. Paar Minuten später findet man die Lösung. Hab in der init-Methode folgendes geändert: Code: Quelle.Erzeugungszeit := "abstand einstellbar";if Lieferliste[2,1] = 1 then Arbeitsschritte_A.kopiereBereichNach({1,1}..{5,50}, Arbeitsschritte, 1, 1); elseif Lieferliste[2,1] = 2 then Arbeitsschritte_B.kopiereBereichNach({1,1}..{5,50}, Arbeitsschritte, 1, 1); end; Quelle.Erzeugungszeit := "Lieferliste";
Dadurch erzeugt er die BE's erst denn wenn die liste korrekt erstellt ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NiemeyerLukas Mitglied Student
Beiträge: 21 Registriert: 02.03.2015
|
erstellt am: 27. Aug. 2015 13:06 <-- editieren / zitieren --> Unities abgeben:
Hallo, jetzt stehe ich wieder an der Stelle an der ich schonmal Stand und da benötige ich jetzt soch wieder Hilfe. In meiner Simulation gibt es eine Taktzeit, wenn diese beendet ist, soll ein neuer Auftrag aus der Lieferliste(nicht die der Quelle) geholt werden. Dafür werden entweder Arbeitsschritte_A oder Arbeitsschritte_B in die Lieferliste der Quelle kopiert. Wie kann ich nun BE's in einer laufenden Simulation erzeugen. Wenn ich die BE's in die Lieferliste kopiere und dem eine Erzeugungszeit gebe, welche ein paar Sekunden in der Zukunft liegt, werden diese nicht produziert. Ich hoffe jemand kann mir helfen Gruß Lukas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 27. Aug. 2015 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für NiemeyerLukas
Sie können zu jeder Zeit BEs mit Code:
.BEs.Fördergut.erzeugen(Zielstation);
erzeugen. Erzeugen gibt das erzeugt BE zurück. Die Lieferliste für die Quelle lässt sich nur erweitern, wenn das letzte BE aus der Lieferliste noch nicht erzeugt ist (bzw. das Erzeugen-Ereignis in den Ereignisverwalter eingetragen ist). Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|