Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Zufälliger Ausschuss bei Maschinenstörung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Zufälliger Ausschuss bei Maschinenstörung (1440 / mal gelesen)
AM-SIM
Mitglied
Studentin


Sehen Sie sich das Profil von AM-SIM an!   Senden Sie eine Private Message an AM-SIM  Schreiben Sie einen Gästebucheintrag für AM-SIM

Beiträge: 26
Registriert: 20.06.2018

erstellt am: 07. Aug. 2018 15:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


TEST_Ausschuss_Storung.spp.txt

 
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.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 07. Aug. 2018 21:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AM-SIM 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von AM-SIM an!   Senden Sie eine Private Message an AM-SIM  Schreiben Sie einen Gästebucheintrag für AM-SIM

Beiträge: 26
Registriert: 20.06.2018

erstellt am: 17. Aug. 2018 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


TEST_Scrap_goodBadneu.spp.txt

 
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


Sehen Sie sich das Profil von AM-SIM an!   Senden Sie eine Private Message an AM-SIM  Schreiben Sie einen Gästebucheintrag für AM-SIM

Beiträge: 26
Registriert: 20.06.2018

erstellt am: 20. Aug. 2018 12:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von AM-SIM an!   Senden Sie eine Private Message an AM-SIM  Schreiben Sie einen Gästebucheintrag für AM-SIM

Beiträge: 26
Registriert: 20.06.2018

erstellt am: 20. Aug. 2018 12:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 21. Aug. 2018 14:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AM-SIM 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von AM-SIM an!   Senden Sie eine Private Message an AM-SIM  Schreiben Sie einen Gästebucheintrag für AM-SIM

Beiträge: 26
Registriert: 20.06.2018

erstellt am: 22. Aug. 2018 09:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


TEST_Scrap_goodBadneu.spp.txt

 
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.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 23. Aug. 2018 15:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AM-SIM 10 Unities + Antwort hilfreich

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:= 0

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz