Autor
|
Thema: Experimenteverwalter und Dialog (2848 mal gelesen)
|
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 27. Mai. 2013 12:40 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich würde gerne im Experimenteverwalter verschiedene Eingabewerte für meine Dialogelemente einstellen. Mein Modell besteht aus einem Dialog und einer Methode, welche sich die Eingabewerte der Dialogelemente holt. Diese Methode füllt dann verschiedene Tabellen aus. Wenn ich den Experimenteverwalter ohne Eingabewerte starte, führt dieser mit den eingebenen Dialogwerten die Methode x mal aus (je nach Einstellung der Beobachtungen). Soweit so gut. Allerdings würde ich gerne mehrere Experimente hintereinander laufen lassen, sprich, die Eingabewerte des Dialogs möchte ich für die verschiedenen Experimente einmal festlegen und nicht nach jedem Experiment neu. Gibt es eine Möglichkeit, das zu realisieren? Vielen Dank für Ihre Hilfe. Beste Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 27. Mai. 2013 15:39 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
Sie müssen dem Ereignisverwalter Attribute oder Variablen zum Setzen der Werte "anbieten". Die normale Vorgehensweise ist dann: der Ereignisverwalter setzt die Variablen auf einen bestimmten Wert, Ihre init-Methode liest die Werte und initialisiert das Modell (z.B. setzt die Werte im Dialog und ruft die call-back-Methode auf).... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 27. Mai. 2013 16:22 <-- editieren / zitieren --> Unities abgeben:
Ich fürchte ich brauche diesbezüglich leider detailliertere Hilfe. Wenn ich bspw. zu Anfang alle Eingabewerte des Dialogs bis auf die Anzahl an Aufträgen beibehalten möchte, habe ich eine Variable eingeführt (AnzahlAufträge benannt)und diese als Eingabewert im Experimenteverwalter gewählt. Im Folgenden kann ich die Experimente definieren und gebe z.B. für das erste Experiment 100 und für das zweite 200 ein. Mit welcher Funktion setze ich dann den Wert des Dialogs jeweils auf den im Experimentverwalter festgelegten(setze..?)? Oder ist der Ansatz falsch? Tue mich da leider schwer mit. Vielen Dank für Ihre Hilfe! Beste Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 27. Mai. 2013 16:35 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
Nutzen Sie dafür eine Methode, die Sie mit init benennen. Die wird vor jedem Lauf aufgerufen. In der init-Methode können Sie dann Ihren Wert setzen (Dialog.setzeText("Element",to_str(AnzahlAufträge)). Danach müssten Sie Ihre Rückrufmethode aufrufen, normalerweise mit dem Übergabeparameter Apply: Dialog.callback("Apply"), um die Daten in Ihre Tabellen einzutragen. Sie können allerdings auch mit der Init-Methode die Werte direkt in die Tabelle eintragen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 27. Mai. 2013 17:27 <-- editieren / zitieren --> Unities abgeben:
Habe ich Ihre letzte Aussage richtig verstanden, wenn ich den bisherigen Inhalt meiner Methode in die init-Methode kopiere und z.B. Dialog.setzeText("AnzahlAufträgeEF",to_str(AnzahlAufträge)); hinzugebe? Also: -------------------------------------------------------------------------------------------------------------------- Dialog.setzeText("AnzahlAufträgeEF",to_str(AnzahlAufträge)); auftrag:=str_to_num(dialog.holewert("AnzahlAufträgeEF")); . . . -------------------------------------------------------------------------------------------------------------------- Wenn ich meiner Variable einen Wert zuweise, übernimmt er diese beim Starten der Simulation (über den "Play-Button"), was ja schonmal super ist. Allerdings funktioniert das nicht, wenn ich die Variable als Eingabewert definiere und z.B. zwei unterschiedliche Werte für zwei Experimente definiere. Die Konsole gibt folgendes aus: All experiments have been carried out. Es erfolgt aber keine wirkliche Aktion. Ist das so nicht möglich oder wo liegt das Problem? Vielen Dank!!! Beste Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 27. Mai. 2013 17:40 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
Bewegt sich etwas in Ihrer Simulation (BEs?). Was passiert zwischen Start und Ende der Simulation? In Ihrem Fall würde ich den Wert direkt setzen und dann die Aktion aufrufen, die bei Klick auf Play passiert. Den Dialog brauchen Sie nicht, wenn Sie den ExperimentManager verwenden.
Code:
auftrag:=anzahlAufträge; -- starten --> play
[Diese Nachricht wurde von Bon Simul am 27. Mai. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 27. Mai. 2013 18:16 <-- editieren / zitieren --> Unities abgeben:
Nein, das Modell enthält keine BEs, es werden lediglich je nach Verteilung verschiedene Werte in verschiedene Tabellen geschrieben. Ich starte also einfach die Simulation und meine Tabellen sind ausgefüllt. Den Dialog würde ich gerne aus Übersichtlichkeitsgründen und Eingabe möglicher verschiedener Verteilungsformen beibehalten. Aber selbst in einer früheren Version ohne den Dialog übernimmt die Variable leider nicht den Wert den ich im Experimenteverwalter definiert habe sondern lediglich den einen, den ich der Variablen direkt zuweisen kann. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 27. Mai. 2013 20:57 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
Auf alle Fälle müssen Sie, wenn Sie es über den Dialog machen wollen, die Methode zum Übernehmen Ihrer Daten über die init-Methode aufrufen. Ein anderes Problem könnte sein, dass Sie keine Ereignisse haben. Ohne Ereignisse in der Ereignisliste des EreignisVerwalters beendet Plant Simulation Ihre Simulation. Um das zu umgehen, könnten Sie eine Quelle und eine Senke ins Netzwerk setzen und diese durch eine Kante verbinden. Stellen Sie dann einen Abstand in der Quelle ein (z.B. eine Minute). Das sorgt für Ereignisse. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 28. Mai. 2013 10:36 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 28. Mai. 2013 10:47 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
|
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 28. Mai. 2013 11:14 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 28. Mai. 2013 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
|
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 28. Mai. 2013 11:19 <-- editieren / zitieren --> Unities abgeben:
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 28. Mai. 2013 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
|
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 28. Mai. 2013 16:13 <-- editieren / zitieren --> Unities abgeben:
Vielleicht habe ich auch einfach etwas nicht richtig verstanden. Ich habe einfach mal ein neues Modell erstellt, welches nur eine Methode(init), eine Tabelle, eine Variable (Anzahl) und einen Experimenteverwalter enthält. Code: ____________________________________________________________________________________________________________________ is i:integer; do for i:=1 to anzahl loop Tabelle[1,i]:=10; next; end; ____________________________________________________________________________________________________________________ Als Ausgabewert setze ich im Experimenteverwalter die Tabelle und als Eingabewert die Variable und definiere zwei Experimente mit zwei unterschiedlichen Werten für die Variable. Aber selbst bei diesem banalen Beispiel bekomme ich die gleiche Fehlermeldung: All experiments have been carried out. Vielleicht können Sie hieran erkennen, ob ich etwas grundlegendes falsch mache. In jedem Fall vielen Dank für Ihre Mühe! Beste Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 28. Mai. 2013 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
Sie können die Tabelle nicht als Ergebnis definieren, sondern müssen sich auf eine Zelle beziehen Formatieren Sie zum Beispiel die zweite Zelle als integer, klicken Sie dann auf die Zelle[2,1], klicken Sie dann auf das "=" (Formelmodus) und tragen Sie die folgende Formel ein: Code:
?.sum({1,1}..{1,*})
Dann verweisen Sie als Ergebnis auf Tabelle[2,1]. Dann funktioniert es. Die Ausgabewerte müssen je Zeile ein einzelner Wert sein.Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 28. Mai. 2013 16:51 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank! Mit den geänderten Ausgabewerten funktioniert es. Heißt das aber, wenn ich als Ergebnis trotzdem alle (komplett ausgefüllten) Tabellen brauche, dass dies dann über die Eingabewerte des Experimenteverwalters nicht möglich ist? (Ohne Eingabewerte werden ja die des Dialogs verwendet und ich kann meine kompletten Tabellen ausgeben lassen) Beste Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 28. Mai. 2013 17:12 <-- editieren / zitieren --> Unities abgeben: Nur für Kvothe
|
Kvothe Mitglied
Beiträge: 24 Registriert: 16.04.2013
|
erstellt am: 28. Mai. 2013 17:21 <-- editieren / zitieren --> Unities abgeben:
|