Ankündigung

Einklappen
Keine Ankündigung bisher.

If(after.... - wird das nicht immer ausgeführt?

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

    If(after.... - wird das nicht immer ausgeführt?

    Hallo Werte Fachgemeinschaft,

    Ich habe eine Lichtschranke die bei Auslösung eine Lampe für 8 sek schalten soll:
    Code:
    if event("Lichtschranke-5/1/8") and ("Lichtschranke-5/1/8"==EIN) then\\
         write ("LS Bewegung-0/2/0",EIN);\\
         LS_aktiv=EIN endif
    if(after(LS_aktiv==EIN,8000u64)) then\\
        write("LS Bewegung-0/2/0",AUS);\\
        LS_aktiv=AUS;\\
        endif
    Zu 98% funktioniert das auch.
    In einigen Fällen wird der zweite Teil (also das if(after...) nicht ausgeführt.
    LS_aktiv verbleibt dann im EIN.
    Woran kann das liegen?

    Vielen Dank!

    #2
    Wenn die Lichtschranke "prellt" also innerhalb der 8 Sekunden ein zweites mal getriggert wird => der wird fehlen.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Nein, den Fall habe ich bisher nicht. Die Lichtschranke hängt an einem Binär Eingang vom MDT, der ist bisher recht zuverlässig.
      Wenn die Situation eintritt, dann verbleibt LS_aktiv auf EIN. Wenn ich dann den Wert händisch auf AUS setzte klappt wieder alles wie vorher.

      Ich frag mal anders - Ich möchte sicherstellen das LS_aktiv nach 8sek. zurückgesetzt wird. Geht das noch anders?

      Vielen Dank!

      Kommentar


        #4
        Ich würde zunächst mal "LS_aktiv" mit dem event abfragen:
        if event("Lichtschranke-5/1/8") and ("Lichtschranke-5/1/8"==EIN) and !LS_aktiv then... damit nimmst Du ein retriggern für die 8s bis rücksetzen raus.

        Kommentar


          #5
          Sehr guter Hinweis, danke!!

          Kommentar


            #6
            Kannst Du bitte Rückmeldung geben, ob sich da etwas geändert hat oder ob Du weiter bei 98% bist.

            Ich mache eine ähnliche Beobachtung in meiner Anwesenheitsimulation. Dort habe ich eine Aktionskette über verschiedene Lichter und Rolladen aufgebaut, die immer über if(after...) gesteuert werden. Das klappt auch nur zu 98% korrekt. Mit früheren Software Versionen des EibPC lief das über einen längeren Zeitraum zu 100% korrekt, aber ich habe in der Zwischenzeit auch viel Code geändert.

            Kommentar


              #7
              Das after wird sicher ausgeführt.
              Im Gegensatz zu früheren Versionen auch dann, wenn die Verarbeitung über 1 Sekunde dauert (dann eben entsprechend 1 Sekunde später). Ich wette einen Kasten gutes fränkisches Bier, dass der Fehler nicht an der FW liegt...
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Ich habe die Änderung gemacht und kann derzeit jedenfalls kein Fehlverhalten feststellen. Aber das ganze ist ja eh sehr sporadisch, deshalb warten wir besser noch mal ab:-) Danke

                Kommentar


                  #9
                  Heute war es dann wieder so weit.
                  Code:
                  //LS Blinken Glastaster
                  if event("Lichtschranke-5/1/8") and ("Lichtschranke-5/1/8"==EIN) and !LS_aktiv then\\
                       write ("LS Bewegung-0/2/0",EIN);\\
                       LS_aktiv=EIN endif
                  if(after(LS_aktiv==EIN,8000u64)) then\\
                      write("LS Bewegung-0/2/0",AUS);\\
                      LS_aktiv=AUS;\\
                      endif
                  LS_aktiv geht auf EIN und bleibt dann da!
                  Für mich leider nun ein klares Indiz das die Abarbeitung der if(after Geschichte übersprungen wurde.

                  Kommentar


                    #10
                    Wenn 5/1/8 prellt, so wäre da sehr wohl was denkbar. Was sagt denn der Buslog genau?
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar

                    Lädt...
                    X