Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Durchlaufzeit ermitteln

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:  Durchlaufzeit ermitteln (4405 mal gelesen)
esscheintdiesonne
Mitglied



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

Beiträge: 19
Registriert: 11.08.2013

erstellt am: 15. Aug. 2013 18:19    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,

hab da mal wieder ein Anliegen und hoffe, dass ihr mir helfen könnt:

Ich würde gerne die Durchlaufzeit eines Auftrags mit bspw. 100 BEs erfassen, also vom Zeitpunkt des ersten Austritts eines BEs aus der Quelle bis zum Eintritt des letzten Auftrag-BEs in die Senke. Wie kann man das umsetzen?

Da ich die Anzahl meiner BEs mit einem Variablenbaustein auslesen lasse, wäre meine Idee, dass die Durchlaufzeitermittlung daren gekoppelt wird. Also wenn die Simulation startet und mein BE-Zähler = 0 ist, dass die Ereignsverwalterzeit angesprochen wird und wenn im BE-Zähler = 100 gezählt hat die Ereignisverwalterzeit erneut herangezogen wird, sodass ich die Durchlaufzeit erhalte. Ich habe aber keine Idee zur programmtechnischen Umsetzung.

Gruß

[Diese Nachricht wurde von esscheintdiesonne am 21. Aug. 2013 editiert.]

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

sjerenz
Mitglied
Planer


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

Beiträge: 33
Registriert: 15.07.2013

Plant Simulation 10.1

erstellt am: 16. Aug. 2013 07:40    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 esscheintdiesonne 10 Unities + Antwort hilfreich

Hallo,

generell muss du dir bei solchen Aufgaben "nur" überlegen, welche Ereignisse ausgelöst werden und welche davon zu einer bestimmten Aktion führen sollen.
Dabei gibt es oft (fast immer) mehrere Möglichkeiten einer Lösung.
Bei deinem Problem sind das zwei Ereignisse:
1. Der Austritt eines BEs aus der Quelle
2. Der Eintritt eines BEs in die Senke oder bei Veränderung des Wertes der Variable "BE_Zaehler" (Beobachter auf der Variablen)
Beide Ereignisse führen zu der Ausführung einer Methode - entweder als internes Attribut oder als eigenständige Methode.

Methode 1 soll die aktuelle SimZeit in die Variable "Startzeit" speichern, aber nur beim ersten BE.
Ausschleusen des BE nicht vergessen:
if ?.statAnzzahlAus=0 then
Startzeit := Ereignisverwalter.Zeit;
end;
@.move;

Methode 1 soll die aktuelle SimZeit in die Variable "Endzeit" speichern, aber nur beim 100. BE und die Simulation anhalten.
if BE_Zaehler=100 then
Endzeit := Ereignisverwalter.Zeit;
Ereignisverwalter.Stop;
end;


Ich hoffe das löst dein Anliegen.


Gruß Stefan

[Diese Nachricht wurde von sjerenz am 16. Aug. 2013 editiert.]

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

esscheintdiesonne
Mitglied



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

Beiträge: 19
Registriert: 11.08.2013

erstellt am: 16. Aug. 2013 13:28    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,

danke, ja das hat mich voran gebracht. Habe zwischenzeitlich selber noch rumprobiert und bin zur Lösung von 2 Förderstrecken nach der Quelle und vor der Senke gekommen, deren BEs Anzahl ich mir den Variablen-Baustein anzeigen lasse und über (für die Quelle bei 100 BEs)

(SensorID : integer)
is
do
SpulenWareningang1:= SpulenWareneingang1 + 1;

inspect Spulenwareneingang1
when 100 then StartZeitAuftrag1 := Ereignisverwalter.Zeit;
end;
end;

die Zeit auslese. Mal angenommen ich habe verschiedene Aufträge die mein Netzwerk durchlaufen (und lasse mir die jeweiligen Startzeit und Endzeit in einem jeweiligen Variablen-Baustein anzeigen bzw. wieder überschreiben), wie kann ich die jeweilig erfassten Zeiten in eine Tabelle schreiben?

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

sjerenz
Mitglied
Planer


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

Beiträge: 33
Registriert: 15.07.2013

Plant Simulation 10.1

erstellt am: 19. Aug. 2013 07:54    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 esscheintdiesonne 10 Unities + Antwort hilfreich

Hallo,

auch hier sind wieder mehrere Möglichkeiten denkbar.
Zum einen kannst du das ganze an die "wirklichen" Ereignisse koppeln - also dem Start und Ende der Bearbeitung bzw. der Entstehung und dem Austritt der BEs aus dem Modell.
Zum anderen kannst du auch die Änderung der Werte in den Variablen als Ereignisse nutzen (über einen Beobachter "auf" der Variable für den Wert).

Das Abspeichern der Werte ist dann einfach eine Zuweisung. Das Bestimmen der Zeilen-Spalte-Kombination ist abhängg vom Durchlauf der BEs.
Entweder du kannst immer in die nächste Zeile/Spalte schreiben (ydim+1 / xdim+1) oder du brauchst eine zusätzliche Zählvariable.

Stefan

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

esscheintdiesonne
Mitglied



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

Beiträge: 19
Registriert: 11.08.2013

erstellt am: 19. Aug. 2013 18:01    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

Danke. Entschuldige, dass ich da aber nochmal nachfragen muss. Wie genau müsste denn eine Methode programmiert werden, damit ich einzelne Stände der veränderlichen Variable in eine Tabelle schreiben kann. Bisher lasse ich mir die Werte in einem Diagramm anzeigen und diese nach Ablauf der Simulation in eine Taballe übertragen.

