Autor
|
Thema: Materialfluss mit mehreren Fahrzeugen/Verteilwägen (3177 mal gelesen)
|
VerzweifelterMasterand Mitglied
Beiträge: 11 Registriert: 13.11.2012 Plant Simulation 9
|
erstellt am: 19. Nov. 2012 11:18 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte den Materialfluss in einer Fabrik nachbilden. Dabei habe ich jedoch das Problem, dass ich dies nur mithilfe eines Fahrzeugs bewerkstelligen kann. Dabei schreibt jedes fertig bearbeitete Teil einen Transportauftrag, welcher eine Abholung durch den Verteilwagen auslöst. Die Frage ist wie ich das Ganze mit mehreren Fahrzeugen bewerkstellige. Die Auffahrsteuerung ist zwar nicht sehr schön und elegant zu programmieren aber okay - das wird nicht anders gehen. Das Problem ist v.a. dass ein Teil einen Auftrag schreibt und BEIDE Fahrzeuge diesen aufnehmen. Sprich, einer nimmt es auf und der andere steht vor einem leeren Puffer und gibt einen Fehler aus. Ich habe schon mit 2 Transportauftragslisten experimentiert, jedoch ist dies relativ schnell sehr kompliziert, da ich in Zukunft mindestens 2 oder 3 Fahrzeuge betreiben möchte. Mehr als 2 wird dann sehr kompliziert. Habt ihr evtl. einen Tipp für mich? Vielen Dank und eine schöne Woche Grüße 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: 19. Nov. 2012 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für VerzweifelterMasterand
Verteilwagen? Hätten Sie es etwas genauer, wie soll das funktionieren? Prinzipiell gibt es zwei "Richtungen". Die eine ist, das jeweils ein Fahrzeug (z.B. am Ende einer Warteschlange) auf den nächsten Auftrag wartet, sich den Auftrag holt... Die zweite ist, dass eine übergeordnete Steuerung darauf wartet, dass ein Fahrzeug sich bereit meldet, dann den Auftrag an das Fahrzeug zuweist. Das nächste, was bei mehreren Fahrzeugen immer interessant ist: können diese kollidieren oder problemlos aneinander vorbei fahren? Wenn die Fahrzeuge aneinander vorbei fahren können, dann erhält am Besten jedes Fahrzeug seinen eigenen Weg. Wenn Sie kollidieren können (auf einem Weg), dann wird eine Annäherungssteuerung notwenig (Auffahrsteuerung)... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VerzweifelterMasterand Mitglied
Beiträge: 11 Registriert: 13.11.2012 Plant Simulation 9
|
erstellt am: 19. Nov. 2012 12:11 <-- editieren / zitieren --> Unities abgeben:
Mit Verteilwägen meine ich ganz normale Fahrzeuge. Ich denke dass eine Bereitmeldung der Fahrzeuge die beste Variante ist (wenngleich ich auch noch nicht weiß wie dies in Form eines Routenzugs mit mehreren Fahrzeugen zu realisieren ist). Wie kann so eine Bereitmeldung aussehen? Ich versuche Transportaufträge nach dem FIFO Prinzip zu disponieren und später einen Routenzug bzw. mehrere Routenzüge zu implementieren. Ich tappe da noch komplett im dunkem. Berzüglich der Wege habe ich mir auch schon Gedanken gemacht und versucht einen Weg mit mehreren Fahrzeugen zu erstellen. Dies gelingt zwar mit einer Auffahrsteuerung, jedoch ist dies nicht sehr zuverlässig und elegant. Ich lege zudem keinen Wert darauf, dass Fahrzeuge sich in der Simulation behindern (ausser ggf. eine Warteschlange vor einem Aufzug). Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VerzweifelterMasterand Mitglied
Beiträge: 11 Registriert: 13.11.2012 Plant Simulation 9
|
erstellt am: 19. Nov. 2012 13:46 <-- editieren / zitieren --> Unities abgeben:
weiter habe ich ein Problem mit der Ladefläche des Fahrzeugs. Ich versuche gerade einen Routenzug zu installieren. Jedoch habe ich das Problem, dass wenn ich 3 BEs geladen habe und das 2. entladen wird, das 3. nicht auf den Platz des 2. rutscht. Ist das irgendwie möglich? Also dass die Ladefläche wie ein Puffer oder ein Stapel genutzt wird. Ich wollte nach dieser Logik vorgehen Code:
if @.anzahlbes=1 then @.Ziel1:=@.BE(1).ziel; else if @.anzahlbes=2 then @.Ziel2:=@.BE(2).ziel; else if @.anzahlbes=3 then @.Ziel3:=@.BE(3).ziel; end; end; end; if @.Position = @.Ziel1 then @.be(1).umlagern(Sensorliste[3,@.Position]); else if @.Position = @.Ziel2 then @.be(2).umlagern(Sensorliste[3,@.Position]); else if @.Position = @.Ziel3 then @.be(3).umlagern(Sensorliste[3,@.Position]); end; end; end; end;
Vielen lieben Danke 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: 19. Nov. 2012 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für VerzweifelterMasterand
Wenn Sie 3 BEs mit unterschiedlichem Ziel laden können, dann sollten Sie Ziele für alle geladenen BEs setzen. Den ersten Teil müssten Sie ändern: Code:
if @.anzahlbes=1 then @.Ziel1:=@.BE(1).ziel; @.ziel2:=void; @.ziel3:=void; elseif @.anzahlbes=2 then @.Ziel1:=@.BE(1).ziel; @.Ziel2:=@.BE(2).ziel; @.ziel3:=void; elseif @.anzahlbes=3 then @.Ziel1:=@.BE(1).ziel; @.Ziel2:=@.BE(2).ziel; @.Ziel3:=@.BE(3).ziel; end;
Ab Version 10 gibt es die Ladefläche des Fahrzeugs als Förderstrecke, das könnte dem von Ihnen gewünschtem Verhalten nahe kommen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VerzweifelterMasterand Mitglied
Beiträge: 11 Registriert: 13.11.2012 Plant Simulation 9
|
erstellt am: 20. Nov. 2012 07:42 <-- editieren / zitieren --> Unities abgeben:
|
VerzweifelterMasterand Mitglied
Beiträge: 11 Registriert: 13.11.2012 Plant Simulation 9
|
erstellt am: 20. Nov. 2012 08:18 <-- editieren / zitieren --> Unities abgeben:
desweiteren funktioniert eine abfrage wie z.b. if @.be(2)=void then ... auch nicht. Er gibt mir bei einem fahrzeuginhalt trotzdem den true zweig zurück. Dankeschön Wie kann ich einem Fahrzeug eigentlich eine feste Route geben? Am besten indem ich die Zielsensoren mittels der fahrsteuerung an bestimmten Punkten vorgebe oder? Vielen Dank - Sie sind meine Rettung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VerzweifelterMasterand Mitglied
Beiträge: 11 Registriert: 13.11.2012 Plant Simulation 9
|
erstellt am: 20. Nov. 2012 09:15 <-- editieren / zitieren --> Unities abgeben:
der erste beitrag war natürlich total sinnfrei - bitte vergessen jedoch ist das problem immer das gleiche. wenn ich aufträge a, c, e habe und c entladen wird - dann sind 2 bes am fahrzeug, jedoch übernimmt er dann den ersten und den zweiten, leeren platz als ziel und nicht den ersten und den dritten. deshalb meinte ich ob es möglich ist, dass die aufträge nachrutschen. leider habe ich nur plant sim 9, da ich dies so von der hochschule erhalten habe. ein update auf 10 ist leider nicht drin 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: 20. Nov. 2012 09:41 <-- editieren / zitieren --> Unities abgeben: Nur für VerzweifelterMasterand
Der Methode be() ist es egal, auf welchen Plätzen die Teile liegen (es gibt noch eine Methode pe(x,y)- mit dieser können Sie auf einzelne Plätze zugreifen). Die Zielbestimmung müssten Sie nach jedem Umlagern neu aufrufen. Zunächst benötigen Sie ein grobes Steuerungskonzept: Welchen Datentyp hat Ihr Attribut ziel und position? Ich sehe zwei prinzipielle Lösungen: a) SensorNummern - die lassen sich gut mit der SensorID der Sensor-Steuerung eines Weges vergleichen b) Objekte: die müssen Sie dann z.B. in Sensor-Positionen oder Sensor-IDs umwandeln. Wie sieht denn Ihr Fahrauftrag aus? Er müsste ja für das Fahrzeug eine Angabe enthalten, wo er laden und wo er abladen soll.
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: 22. Nov. 2012 16:42 <-- editieren / zitieren --> Unities abgeben: Nur für VerzweifelterMasterand
|