Autor
|
Thema: Rüstzeiten den auf Paletten befindlichen BEs zuweisen (2028 mal gelesen)
|
Laydaymar Mitglied Studentin
Beiträge: 5 Registriert: 31.08.2011
|
erstellt am: 31. Aug. 2011 15:58 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich würde mich als Plant Simulation Neuling bezeichnen und habe folgendes Problem: Ich habe ein Modell in dem ich zwei verschiedene Artikel (UB und OB) erzeuge und auf mit einer Montagestation auf eine Palette auflade. Soweit funktioniert alles. Nun will ich aber für die zwei Artikel verschiedene Rüstzeiten auf den Einzelstationen einrichten. Ich hab in der Eingangssteuerung der Einzelstation folgende Methode: is Palette:object; do inspect Palette.inhalt.@.name when"UB" then ?.Ruestzeit:= 120; when"OB" then ?.Ruestzeit:= 240; end; end; Für mich ist es logisch, aber es will einfach nicht funktionieren. Kann mir jemand helfen? Danke! Zum besseren Verständnis hänge ich noch ein bild ran. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
math4fun Mitglied
Beiträge: 167 Registriert: 12.12.2005
|
erstellt am: 31. Aug. 2011 17:04 <-- editieren / zitieren --> Unities abgeben: Nur für Laydaymar
Hi Laydaymar, in der Eingangssteuerung sollte man keine Veränderungen an der Station vornehmen, da Ereignisse (z.B. das Ende des Rüstens) bereits feststehen. Wenn keine der vorgesehen Verteilungen für die Rüstzeit passen, sollte man eine Formel verwenden. Man trägt eine Methode ein. In dieser Methode wird die Rüstzeit berechnet und als result zurückgegeben. :time is Palette : object; do Palette := @; inspect Palette.inhalt.name when"UB" then result := 120; when"OB" then result := 240; end; end; ------------------ PM ___________________ www.math4fun.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Laydaymar Mitglied Studentin
Beiträge: 5 Registriert: 31.08.2011
|
erstellt am: 31. Aug. 2011 18:07 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die schnelle Antwort! Es funktioniert auch, aber leider nur bei der ersten Palette. Für die darauf folgenden Paletten wird gar nicht mehr gerüstet, obwohl ich an der LED der Methode erkenne kann, dass auf sie zugegriffen wird... Mit dieser Methode hätte ich erwartet, dass die Einzelstation für jede neue Palette rüstet, egal ob sich das BE ändert oder nicht. Ist das so? Wo könnte mein Fehler liegen? 2. Falls es so sein sollte, wie ich "oben" vermute: Wie mache ich es möglich, dass die Einzelstation schaut ob sich das BE, im Gegensatz zum vorherigen BE, geändert hat. Damit sie nicht jedes Mal rüstet. Normalerweise hab ich die Lösung des Problems gedanklich schon vollzogen, nur bei der Umsetzung hapert es. Aber bei meinem Zweiten Problem steh ich völlig auf dem Schlauch... Ich hoffe mein GedankenChaos ist nachzuvollziehen. Gruß Anne
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Samson53 Mitglied Nur noch selten simulierend
Beiträge: 119 Registriert: 18.02.2010 Plant Simulation 11 Office 2013
|
erstellt am: 01. Sep. 2011 08:12 <-- editieren / zitieren --> Unities abgeben: Nur für Laydaymar
Zitat: Original erstellt von Laydaymar: 2. Falls es so sein sollte, wie ich "oben" vermute: Wie mache ich es möglich, dass die Einzelstation schaut ob sich das BE, im Gegensatz zum vorherigen BE, geändert hat. Damit sie nicht jedes Mal rüstet.
Wie wäre es, der Palette ein Userattribut in der Montagestation zu verpassen, dass beim Rüsten ausgewertet wird. "Rüsten abhängig von benutzerdef. Attribut" entscheidet, ob gerüstet wird oder nicht. Die Formel, die du ja schon hast berechnet die Rüstdauer. z.B. Die Palette bekommt das Attribut "InhaltName" in der Montage wird diesem der Name der BEs zugewiesen, die sie trägt. Die Einzelstation wertet das Attribut "InhaltName" aus und entscheidet dadurch, ob sie Rüsten muss (Vorgängerpalette hatte den gleichen Artikel drauf oder nicht). Die Formel berechnet nur die Dauer.
------------------ Gruß Samson Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Laydaymar Mitglied Studentin
Beiträge: 5 Registriert: 31.08.2011
|
erstellt am: 01. Sep. 2011 14:54 <-- editieren / zitieren --> Unities abgeben:
Hallo Samson! Das hört sich super an! Vielen Dank! Ich denke auch, dass ich das hinbekommen werde. Nur die Methode zum ändern des Attributnamens der Palette macht mir zu schaffen. Ich habe sie momentan folgendermaßen: (bitte nicht lachen!) is Palette : object; do Palette := @; inspect Palette.inhalt.name when"UB" then @.P:= "UB"; when"OB" then @.P:= "OB"; end; end; Aber das funktioniert natürlich nicht... hätte mich auch gewundert. Ich spreche die Attribute sicher falsch an. Ein Bild für den Zusammenhang hänge ich ran. Gruß Anne
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
math4fun Mitglied
Beiträge: 167 Registriert: 12.12.2005
|
erstellt am: 01. Sep. 2011 17:42 <-- editieren / zitieren --> Unities abgeben: Nur für Laydaymar
|
Laydaymar Mitglied Studentin
Beiträge: 5 Registriert: 31.08.2011
|
erstellt am: 01. Sep. 2011 17:46 <-- editieren / zitieren --> Unities abgeben:
Hallo PM!? Nein, ich habe das nur vermutet. Aber genau das will ich nicht! Die Einzelstation soll erkennen, das sich das BE auf der Palette geändert hat und dann rüsten. Ich bastle jetzt schon ewig an der Methode... Momentan versuche ich es hiermit: is Palette: object; do Palette := @; If Palette.inhalt.name= "UB" then @.P:= "UB"; else @.P:= "OB"; end; end; aber es klappt auch nicht...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Laydaymar Mitglied Studentin
Beiträge: 5 Registriert: 31.08.2011
|
erstellt am: 01. Sep. 2011 18:45 <-- editieren / zitieren --> Unities abgeben:
Liebe Helfer!!! Nun klappt alles! Ich weiß nicht warum und wie ich das geschafft hab, aber es Funktioniert und darauf kommt es an! Muss mir nochmal alles genau durchdenken. Habt vielen, vielen Dank für eure hilfreichen Tipps!!!! Bis zur nächsten Frage! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |