Zusammenfassung
Beim Count-Down Zeitgeber wird eine über das KO „Start mit Zeit" (konfiguriert als Einheit Minuten, DPT 5.010) empfangene Laufzeit für Werte größer als 4 Minuten falsch übernommen. Die tatsächliche Laufzeit folgt reproduzierbar der Beziehung:
Laufzeit [s] = (empfangener Wert × 60) mod 256
Die Umrechnung Minuten → Sekunden erfolgt also korrekt, das Ergebnis wird aber offenbar in einem 8-Bit-Feld abgelegt und läuft ab 256 s über. Werte bis einschließlich 4 (240 s) funktionieren einwandfrei, weshalb der Fehler leicht zu übersehen ist.
Die statisch parametrierte Ablaufzeit ist nicht betroffen — sie läuft auch mit Werten deutlich über 255 s korrekt (Gegenprobe unten). Der Fehler ist damit auf die Wertübernahme über das KO isoliert.
Das Beispiel aus der Modulbeschreibung („Zahlenwert 5 → 5 Minuten") ist selbst betroffen: Wert 5 ergibt 300 mod 256 = 44 Sekunden.
Erwartetes Verhalten
Ein über „Start mit Zeit" empfangener Wert n startet den Zeitgeber mit n Minuten Laufzeit.
Tatsächliches Verhalten
Primärmessungen (Zeit zwischen zwei „Ende"-Impulsen eines selbst-retriggernden Zeitgebers; Auflösung ±20 ms):
| Wert |
erwartet |
(Wert×60) mod 256 |
gemessen |
| 1 |
60 s |
60 |
60,0 s ✅ |
| 2 |
120 s |
120 |
120,0 s ✅ |
| 4 |
240 s |
240 |
240,0 s ✅ |
| 15 |
900 s |
132 |
132,01 s ❌ |
| 29 |
1740 s |
204 |
204,01 s ❌ |
| 60 |
3600 s |
16 |
16,016 s ❌ |
Die Werte 15, 29 und 60 wurden über mehrere Stunden bzw. Zyklen gemessen, das Intervall war jeweils auf ±0,02 s konstant.
Ergänzende Messungen an zwei weiteren Count-Down-Kanälen derselben Applikation (Laufzeit über das „Läuft"-Ausgangs-KO gemessen, daher ~1 s Messunsicherheit):
| Wert |
erwartet |
(Wert×60) mod 256 |
gemessen |
| 10 |
600 s |
88 |
86,9 s / 86,8 s / 86,9 s |
| 120 |
7200 s |
32 |
31,8 s / 31,8 s / 31,9 s / 31,8 s |
| 255 |
15300 s |
196 |
≈196 s |
Der Effekt tritt bei allen Count-Down-Kanälen der Applikation gleichermaßen auf, unabhängig von deren sonstiger Parametrierung.
Gegenprobe: statische Ablaufzeit ist korrekt
Am selben Kanal wurde das Eingangs-KO „Start mit Zeit" deaktiviert und stattdessen die statische Ablaufzeit auf 5 Minuten parametriert. Gestartet wurde über das KO „Stopp/Neustart" (= 1):
|
|
| Start-Telegramm |
21:18:12,618 |
| „Ende"-Impuls |
21:23:12,093 |
| Laufzeit |
299,47 s ✅ |
Bei einem generellen 8-Bit-Limit der Laufzeitrechnung wären 300 mod 256 = 44 s zu erwarten gewesen. Die interne Zeitverwaltung beherrscht Laufzeiten > 255 s also problemlos — nur der Pfad über das KO ist betroffen.
Ausgeschlossene Ursachen
- Fehlparametrierung: Zwei Count-Down-Kanäle mit identischen Einstellungen (beide „Start mit Zeit = Einheit Minuten") zeigen dasselbe Verhalten. Screenshots liegen bei Bedarf vor.
- Mehrfachbelegung des KO: An dem betroffenen KO hängen zwei Gruppenadressen (direkte Parametervorgabe + Self-Retrigger). Das erste Intervall nach direkter Vorgabe ist identisch mit den Folgeintervallen — die zweite Adresse ist ohne Einfluss.
- Vorgeschaltete Logik: Die Formel rechnet exakt mit dem gesendeten Wert; ein verfälschter Wert würde sie nicht erfüllen.
- Wertebereich: Der Wert wird als Zahl korrekt empfangen (DPT 5.010, 0…255).
Reproduktion
- Count-Down Zeitgeber anlegen, Start mit Zeit = „Einheit Minuten", Ausgang „Auslöser / Ende" aktivieren und auf eine Gruppenadresse legen.
- Auf das KO „Start mit Zeit" den Wert 4 senden → „Ende" kommt nach 240 s (korrekt).
- Auf dasselbe KO den Wert 5 senden → „Ende" kommt nach 44 s statt 300 s.
- Deutlicher: Wert 60 → „Ende" nach 16 s statt 3600 s.
Auswirkung in der Praxis
Da auch der Maximalwert 255 überläuft (→ 196 s), lässt sich über das KO überhaupt keine Laufzeit oberhalb von 4:15 min einstellen. Für Anwendungen mit längeren Zeiten ist die GA-Steuerbarkeit damit derzeit nicht nutzbar; als Workaround bleibt nur die statische Parametrierung.
Umgebung
- Gerät / Applikation: OpenKNX Raumcontroller, Programmversion 5.4
- OFM-FunctionBlocks ModuleVersion: 1.0
- ETS-Version: 6.4.1 Professional
Gerne liefere ich weitere Messreihen oder Screenshots der Parametrierung nach.
Zusammenfassung
Beim Count-Down Zeitgeber wird eine über das KO „Start mit Zeit" (konfiguriert als Einheit Minuten, DPT 5.010) empfangene Laufzeit für Werte größer als 4 Minuten falsch übernommen. Die tatsächliche Laufzeit folgt reproduzierbar der Beziehung:
Die Umrechnung Minuten → Sekunden erfolgt also korrekt, das Ergebnis wird aber offenbar in einem 8-Bit-Feld abgelegt und läuft ab 256 s über. Werte bis einschließlich 4 (240 s) funktionieren einwandfrei, weshalb der Fehler leicht zu übersehen ist.
Die statisch parametrierte Ablaufzeit ist nicht betroffen — sie läuft auch mit Werten deutlich über 255 s korrekt (Gegenprobe unten). Der Fehler ist damit auf die Wertübernahme über das KO isoliert.
Das Beispiel aus der Modulbeschreibung („Zahlenwert 5 → 5 Minuten") ist selbst betroffen: Wert 5 ergibt 300 mod 256 = 44 Sekunden.
Erwartetes Verhalten
Ein über „Start mit Zeit" empfangener Wert n startet den Zeitgeber mit n Minuten Laufzeit.
Tatsächliches Verhalten
Primärmessungen (Zeit zwischen zwei „Ende"-Impulsen eines selbst-retriggernden Zeitgebers; Auflösung ±20 ms):
(Wert×60) mod 256Die Werte 15, 29 und 60 wurden über mehrere Stunden bzw. Zyklen gemessen, das Intervall war jeweils auf ±0,02 s konstant.
Ergänzende Messungen an zwei weiteren Count-Down-Kanälen derselben Applikation (Laufzeit über das „Läuft"-Ausgangs-KO gemessen, daher ~1 s Messunsicherheit):
(Wert×60) mod 256Der Effekt tritt bei allen Count-Down-Kanälen der Applikation gleichermaßen auf, unabhängig von deren sonstiger Parametrierung.
Gegenprobe: statische Ablaufzeit ist korrekt
Am selben Kanal wurde das Eingangs-KO „Start mit Zeit" deaktiviert und stattdessen die statische Ablaufzeit auf 5 Minuten parametriert. Gestartet wurde über das KO „Stopp/Neustart" (= 1):
Bei einem generellen 8-Bit-Limit der Laufzeitrechnung wären 300 mod 256 = 44 s zu erwarten gewesen. Die interne Zeitverwaltung beherrscht Laufzeiten > 255 s also problemlos — nur der Pfad über das KO ist betroffen.
Ausgeschlossene Ursachen
Reproduktion
Auswirkung in der Praxis
Da auch der Maximalwert 255 überläuft (→ 196 s), lässt sich über das KO überhaupt keine Laufzeit oberhalb von 4:15 min einstellen. Für Anwendungen mit längeren Zeiten ist die GA-Steuerbarkeit damit derzeit nicht nutzbar; als Workaround bleibt nur die statische Parametrierung.
Umgebung
Gerne liefere ich weitere Messreihen oder Screenshots der Parametrierung nach.