Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  umlagern steuern.

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:  umlagern steuern. (761 mal gelesen)
Highairman
Mitglied



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

Beiträge: 11
Registriert: 08.12.2011

erstellt am: 13. Dez. 2012 14:33    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 benötige etwas Hilfe bei einer Methode zur umlagerung von BEs.
Hier die Methode:


is
i:integer;
do
if ?= A then

if A.anzahlBEs = 10 then
waituntil B.bereit and B.leer prio 1;

for i:=1 to 10 loop 
A.inhalt.umlagern (B);
next;
end;
end;
end;


Die Methode funktioniert bei mir soweit.
Nun zum Problem:

Wenn meine Simulation durchgelaufen ist, befinden sich noch 3 BEs in "A"
Laut Methode lagert er aber nur um, wenn 10 BEs vorhanden sind.
Kann mir dort jemand behilflich sein? Stehe bei dem Problem schon einige Stunden auf dem Schlauch.
Danke.

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. Dez. 2012 14: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 Highairman 10 Unities + Antwort hilfreich

Wo liegt das Problem? Soll A zum Schluss leer sein?
Dann könnten Sie die EndSim-Methode benutzen, um den letzten Rest umzulagern.

[Diese Nachricht wurde von Bon Simul am 13. Dez. 2012 editiert.]

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

Highairman
Mitglied



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

Beiträge: 11
Registriert: 08.12.2011

erstellt am: 13. Dez. 2012 14: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

genau, entschuldigung.

die letzten BEs sollen auch umgelagert werden.

es soll angeblich auch funktionieren, wenn ich eine "globale variable" in die station davor packe und
der dann die BEs zählt und ich in der Methode auf die Variable zugreife und das mit "loop" regel,
allerdings komm ich da auch nicht weiter.

danke.

[Diese Nachricht wurde von Highairman am 13. 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: 13. Dez. 2012 15: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 Nur für Highairman 10 Unities + Antwort hilfreich

Sie könnten auch einen Zeitabstand bis zum Ende definieren, in dem Sie alles umlagern:
Code:

is
i:integer;
do
if ?= A then  
   if A.anzahlBEs = 10 then
     waituntil B.bereit and B.leer prio 1;

     for i:=1 to 10 loop 
       A.inhalt.umlagern (B);
     next;
    elseif (ereignisverwalter.ende - ereignisverwalter.zeit) <= 120 then --letzte zwei Minuten
     waituntil B.bereit and B.leer prio 1;
     --alles umlagern
      while(A.belegt) loop
        A.inhalt.umlagern (B);
      end;
    end;
  end;
end;



[Diese Nachricht wurde von Bon Simul am 13. Dez. 2012 editiert.]

[Diese Nachricht wurde von Bon Simul am 13. Dez. 2012 editiert.]

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

Highairman
Mitglied



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

Beiträge: 11
Registriert: 08.12.2011

erstellt am: 13. Dez. 2012 17: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

Danke für Ihre Hilfe.
So funktioniert es.
Aber leider habe ich eine solche Umlagerung an mehreren Stellen und muss auch meine Produktion immer wieder neu Anpassen, sodass sich die Durchlaufzeit immer wieder verändert.
Gibt es auch eine alternative Lösung?

Vielen Dank für Ihre Hilfe.

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

Highairman
Mitglied



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

Beiträge: 11
Registriert: 08.12.2011

erstellt am: 13. Dez. 2012 19:33    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 es mal anders versucht:

hier die methode, wenn er immer 10 BEs umlagert und am Ende ein Rest in A überbleibt:

is
i:integer;

do
if ?= A then
if A.anzahlBEs = 10 then
waituntil B.bereit and B.leer prio 1;

for i:=1 to 10 loop 
A.inhalt.umlagern (B);
next;

end;
end;
end;

hier der Versuch, dass er am Ende den Rest von A nach B umlagert.
ich habe eine globale Variable "X_Variable" eingefügt, die meine BEs zählt:


is
i:integer;

do
if ?=A then
if A.anzahlBEs = 10 then
waituntil B.bereit and B.leer prio 1;

for i:=1 to 10 loop 
A.inhalt.umlagern (B);
next;

elseif X_Variable < 1530 then
waituntil B.bereit and B.leer prio 1;
while A.belegt loop
A.inhalt.umlagern (B);

end;
end;
end;
end;


leider fügt er dann leider nicht mehr 10 BEs auf einmal um, sondern jeweils einzeln.

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: 14. Dez. 2012 08:24    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 Highairman 10 Unities + Antwort hilfreich

versuchen Sie es einmal mit
Code:

X_Variable > 1530

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

Highairman
Mitglied



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

Beiträge: 11
Registriert: 08.12.2011

erstellt am: 14. Dez. 2012 10: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

Danke Bon Simul.

Hab wohl vor lauter IFs das "größer als" Vorzeichen vertauscht.
So funktioniert es. Vielen Dank.

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