Autor
|
Thema: BEs zu bestimmten Zeitpunkt umladen (1013 mal gelesen)
|
VS-Simulator Mitglied Doktorand
Beiträge: 75 Registriert: 20.02.2008 Plant Simulation 8.2
|
erstellt am: 31. Okt. 2008 10:46 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe nachfolgendes Problem beim umladen von BEs: Ich möchte eine Anzahl von Teilen (500, Anzahl steht in Tabelle) zu einem bestimmten Zeitpunkt umladen: while T_AnzahlBEs[2,1] > 1 and T_AnzahlBEs[3,1] = 1 loop @.umlagern(Station2); T_AnzahlBEs[2,1] := T_AnzahlBEs[2,1] - 1; end; If T_AnzahlBEs[2,1] = 0 then T_AnzahlBEs[3,1] := 0; end; Es besteht nun das Problem, dass zwar der Wert in der Tabelle T-AnzahlBEs korrekt bis auf 0 zählt jedoch immer nur ein BE umgelagert wird. Meiner Meinung nach greift die While-Schleife immer nur auf ein BE zu. Woran liegt dies??? Danke für die Hilfe! Gruß Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
planty Mitglied Dipl.-Ing.
Beiträge: 139 Registriert: 18.09.2006
|
erstellt am: 31. Okt. 2008 10:56 <-- editieren / zitieren --> Unities abgeben: Nur für VS-Simulator
Moin, das '@' verweist immer auf das gleiche Teil/Objekt das die Methode angestoßen hat. Wenn Du von einem Puffer umlädst müsstest Du in der Schleife 'puffer.inhalt' umlagern. Gruß P. ------------------ Two hours of trial and error can save ten minutes of manual reading! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 31. Okt. 2008 10:58 <-- editieren / zitieren --> Unities abgeben: Nur für VS-Simulator
Weil du mit @ nur auf ein BE zugreifst und zwar auf das welches die Methode ausgelöst hat. Plant Hilfe: Klammeraffe (@) Der anonyme Bezeichner Klammeraffe @ verweist auf das BE, das die Methode aufgerufen hat. Wenn Sie z. B. eine Ein- oder Ausgangssteuerung in einen Materialflußobjekt eingetragen haben, können Sie auf das eingetretene bzw. austrittsbereite BE mit dem anonymen Bezeichner @ zugreifen. Die Zuordnung ist auch bei mehreren gleichzeitig ausgelösten Methoden eindeutig, da Plant Simulation immer das auslösende BE komplett abarbeitet, bevor es das nächste behandelt. Probiers mal mit z.B. Puffer.Inhalt oder @.Inhalt je nachdem von wo Teile umgeladen werden sollen.
Gruß Patrick Edit: Zwei Dumme ein Gedanke
[Diese Nachricht wurde von pom am 31. Okt. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VS-Simulator Mitglied Doktorand
Beiträge: 75 Registriert: 20.02.2008 Plant Simulation 8.2
|
erstellt am: 31. Okt. 2008 11:17 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die Hilfe! Hatte dies auch schon versucht wie folgt: while T_AnzahlBEs[2,1] > 1 and T_AnzahlBEs[3,1] = 1 loop Puffer.Inhalt.umlagern(Station2); T_AnzahlBEs[2,1] := T_AnzahlBEs[2,1] - 1; end; If T_AnzahlBEs[2,1] = 0 then T_AnzahlBEs[3,1] := 0; end; Obwohl die AnzahlBEs des Puffers größer als 600 ist kommt die Meldung "Ein VOID kann keine Methode umlagern erhalten". Was übersehe ich??? Gruß Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 31. Okt. 2008 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für VS-Simulator
|
VS-Simulator Mitglied Doktorand
Beiträge: 75 Registriert: 20.02.2008 Plant Simulation 8.2
|
erstellt am: 31. Okt. 2008 11:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe den Fehler gefunden ! Habe die Mthode nun nicht als Ausgangssteuerung sondern als Eingangssteuerung implementiert und habe den Ausgang der Station gesperrt und schon funktionert die Sache !! Trotzdem vielen Dank für die Unterstützung! Gruß Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |