Autor
|
Thema: Broker soll Importer nach Reihenfolge zuweisen (1329 mal gelesen)
|
Davewil Mitglied
Beiträge: 11 Registriert: 30.12.2014
|
erstellt am: 30. Dez. 2014 08:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich habe ein Problem zum Thema Broker-Importer-Exporter und hoffe, dass mir jemand helfen könnte. Ich habe eine Produktionslinie und würde sie gerne über einen Broker bzw. einen Exporter steuern lassen. Hierzu lasse ich den Broker alle Stationen verwalten und die dazugehörigen Importer werden alle an einen Exporter weitergegeben. In einer Tabelle lasse ich mir nun während der Simulation die unbefriedigten Importer auflisten und diese dann sortieren. Wie kann ich in einer Methode nun festlegen, dass der Broker z.B. den Importer aus der 1.Zeile der Tabelle zuerst vermitteln soll und dann erst die Weiteren? Funktioniert das über eine Exporteranfragesteuerung und die Methode "belegeMit"? Vielen Dank! Grüße und einen guten Rutsch Dave 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: 30. Dez. 2014 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für Davewil
Das können Sie über die Importeranfrage-Steuerung des Brokers programmieren. Drücken Sie in dem Feld F4, Plant Simulation legt dann eine Methode an und füllt diese mit einem Beispiel-Kode. Sie können hier die unbefriedigten Importer auslesen und den Exporter an einen Importer Ihrer wahl vermitteln (engage...). Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Davewil Mitglied
Beiträge: 11 Registriert: 30.12.2014
|
erstellt am: 30. Dez. 2014 17:14 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnelle Antwort! Plant Simulation liefert mir daraufhin die folgende Methode, in der ich die Tabelle angegeben habe, in der meine Unbefriedigten Importer gespeichert werden: (obj : object; -- Importer typ : integer) -- Importertyp (0=Entstörimporter, 1=Rüstimporter, 2=Bearbeitungsimporter, 3=Transportimporter) is testImportErfolgreich : boolean; do testImportErfolgreich := ?.testImportFür(obj, typ, TabelleUnbefriedigteImporter); if testImportErfolgreich = true then ?.belegeMit(obj, typ, TabelleUnbefriedigteImporter); end; end; Funktioniert das so oder fehlt hier noch etwas?
Wie könnte man denn realisieren, dass nach bestimmten Prinzipien ausgewählt wird?(z.B. First-In-First-Out oder First-In-Last-Out?)
Dankeschön! Grüße Dave 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: 30. Dez. 2014 17:30 <-- editieren / zitieren --> Unities abgeben: Nur für Davewil
so passt das nicht. Lesen Sie die Hilfe zu belegeMit durch! Die unbefriedigten Importer müssen Sie zusätzlich zu der Vorlage ermitteln. Es ist der erste Parameter von belegeMit, den Sie dynamisch auf der Basis der unbefriedigten Importer und Ihrer Prio setzen müssen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Davewil Mitglied
Beiträge: 11 Registriert: 30.12.2014
|
erstellt am: 31. Dez. 2014 09:29 <-- editieren / zitieren --> Unities abgeben:
Leider komme ich auch mit der Hilfe(in der ich vorher bereits nachgeschaut hatte) nicht wirklich weiter. Ich habe die Methode jetzt soweit geändert: (obj : object; -- Importer typ : integer) -- Importertyp (0=Entstörimporter, 1=Rüstimporter, 2=Bearbeitungsimporter, 3=Transportimporter) is TabelleUnbefriedigteImporter: table[object,integer]; testImportErfolgreich : boolean; do TabelleUnbefriedigteImporter.create; Broker.holeUnbefriedigteImporter(TabelleUnbefriedigteImporter); testImportErfolgreich := ?.testImportFür(tabelleUnbefriedigteImporter[1,1], TabelleUnbefriedigteImporter[2,1], TabelleUnbefriedigteImporter); if testImportErfolgreich = true then ?.belegeMit(TabelleUnbefriedigteImporter[1,1], TabelleUnbefriedigteImporter[2,1], TabelleUnbefriedigteImporter); end; end; Was mache ich denn hierbei immernoch falsch?
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: 31. Dez. 2014 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für Davewil
Die Grundstruktur passt nicht. Sie brauchen auch die Exporter. Hier ist ein Beispiel, in dem immer SingleProc2 zuerst bedient wird. Code:
(obj : object; -- Importer type : integer) -- Importer type (0=failure importer, 1=setup importer, 2=processing importer, 3=transport importer) is workersToBeExported : table; testImportSuccessfull : boolean; unsatisfiedImporters:table; i:integer; obj1: object; do workersToBeExported.create; unsatisfiedImporters.create; --unbefriedigte Importer ?.getOpenImporters(unsatisfiedImporters); --prefer singleProc2, otherwise first importer for i:=1 to unsatisfiedImporters.yDim loop if unsatisfiedImporters[1,i] = singleProc2 then obj1:=singleProc2; testImportSuccessfull := ?.testImportFor(obj1, unsatisfiedImporters[2,i], workersToBeExported); if testImportSuccessfull = true then ?.engage(obj1, unsatisfiedImporters[2,i], workersToBeExported); return; end; end; next; --some other for i:=1 to unsatisfiedImporters.yDim loop obj1:=unsatisfiedImporters[1,i]; testImportSuccessfull := ?.testImportFor(obj1, unsatisfiedImporters[2,i], workersToBeExported); if testImportSuccessfull = true then ?.engage(obj1, unsatisfiedImporters[2,i], workersToBeExported); return; end; next; end;
[Diese Nachricht wurde von Bon Simul am 31. Dez. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|