Ankündigung
Einklappen
Keine Ankündigung bisher.
Herausforderungen für das MDT Logikmodul V2
Einklappen
X
-
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
-
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
- Likes 1
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
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
-
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
-
Zitat von mumpf Beitrag anzeigenHi 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:- Wenn der Rolladen fährt, stoppt der STOP-Befehl und man muss nur verhindern, dass ein "Weiterfahren" erzeugt wird.
- Wenn der Rolladen steht, stört der STOP-Befehl nicht, weil danach ja gleich ein "Weiterfahren" kommt.
Gruß, Waldemar
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 anzeigenIn 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.
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
Kommentar
Kommentar