Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Rüstzeiten anpassen

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:  Rüstzeiten anpassen (3079 mal gelesen)
NecDrop
Mitglied
Student


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

Beiträge: 43
Registriert: 22.08.2012

Plant Simulation 10.1

erstellt am: 18. Sep. 2012 12:26    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 zusammen,

ich möchte die Rüstzeiten der Einzelstationen abhängig von den eintreffenden BEs steuern.

Es existieren folgende Rüstvorgänge:
Farbwechsel (Rüstdauer 5 min)
Längenwechsel (Rüstdauer 10 min)
Breitenwechsel (Rüstdauer 12 min)

Die BEs die ich erzeuge wurden diese drei Attribute (Farbe, Länge, Breite) zugewiesen. Gerüstet werden soll immer, wenn sich der Wert der Farbe, der Länge, der Breite oder mehrere von ihnen ändern.

BSP 1: Wenn sich BE1 mit Farbe_1 auf der Einzelstation befand und das neu eingetroffene BE2 Farbe_2 hat, sollen 5 min umgerüstet werden.

BSP 2: Wenn sich BE1 mit Farbe_1 und Länge_1 auf der Einzelstation befand und das neu eingetroffene BE2 Farbe_2 und Länge_2 hat, sollen 15 min (5 min + 10 min) gerüstet werden.

Wie kann ich diese Anpassung der Rüstzeiten OHNE Rüstzeitmatrix darstellen?

Hatte überlegt der Einzelstation einen Beobachter "Ruestet" zuzuweisen der eine Methode ausführt. Könnte es so funktionieren? Wenn ja, wie könnte so eine Methode aussehen?

Viele Grüße
NecDrop

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: 18. Sep. 2012 14: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 NecDrop 10 Unities + Antwort hilfreich

Das mit dem Beobachter funktioniert nicht, er wird aufgerufen, wenn das Rüsten beginnt und endet.
Sie müssen das Rüsten anstoßen, bevor das Teil auf die Station umgelagert wird (z.B. Ausgangssteuerung Vorgänger).
Sie könnten Farbe, Länge und Breite als benutzerdefinierte Attribute in der Maschine anlegen und im Teil ein zusätzliches Attribut mussRüsten (boolean, Standard false).
Im Vorgänger können Sie dann die Werte des BEs mit denen der Maschine vergleichen, die Rüstzeit der Maschine setzen, das Attribut des BEs mussRüsten auf true setzen (wenn nötig) und dann das Teil umlagern.

Die Maschine müsste dann in Abhängigkeit von einem benutzerdefinierten Attribut rüsten--> Name des Attributes eintragen.

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

NecDrop
Mitglied
Student


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

Beiträge: 43
Registriert: 22.08.2012

Plant Simulation 10.1

erstellt am: 18. Sep. 2012 16:05    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 schön für die sehr schnelle Antwort  

Ich habe ein paar Fragen zu Ihrem Vorgehen:

1) Müssten die Attributwerte der Maschine dann nicht nur temporär sein? Also wenn für Breite=1 gerüstet wurde muss die Maschine den Wert 1 haben, wenn nun aber für Breite=2 gerüstet wird, muss sich der Wert auf 2 ändern, da ich ja keine doppelte Wertdefintion für ein und dasselbe Attribut haben kann.

2) Leider kenne ich kein Vorgehen, wie ich die Werte der BEs mit denen der Maschine vergleichen kann. Wie sähe denn eine Möglichkeit zur Umsetzung einer solchen Methode aus?

[Diese Nachricht wurde von NecDrop am 18. Sep. 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: 18. Sep. 2012 16: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 NecDrop 10 Unities + Antwort hilfreich

So kompliziert habe ich das gar nicht gemeint.
Maschinenattribute:
Legen Sie einfach eine Eingangssteuerung in der Maschine an, in der Sie die Attribute des BEs auf die Maschine übertragen:
Code:

is
do
  ?.breite:=@.breite;
  ?.höhe:=@.höhe;
  ?.farbe:=@.farbe;
  @.mussRüsten:=false; --falls Sie das Spiel mehrfach hintereinander
  --spielen wollen
end;

Damit weiß die Maschine, wofür sie gerüstet war, falls das Teil schon fort ist.

@ ist das aktuelle Teil, ?.nf ist die Nachfolger-Maschine


Das Vergleichen in der Ausgangssteuerung könnte dann wie folgt aussehen:

Code:

is
do
  if @.breite /= ?.nf.breite then
    ?.nf.rüstzeit:=...;
    @.mussRüsten:=true;
  end;

  --analog für Farbe und höhe

end;


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

NecDrop
Mitglied
Student


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

Beiträge: 43
Registriert: 22.08.2012

Plant Simulation 10.1

erstellt am: 18. Sep. 2012 17: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

Ich habe Ihre Anweisungen befolgt. Teilweise klappt es auch schon sehr gut. Aber leider zeigt Plant noch einige Fehler auf:

1) Plant zeigt immer kurz bevor die BEs auf die Maschine umgelagert werden eine Fehlermeldung an. Und zwar:

"Maschine kann nicht gerüstet werden: Das BE benötigt ein benutzerdefiniertes Attribut des Typs String mit dem Namen mussRüsten. Möchten Sie die Simulation anhalten?"

Aber das Attribut mussRüsten muss ja von Typ boolean sein! Wieso wieso will Plant, das es ein String ist bzw. was habe ich falsch gemacht?

2) Wenn ich bei der auftretenden Fehlermeldung die Simulation NICHT anhalte, wird das BE auf die Maschine umgelagert und die Rüstzeit passt sich an. Die Fehlermeldung erscheind jedoch weiterhin immer kurz bevor das BE umgelagert wird. Ich muss die Simulation also immer durch klicken "manuell" weiterlaufen lassen.

3) Leider sind die Rüstzeiten noch nicht 100%ig angepasst. Die Rüstzeit ändert sich wie gewollt bei Änderung der Attributwerte. Aber wenn z.B zwei identische BEs mit identischen Attributwerten nacheinander auf der Maschine gerüstet werden, müsste Plant beim zweiten BE erkennen, dass die Werte identisch sind und demzufolge KEINE Rüstvorgänge durchfühen. Rüstvorgänge sollen NUR bei Änderung der Werte erfolgen. Die Rüstzeiten sind beim zweiten BE jedoch dieselben wie beim ersten.

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: 18. Sep. 2012 17:50    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 NecDrop 10 Unities + Antwort hilfreich

Okey, mein Fehler. Das wird so nicht gehen.
Die Rüstzeit wird nur berücksichtigt, wenn der Wert sich ändert.
Wenn nicht gerüstet werden soll, muss der Wert gleichbleiben (damit scheidet mussRüsten aus).

Am Besten wäre es, wenn Sie einen String basteln aus
Höhe, Breite und Farbe und diesen als z.B. Rüstattribut dem Teil mitgeben --> Rüsten in Abhängigkeit vom Rüstattribut-->
Wenn der String sich ändert, wird gerüstet.

Den Rest so lassen.

[Diese Nachricht wurde von Bon Simul am 18. Sep. 2012 editiert.]

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

NecDrop
Mitglied
Student


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

Beiträge: 43
Registriert: 22.08.2012

Plant Simulation 10.1

erstellt am: 20. Sep. 2012 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

Danke für die Tipps! Ich werde mich weitehin an dem Problem versuchen und eine Lösungsrückmeldung geben, sobald eine vorliegt.

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

NecDrop
Mitglied
Student


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

Beiträge: 43
Registriert: 22.08.2012

Plant Simulation 10.1

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

Nach einiger Zeit habe ich mich wieder dieser Problematik gewidmet. Zur Erinnerung: Die Einzelstation soll ihre Rüstzeiten, je nach Rüstvorgängen der BEs, anpassen.

Den BEs habe ich jeweils die benutzerdefinierten Attribute "Breite", "Höhe" und "Länge" mit dem jeweiligen Wert (z.B. 1, 2, 3, ...) als string zugewiesen.
Den Einzelstationen haben ich ebenfalls diese Attribute als string (Wert immer 0) zugewiesen.


In der Eingangssteuerung der Einzelstation befindet sich Code1:

-------------------------
is
do
  ?.breite:=@.breite;
  ?.höhe:=@.höhe;
  ?.farbe:=@.farbe;
end;
-------------------------

In der Ausgangsteuerung der vorgelagerten Station befindet sich Code2:

-------------------------
is
do
if @.Breite = ?.nf.Breite then
?.nf.ruestzeit:=0;
end;

if @.Breite /= ?.nf.Breite then
?.nf.ruestzeit:=12;
end;

if @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;
end;

if @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=10;
end;

if @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;
end;

if @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=5;
end;

if @.Breite = ?.nf.Breite and @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;
end;

if @.Breite /= ?.nf.Breite and @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=22;
end;

if @.Breite = ?.nf.Breite and @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;
end;

if @.Breite /= ?.nf.Breite and @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=17;
end;

    if @.Länge = ?.nf.Länge and @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;
end;

          if @.Länge /= ?.nf.Länge and @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=15;
end;

    if @.Farbe = ?.nf.Farbe and @.Breite = ?.nf.Breite and @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;
end;

if @.Farbe /= ?.nf.Farbe and @.Breite /= ?.nf.Breite and @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=27;
end;

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

Im Ansatz klappt es auch. Die Maschine passt mit Code1 ihre Attributwerte immer denen der "ankommenden" BEs an und passt gemäß Code2 die Rüstzeit an. Dies geschieht allerdings nur, wenn sich ALLE DREI "Rüstattribute" (Breite, Farbe und Länge) ändern. Ändert sich nur eins (z.B. nur die Farbe) ist die Rüstzeit immer 0, obwohl eigentlich 5 Minuten gerüstet werden sollte (siehe Code2).
Liegt in der Methode noch ein Fehler vor? Erkennt ihn jemand?

Viele Grüße
NecDrop

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: 15. Okt. 2012 19: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 Nur für NecDrop 10 Unities + Antwort hilfreich

Sie sollten mit der komplexesten Bedingung beginnen und sich dann zu den einfacheren Bedingungen "vorarbeiten", sonst passiert es, das Bedingungen "weiter unten", den Wert wieder ändern:

Code:

if @.Farbe /= ?.nf.Farbe and @.Breite /= ?.nf.Breite and @.Länge /= ?.nf.Länge then
  ?.nf.ruestzeit:=27;
elseif  @.Länge /= ?.nf.Länge and @.Farbe /= ?.nf.Farbe then
  ?.nf.ruestzeit:=15;
elseif @.Breite /= ?.nf.Breite and @.Farbe /= ?.nf.Farbe then
  ?.nf.ruestzeit:=17;
elseif @.Breite /= ?.nf.Breite and @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=22;
--... usw.

end;


[Diese Nachricht wurde von Bon Simul am 15. Okt. 2012 editiert.]

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



Technischer Systemplaner (m/w/d) Versorgungstechnik

VIVAWEST ist einer der führenden Wohnungsanbieter in NRW und bewirtschaftet rund 120.000 Wohnungen in ca. 100 Kommunen an Rhein und Ruhr. Für den Bereich Bestandstechnik, Fachbereich Technische Gebäudeausrüstung, suchen wir zum nächstmöglichen Zeitpunkt einen Mitarbeiter.


  • Gewährleistung der klima- und unternehmensstrategiekonformen Planung einschließlich der Dokumentation von ...
Anzeige ansehenGebäude-, Versorgungs-, Sicherheitstechnik
NecDrop
Mitglied
Student


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

Beiträge: 43
Registriert: 22.08.2012

Plant Simulation 10.1

erstellt am: 16. Okt. 2012 10: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

Danke für den Tip. Das werde ich ab jetzt beachten!


Nach ein wenig rumprobieren klappts nun mit:

is
do

if @.Farbe /= ?.nf.Farbe and @.Breite /= ?.nf.Breite and @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=27;

elseif @.Breite /= ?.nf.Breite and @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=17;

elseif @.Breite /= ?.nf.Breite and @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=22;

elseif  @.Länge /= ?.nf.Länge and @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=15;

elseif @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=5;

elseif @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=10;

elseif @.Breite /= ?.nf.Breite then
?.nf.ruestzeit:=12;

elseif @.Farbe = ?.nf.Farbe and @.Breite = ?.nf.Breite and @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;

elseif @.Breite = ?.nf.Breite and @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;

elseif @.Länge = ?.nf.Länge and @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;

elseif @.Breite = ?.nf.Breite and @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;

elseif @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;

elseif @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;

elseif @.Breite = ?.nf.Breite then
?.nf.ruestzeit:=0;

end;

@.umlagern(?.nf);
end;


Vielleicht kann jemand in Zukunft noch was damit anfangen :-)

Schöne Grüße
NecDrop

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