Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Methode triggern

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:  Methode triggern (3797 mal gelesen)
ver-PLANT
Mitglied
Student

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

Beiträge: 6
Registriert: 11.09.2007

erstellt am: 11. Sep. 2007 22: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

Hallo zusammen!

Folgendes: Ich möchte eine Methode triggern und zwar ähnlich dem Triggern einer Quelle zur BE Erstellung o.ä.

Ich weiß, dass bei einem Aufruf immer nur der alte und neue Wert des Triggers in eine Methode übergeben werden (ausprobiert habe ich es auch). Was ich mir wünsche ist, dass meine Methode nicht nur ein einziges mal, zu Beginn einer Stunde aufgerufen wird, sondern in einer Stunde mehrmals ausgelöst wird und das auch noch statistisch verteilt, also "zufällig" aus Seedwerten generiert.
Eben so, wie es beim Triggern einer Quelle ohne weiteres möglich ist...

Wie soll ich bspw. den aus dem Trigger übergebenen Wert 45 -für das 45malige auslösen einer Methode in einer Stunde- in der Methode verarbeiten, damit diese dann zu verschiedenen "zufälligen" Zeitpunkten innerhalb dieser Stunde bestimmte Atribute der Bausteine meines Modells ändert?

Mir ist nicht klar, ob das Triggern von Methoden auf diese Art und Weise überhaupt möglich ist, ohne in der Methode viel Code zu schreiben. Ich dachte eigentlich, der Trigger würde mir diese Arbeit ersparen.

Danke im Voraus!
Christian

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

Homer Simpson
Mitglied



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

Beiträge: 345
Registriert: 14.09.2005

erstellt am: 12. Sep. 2007 07:31    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 ver-PLANT 10 Unities + Antwort hilfreich

Ich denke der Generator ist dafür besser geeignet als der Trigger.

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

ver-PLANT
Mitglied
Student

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

Beiträge: 6
Registriert: 11.09.2007

erstellt am: 12. Sep. 2007 10:44    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

Das habe ich mir auch schon überlegt.
Nur soll die Anzahl der Methodenaufrufe innerhalb einer Stunde über den Tag verteilt variieren.
bspw. 1.Stunde 45, 2.Stunde 130, 3.Stunde 12 ...

Beim Generator ist man aber doch auf einen Wert festgelegt und müsste somit 13 Generatoren für 13 Stunden erstellen, oder?

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

jabba
Mitglied


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

Beiträge: 7
Registriert: 27.01.2006

erstellt am: 12. Sep. 2007 11:52    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 ver-PLANT 10 Unities + Antwort hilfreich

Lassen Sie doch einfach die Methode sich selbst wieder aufrufen: mittels belibigen Verteilungsfunktionen wie z.B. z_normal() können Sie den zeitlichen Abstand des nächsten Aufrufes bestimmen und mit self.methCall(<dauer> ) aktivieren Sie dann den nächsten Aufruf. Hier haben Sie sogar die Möglichkeit weitere Parameter zu übergeben: self.methCall(<Dauer>, <Param1>,..<Param n> )

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

LaBonita
Mitglied
Dipl.-Math.


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

Beiträge: 151
Registriert: 26.07.2007

eM-Plant 7.5 bis 8.1
VB
Java
C#

erstellt am: 12. Sep. 2007 13:49    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 ver-PLANT 10 Unities + Antwort hilfreich

Hallo Christian,

Du brauchst keine 13 Generatoren. Letzen Endes benötigst Du nur 2 Generatoren - einen der Deinen Methoden-Trigger-Generator jede Stunde neu kalibiert und den Methoden-Trigger-Generator selbst.

Hier ein kleines Code-Beispiel, wie die erste Abstands-Methode des "Stunden-Generators" aussehen könnte:

Code:
is
    local
        oneHour, val: integer;
        mean: real;
 
        attr: string;
do
    val := z_gleich(1, 1, 100);
    oneHour := 60 * 60;

    mean := oneHour / val;

    attr := "1," + num_to_str(mean);
    attr := attr + "," + num_to_str(mean / 2) + ",0,";
    attr := attr + num_to_str(mean);
    current.Generator1.interval.setTypeAndAttr("Normal", attr);
end;

Hierbei habe ich jede Stunde den Abstand eines zweiten Generators neu gesetzt nach einem stochastischen Anzahlwert (val), der bestimmt wie oft im Mittel der zweite Generator ausgelöst werden soll. Eine Stunde wird in entsprechende Segmente unterteilt und das wird mittels Normalverteilung an den zweiten Generator als Abstand übergeben. Schau es Dir mal an. Da kann sicherlich noch etwas dran verändert werden.
UND: Diese Lösung stellt nicht sicher, dass die Anzahl auch auf jeden Fall erreicht wird. Das läßt sich (glaube ich) nur machen, wenn Du die Abstände vorher ermittelst und dann mithilfe einer Tabelle o. ä. abfährst. Geht aber prinzipiell auch.

Rückfragen gerne - aber schau Dir die Sachen auch mal in der Hilfe an.

Gruß,
Ortrun

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