Müsste doch eig. über ein if-funktion sein, also wenn die Variablen bspw. = 100 ist, dann schreibe in Zeile XY der Tabelle XY  den Wert der Variablen? Ich habe da echt Probleme das programmiertechnisch umzusetzen.

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

sjerenz
Mitglied
Planer


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

Beiträge: 33
Registriert: 15.07.2013

Plant Simulation 10.1

erstellt am: 21. Aug. 2013 12:07    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 esscheintdiesonne 10 Unities + Antwort hilfreich

Nachfragen sind kein Problem. Also:

Nur zur Klarstellung:
Du hast eine Variable, deren Werte sich durch die Simulation ändern.
Jetzt willst du in einer bestimmten Abhängigkeit (bestimmmter Wert, bestimmte Anzahl von Wechsel,...) diesen Wert in eine Tabelle speichern.
Das Ereignis zum Auslösen der Methode ist der Beobachter der Variable auf der Wert.
Die Abhängigkeit kannst du entweder über eine oder mehrere if-Schleifen prüfen - dann sollten es aber nicht so viele verschiedene Möglichkeiten geben, die angenommen werden können.
Falls du viele Möglichkeiten der Abhängigkeit hast, bietet sich die "inspect" Kontrollstruktur an - diese entspricht einer switch-case-Struktur aus C.
Das Schreiben in die Tabelle wäre dann einfach: Tabelle[X,Y] := Wert;

Falls noch etwas unklar ist oder du weitere Informationen brauchst, einfach schreiben.

Gruß
Stefan

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

esscheintdiesonne
Mitglied



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

Beiträge: 19
Registriert: 11.08.2013

erstellt am: 21. Aug. 2013 20: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

Hat geklappt. Vielen Dank für die Antwort!

Ein letztes Anliegen habe ich doch noch zur Durchlaufzeit:

Ich habe in Reihe 1x Senke, 1x Bearbeitungsstation (1. Prozessabschnitt/ Rüstzeit: 10 min., Bearbeitungszeit 10 min.), 1x Puffer (Kapazität: 1000), 1x Bearbeitungsstation (2. Prozessabschnitt/Rüstzeit: 10 min., Bearbeitungszeit 10 min.) und 1x Senke. Mittels zweier Methoden und zweier zugeordneten Variablen lasse ich mir zum einen jeweilig die ein- und ausgetretenen BEs als laufende Variable der ersten Bearbeitungsstation anzeigen und über die inspect- Funktion bei BE=0 (Anfangszeit Prozesssabsschnitt 1) und BE=100 (Endzeit Prozesssabsschnitt 1) in eine Tabelle schreiben. Das Auslesen der Ein- und Austritte realisiere ich über die Bearbeitungsstation, Reiter „Steuerung“ und der Eingabe der jeweiligen Methode bei den Feldern „Eingang“ und „Ausgang (mit Haken bei Heck)“. Der Austritt des 1 BEs aus der ersten Bearbeitungsstation ist sogleich der Startzeit des 2. Prozessabschnitts und lasse mir den Wert auch in die Tabelle schreiben. Bei der zweiten Bearbeitungsstation messe ich den Austritt der BEs wie bereits beschrieben, über „Ausgang“ des Reiters „Steuerung“ und einer zusätzlichen dritten Methode und dritten Variable und lasse mir diesen Wert ebenfalls in die Tabelle schreiben (Endzeit Prozesssabsschnitt 2). Zusammenfassend: Ich habe die Start- und Endzeiten von zwei Prozessabschnitten.

Mein Problem:
Wenn ich vor die zweite Bearbeitungsstation, 9 Bearbeitungsstationen in Reihe setze, die Rüst- und Bearbeitungszeiten auf die nun insgesamt 10 Stationen des 2. Prozessabschnitts aufteile (pro Station jeweilig 1 min. Rüst- und Bearbeitungszeit) erhalte ich nicht die gleiche Durchlaufzeit des 2. Produktionsabschnitte wie zuvor. Wie kann das sein, da die Summe der Rüst- und Bearbeitungszeiten der 10 Stationen des 2. Prozessabschnittes die gleiche ist, wie die der vorherigen einzelnen Station (ist in etwa 1/10 kleiner, aber nicht exakt!)? Sind da irgendwelche Grundeinstellungen bei mir in der Software falsch eingestellt?

[Diese Nachricht wurde von esscheintdiesonne am 21. Aug. 2013 editiert.]

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

sjerenz
Mitglied
Planer


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

Beiträge: 33
Registriert: 15.07.2013

Plant Simulation 10.1

erstellt am: 22. Aug. 2013 07: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 esscheintdiesonne 10 Unities + Antwort hilfreich

Moin moin,

nein die Einstellungen sind in Ordnung.
Die 10 Einzelstationen sind schneller, das aber schon direkt beim zweiten BE.
Der Grund ist die Aufteilung von Rüsten und Bearbeiten. Das Rüsten des nächsten BE kann nur stattfinden nachdem die Bearbeitung des vorherigen BE beendet wurde.
Bei der Aufteilung in 10 Einzelstationen wird das Rüsten der ersten Stationen parallel zur Bearbeitung an den Folgestationen durchgeführt. Dies spart dann natürlich Zeit im Vergleich zum wirklich seriellen Rüsten-Bearbeiten-Rüsten-Bearbeiten-...

Gruß
Stefan

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

esscheintdiesonne
Mitglied



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

Beiträge: 19
Registriert: 11.08.2013

erstellt am: 22. Aug. 2013 10:48    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

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