Autor
|
Thema: nach 4 umgelagerten Teilen Nachfolger wechseln (633 mal gelesen)
|
Mammut Mitglied
Beiträge: 8 Registriert: 16.11.2009
|
erstellt am: 02. Dez. 2009 14:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, ich habe eine kleine Frage und hoffe das mir jemand ein wenig helfen kann..ich arbeite nach wie vor an meiner Diplomarbeit und es hat sich bei der Simulation einmal mehr ein kleines Hindernis aufgetan. folgendes Problem: ich habe eine Einzelstation welche 2 Nachfolger hat, die einzelstation soll nacheinander 4 Teile zuerst an Nachfolger 1 und dann an nachfolger 2 weitergeben...in der strategie des Ausgangsverhaltens kann ich ein entsprechendes Verhalten leider nicht eingeben und eine Methode zur Ausgangssteuerung bekomme ich leider alleine nicht zu stande..ich habe es bereits versucht... ich hoffe es findet sich Hilfe.. vielen Dank im voraus Grüße M. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uobeg Mitglied
Beiträge: 15 Registriert: 19.10.2009 eM-Plant 6.0
|
erstellt am: 02. Dez. 2009 19:37 <-- editieren / zitieren --> Unities abgeben: Nur für Mammut
Hallo M. das ist alles nicht so schwer. Du schreibst eine Methode Austreten, die du dann in die Ausgangssteuerung lädst. Außerdem brauchst du eine Variable, wir nennen sie mal zaehler, die du (z.B.) in deinem Netzwerk erzeugst ( = reinziehen, Typ Integer wählen und benennen (zaehler), sowie Startwert = 1 festlegen). So nun sollte die Methode Austreten wie folgt aussehen: is do If .PFAD.zaehler = 5 Then -- @.umlagern(2); -- hier wird auf Nachfolger zwei umgelagert .PFAD.zaehler = .PFAD.zaehler - 5; -- wieder auf 1 setzen Else @.umlagern(1); -- hier auf Nachfolger 1 .PFAD.zaehler = .PFAD.zaehler + 1; -- zaehler hochzählen End; end; PFAD musst du noch durch deinen (!) aktuellen Pfad der Variable ersetzen, (das musst du dir so vorstellen: .NameDeinesOrdners.NameDeinesNetzwerkes dann .zaehler hintendran) Damit es immer funktioniert, solltest du die Variable zaehler (in der Initmethode : .PFAD.zaehler := 0; ) setzen, so dass sie immer bei Neustart von 0 startet. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uobeg Mitglied
Beiträge: 15 Registriert: 19.10.2009 eM-Plant 6.0
|
erstellt am: 02. Dez. 2009 19:44 <-- editieren / zitieren --> Unities abgeben: Nur für Mammut
|
Mammut Mitglied
Beiträge: 8 Registriert: 16.11.2009
|
erstellt am: 03. Dez. 2009 15:30 <-- editieren / zitieren --> Unities abgeben:
|
Mammut Mitglied
Beiträge: 8 Registriert: 16.11.2009
|
erstellt am: 03. Dez. 2009 16:19 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmals..hatte mich doch ein wenig zu früh gefreut..also die Einzelstation lagert zwar um..allerdings nur noch auf Nachfolger Nummer 1... kann es sein das ich die Variable der Methode deklarieren muss? ausserdem weicht der von "zaehler" angezeigte Wert nicht von 1 ab..also es Zählt nicht mit.. Gruß M. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der simulant Mitglied
Beiträge: 71 Registriert: 28.02.2007 ----------- der simulant
|
erstellt am: 04. Dez. 2009 11:59 <-- editieren / zitieren --> Unities abgeben: Nur für Mammut
Hi Mammut, probiers mal so: Flowcontrol einsetzen und in die exitctrl eine Methode mit folgendem Inhalt: Bsp. ist fuer jeweils 4 Teile an Nachfolger 1 und 4 Teile an Nachfolger 2 - kann man natürlich auch ändern : integer is r : integer; do -- nf01 steht fuer nachfolger 1 -- nf02 steht fuer nachfolger 2 if nf01.statnumin//4 <= nf02.statnumin//4 then r := 1; else r := 2; end; return r; end; Gruß der simulant Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mammut Mitglied
Beiträge: 8 Registriert: 16.11.2009
|
erstellt am: 06. Dez. 2009 15:59 <-- editieren / zitieren --> Unities abgeben:
|
Homer Simpson Mitglied
Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 07. Dez. 2009 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für Mammut
|