Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

- √ - Hilfe bei Logikproblem (Abfrage Ereignis innerhalb einer Zeitspanne)

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

    - √ - Hilfe bei Logikproblem (Abfrage Ereignis innerhalb einer Zeitspanne)

    Hallo zusammen,

    stehe irgendwie auf der Leitung, wie ich das folgende Logikproblem codetechnisch im EIBPC abbilden soll.

    Hier die Anforderung:

    Es soll ein Ereignis3 ausgelöst werden, wenn Ereignis1 eintritt UND innerhalb von einer Zeit t ein Ereignis2 NICHT eingetreten ist.

    Möchte das ganze in meine EKEY-Logik miteinbauen, sprich:
    Ereignis1=Fehlversuch
    Ereignis2=Türe geöffnet
    t=Zeit, inneralb der die Türe geöffnet wird oder nicht
    Ereignis3=Alarmmeldung

    Irgendwie komme ich nicht drauf, wie ich ein Ereignis innerhalb einer Zeit abfragen kann, da Ereignis2 ja innerhalb von t schon von 0 auf 1 und wieder auf 0 gewechselt haben kann.

    Irgendwelche Ideen?
    Vielen Dank & viele Grüße, Oliver

    #2
    Hallo Oliver,

    von der Logik-Funktion wäre das ein XOR.

    if after(Ereignis1,t) then Logik=Ein endif
    if Logik==Ein xor Ereignis2==Aus then Ereignis3=Ein endif

    So 'mal schnell aus der Hüfte als Idee ...

    Viele Grüße

    Michael

    Kommentar


      #3
      oder

      if ereignis1 then zeitlauft=1 endif
      if after (ereignis1,xxx) then zeitende=1 endif
      If ereignis2 then zeitlauft=0;zeitende=0 endif

      If zeitende then ereignis3=1;zeitlauft=0;zeitende=0 endif

      oder vermutlich auch:

      if ereignis1 then zeitlauft=1 endif
      if after (zeitlauft,xxx) and zeitlauft then ereignis3=1; zeitlauft=0 else zeitlauft=0 endif

      If ereignis2 then zeitlauft=0 endif
      Der schöne Niederrhein läßt Grüssen

      Andreas


      Alter Hof mit neuer Technik

      Kommentar


        #4
        Hallo Michael, Andreas,
        erst einmal vielen Dank für Eure Tips. Ich denke diese werden mir weiterhelfen.
        @Michael: Stehe evtl. noch auf dem Schlauch, aber auch mit XOR fange ich m.E. Ereignis2 nicht innerhalb von t ab, sondern erst nach t, oder?
        @Andreas: Guter Ansatz mit der Hilfsvariable "zeitlauft". Ich war/bin mir nicht sicher, ob es einen Befehl gibt, der sowas in einem macht (so a la after), aber damit sollte es klappen.

        Auf jeden Fall habt Ihr beide es geschafft meine Denkblockade einzureisen. Werde mich an das Testen/Implementieren machen und das Ergebnis mitteilen.
        Vielen Dank & viele Grüße,
        Oliver

        Kommentar


          #5
          Zitat von Sandman60 Beitrag anzeigen
          @Andreas: Guter Ansatz mit der Hilfsvariable "zeitlauft". Ich war/bin mir nicht sicher, ob es einen Befehl gibt, der sowas in einem macht (so a la after), aber damit sollte es klappen.
          In der nächsten Version gibt es eine Funktion Afterc, bei der auch die verstrichene Zeit abgefragt werden kann.
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #6
            Zitat von Sandman60 Beitrag anzeigen
            @Michael: Stehe evtl. noch auf dem Schlauch, aber auch mit XOR fange ich m.E. Ereignis2 nicht innerhalb von t ab, sondern erst nach t, oder?
            Hi Oliver,

            da hast Du natürlich Recht.

            Innerhalb t sollte es so gehen:

            if Ereignis1==Ein then Logik=Ein endif
            if after(Ereignis1,t) then Logik=Aus endif
            if Logik==Ein xor Ereignis2==Aus then Ereignis3=Ein endif

            Viele Grüße

            Michael

            Kommentar


              #7
              So, Thema gelöst wie oben beschrieben... Bin am Anfang (mal wieder) in die IF-Verschachtelungsfalle getappt, aber ansonsten klappt es beschrieben.
              Vielen Dank an alle!

              Kommentar

              Lädt...
              X