Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu random und htime

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Frage zu random und htime

    Ich versuche zu einer Abwesenheitssimulation mit random die Zeitpunkte von Schaltungen zu verändern.

    Dazu habe ich ne Variable die diese Minuten beim "timer" verändert

    //Zufallszahl 0-30 Minuten
    Minz=convert(random(30u32),0u08)

    die Variable steht im [EibPC] Bereich und wenn ich das richtig beobachte, wird sie nur verändert, wenn der eibPC "restarted". Ich möchte natürlich bei jedem neuen htime Befehl, bei dem die Minuten über Minz gesteuert werden das neu haben (sonst macht ja Random keinen Sinn ).

    Wo liegt bitte mein Denkfehler?

    Frage2: Funktion htime, da ich da Minuten innerhalb der Funktion berechne, kann im Prinzip der Wert negativ werden, wie interpretiert das htime (da Parameter ja u08)? Sauber programmiert würde ich ja besser ausserhalb rechnen und den Wert unsigned machen...

    Danke für Eure Hilfe

    Gruss Werner

    #2
    Du willst Deine Abwesenheit simulieren?

    Die Meisten simulieren die Anwesenheit.

    Du kannst Deine Random Funktion einfach in eine if Abfrage einhüllen und damit immer wieder eine neue Ermittlung initiieren.

    RandomTrigger = AUS
    Random = 0u08
    if RandomTrigger == EIN then Random = convert(random(30u32),0u08); RandomTrigger = AUS endif

    Kommentar


      #3
      Ich bin ja Anwesend bei der Simulation (aber Du hast natürlich recht)

      ok mit dem Flag ist klar, dachte halt, dass die Random Funktion (wie im Handbuch beschrieben) nicht speziell getriggert werden muss?

      Deine Anweisung würde aber dann doch so aussehen (sonst geht er nie in die Schlaufe):

      RandomTrigger = AUS
      Random = 0u08
      if RandomTrigger == EIN then Random = convert(random(30u32),0u08); RandomTrigger = AUS else RandomTrigger = EIN endif

      Gruss und Danke

      Werner

      Kommentar


        #4
        Nein, den RandomTrigger solltest Du abhängig von einem Event auf EIN setzen,
        z.B. cycle(1,0) oder einer Leuchte.

        Ich schalte gewisse Leuchten während der Abwesenheit in einem definierten Zeitfenster mehrfach ein und aus. Bei jedem Einschalten einer Leuchte, könntest Du den RandomTrigger auf EIN setzen um damit das Ausschalten zu steuern.

        Kommentar


          #5
          Tja ausprobiert, aber es scheint, dass auch da die Random Funktion nur 1x anspringt. Müssen wir wohl auf Enertex warten ob es da noch etwas spezielles zu beachten gibt (das Beispiel auf Seite 176 im Handbuch geht somit auch immer zur selben Zeit runter (wen der Wert noch auf EIN wäre) .

          Uups, habe Deine schnelle Antwort nicht gesehen, damit geht es (wieder was gelernt Danke!) wäre nett, wenn im Handbuch dazu ne Zeile stehen würde und muss ich im Kurs verpasst haben

          Schönes Weekend

          Werner

          Kommentar

          Lädt...
          X