Autor
|
Thema: Zufälliger Ausschuss bei Maschinenstörung (1440 / mal gelesen)
|
AM-SIM Mitglied Studentin
Beiträge: 26 Registriert: 20.06.2018
|
erstellt am: 07. Aug. 2018 15:55 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmals, ich habe einen zufälligen Ausschuss in meiner Simulation eingebaut der mit einer Flusssteuerung funktioniert. Als nächsten Schritt möchte ich einen zufälligen Ausschuss bei einer Maschinenstörung simulieren unter der Bedingung, dass nicht jede Maschinenstörung ein Ausschuss bedeutet (siehe Maschine1). Wenn ich die gleiche Methode (FC12) in dem Baustein Maschine1 unter Stören einlese kann er mir diese nicht ausgeben. Woran liegt es denn? Vielen Dank! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 07. Aug. 2018 21:56 <-- editieren / zitieren --> Unities abgeben: Nur für AM-SIM
Hallo AM-SIM, Wird das Ausgangsverhalten der Flusssteuerung mithilfe einer Methode gesteuert, dann bekommt die Methode einen Integer übergeben und gibt anschließend einen integer-Wert zurück. Der übergebene Integer-Wert ist dass, was die Flusssteuerung priorisiert. Also Ausgang 1. Dieser kann in der Methode auf einen anderen Wert gesetzt werden. Da Ausschuss ehe prozentual ist, kannst du auch prozentuale-Strategie in Flusssteuerung nutzen. Die Steuerung der Methoden - für dich die Methode (FC12) in Maschine1 - wird ohne Werte zu übergeben aufgerufen. Also dann wenn der Wert sich ändert. Nur der Aufruf der Methode wird damit ausgelöst. Du willst den Ausschuss nur dann, wenn die Maschine gestört und belegt ist, haben. Also musst du zuerst in der Methode prüfen, ob Maschine gestört. Ist die Maschine gestört, dann prüfen, ob ein BE auf der Maschine ist. Sollte dieser Fall vorliegen, dann wird gewürfelt und beispielsweise das BE (Attribut) oder globale Variable gesetzt. Hiernach kannst du mithilfe einer Flusssteuerung diese BEs zum anderen Nachfolger senden. Für diese Strategie im Ausgangsverhalten ist beispielsweise Methode oder Attribut verwendbar.... vG Nadin
------------------ Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AM-SIM Mitglied Studentin
Beiträge: 26 Registriert: 20.06.2018
|
erstellt am: 17. Aug. 2018 15:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Nadin, ich habe nun folgendes erstellt: für Maschine1 gibt es 30% Ausschuss(scrap_job) bei Maschinenstörung. Für Maschine2, soll jedoch nur ein zufälliger 30%iger Ausschuss (scrap_part) von BE´s auf dem FHM gegeben sein. Wenn ich die Methode (M_scrap_part) einsetze, blockt die Simualtion. Wie kann ich das beheben. Zusätzlich, möchte ich die Anzahl der Ausschüsse pro Ausschusslager und Bauteil(a,b,c) ermitteln. Im Prinzip müsste es genauso funktionieren wie in der Tabelle ProdTag. Leider bekomme ich hier auch immer eine Fehlermeldung. LG
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AM-SIM Mitglied Studentin
Beiträge: 26 Registriert: 20.06.2018
|
erstellt am: 20. Aug. 2018 12:21 <-- editieren / zitieren --> Unities abgeben:
Ich habe nun eine Lösung zum Ausschuss von einzelnen BE´s auf der Platte gefunden. Diese funktioniert auch auf meiner Testsimulation aber leider nicht auf meiner echten. Folgende Fehlermeldung bekomme ich:" Falsche Parameterzahl:0 übergeben, 1 erwartet". Ich habe alle Schlüsselwörter versucht aber es kommt immer die selbe Meldung.
[Diese Nachricht wurde von AM-SIM am 20. Aug. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AM-SIM Mitglied Studentin
Beiträge: 26 Registriert: 20.06.2018
|
erstellt am: 20. Aug. 2018 12:45 <-- editieren / zitieren --> Unities abgeben:
Habe das Problem gelöst. Der Methodenaufruf lag im falschen Baustein. Abgesehen davon wollte ich noch erfahren, wie ich die Ausschussteile im Lager zählen kann und die Tabelle schreiben kann. D.h. für jedes Lager Ausschuss pro Bauteilart. Vielen Dank und VG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 21. Aug. 2018 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für AM-SIM
Hallo AM-SIM, INFO: Eine Steuerung wird aufgerufen, sobald der Zustand sich ändert. Beispielsweise für Stören kann der Zustand: true/false sein. Für das Auslesen, ohne die BE auf verschiedene Objekte wie Puffer zu packen, bedeutet die Menge zu notieren...beispielsweise mithilfe mehrerer Variable...Im Beispiel sind die Variablen V_Container1 bis V_Container12 in M_Scrap1 eingefügt. Mit Generator kannst du den Wert der Variablen in Tabelle schreiben und die Menge zurücksetzen. Sehr gut finde ich, dass du daran denkst, dass der Ausschuss nicht gelöscht wird, da hierdurch die Statistik nicht verfälscht wird. Code: (r: boolean): boolean is NIO: real; _be: object; do -- @ is the movable unit if r then --nur wenn Störung = true NIO:= z_gleich(1, 0, 1); if NIO<Maschine1.Scrap then _be:=@.inhalt; --Palette mit Inhalt _be.move(scrap_Job); inspect _be.Ursprung.name --welche Palette when "Container1" then current.V_Container1:= current.V_Container1+1; when "Container11" then current.V_Container11:= current.V_Container11+1; when "Container12" then current.V_Container12:= current.V_Container12+1; else Print "ERROR" end end end /*else @.move(Maschine2); --einwenig ungewöhnlich. Da eig. bei Störungsbeginn noch nicht fertiggestellt. end; */ end;
vG Nadin
------------------ Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AM-SIM Mitglied Studentin
Beiträge: 26 Registriert: 20.06.2018
|
erstellt am: 22. Aug. 2018 09:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Nadin, vielen Dank für den Vorschlag. Den Ausschuss für den kompletten Job habe ich wie folgt (im Anhang) erstellt. Ich möchte noch die Teile auf jeweiligen Ausschusslager in die Tabelle (production_program) überschreiben. Mit deinem angegebenen Code kann ich die Teile auf Lager zählen aber möchte Sie ja noch in die Tabelle schreiben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 23. Aug. 2018 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für AM-SIM
um Werte von einer Variable in die Tabelle zu schreiben, kann beispielsweise ein Generator zum Einsatz kommen. Wie für die Statistik wird die Variable ausgelesen. und nach dem Auslesen zurück gesetzt. Code:
//aktiviert durch Generator is _index: integer do _index:= DeineTabelleStatistik.ydim+1 DeineTabelleStatistik[0,_index]:= Ereignisverwalter.Zeit --Nachfolgenden Code wiederhollen bis alle Variablen in Tabelle geschrieben sind DeineTabelleStatistik[1,_index]:= DeineVariable DeineVariable:= 0end;
vG Nadin
------------------ Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |