Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Ausgangssteuerung Methode (Seite 1)

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 Dieses Thema ist 2 Seiten lang:   1  2 nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Ausgangssteuerung Methode (10260 mal gelesen)
airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 03. Mai. 2014 18: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

Ich habe "3 Teilarten" in meinem Modell. Ich habe eine 3x3 Matrix an Fertigungsstationen. Nun soll jedes Teil  ( TEILA, TeilB, TEILC) unterschiedliche Bearbeitungszeiten auf unterschiedlichen Stationen haben. Dazu habe ich jeweils in den Stationen bei Bearbeitungszeit "Liste" eingestellt und die entsprechende Tabelle angefertigt. Nun hatte ich folgende Methode geschrieben:

is
x: integer;
y: integer;
BZNr: integer;

do

  x := 1;
  y := 1;
 
BZNr := Maschine11.holeAttrNr("Eingangszeit");
 

  while x <= @.standort.anzahlNF loop
 
  if @.standort.nf(x).anzahlBes * @.standort.nf(x).nf(1).Bearbeitungszeit + (@.standort.nf(x).nf(1).Bearbeitungszeit - (Ereignisverwalter.Zeit - @.standort.nf(x).nf(1).holeAttrWert(BZNr))) < @.standort.nf(y).anzahlBes * @.standort.nf(y).nf(1).Bearbeitungszeit + (@.standort.nf(y).nf(1).Bearbeitungszeit - (Ereignisverwalter.Zeit - @.standort.nf(y).nf(1).holeAttrWert(BZNr))) then
    y := x;
    end;
    x := x + 1;
  end;

  @.umlagern(@.standort.nf(y));
end;


Diese Methode funktioniert jedoch nur, wenn ich einen TYP Fördergut habe und die Bearbeitungszeit in der Maschine eingetragen ist. Wie schaffe ich es jetzt, dass er in der Methode zum einen prüft, welchen TYP Fördergut er hat ( TEILA, TEILB oder TEILC) und sich dann entsprechend die Bearbeitungszeit aus der Tabelle holt und dann für den Term: "@.standort.nf(x).nf(1).Bearbeitungszeit" ersetzt.

Ich wäre Ihnen für jede Hilfestellung dankbar.

Viele Grüße und ein schönes Wochenende

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: 04. Mai. 2014 20:04    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 airwaves202 10 Unities + Antwort hilfreich

Den Typ können Sie mit @.name prüfen (wenn Typ = BE-Name).

Für die Bearbeitungszeit in Abhängigkeint von den Maschinen können Sie eine Tabelle verwenden. Aktivieren Sie Zeilen und Spaltenindex. Sie können den Index jeweils als Schlüssel verwenden (Hash). Wenn Sie z.B. zeilenweise die Teile und spaltenweise die Maschinen in den Index eintragen und die Tabelle bearbeitungszeiten heißt, dann können Sie wie folgt die Bearbeitungszeiten auslesen:

Code:

bearbeitungszeiten[maschinenName][@.name]



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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 04. Mai. 2014 20:51    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


Tabelle.jpg

 
Was meinen Sie mit dem "Index" ?

Ist es richtig, wenn die Tabelle so aussieht?

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: 04. Mai. 2014 21:00    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 airwaves202 10 Unities + Antwort hilfreich

Index ist der Inhalt der Zeile/Spalte 0, Sie können ihn anstelle der (numerischen) Zellposition verwenden z.B.
Code:

tabelle["Maschine11"]["TeilA"]


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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 04. Mai. 2014 21: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


Netzwerk.jpg

 
Darüber hinaus verstehe ich leider noch nicht ganz, wie ich daraus eine allgemeingültige Methode basteln kann.

Ich habe ein Bild von meinem Netzwerk angefügt.

Jetzt soll sich die Methode bei "Steuerung1" aus der Tabelle die Bearbeitungszeiten für die jeweiligen Nachfolger holen und vergleichen - und das in jedem "Steuerungspuffer" wieder.

Mit bearbeitungszeiten[Maschinenname][@.name] bekomme ich ja nur den Wert für eine konkrete Maschine, also müsste ich dann für jede Produktionsstufe wieder eine neue Methode schreiben?!

[Diese Nachricht wurde von airwaves202 am 04. Mai. 2014 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: 04. Mai. 2014 21:31    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 airwaves202 10 Unities + Antwort hilfreich

zurück zu Ihrem ersten Post:
Sie können @.standort ersetzen mit ?.

Wenn Sie die Tabelle bearbeitungszeit nennen, dann wird aus dem Ausdruck:

@.standort.nf(x).nf(1).Bearbeitungszeit

-->
bearbeitungszeit[?.nf(x).nf.name][@.name]

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 05. Mai. 2014 03:35    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


Puffer.jpg

 
Ich habe jetzt zusätzlich noch ein Attribut in meine Puffer eingefügt, welches die aufsummierte Wartezeit aller Teile wiedergibt (Vgl.) Upload.
Das Attribut ist entsprechend vom Datentyp time. Die Tabelle ist unverändert zum vorherigen Post. Die Variable "Eingangszeit" ist ebenfalls vom Typ time. Ich habe meine Methode jetzt folgendermaßen umgebaut:

is
x: integer;
y: integer;

BZNr: integer;
WZNR: integer;

do



 
  BZNr := Maschine11.holeAttrNr("Eingangszeit");
  WZNR := Puffer11.holeAttrNr("Wartezeit");
 
x := 1;
y := 1;

 

  while x <= ?.anzahlNF loop
 
   if ?.nf(x).holeAttrWert(WzNr) + bearbeitungszeiten[?.nf(x).nf.name, @.name] + (bearbeitungszeiten[?.nf(x).nf.name, @.name] - (Ereignisverwalter.Zeit - ?.nf(x).nf.holeAttrWert(BZNr))) < ?.nf(y).holeAttrWert(WzNr) + bearbeitungszeiten[?.nf(y).nf.name, @.name]+ (bearbeitungszeiten[?.nf(y).nf.name, @.name] - (Ereignisverwalter.Zeit - ?.nf(y).nf.holeAttrWert(BZNr))) then
    y := x;
     end;
     x := x + 1;
  end;
 

  @.umlagern(?.nf(y));
end;

Allerdings bekomme ich bei der IF-Schleife als Fehlermeldung : "Die Datentypen der Operanden sind nicht kompatibel". Allerdings kann ich den Fehler nirgendwo entdecken    Wobei er mir bei der Fehlermeldung bei der Variablen x = 2 anzeigt. D.h. er müsste doch einmal Fehlerfrei durchgelaufen sein

[Diese Nachricht wurde von airwaves202 am 05. Mai. 2014 editiert.]

[Diese Nachricht wurde von airwaves202 am 05. Mai. 2014 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: 05. Mai. 2014 10:13    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 airwaves202 10 Unities + Antwort hilfreich

In Ihrer Bearbeitungszeiten-Tabelle müssen alle Spalten (außer 0) den Datentyp time haben.

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 06. Mai. 2014 03:03    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


Auswertung.jpg

 
Danke   

Zwei weitergehende Fragen noch :

1.)Gibt es einen einfachen Weg nachzuvollziehen, welchen Weg mein BE durch die Fertigung genommen hat? ( d.h. auf welchen Maschinen bearbeitet wurde?) Oder müsste ich dafür wieder verschiedene Benutzerdefinierte Attribute anlegen, die in der Senkez.B. in eine Tabelle geschrieben werden.


2.) Ich habe mir in meinem Modell jetzt noch 3 Variablen + Methode gebastelt, welche mir die "Lieferterminabweichung" angeben sollen. Ich schreibe die Werte jetzt in eine Zeitleiste. Nun möchte ich mir das ganze grafisch Anzeigen lassen (incl. Negativwerte). Leider funktioniert das nicht so wirklich( siehe Screenshot) Gibt es dafür Abhilfe oder macht man sowas dann besser in Excel? Und gibt es die  Möglichkeit die Einheiten der x-Achse zu verstellen , z.B. in Anzahl BEs ?


Vielen Dank schon mal 

[Diese Nachricht wurde von airwaves202 am 06. Mai. 2014 editiert.]

[Diese Nachricht wurde von airwaves202 am 06. Mai. 2014 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: 06. Mai. 2014 11:11    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 airwaves202 10 Unities + Antwort hilfreich

1) am einfachsten ist es dem BE eine Tabelle mitzugeben (z.B. trackingTabelle). In den Eingangssteuerungerungen aller Elemente können Sie dann einen Eintrag in die Tabelle vornehmen:
Code:

@.trackingTabelle[1,@.trackingTabelle.yDim+1]:=?.name;

2) Im Diagramm-Baustein, Blatt Achsen: schreiben Sie einen Stern in Y (statt der 0)

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 06. Mai. 2014 21:17    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


Diagramm1.jpg


Diagramm2.jpg

 
zu 2) Funktioniert leider auch nicht

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: 06. Mai. 2014 21:36    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 airwaves202 10 Unities + Antwort hilfreich

Formatieren Sie die Wertspalte der Zeitleiste als real. Time ist für negative Werte nicht definiert.

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 07. Mai. 2014 01:11    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

Zu 1) Ich würde dann anschließend gerne mit den Ergebnissen weiterarbeiten. Also angenommen Teil A hat Maschine11 Maschine21 und Maschine31 als Plan vorgegeben. Wenn Teil A im ersten Schritt z.B. auf Maschine 12 und nicht auf Maschine 11 bearbeitet wurde, würde ich gerne, dass er das vermerkt und ich am Ende sehen kann wie viele Teile z.B. von dem "Plan" abgewichen sind und dazu noch einzelne Statistiken (wie z.B. Durchlaufzeit/ mittlere Durchlaufzeit aller Teile, ...) auslesen. Die zuvor erstellte Tabelle funktioniert zwar, aber ich kann damit ja nicht wirklich weiter arbeiten.

Ich habe nun ein Benutzerdefiniertes Attribut für meine Bes hinzugefügt, welches Planabweichung heißt und vom Typ integer ist. Immer wenn mein Teil nun auf einer Maschine mit einer Bearbeitungszeit = 2:00:00 ist, zählt der Wert hoch. D.h. wenn das benutzerdefinierte Attribut am Ende < 3 ist, dann gab es eine Planabweichung und ich würde gerne gesonderte Statistiken erfassen.

D.h. ich müsste in der Senke in die Eingangssteuerung eine Methode schreiben, welche prüft ob Planabweichung <3 und dann in eine extra Tabelle meine gewünschten Statistiken schreibt.

So wie ich das verstehe kann ich auf einzelne BE-Statistiken mit .stat"..." zugreifen. Allerdings finde ich z.B. nicht, wie ich die Durchlaufzeit für das entsprechende BE auslesen kann. Ich würde sonst alternativ dafür wieder 2 Benutzerdefinierte Attribute anlegen und die miteinander verrechnen, aber das geht doch bestimmt auch einfacher? Alternativ baue ich vorher wieder einen Puffer ein der die Teile in 2 verschiedene Senken sortiert - je nachdem, ob  ein "false" -Wert vorliegt oder nicht und guckt sich dann die Typenabhängigen Statistiken an. Wobei ich auch gerne verstehen würde, wie man einzelne Statistiken eines BEs auslesen kann und in eine Tabelle schreibt.


[Diese Nachricht wurde von airwaves202 am 07. Mai. 2014 editiert.]

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 07. Mai. 2014 01: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

/sry doppelpost

[Diese Nachricht wurde von airwaves202 am 07. Mai. 2014 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: 07. Mai. 2014 15:20    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 airwaves202 10 Unities + Antwort hilfreich

Die Durchlaufzeit können Sie mit
Code:

ereignisVerwalter.zeit-@.erzeugt



für jedes Teil berechnen.

Für die Durchlaufzeit  gibt es auch einen statistischen Wert

Code:

statMittDurchlaufzeit

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 12. Mai. 2014 18:06    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

Eine Verständnisfrage bzgl den Simulationsergebnissen. Ich verwende weiterhin dieselbe Methode zur Ausgangssteuerung (siehe unten) das Netzwerk, welches ich weiter oben angehängt habe.

Nun beobachte ich Schwankungen in der Durchlaufzeit meiner Teile. Die produzierte Anzahl an den Teiletypen (A,B und C) ist aber gleich. Meine Teile werden anhand einer Lieferliste mit festgelegten Zeitpunkten erstellt. Ich habe keinerlei Störungen modelliert. Müssten die Durchlaufzeiten dann nicht konstant bleiben? An der Lieferliste kann es nicht liegen, weil ich in einem zweiten Netzwerk mit einfacher Ausgangssteuerung konstante Werte für die Durchlaufzeit bekomme. Also kann es sein, dass die (Steuerungs-)Puffer durch das ausführen der Methoden irgendwie längere DLZ erzeugen? Weil eigentlich müssten die Teile ja immer denselben Weg durch die Fertigung nehmen.

2. Frage bezieht sich nochmal auf vorherige Tabelle, die ich den BEs mit auf den Weg gebe. Wie kann ich am Ende diese Tabelle "auslesen" lassen. Die Teile sollen ihren Namen + die gewählten Maschinen in eine externe Gesamttabelle schreiben.

is

x: integer;
y: integer;

BZNr: integer;
WZNR: integer;

do

  BZNr := Maschine11.holeAttrNr("Eingangszeit");
  WZNR := Puffer11.holeAttrNr("Wartezeit");
 
x := 1;
y := 1;

 

  while x <= ?.anzahlNF loop
 
  if ?.nf(x).holeAttrWert(WzNr) + bearbeitungszeiten[?.nf(x).nf.name, @.name] + (bearbeitungszeiten[?.nf(x).nf.name, @.name] - (Ereignisverwalter.Zeit - ?.nf(x).nf.holeAttrWert(BZNr))) < ?.nf(y).holeAttrWert(WzNr) + bearbeitungszeiten[?.nf(y).nf.name, @.name]+ (bearbeitungszeiten[?.nf(y).nf.name, @.name] - (Ereignisverwalter.Zeit - ?.nf(y).nf.holeAttrWert(BZNr))) then
    y := x;
    end;
    x := x + 1;
  end;

  @.umlagern(?.nf(y));
end;

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: 12. Mai. 2014 20:13    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 airwaves202 10 Unities + Antwort hilfreich

Sie können die Durchlaufzeit der einzelnen Teile analysieren. Dazu gibt es eine ganze Menge statistischer Werte. Z.B. mit statLager... können Sie sich die Zeiten ansehen,die das Teil auf einem Baustein vom Typ Lager aufgehalen hat (z.B. Puffer, Lager usw.).
Wenn Sie nicht prüfen, ob der Nachfolger auch frei ist, dann kann es passieren, dass ein Teil im Puffer wartet. Das sehen Sie in den Statistiken der Teile.

Das Schreiben der Werte in eine externe Tabelle können Sie am leichtesten in der Eingangssteuerung der Senke erledigen. Mit @.tabelle können Sie auf die interne Tabelle zugreifen, mit tabelle.schreibeZeile erzeugen Sie Tabellen-einträge. Die gewählten Maschinen könnten Sie in Untertabellen schreiben (siehe Hilfe: tabelle.erzeugeSubliste)...

[Diese Nachricht wurde von Bon Simul am 12. Mai. 2014 editiert.]

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 13. Mai. 2014 01:57    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

Zitat:
Original erstellt von Bon Simul:

Wenn Sie nicht prüfen, ob der Nachfolger auch frei ist, dann kann es passieren, dass ein Teil im Puffer wartet. Das sehen Sie in den Statistiken der Teile.


[Diese Nachricht wurde von Bon Simul am 12. Mai. 2014 editiert.]


Welchen Nachfolger meinen Sie? ich prüfe ja, was in den NF(1) = (Puffer) und was in NF(2) = Maschine ist. NF(3) ist ja wiederum nur der Steuerungspuffer, in welchem die Teile nur einen verschwinded geringen Anteil verbringen. Dies sollte keinen Einfluss auf die Ausgangssteuerung haben.

Da alle Teile immer zum selben Zeitpunkt erzeugt werden und ich keinerlei stochasitische Werte modelliert habe, wundere ich mich über Abweichungen in der DLZ zwischen den Simulationsläufen. Die Teile müssten entsprechend doch immer denselben Weg nehmen und dies immer zum gleichen Zeitpunkt...

[Diese Nachricht wurde von airwaves202 am 13. Mai. 2014 editiert.]

[Diese Nachricht wurde von airwaves202 am 13. Mai. 2014 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: 13. Mai. 2014 10:22    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 airwaves202 10 Unities + Antwort hilfreich

ich kann Ihnen mit Sicherheit nur eins sagen:
Zitat:

Also kann es sein, dass die (Steuerungs-)Puffer durch das Ausführen der Methoden irgendwie längere DLZ erzeugen?

Definitiv nein. Die Methodenausführung erfolgt ohne Verbrauch an Simulationszeit (es sei den Sie verwenden waituntil, stopuntil oder wait innerhalb der Methode).

Ohne stochastische Einflüsse sollten die Ergebnisse der Simulationsläufe gleich sein.

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 13. Mai. 2014 23:47    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

/edit Fehler gefunden  

[Diese Nachricht wurde von airwaves202 am 14. Mai. 2014 editiert.]

[Diese Nachricht wurde von airwaves202 am 14. Mai. 2014 editiert.]

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 14. Mai. 2014 16:41    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

Das auslesen meiner mitlaufenden Tabelle funktioniert nur leider noch nicht. Wie kann ich denn die Zeilen einer Zelle auslesen und in eine andere schreiben?

Er soll in die Tabelle Auswertung schreiben.
Die mitlaufende Tabelle heißt "Verfolgung".

In der Eingangssteuerung der Senke habe ich dann

Auswertung.schreibeZeile(1,Auswertung.ydim+1,Wert?);


Wie kann ich die Werte denn holen?
Auswertung.schreibeZeile(1,Auswertung.ydim+1,@.Verfolgung({1,*}); funktioniert nicht

wenn ich vorher definiere

is
Station1= String;
Station2=String;
Station3=String;

do

Station1:=@.Verfolgung(1,1)
Station2:=@.Verfolgung(1,2)
Station3:=@.Verfolgung(1,3)

Auswertung.schreibeZeile(1,Auswertung.ydim+1, Station1, Station2,Station3);

dann macht er das auch nicht. 


/edit okay er liest es aus mit Verfolgung[Spalte,Zeile]

[Diese Nachricht wurde von airwaves202 am 14. Mai. 2014 editiert.]

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 15. Mai. 2014 00:42    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

1.) Gibt es eine Möglichkeit sich nach dem Simulationslauf noch die durchschnittlichen Bestände pro Puffer anzeigen zu lassen sowie den durchschnittlichen Umlaufbestand ( Work in process)? Oder muss man sich das mit Methoden wieder selber basteln?


2.) Kann man auf die Nummer eines BEs zugreifen? Und damit z.B. auch einen Arbeitsplan gestalten? Ich habe ja jetzt 3 verschiedene Teiletypen ( TEILA, TEILB, TEILC). Ingesamt werden aber 859 BEs erzeugt. Ich würde jetzt gerne jedem BE eine Abarbeitungsreihenfolge mitgeben. Daher kann ich die Unterscheidung aber nicht nach Teiletyp vornehmen, sondern müsste dann z.B. über die Nummer gehen...

[Diese Nachricht wurde von airwaves202 am 15. Mai. 2014 editiert.]

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 15. Mai. 2014 22:22    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 für 2) jetz einen Arbeitsplan gemacht

Teilenummer Station1 Station2 Station3
1       Maschine13 Maschine23 Maschine33
2       Maschine11 Maschine21 Maschine31
3       Maschine12 Maschine22 Maschine32

Teilenummer ist ein Attribut was jedes BE mitbekommt und bei jedem erzeugten BE hochzählt. Wie schreibe ich es am besten in 1 Methode, dass er sich seine Teilenummer raussucht und dann im entsrpechenden Arbeitsschritt auf die richtige Station umlagert

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 17. Mai. 2014 16:12    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

anders formuliert:

Wie kann ich dem BE sagen, dass er in Spalte 1 seine Nummer suchen soll und dann in der Zeile nach der richtigen Station sucht?

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: 17. Mai. 2014 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 airwaves202 10 Unities + Antwort hilfreich

Zitat:

1.) Gibt es eine Möglichkeit sich nach dem Simulationslauf noch die durchschnittlichen Bestände pro Puffer anzeigen zu lassen sowie den durchschnittlichen Umlaufbestand ( Work in process)? Oder muss man sich das mit Methoden wieder selber basteln?

Sie können dafür Zeitleisten verwenden, in der Sie die Bestände aufzeichnen (siehe Hilfe). Den Durchschnittlichen Bestand können Sie dann mit

Code:

zeitleiste.mittelwert({2,1}..{2,*})


ermitteln (z.B. endsim Methode)

Zitat:

2.) Kann man auf die Nummer eines BEs zugreifen?

Ja

Code:

<be>.id  z.B. @.id

Zitat:

Wie kann ich dem BE sagen, dass er in Spalte 1 seine Nummer suchen soll und dann in der Zeile nach der richtigen Station sucht?

Sie müssten jedem Teil ein Attribut mitgeben, was den Stand der Bearbeitung speichert (z.B. op, typ integer). Das müsste am Anfang den Wert 1 haben und am Ende jeder Bearbeitung um eins hochgezählt werden.
Das Auslesen des Nachfolgers aus dem Arbeitsplan könnte dann wie folgt aussehen (z.B. Ausgangssteuerung):

