Ankündigung

Einklappen
Keine Ankündigung bisher.

Herausforderungen für das MDT Logikmodul V2

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

    Zitat von vento66 Beitrag anzeigen
    ... oder das Windrad beim Nachbarn im Pool liegt?
    Weil der keinen Pool hat?

    Kommentar


      Dann liegt’s halt beim Nachbarn auf dem Feld....

      Kommentar


        Hallo ich hoffe ich bin hier richtig und die Lösung steht nicht irgendwo in den 20 Seiten davor.

        Hab mir auch das Logikmodul besorgt weil ich folgendes umsetzen wollte:

        Wert umwandeln von 2 Byte Gleitkommazahl (z.B. 69,5) auf 1 Byte Prozentwert (69,5% oder halt 69%)
        Will den Feuchtigkeitswert von einem BM im Datentyp umschreiben, damit er mit einem Vergleicher z.b. Schwellwert vom Schaltaktor zuammenarbeitet.

        Leider gelingt mir das nicht. Wenn ich den Wert umwandlen lasse, steht nicht 69% im Datentyp sondern 27%. Was mache ich falsch?
        Muss ich noch irgendwelche Byte umdrehen oder mit einem Faktor? Dachte das macht das Logikmodul für mich.

        Kommentar


          Ich hab hier keinen passenden Wert zum Testen, aber mit diesen beiden Varianten hier sollte das eigentlich gehen:

          2020-03-19_10-34.png

          2020-03-19_10-35.png

          Kommentar


            Also die erste Variante oben, ist die ich exakt gestern zusamengebastet habe und da kommt 27% raus beim Ausgang, wenn ich 69 beim Eingang anlege.

            Ich kann heute abend gerne das zweite Beispiel probieren, ob das bessere Ausssichten bringt. Danke

            Kommentar


              Hi,

              die 27 ist korrekt:
              Du gibst 69 rein, und DPT5.001 meint int(x/255*100), also int(69/255*100) = int(27,05) = 27

              Du musst x/100*255 rechnen (im Formelmodul) und als DPT5 ausgeben und das Ergebnis als DPT5.001 konsumieren.
              69/100*255 = 0,69*255 = 175,95. Je nachdem, ob das Logikmodul rundet oder abschneidet bekommst Du so 175 oder 176 raus.
              175 als DPT5.001 ist 69% (je nach Rundung vielleicht 68%), 176 als DPT5.001 ist 69%.

              Gruß, Waldemar

              OpenKNX www.openknx.de

              Kommentar


                OK vielen Dank. Klingt logisch. Werd ich nacher mal ausprobieren.

                Kurz noch eine andere Herausforderung für das Logikmodul.

                Für den einen oder anderen Anwendungsfall bräuchte ich ein Art SR-Glied. Also Boolschen-Wert speichern, auch wenn das Signal wieder verschwindet und zwischenspeichern bis durch eine andere GA z.B. das Rücksetzen getriggert wird.

                Ähnlich wie Wert Speichern, aber das wir ja nur bei Busreset gemacht.

                Hab in den Einstellungen nichts dafür gefunden, außer eine Notlösung evtl:

                Ausschaltverzögerung über min. 24h mit Nachtriggerung um Mitternacht. Rücksetzen mit Sperre und Signal zurücksetzen.

                Gibt es da was eleganteres an Board des Logikmoduls?

                Kommentar


                  Hi,

                  was ist denn der Anwendungsfall? KNX ist ja grundsätzlich telegrammbasiert, somit speichert jedes KO den Wert und der kann dann auch wieder gelesen werden. Und falls Du auch noch willst, dass Werte aktiv gesendet werden, dann nimmst Du die Indentität (also einen nicht-Inverter).

                  Deswegen würde mich der Anwendungsfall interessieren, Deine Frage deutet darauf hin, dass Du KNX noch nicht so richtig intus hast...

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    2 Anwendungsfälle:

                    Briefkasten Deckelsensor wird kurz einmal 1 und dann wieder 0.
                    Glastaster zeigt Meldung, diese soll so lange anliegen bis Signal wieder weg ist, daher Signal zwischenspeichern.
                    Dies passiert mit zweiten Sensor, wenn man entleert.

                    Zweitens Reedkontakt Fenstergriff gekippt.
                    Wenn Fenster offen Kontakt A wird 1
                    Wenn Fenster zusätzlich gekippt wird Konakt B auch 1.
                    Problem Hälfte der Fenster kommt das gekippt Signal bei einem Griffwinkel von 60 Grad und bei 80 bis 90 Grad ist Signal wieder weg. Sensor lässt sich eingebaut nicht mehr verstellen. Daher wollte ich mir Signal B speichern bis A auch wieder weggeht

                    Kommentar


                      Thema Briefkasten: Der Sensor sendet eben dann halt nur eine 1, die 0 der Rücksetzsensor
                      Thema Fenster: den Zustand offen und gekippt gleichzeitig kann ein Fenster ja niemals annehmen, wieso willst Du den Dir generieren?

                      Kommentar


                        Beim Fenster ist das Problem mit der Lúftungsfunktion, wenn man den Griff im Kippstellung bringt, das der Raffstore erst die gekippt Stellung anfährt, da bei 60 Grad kurz das Signal kommt und dann fährt er auf Offenposition, da wenn der Hebel ganz oben ist, intern das gekippt Signal wieder weg ist. Es liegt an einem falsch eingestellten Reedkontakt im Fenster. Kann man jetzt nicht mehr ändern. Egal, aber das beschriebene Konzept beim Briefkasten könnte ja auch beim Fenstergriff funktionieren. Also eine GA kann nur eine 1 auf die Ziel-GA senden und eine zweite GA (Reset) kann immer nur 0 auf Ziel-GA. Wenn ich es richtig verstanden habe. Und die GA merkt sich den Zustand, außer der Bus fällt aus.

                        Kommentar


                          Die schreiben beide auf die selbe GA. der eine setzt die GA auf 1 (Null wird nicht gesendet) und der andere sendet beim Betätigen eine 0 auf die selbe GA.

                          Kommentar


                            Alles klar. Danke. Dann hat sich die Frage erledigt. Hab da anscheinend noch zu SPSlastig gedacht.

                            Kommentar


                              Zitat von mumpf Beitrag anzeigen
                              Hi Ralf,

                              wenn es wirklich um Timing geht, musst Du mal Gruppenmonitor-Mitschnitte von einem erfolgreichen und einem nicht-erfolgreichen Fall aller Eingänge eines Logikblocks (also Stop, Fährt, Richtung, oben, unten) und den Ausgang. An sich sollte das reichen, um das zu analysieren. 2 Ausgänge für die Steuertabelle braucht man hierbei garantiert nicht, denn Stop kann immer mit Stop verbunden bleiben:
                              1. Wenn der Rolladen fährt, stoppt der STOP-Befehl und man muss nur verhindern, dass ein "Weiterfahren" erzeugt wird.
                              2. Wenn der Rolladen steht, stört der STOP-Befehl nicht, weil danach ja gleich ein "Weiterfahren" kommt.
                              Punkt 1 funktioniert bei Dir nicht korrekt, man muss das Timing beachten, damit ein "Weiterfahren" immer nur bei "Rolladen steht" erzeugt wird.

                              Gruß, Waldemar
                              Hi Waldemar mumpf ,

                              das ist mir alles klar, nur was mache ich, wenn das Timing ab und zu eben nicht hinhaut, so wie bei mir?!?

                              Folgendermaßen sieht es aus:
                              • Rollo steht: STOP-Taste lässt Rollo in die gewünschte Rochtung weiterfahren --> Alles gut
                              • Rollo fährt: STOP-Taste erreicht zuerst den Aktor, der das Rollo anhält. In der Zwischenzeit hat das Logikmodul die Arbeit aufgenommen und verarbeitet seinerseits den STOP-Befehl. Da der Aktor das Rollo aber eben schon angehalten hat, lässt das Logikmodul das Rollo wieder anfahren. In der Regel führt das 2. mal tippen auf STOP dann zum Erfolg.

                              Mein Lösung war, den STOP-Befehl eben nur dann durchzulassen, wenn das Logikmodul das entscheidet. Das geht aber leider nicht, weil der Ausgang des Logigmoduls mit HOCH/RUNTER belegt ist. Es wäre also eine SONST-Bedingung gut, die ein weiteres Kommunikationsobjekt ansteuern könnte.

                              Ich habe zumindest noch keine Lösung gefunden, außer ggf. mit weiterer vor-/nachgelagerter Logik. Alternativ könnte ich für die Logik auch wieder den Raspi einsetzen, was ich aber gerade vermeiden wollte. Meine Familie nervt es zumindest: Family-Acceptance-Factor also nur bedingt gegeben, außer von der Funktion als solches. Die finden sie gut.

                              Hast Du noch eine Idee?

                              Danke und Gruß,
                              Ralf

                              Kommentar


                                Hi Ralf,

                                Zitat von Shotte Beitrag anzeigen
                                In der Zwischenzeit hat das Logikmodul die Arbeit aufgenommen und verarbeitet seinerseits den STOP-Befehl. Da der Aktor das Rollo aber
                                eben schon angehalten hat, lässt das Logikmodul das Rollo wieder anfahren.
                                das kann nicht sein! Eingang 2 "Rolladen Fährt" verhindert genau dies. Wenn der Rolladen fährt und ein STOP gesendet wird, kommt STOP am Aktor und an der Logik an. Zu diesem Zeitpunkt ist "Rolladen Fährt" noch true! Die Logik macht somit gar nichts.

                                Hast Du auch wirklich bei der Logik
                                Logik-Sendebedingung.PNGgesetzt? Und wenn ja, bist Du Dir sicher, dann STOP nicht durch irgendwas doppelt gesendet wird? Schau man im Busmonitor, vielleicht bekommt der STOP ja kein ACK und wird 3 mal wiederholt? Dann könnte ich mir so was vorstellen.

                                Gruß, Waldemar



                                OpenKNX www.openknx.de

                                Kommentar

                                Lädt...
                                X