Autor
|
Thema: BE-Verteilung nach Prozesszeit (1401 mal gelesen)
|
Shimmi Mitglied
Beiträge: 6 Registriert: 05.10.2015
|
erstellt am: 05. Okt. 2015 10:55 <-- editieren / zitieren --> Unities abgeben:
Hallo alle zusammen ich bin Student und Anfänger im Bereich Plant Simulation. Leider habe ich keine Ahnung von Methoden und bräuchte eure Hilfe Im Anhang seht ihr meine Simulation. In der Quelle wird ein Fahrzeug erzeugt, welches im Netzwerk zufällig bestückt wird. Danach wird das Fahrzeug mit den BEs auf eine Warteschlange umgelagert. Anschließend folgt es dem weiteren Prozess bis zur Senke. Die Durchlaufzeit variiert bei jedem einzelnen Fahrzeug aufgrund der unterschiedlichen Anzahl an BEs. Jetzt möchte ich gerne eine Methode schreiben, die dem Fahrzeug vorschreibt, an welche Warteschlange(Puffer) es sich anstellen soll. Das Fahrzeug soll sich immer dort anstellen, wo die geringste Gesamtdurchlaufszeit aller vorherigen Fahrzeuge ist. Dabei soll diese Gesamtdurchlaufszeit der Fahrzeuge ab der Warteschlange bis zur Senke gelten. Kann mir jemand helfen? Wie fange ich am besten die Methode an und wie ermittelt man diese Gesamtdurchlaufszeit der vorherigen Fahrzeuge vom Puffer bis zur Senke? Danke schonmal für eure Hilfe Shimmi
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: 05. Okt. 2015 16:06 <-- editieren / zitieren --> Unities abgeben: Nur für Shimmi
Sie könnten eine Registrierung der Fahrzeuge einfügen. Beim Betreten des Bereiches tragen Sie die Fahrzeuge in eine Liste ein, in der Senke entfernen Sie die Fahrzeuge aus der Liste. Dann können Sie recht einfach die Liste auswerten, um die Gesamtdurchlaufzeit zu berechnen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shimmi Mitglied
Beiträge: 6 Registriert: 05.10.2015
|
erstellt am: 07. Okt. 2015 14:45 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für Ihre Antwort Ich habe für die Registrierung zwei Methoden erstellt. Die erste Methode beschreibt die Eintrittszeit: @.entry_time := EventController.absSimTime; Während die Ausgangsmethode die Durchlaufzeit kalkulieren soll: DLZ := EventController.absSimTime - @.entry_time; Jedoch tritt leider Fehler auf (unbekannter Bezeichner DLZ). Sobald ich DLZ := datetime; definere tritt ein Syntaxfehler auf. Leider kenne ich mich wenig mit SimTalk aus, und finde den Fehler nicht [Diese Nachricht wurde von Shimmi am 07. Okt. 2015 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: 07. Okt. 2015 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für Shimmi
|
Shimmi Mitglied
Beiträge: 6 Registriert: 05.10.2015
|
erstellt am: 07. Okt. 2015 14:51 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 07. Okt. 2015 14:55 <-- editieren / zitieren --> Unities abgeben: Nur für Shimmi
|
Shimmi Mitglied
Beiträge: 6 Registriert: 05.10.2015
|
erstellt am: 07. Okt. 2015 14:58 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 07. Okt. 2015 15:03 <-- editieren / zitieren --> Unities abgeben: Nur für Shimmi
auf Tabellenzellen können Sie mit eckigen Klammern zugreifen Tabelle[x,y], die letzte beschriebene Zeile können Sie mit yDim auslesen. Formatieren Sie die erste Zeile als time. Dann können Sie die Werte mit Tabelle[1,tabelle.yDim+1]:=dlz; eintragen. Für die Summe siehe Hilfe: Tabelle.sum Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shimmi Mitglied
Beiträge: 6 Registriert: 05.10.2015
|
erstellt am: 20. Okt. 2015 15:51 <-- editieren / zitieren --> Unities abgeben:
Momentan hänge ich am folgendem Problem: Ich berechne in jeder Einzelstation/Puffer/Förderstrecke... die Anzahl der BEs (zB: Anzahl_Förderstrecke_1 := Förderstrecke_1.anzahlBEs; ) Da jede Station eine eigene Wichtigkeit besitzt, berechne ich noch anschließend die Priorität: PrioFörderstrecke1 := Anzahl_Förderstrecke_1 * 3; Das funktioniert nun auch soweit. Jetzt möchte ich mit einer extra Controller-Methode von jeder einzelnen Prozesskette die Gesamtpriorität ausrechnen: do DLZ1 := PrioBezahlen1 + PrioEinscann1 + PrioFörderstrecke1 + PrioAuflegstation1 + PrioWarteschlange1; DLZ2 := PrioBezahlen2 + PrioEinscann2 + PrioFörderstrecke2 + PrioAuflegstation2 + PrioWarteschlange2; DLZ3 := PrioBezahlen3 + PrioEinscann3 + PrioFörderstrecke3 + PrioAuflegstation3 + PrioWarteschlange3; Doch leider ist der Wert immer 0. Kann die Methode nicht auf die Prio-Werte der anderen Methoden zugreifen? Woran liegt es und wie kann ich es beheben? Danke schonmal im Voraus [Diese Nachricht wurde von Shimmi am 20. Okt. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |