Autor
|
Thema: Zeitversetzte BE´s erzeugen (427 mal gelesen)
|
VS-Simulator Mitglied Doktorand
Beiträge: 75 Registriert: 20.02.2008 Plant Simulation 8.2
|
erstellt am: 13. Mai. 2008 09:56 <-- editieren / zitieren --> Unities abgeben:
Hallo, möchte zeitgesteuert/zeitversetzt BE´s erzeugen lassen. Wie folgt meine Idee für den Code: If Anzahl_SM_MAN = 50 then Sim_Zeit := Ereignisverwalter.Zeit; If Ereignisverwalter.Zeit > Sim_Zeit + 180 then animation(false); for i:=1 to 700 loop .BEs.Magnethülse_MAN.erzeugen(SM_MAN); next; animation(true); end; end; Es funktioniert alles, wenn ich nicht die Bedingung Sim_Zeit + 180 für die Ausführung angebe. Könnt ihr mir weiterhelfen, was ich bei dieser Bedingung falsch mache? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LaBonita Mitglied Dipl.-Math.
Beiträge: 151 Registriert: 26.07.2007 eM-Plant 7.5 bis 8.1 VB Java C#
|
erstellt am: 13. Mai. 2008 10:06 <-- editieren / zitieren --> Unities abgeben: Nur für VS-Simulator
Hallo VS-Simulator, die Antwort ist ganz einfach: Zu einem Simulationszeitpunkt (nämnlich dann wenn die Methode ausgeführt wird) setzt Du Dir Sim_Zeit := Ereignisverwalter.Zeit; und in der nächsten Zeile prüfst Du, ob Deine Ereignisverwalter.Zeit größer ist als die gerade ausgelesene Zeit +180 - die Bedingugn kann niemals wahr ergeben. Das mußt Du anders machen. Gruß, Ortrun 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: 13. Mai. 2008 11:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Ortrun, habe das Ganze jetzt anstatt mit If-Bedinungen mit Waituntil realisiert jedoch bekomme ich dann immer die Medlung, dass die Zeile "Waituntil Ereignisverwalter.Zeit > Sim_Zeit + 180 prio 1;" nicht überwachbar ist. Hab momentan keine andere Idee wie ich sonst dies realisieren könnte. Kannst du mir einen Tip geben? Danke !! 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: 13. Mai. 2008 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für VS-Simulator
Hallo VS-Simulator, zu Deinem Problem. Wenn ich Dich richtig verstehe loest Deine Methode aus, wenn eine gewisse Variable "Anzahl_SM_MAN" 50 Stk. erreicht hat. In diesem Augenblick weist Du der Varibalen "Sim_Zeit" die aktuelle Ereignisverwalter.Zeit zu. Mit Deinem waituntil wolltest Du warten, bis "Sim_Zeit" + 180 vergangen sind. Warum setzt Du nicht einfach ein -wait 180 in Deinen Methodentext ein. Hiermit erreichst Du genau Deinen von Dir beschriebenen Zeitversatz. Gruß der simulant 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: 13. Mai. 2008 15:00 <-- editieren / zitieren --> Unities abgeben:
|