Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Das rechnen scheint soweit zu funktionieren, aber ich bin immer ein bisschen daneben beim Ergebnis der ersten Logik. Das variiert von 0 Komma bis zu ein paar Watt.
Ja, das ist erwartungskonform. Hängt vom DPT ab, wie genau eine Zahl dargestellt werden kann. DPT9 ist z.B. wesentlich ungenauer als DPT14. Aber selbst bei DPT14 ist, gibt es keine Möglichkeit, eine exakte Fließkomma-Repräsentation zu bekommen.
Versuch mal, DPT14.056 im Gruppenmonitor zu senden, z.B. den Wert 34544566. Gesendet wird dann in Wirklichkeit 34544570.
Allerdings wirst Du nicht mit so großen Zahlen arbeiten, oder?
Die Leistungen bewegen sich so im hunderter bis tausender Bereich. Wenn Herd oder so an gehts mal bissel hoch, aber die Leistungen sind alle unter 10k.
Einzig die PV geht mal Richtung 20k.
Hier mal der Mitschnitt vom Gruppenmonitor. Das Ergebnis passt oft richtig gut, aber manchmal ist es einfach daneben. Echt komisch, ich hätte es verstanden wenn die Abweichung hinterm Komma wäre, das mal vom Runden ein bisschen auseinander läuft aber zum Teil ist die Ungenauigkeit ja im Watt Bereich.
Hab da aber ehrlich gesagt auch nicht wirklich Ahnung davon um das beurteilen zu können, eher ein Bauchgefühl.
Ich hab mal die Ergebnisse die nicht passen rot markiert.
ich habe heute auch mal eine Logik gebaut und wolle die hier kurz vorstellen. Vielleicht braucht das jemand oder es gibt bessere Lösungen für das Thema.
Aufgabe:
Aus einem DPT1 (Schalten) mit "EIN" (Trigger) ein Umschalten einer zweiten GA zu erreichen.
Ausgangslage:
Ich habe einen (älteren) 230V Binäreingang, nur "EIN" und "AUS" je nach Objektwert senden kann. Man kann noch festlegen, ob das "EIN" oder "AUS" auch gesendet wird. Der Kanal des BE ist so konfiguriert: image.png
Somit bekomme ich beim Schließen des Tasters immer ein "EIN" auf dem Bus.
Die Logik habe ich folgendermaßen gebaut:
Eingang 1: Triggersignal des BE
Eingang 2: Status-GA des Kanals des Schaltaktors
Logikoperation: UND (Trigger und invertierter Status des Schaltaktorausgangs)
Logik-Trigger: nur bei Eingang 1
Nachtrag: Ich habe nochmal nachgeschaut, die Logik-Eingänge können auch DPT232, das ist 3 Byte. Damit könntest Du also auch die Uhrzeit empfangen und über Bitoperationen die Zeit auf ein KO mit DPT7 schicken.
Darf ich hier nochmal nachfragen wie das ganze im Detail funktionieren würde?
Ich hab mich jetzt dem Thema mit der Zeit noch mal angenommen.
Also Datum zerlegen hat eigentlich (nach paar anfänglichen Verständnisproblemen) problemlos funktioniert, nur beim Jahr hab ich mich verhauen, da will meine BWWP 2023 anstatt 23 . Aber noch fix ne Addition fürs Millennium eingefügt, dann hat das gepasst . Ansonsten muss man halt bissel hin und her schieben für den Wert vom mittleren Byte .
Bei der Uhrzeit sind auch die Minuten kein Problem (Sekunden theoretisch auch, aber die brauch ich nicht) . Bloß bei der Stunde komm ich nicht dahinter was in dem Byte drin ist.
Die Uhrzeit sowie das Datum sind ja jeweils 3 Byte. Beim Datum ist jedes Byte jeweils Monat, Jahr und Tag.
Bei der Uhrzeit dachte ich es genauso (bzw. Minuten und Sekunden passen auch), aber ich bekomme beim Byte für Stunden jetzt z.B. für 23 Uhr = b7 (Hex).
Das währen Dezimal 183. Also wären das 160 zu viel.
Ich versteh einfach nicht wo die herkommen, oder was die zu bedeuten haben. Wenn es konstant 160 wären, könnte ichs ja einfach raus rechnen.
Das hab ich auch grad gefunden, aber trotzdem vielen herzlichen Dank.
Die letzten 3 Bits von dem Byte für die Stunde sind der Wochentag .
Bin grad am ändern, sollte dann lüppen .
Ich habe leider keine Lösung dazu gefunden und wollte nachfragen ob es überhaupt möglich wäre?
Ebenso stellt sich die Frage ob man zwei Eingangswerte (DPT9) mit "Kleiner/Gleich" vergleichen könnte?
machen kann man das schon, ist eher aufwändig. Der einfachste Weg wäre eine Benutzerfunktion, aber dann müsstest Du die Firmware selber bauen, das ist zu Zeit eher aufwändig. Oder man macht es mit einzelnen Formelkanälen.
das heißt dann ich bräuchte 8 Logikkanäle die ich jeweils als UND (intern, Kanalausgänge verbinden) verknüpfe?
Der "Ausgang" der Logik 1 wird wie im Bild eingestellt? Der "AUS-Zustand", Blau umrandet, ist in diesem Fall für alle Formeln uninteressant oder? Dieser kann auch Ausgeschaltet werden?
ich suche gerade eine möglichkeit einen Zeittrigger zu generieren, sprich zu jeder vollen Zeiteinheit (z.B. 10min, Stunde, Tage, Woche) soll für z.B. 1sec "Ein" gesendet werden, anschließend wieder einen "Aus"
es gibt verschiedene Möglichkeiten, Ausgangspunkt ist eine Zeitschaltuhr. Wenn nach 1 Sec. ausgeschaltet werden soll, machst Du in der Ausgangspipeline immer ein Treppenlicht mit 1 Sec, die Zeitschaltuhren müssen dann nur ein EIN senden.
Jede Woche: Tagesschaltuhr; den gewünschten Wochentag auswählen, die Einschaltzeit eingeben, Wert EIN.
Jeden Tag: Wie Woche, Wochentag bleibt auf "jeder" stehen.
Jede Stunde: Wie Tag, Stunde bleibt auf "jede" stehen.
10 Minuten gibt es so nicht, kann man aber mit 2 Kanälen einfach machen: Du nimmst das Stundensignal (also eine Zeitschaltuhr, die jede Stunde einschaltet) und vervielfachst das mittels blinken:
In der Ausgangspipeline nimmst Du ein Treppenlicht ohne verlängern und ohne ausschalten, Zeit 51 Minuten (kann auch 55 Min sein, nur >50 und <60, damit ganz sicher die letzte Schaltzeit ausgeführt wird)
Du lässt es im Rythmus 5 Min blinken (5 Min EIN, 5 Min AUS).
Den 2. Kanal nutzt Du, um über ein normales Treppenlicht nach 1 Sek. auszuschalten. Da das 2. Treppenlicht nur von einem EIN getriggert wird, wird es nach 1 Sek. ausschalten, das folgende AUS vom blinken wird nicht stören und erst das darauffolgende EIN wird es wieder auslösen.
Dadurch hast Du alle 10 Minuten eine 1 Sek. Flanke und kannst über die Zeitschaltuhr bestimmen, zu welcher Minute (innerhalb der Stunde) der Trigger passieren soll.
Mit einem kleinen Trick kann man auch um den 2. Kanal für 10 Minuten herumkommen:
Du machst in der Ausgangspipeline der Zeitschaltuhr nach dem Treppenlicht mit blinken auch noch die Ein-/Ausschaltverzögerung aktiv. Du verzögerst das Einschalten um 4 Minuten und 59 Sekunden (also um 299 Sekunden) und das Ausschalten gar nicht. Damit bekommst Du auch alle 10 Minuten eine 1 Sekunden-Flanke, allerdings um 4:59 verschoben (später) zur Minute, die Du in der Zeitschaltuhr vorgibst.
Hier nochmal der Screenshot mit Ein-/Ausschaltverzögerung: Flanke alle 10 Minuten.png
Grundsätzlich kann man immer mit Schaltzeit + Vervielfältigung arbeiten, das klappt ganz gut.
Warum nicht nur Treppenlicht und blinken: Die Zeitschaltuhr synchronisiert irgendwelche drifts. Wenn Du 12:07 alle 10 Min ein Signal haben willst, kann es schon sein, dass der 5. Impuls um 12:57:01 kommt. Dann bist Du aber sicher, dass der nächste um 13:07 kommt.
Eigentlich ganz einfach... Ich brauche unbedingt mehr Zeit um mich mit dem Logikmodul zu beschäftigen.
Ganz genau muss das ganze nicht sein, die Pulse dienen zur Ausgabe der Regenmenge in der letzten Zeiteinheit, als direkten Wert auf den Bus.
Ich traue mich ja schon gar nicht mehr zu fragen, bei der Vielzahl in den letzten Tagen im VPM Thread 🙄
Aber dennoch hoffe ich, dass ich nochmal einen Gedankenanstoß bzgl. Zeitschaltuhr-Funktionalität bekomme
Ich möchte die für den VPM sinnvollen Tagesphasen mit dem Logikbaustein darin darstellen.
Ich hätte die 4 Tagesphasen über 4 Logikkanäle dargestellt mit 4 Zeitschaltuhren, die durch ihre Schaltzeiten eine gemeinsame beschreiben.
Der Auswertung wird allerdings nicht gesendet.
Also Ausgang habe ich DPT Szene gewählt, da beim VPM der Eingang für Tagesphase DPT 17.001 ist.
Logik 1 hat als Ausgabewert "1", L2 = 2, L3 = 3, L4 = 4
Problem ist nun, dass keine der Tagesphasen ausgegeben wird. Sunrise und SunSet werden lt. Diagnoseobjekt korrekt ermittelt.
Der Status für L1 gibt aus Ax B0 Cx Dx Q0.
Für L2-L4 gibt es als Diagnose Ax Bx Cx Dx Qx
Alle Kanäle sind aktiviert.
Das Problem sitzt sicher wieder vor dem Bildschirm, aber ich habe keine Idee wo das Problem in meiner "Logik" drin ist?!
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar