Ankündigung

Einklappen
Keine Ankündigung bisher.

HS/X1/Logik - Wert filtern/nur senden wenn um z.B. +-0,2 anders als der letzte

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

    HS/FS HS/X1/Logik - Wert filtern/nur senden wenn um z.B. +-0,2 anders als der letzte

    (Weiß nicht wie ich das suchen soll im Forum, kam zu keinen Ergebnissen.)

    Ein Leistungswert in W wird über den X1 alle 10s über Modbus abgefragt, soll aber intern im HS oder X1 so gefiltert werden, dass er erst auf den KNX gesendet wird wenn er sich um z.B. 0,2 zum letzten Wert verändert hat, statt ewig immer dasselbe zu senden (bei gleicher/kaum veränderter Last). Stehe auf'm Schlauch, welche Bausteine ich dafür verwenden soll. 🤔

    #2
    Beim X1 würde ich das mit "Grundrechenart" für +0,2 an einen "Vergleicher" mit dem neuen Wert und das Ergebnis an einen "Filter" um den neuen Wert nur an den Ausgang weiterzuleiten, wenn der Vergleicher angeschlagen hat.

    Kommentar


      #3
      Hab' iwie 'ne Blockade. 😅 Kannst du das nochmal umformulieren? Ich brauche ja einen aktuellen und einen alten Wert um einen Vergleich machen zu können. Wenn ich einfach 0,2 aufaddiere/subtrahiere und vergleiche mit dem momentanen Wert, ist das Ergebnis ja nie "gleich" bzw. immer "größer/kleiner".

      Kommentar


        #4
        Der Datenpunkt der als Ausgang dient, und nur beschrieben wird, wenn der Wert > Hysterese, gibt dir deinen Vergleichswert.
        Der Datenpunkt der den aktuellen Wert erhält (zyklisch oder bei Änderung) den Eingangswert.
        Ist dein Vergleich nicht wahr, also zu geringe Änderung, beschreibst du ja den Ausgangsdatenpunkt nicht (Filter) -> alter Wert.

        Kommentar


          #5
          Einfach Send by change?
          Punk ist nicht tot, Punk macht jetzt KNX

          Kommentar


            #6
            Zitat von meti Beitrag anzeigen
            Der Datenpunkt der als Ausgang dient, und nur beschrieben wird, wenn der Wert > Hysterese, gibt dir deinen Vergleichswert.
            Der Datenpunkt der den aktuellen Wert erhält (zyklisch oder bei Änderung) den Eingangswert.
            Ist dein Vergleich nicht wahr, also zu geringe Änderung, beschreibst du ja den Ausgangsdatenpunkt nicht (Filter) -> alter Wert.
            Ich geb's auf. Habe schon weit kompliziertere Logiken im Homeserver gebastelt aber wahrscheinlich hat das mein Hirn aufgeweicht. Nach gefühltem 50x Lesen deiner Anleitung weiß ich trotzdem nicht wie ich das mit den Bausteinen vom X1 nu machen soll. Vlt. versuche ich irgendwann mal im Homeserver einen Neuanfang.

            Zitat von Punker Deluxe Beitrag anzeigen
            Einfach Send by change?
            Dafür ist der empfangene Wert leider zu genau/fein. 6 Stellen hinter'm Komma. Ich weiß auch nicht wie ich die Daten z.B. auf nur eine Stelle hinter'm Komma kürze. Deswegen wird der so gut wie nie gleich sein sondern immer um einen Bruchteil abweichen. Aber selbst bei 0,1 Änderung würde der Wert noch zu oft auf den Bus gesendet, besser wären z.B. 0,5 vlt. oder so. Müsste ich mal testen ... wenn ich nicht zu dumm wäre es zu realisieren. 😄🤦‍♂️

            Kommentar


              #7
              Zitat von Daniel E Beitrag anzeigen
              6 Stellen hinter'm Komma. Ich weiß auch nicht wie ich die Daten z.B. auf nur eine Stelle hinter'm Komma kürze.
              Ganz traditionell runden, wenn Du z.B. eine Stelle hinter dem Komma haben möchtest und der
              Wert lautet W, INT ist der Ganzzahlanteil
              gerundet = (INT(W*10+0,5))/10

              Das lässt sich im X1 mit dem Formelbaustein berechnen. Ggf. gibt es dort sogar fertige Funktionen, musst mal ein wenig in der Hilfe und der Microsoft Beschreibung der Mathe-Library lesen.
              Gruß Bernhard

              Kommentar


                #8
                Mal versucht mich reinzulesen, ist doch arg fremd und unintuitiv, C# Programmierung.

                Wenn jmd. weiß, wie's geht, und "mal eben" eine Logik zusammenschustern und einen Screenshot machen will, wär' ich sehr dankbar.

                Kommentar


                  #9
                  D E, der Baustein "Send By Difference" aus dem Zusatzpaket "Generische Logikbausteine​" tut genau was Du willst. Die Formelberechnung wäre Overkill ...

                  Kommentar

                  Lädt...
                  X