Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Mengen- und instandhaltungsabhängige Stö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:  Mengen- und instandhaltungsabhängige Störung (1263 mal gelesen)
mistercoolios
Mitglied
Student

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

Beiträge: 7
Registriert: 23.12.2012

erstellt am: 28. Dez. 2012 15: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

Hallo,

ich möchte, dass die Störwahrscheinlichkeit einer Einzelstation abhängig von der produzierten Menge ist.
In der StörMethode soll sie so definiert werden, dass sie für jedes produzierte Teil z.B. um 1 Prozentpunkt steigt. Ist das grundsätzlich machbar und wenn ja, wie?

Außerdem soll die Einzelstation dann so lange gestört bleiben, bis eine Instandhaltungseinheit frei geworden ist.
Dazu habe ich die Variable "Instandeinheit" mit dem Typ integer eingeführt, wobei ihre Anzahl z.B. auf 2 begrenzt werden soll und sie für mehrere Einzelstationen zuständig sein sollen.
Die InstandMethode soll von der StörMethode aufgerufen werden und der Quellcode könnte so aussehen:

is
do
  waituntil Instandeinheit > 0 prio 1;
  Instandeinheit := Instandeinheit - 1;
  --die gestörte Einzelstation, die diese Methode aufgerufen hat, soll z.B. noch 600 Sekunden gestört bleiben, was also der Instandsetzungszeit entspricht. Geht das mit
  --"Einzelstation.stören(60)" und weiß die Methode dann, dass damit die Einzelstation gemeint ist, die diese Methode aufgerufen hat? Bei BEs gibt es das @-Zeichen
  --Störwahrscheinlichkeit wieder auf 0 setzen
  waituntil Einzelstation.bereit prio 1; --denn die Instandhaltungseinheit steht erst dann wieder zur Verfügung, aber eventuell gleiches Problem wie oben
  Instandeinheit := Instandeinheit + 1;
end;

[Diese Nachricht wurde von mistercoolios am 28. Dez. 2012 editiert.]

[Diese Nachricht wurde von mistercoolios am 28. Dez. 2012 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mistercoolios
Mitglied
Student

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

Beiträge: 7
Registriert: 23.12.2012

erstellt am: 29. Dez. 2012 18:08    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

Da ich nicht weiß, wie das mit der zunehmenden Störwahrscheinlichkeit geht, habe ich angenommen, dass meine Einzelstation definitiv nach 4 gefertigten Teilen ausfällt. Dazu habe ich folgenden Quellcode in der Ausgangssteuerung der Einzelstation geschrieben und die problematischen Zeilen hervorgehoben:

Code:
is
   Instandanfang:time;
do
   Einzelstation.inhalt.umlagern(Vertrieb);
   Anzahl_nach_Störung := Anzahl_nach_Störung + 1;
   if Anzahl_nach_Störung = 4 then --Anzahl der gefertigten Teile seit der letzten Störung gleich 4
       ZuEi2 := "gestört"; --nach 4 Teilen Einzelstation gestört
       waituntil Instandeinheit >= 1 prio 1; --warten bis Instandhaltung möglich ist
       Instandeinheit := Instandeinheit - 1; --eine Instandhaltungseinheit ist nun beschäftigt
       Instandanfang := ereignisverwalter.zeit;
       waituntil ereignisverwalter.zeit = Instandanfang + Instandzeit prio 1; --Instandzeit wurde als 10 Minuten
       --festgesetzt, aber hier tritt das Problem auf, dass nicht wieder auf lauffähig gesetzt wird, wieso?
       ZuEi2 := "lauffähig";

       Instandeinheit := Instandeinheit + 1;
   end;
   ZuEi1 := "leer";
end;

Wenn zusätlich zu diesem Problem jemand noch schreiben könnte, wie das mit der mengenabhängigen Störwahrscheinlichkeit aus meiner 1. Nachricht funktioniert, wäre ich sehr dankbar.

[Diese Nachricht wurde von mistercoolios am 29. Dez. 2012 editiert.]

[Diese Nachricht wurde von mistercoolios am 29. Dez. 2012 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bon Simul
Mitglied
Simulant


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

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 29. Dez. 2012 21:23    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 mistercoolios 10 Unities + Antwort hilfreich

Zitat:

ich möchte, dass die Störwahrscheinlichkeit einer Einzelstation abhängig von der produzierten Menge ist.


Dazu brauchen Sie keine Programmierung. Fügen Sie eine Störung ein, Arbeitszeitbezogen --> je mehr Sie Bearbeitungen auf der Maschine haben, desto mehr Störungen haben Sie. Störungen definiert man in Plant Simulation mit Hilfe von Verfügbarkeit, MTTR und MTBF siehe Hilfe.

Zitat:

Außerdem soll die Einzelstation dann so lange gestört bleiben, bis eine Instandhaltungseinheit frei geworden ist.


Kein Problem: Dazu gibt es in Plant Simulation den Werker, oder wenn Sie es etwas abstrakter haben wollen den Exporter. Er stellt entsprechende Dienste zur Verfügung (siehe Hilfe Störimporter, Broker, Werker, Exporter).

zu Ihren Methoden:

Code:

Einzelstation.stören(600);


Die Prinzipielle Syntax ist
Code:

objekt.methode/eigenschaft


Das Objekt können Sie absolut (.Modelle.Netzwerk.Einzelstation) oder
relativ adressieren (ausgehend vom Standort der Methode).
Nach 600 Sekunden wird die Störung automatisch wieder beendet.


Code:

waituntil ereignisverwalter.zeit = Instandanfang + Instandzeit prio 1;



Verwenden Sie hier besser >= falls Sie den Zeitpunkt nicht exakt erreichen:
Code:

waituntil ereignisverwalter.zeit >= (Instandanfang + Instandzeit) prio 1;

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