Autor
|
Thema: Eintaktung automatisch möglich? (3370 mal gelesen)
|
sp13 Mitglied
Beiträge: 15 Registriert: 25.02.2013
|
erstellt am: 11. Mrz. 2013 10:07 <-- editieren / zitieren --> Unities abgeben:
Ich habe nochmal eine prinzipielle Frage zu Plant Simulation. Ist es möglich eine Art "Eintaktung" mit Plant Simulation zu machen? Das heißt ich hab z.B. 10 Vorgänge mit jeweils verschiedenen Bearbeitungszeiten. Außerdem hab ich für jeden Vorgang Beziehungen zu den anderen (z.B. Vorgang 4 muss vor Vorgang 5, kann aber auch nach Vorgang 6 bearbeitet werden). Außerdem habe ich eine feste Taktzeit. Ist es möglich, dass das Programm mir dann die optimale Zuordnung der Vorgänge zu den Stationen ausgibt? (Z.B. Vorgang 1 und Vorgang 3 an Station 1; Vorgang 2 an Station 2 usw.) Vielen Dank mal wieder für eure Hilfe!! 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: 11. Mrz. 2013 22:16 <-- editieren / zitieren --> Unities abgeben: Nur für sp13
Die Erstellung eines Modells zur Abbildung Ihres Falls sollte ohne Probleme möglich sein. Eine zweite Aufgabe wäre dann, geeignete Experimente einzurichten, um Ihre Fragestellungen zu beantworten. Zum Beispiel was verstehen Sie unter "optimal"? Versuchen Sie es mathematisch zu beschreiben, damit ergibt sich in der Regel schon die Hälfte des Experiment-Aufbaus. --> Beispielmodellsammlung --> Tools und Optimierung --> Genetische Algorithmen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sp13 Mitglied
Beiträge: 15 Registriert: 25.02.2013
|
erstellt am: 12. Mrz. 2013 07:42 <-- editieren / zitieren --> Unities abgeben:
Mit optimal meine ich, dass alle Montagestationen, wenn möglich, die ganze Taktzeit ausgelastet sind. Hier ein Beispiel: Vorgang 1; Dauer 10 sec; muss vor allen anderen Vorgängen sein Vorgang 2; Dauer 20 sec; muss vor 3 kann vor 4 sein Vorgang 3; Dauer 30 sec; muss nach 1 und vor 5 sein Vorgang 4; Dauer 8 sec; muss nach 3 und vor 5 sein usw. Meine Taktzeit soll 30 sec sein. Die Vorgänge sollen jetzt möglichst optimal (unter Berücksichtigung der Restriktionen) auf Stationen verteilt werden, dass jede Station möglichst wenig Stillzeit hat. War das einigermaßen verständlich? Ich habe mir schon gedacht, dass ich das mit dem GAAssistent lösen muss. Aber eine gute Idee / Ansatz, wie ich das machen soll, habe ich nicht. Kann mir jemand weiterhelfen? DANKE!!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sp13 Mitglied
Beiträge: 15 Registriert: 25.02.2013
|
erstellt am: 12. Mrz. 2013 11:07 <-- editieren / zitieren --> Unities abgeben:
Ich habe aus Verzweiflung jetzt mal noch eine Tabelle mit 10 Vorgängen erstellt. In Spalte zwei sind von mir ausgedachte Bearbeitungszeiten für jeden Vorgang. Eine "1" als Eintrag heißt, dass der Vorgang in der Zeile vor dem Vorgang in der Spalte erfolgen muss. Eine "o" als Eintrag heißt, dass der Vorgang in der Zeile vor dem Vorgang in der Spalte erfolgen kann. Ich habe keine Ahnung, ob die Tabelle sinnvoll ist für meine Problemlösung. Aber es ist ein Versuch =) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sp13 Mitglied
Beiträge: 15 Registriert: 25.02.2013
|
erstellt am: 14. Mrz. 2013 18:30 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, mein vorhergehendes Problem habe ich mittlerweile anderst gelöst. Jetzt stehe ich vor einem neuen Problem und würde mich freuen, wenn mir jemand weiterhelfen kann. Ich habe folgende Methode als Ausgangssteuerung eines Puffers: is Zeit : time; Taktzeit : time; do -- Bearbeitungszeiten addieren if @.name="Variante1" then Zeit := TabelleZeitenProzess1["Zeit",1]+ TabelleZeitenProzess2["Zeit",1]+ TabelleZeitenProzess3["Zeit",1]+ TabelleZeitenProzess4["Zeit",1]+ TabelleZeitenProzess5["Zeit",1]; print Zeit; elseif @.name="Variante2" then Zeit := TabelleZeitenProzess1["Zeit",2]+ TabelleZeitenProzess2["Zeit",2]+ TabelleZeitenProzess3["Zeit",2]+ TabelleZeitenProzess4["Zeit",2]+ TabelleZeitenProzess5["Zeit",2]; print Zeit; elseif @.name="Variante3" then Zeit := TabelleZeitenProzess1["Zeit",3]+ TabelleZeitenProzess2["Zeit",3]+ TabelleZeitenProzess3["Zeit",3]+ TabelleZeitenProzess4["Zeit",3]+ TabelleZeitenProzess5["Zeit",3]; print Zeit; end; -- Vergleich mit Taktzeit Taktzeit := 1800; if Taktzeit < Zeit then print "Montagezeit ist größer als Taktzeit."; else print "Montagezeit ist kleiner als Taktzeit."; end; end; Die funktioniert auch soweit fehlerfrei und die Daten werden auch richtig in der Konsole ausgegeben. Mein einziges Problem ist, dass die Simulation nach Ablauf dieser Methode stoppt. Ist das normal, wenn man sich was in der Konsole ausgeben lässt? Wie kann ich dafür sorgen, dass die Simulation anschließend weiterläuft? Vielen Dank mal wieder für eure Hilfe!!! 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: 14. Mrz. 2013 19:27 <-- editieren / zitieren --> Unities abgeben: Nur für sp13
|
sp13 Mitglied
Beiträge: 15 Registriert: 25.02.2013
|
erstellt am: 15. Mrz. 2013 08:37 <-- editieren / zitieren --> Unities abgeben:
@Bon Simul: Vielen, vielen Dank für deine schnelle und gute Hilfe!! Das Forum ist einfach top Zwei (hoffentlich letzte Fragen) habe ich allerdings noch: 1) Kann man Netzwerke, die man aufgebaut hat, als neuen Baustein abspeichern und somit anderen Kollegen zur Verfügung stellen? 2) Ich habe in meinem Obernetzwerk eine Methode, die in eine Tabelle im Subnetzwerk Werte reinkopieren soll. Ist das generell möglich? Im Moment funktioniert das bei mir leider nicht, obwohl ich den kompletten Pfad der Tabelle angebe. Wie immer vielen Dank für die Hilfe!! [Diese Nachricht wurde von sp13 am 15. Mrz. 2013 editiert.] 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: 15. Mrz. 2013 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für sp13
Zitat:
1) Kann man Netzwerke, die man aufgebaut hat, als neuen Baustein abspeichern und somit anderen Kollegen zur Verfügung stellen?
in der Klassenbibliothek --> Kontextmenü (rechte Maustaste auf dem Netzwerk) --> Objekt speichern unter
Zitat:
2) Ich habe in meinem Obernetzwerk eine Methode, die in eine Tabelle im Subnetzwerk Werte reinkopieren soll. Ist das generell möglich? Im Moment funktioniert das bei mir leider nicht, obwohl ich den kompletten Pfad der Tabelle angebe.
Das sollte prinzipiell gehen (am Einfachsten mit kopiereBereichNach), die Zieltabelle muss dann allerdings die selbe Formatierung haben, wie die Ausgangstabelle haben. Wie kopieren Sie denn die Werte? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sp13 Mitglied
Beiträge: 15 Registriert: 25.02.2013
|
erstellt am: 15. Mrz. 2013 16:59 <-- editieren / zitieren --> Unities abgeben:
Ich habe die Methode mittlerweile fertig und sie funktioniert auch. Hier ein Auszug: ---------------- Kartei := TabelleBearbeitungszeiten.kopieren({3,4}..{3,6}); .neuTest.Montagestation_ges1.TabelleZeitenProzess2.einfügeListe(2,1,kartei.kopieren({1,1}..{1,3})); ---------------- Wahrscheinlich wäre die Lösung mit "kopiereBereichNach" schöner. Werde das gleich mal noch ausprobieren. :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sp13 Mitglied
Beiträge: 15 Registriert: 25.02.2013
|
erstellt am: 19. Mrz. 2013 10:35 <-- editieren / zitieren --> Unities abgeben:
Ich muss euch leider doch nochmal mit meinen Fragen nerven, da sich mein Problem doch noch nicht gelöst hat. Ich habe hier eine Vorrangmatrix, aus der automatisch (mit dem GAAssistenten?!) eine richtige Reihenfolge der Vorgänge generiert werden soll. Meine Matrix seht ihr im Anhang. Hier die Erklärung der Einträge: 1: Vi muss Vj vorausgehen 0: Reihenfolge von Vi und Vj ist egal -1: Ausführung von Vi vor Vj ist unmöglich (Die Lösung wäre in diesem Fall: V1, V2, V4, V3, V5.) Gibt es eine Möglichkeit (erstmal ohne Berücksichtigung der Bearbeitungszeiten) sich eine (oder auch alle) möglichen Reihenfolgen ausgeben zu lassen? Ein rießiges Dankeschön jetzt schon mal Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sp13 Mitglied
Beiträge: 15 Registriert: 25.02.2013
|
erstellt am: 20. Mrz. 2013 12:00 <-- editieren / zitieren --> Unities abgeben:
|