Code:

nächsteStation:=arbeitsplan[@.op,@.id];

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 19. Mai. 2014 01: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

Ja super vielen Dank     Das funktioniert jetzt alles soweit bis auf die Auswertung der Bestände. Da bekomme ich noch keinen sinnvollen Dreh rein. Ich habe 29 Objekte auf denen sich BEs befinden können. Mit Ihrem Tipp müsste ich für jedes Objekt eine Variable anlegen und für jedes Objekt eine individuelle Methode diese Variable hochzählen lassen. Dann noch eine "gesamtbestand" variable, die alle Bestände zu jeder Zeit addiert und in die Zeitleiste schreibt. Geht das nicht einfacher?

/e Okay lasse jetzt eine Variable hochzählen, wenn ein Teil in die Fertigung kommt und runterzählen, wenn ein Teil in die Senke umgelagert wird. Das sollte mir den WIP angeben. Bei den Pufferbeständen komme ich wohl nicht herum die live mit jeweils einer Variablen pro Puffer zu tracken?! Gibt es dafür keinen Befehl, der mir am Ende der Simulation den durchschn. Pufferbestand wiedergibt?

[Diese Nachricht wurde von airwaves202 am 19. Mai. 2014 editiert.]

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 19. Mai. 2014 21:51    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

okay habe das ganze nun mit jeweiligen Variablen für die Puffer  + Zeitleisten gelöst.

Ich habe jetzt 2 verschiedene Ausgangssteuerungsmethoden. Da ich das Netzwerk evtl. noch erweitern wollte und nicht in jedem "Steuerungspuffer" immer wieder die Methode manuell ändern möchte, wollte ich mal fragen, ob es eine Möglichkeit gibt vor Simulationsstart z.B. per Dropdown Menü "Steuerung1" oder "Steuerung2" auszuwählen und dann setzt er das für jeden Puffer automatisch?

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: 19. Mai. 2014 22:04    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 airwaves202 10 Unities + Antwort hilfreich

sehen Sie mal in deer Hilfe unter Ausgangssteuerung nach...

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 19. Mai. 2014 22: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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 20. Mai. 2014 03:06    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 gerade festgestellt, dass meine Ausgangssteuerung doch nicht zu 100% richtig funktioniert -.-

Ich habe in meiner Methode den folgenden Ausdruck:

max(0,(@.standort.nf(x).nf.Bearbeitungszeit - (Ereignisverwalter.Zeit - @.standort.nf(x).nf.holeAttrWert(BZNr))))

Funktioniert dieser richtig?
Ich möchte prüfen, ob 0 oder der 2. Ausdruck größer ist und dann soll dieser Ausdruck den größeren Wert annehmen? Ich bin mir zum einen nicht sicher ob das mit "max(...)" und einem real und time -Typ funktioniert und zum anderen verrechnet er ja verschiedene Zeiten miteinander. Teilweise bekommt er dann einen Time-Wert mit einem negativen Vorzeichen. Ordnet Plant Simulation das dann auch wirklich als < 0 ein?


Mein Ziel ist, dass er für diesen Ausdruck mit 0 weiterrechnet, wenn ich einen time Wert mit negativem Vorzeichen bekomme.

Ich bekomme zumindest keine Fehlermeldungen, aber beim genaueren Hinsehen, habe ich festgestellt, dass er die Bauteile falsch umlagert.

/e Ich habe eine Sache geändert, die falsch in der Berechnung war, nun scheint er die richtigen Entscheidungen zu treffen -> also es scheint als würde das mit "max(...)" funktionieren - Eine kurze Bestätigung von Ihnen diesbezüglich würde mich aber freuen.

Was mich allerdings verwirrt ist, dass ich mit einem Fehler in der Berechnungsformel bessere Durchlaufzeiten erzielt habe, als mit der logisch richtigen Formel 

[Diese Nachricht wurde von airwaves202 am 20. Mai. 2014 editiert.]

[Diese Nachricht wurde von airwaves202 am 20. Mai. 2014 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: 21. Mai. 2014 22:58    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 airwaves202 10 Unities + Antwort hilfreich

Vorsichtshalber können Sie den time-Wert mit time_to_num in einen real-Wert umrechnen; die max-Funktion sollte auch mit einem negative Wert funktionieren

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 22. Mai. 2014 17: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

Kann ich Teile innerhalb eines Puffers nach einem bestimmten Kriterium sortieren. Immer dann, wenn ein neues Teil dazukommt? Oder funktioniert das nur mit einem Sortierer?

/edit Ich habe mir in der Hilfe die Ziehsteuerung angeschaut. Angenommen meine Maschine soll alle Teile im Puffer nach dem Attribut X durchsuchen und immer das Teil mit der kleinsten Zahl nehmen.

Können Sie mir diesbezüglich noch eine Hilfestellung geben? Ich verstehe nicht, was ich mit dieser blockierListe nun machen soll

?.vBlockierListe(blockierListe);
  n := 1;
  ?.entblockieren(blockierListe[1,n]);

[Diese Nachricht wurde von airwaves202 am 22. Mai. 2014 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: 22. Mai. 2014 19:49    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 airwaves202 10 Unities + Antwort hilfreich

das ist wirklich die Sache des Sortierers, es nicht vorgesehen, die Reihenfolge im Puffer zu ändern. Wenn Sie wirklich wahlfrei zugreifen wollen, dann ist das Lager der beste Baustein. Schreiben Sie eine Bestandsliste mit allen wichtigen Attributen, dann können Sie umlagern, was Sie wollen

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 27. Mai. 2014 19:42    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

Angenommen ich habe Steuerung -> Puffer -> Maschine.

Wenn jetzt mein Teil in die Steuerung kommt, soll es die Restbearbeitungszeit von dem Teil, was gerade auf der Maschine ist auslesen. Wie kann ich das BE auf der Maschine ansprechen?

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: 27. Mai. 2014 21: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 Nur für airwaves202 10 Unities + Antwort hilfreich

maschine.inhalt

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 27. Mai. 2014 23:10    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

Funktioniert nicht, weil das einen Void-Wert zurück gibt.

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: 27. Mai. 2014 23:15    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 airwaves202 10 Unities + Antwort hilfreich

dann ist die Maschine leer

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 28. Mai. 2014 14:15    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

Ein "Void" kann keine Methode "nf" empfangen...

Ich würde ja  gerne allgemein abfragen, ob ein Teil auf der Maschine ist und wenn ja, was seine Restbearbeitungszeit ist und wenn kein Teil drauf ist, soll sie 0 werden.

[Diese Nachricht wurde von airwaves202 am 28. Mai. 2014 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. Mai. 2014 23:11    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 airwaves202 10 Unities + Antwort hilfreich

ein void kann keine Methode nf empfangen bedeudet, dass das was im Programm vor nf steht void ist (z.B. @). Das passiert z.B. wenn Sie mit waituntil auf das Umlagern warten und dann vor dem Auslösen des waituntil das Teil schon umlagern.

Wenn Sie mit waituntil arbeiten, müssten Sie einmal mit Debugger - suspendierte Methoden anzeigen überprüfen, ob Sie eine Methode mehrfach aufgerufen haben.

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 30. Mai. 2014 20:34    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 verstehe gerade leider nur Bahnhof  

Ich habe eigentlich kein Waituntil drin.

Ich würde gerne einfach nur eine Ausgangssteuerungsregel schreiben, die die Restbearbeitungszeit von den Nachfolgmaschinen prüft. Ich habe gesehen, dass es für die BEs ein Attribut gibt, welches Restbearbeituntszeit heißt. Also muss ich das doch irgendwie abfragen können. Sprich ich möchte mir diese Zeit holen in einer Variablen zwischenspeichern und dann mit der Zeit weiterrechnen.

[Diese Nachricht wurde von airwaves202 am 30. Mai. 2014 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: 30. Mai. 2014 20: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 Nur für airwaves202 10 Unities + Antwort hilfreich

Sie müssten in dem Fall überprüfen, ob der Nachfolger belegt ist, sonst erhalten Sie die Fehlermeldung "Ein void kann keine Methode restbearbeitungszeit empfangen".

In der Ausgangssteuerung könnte das wie folgt aussehen:

Code:

for i:=1 to ?.anzahlNf loop
  if ?.nf(i).belegt then
    rest:=?.nf( i ).inhalt.restBearbeitungszeit;
  end;
next;


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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 02. Jun. 2014 23:18    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 funktionierende Ausgangssteuerung, die auf Basis von Berechnung der Pufferwartezeit und Bearbeitungszeit auf den nachfolgenden Maschinen, den "optimalen" NF berechnet.

An der Steuerungsstelle hat ein BE weiterhin 3 Maschinen zu benutzen (jeder Maschine ist noch ein Puffer vorgelagert)

Wenn ich nun einen Puffer auf "gestört" Stelle, die Ausgangssteuerung, aber berechnet, dass er in diesen Puffer soll, dann lagert er das Teil nicht um, sondern blockiert auch alle weiteren Teile, bis der Puffer nicht mehr gestört ist. Ich möchte nun, dass wenn ein "optimaler Puffer" gestört ist, dass er dann den zweitbesten nimmt.

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: 03. Jun. 2014 21:38    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 airwaves202 10 Unities + Antwort hilfreich

Sie könnten beim Berechnen des  besten Puffers das gestört mit in die Restbearbeitungszeit einrechnen, z.B. als sehr hohen Fehlerwert, so dass dieser Puffer nicht mehr der beste ist.

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 04. Jun. 2014 01: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


LZAPlan85.jpg


LZAQLEew85.jpg

 
Das ist eine gute Idee    

Etwas offtopic:

Ich würde gerne mit Excel noch eigene Diagramme erstellen. Wenn ich nun Zeitleisten in Excel kopiere, dann kann ich da immer nur den "time" Wert rauskopieren. Dieser wird in Excel z.B. als 14:00:12.000 dargestellt. Excel kennt dieses Format ja leider nicht. Wenn ich nun aber Diagramme in Abhängigkeit der Zeit erstellen möchte, dann müsste Excel die 14:00:12 auch als 14 Stunden 00 Minuten und 12 Sekunden erkennen. Haben Sie diesbezüglich eventuell eine Idee?


und kann man die Abstände der Y-Achse formatieren? Ich würde gerne, dass die Y-Achse in beiden Fällen die gleichen Abstände benutzt. (siehe Anlage)

[Diese Nachricht wurde von airwaves202 am 04. Jun. 2014 editiert.]

[Diese Nachricht wurde von airwaves202 am 04. Jun. 2014 editiert.]

[Diese Nachricht wurde von airwaves202 am 04. Jun. 2014 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: 04. Jun. 2014 08:06    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 airwaves202 10 Unities + Antwort hilfreich

Wenn Sie die Zeit-Werte aus Plant Simulation als real exportieren, dann können Sie die Werte in Excel umrechnen. Excel rechnet in Tagen, Plant Simulation in Sekunden, Sie müssen so die Zeit aus Plant Simulation durch (24*3600) teilen und in Excel die Spalte als Datum formatieren.

Die "Breite" des Diagramms stellen Sie im Diagramm im Blatt Achsen ein.

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 04. Jun. 2014 15:47    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

Verbraucht ein "Sortierer" mehr Zeit als ein PlatzPuffer, um ein Teil umzulagern? Sprich wenn mein Sortierer und mein Platzpuffer leer sind und ein BE hineinkommt, gehen beide Teile gleich schnell wieder raus? Oder gibt es da merkliche Unterschiede?

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: 04. Jun. 2014 15: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 airwaves202 10 Unities + Antwort hilfreich

wenn Sie die Bearbeitungszeit des PlatzPuffes auf 0 setzen, sollte es genau so schnell gehen. Stellen Sie zur Kontolle den Eeignisverwalter auf Echtzeit. Der Sortierer selbst hat keine Verweilzeit (muss nur abgeben können).

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 04. Jun. 2014 17:25    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 nutze die Studentenversion von Plant Simulation. Wenn ich nun 2 x die gleiche Störung in meine Einzelstation schreibe und immer nur 1 zur Zeit aktiviere bekomme ich unterschiedliche Ergebnisse, je nachdem, ob das erste Kästchen aktiviert ist oder das zweite?! Und das obwohl es 1:1 die gleiche Störung ist. Womit hängt dies zusammen?

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: 05. Jun. 2014 11:17    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 airwaves202 10 Unities + Antwort hilfreich

ab V.11 hat jede Störung automatisch einen unterschiedlichen Zufallsstrom, deshalb ist das Verhalten unterschiedlich

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

airwaves202
Mitglied



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

Beiträge: 37
Registriert: 15.04.2014

erstellt am: 16. Jun. 2014 15: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

Es gibt bei den BEs den "StatProdArbeitsAnteil"

Was genau fließt da rein ? Gibt die Zahl den Anteil wieder, den das BE auf den Maschinen war bezogen auf die Gesamtdurchlaufzeit des BE?

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Dieses Thema ist 2 Seiten lang:   1  2

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