OnDelay (Einschaltverzögerung)

Dieser Baustein gehört zum Paket „Calculate/Time (Berechnung/Zeit)“.

Paket-Preis: 22,50€

Kurzbeschreibung

Diese Funktion dient dazu, ein Signal (z. B. ein Schaltbefehl) erst nach einer vorgegebenen Verzögerungszeit auszulösen. Sobald die Aktivierung erfolgt und ein Eingangssignal erkannt wird, beginnt ein Countdown. Nach Ablauf dieser Zeit wird ein Ausgang aktiviert. Die Funktion kann automatisch wieder deaktiviert werden und bietet eine Rückmeldung über den verbleibenden Countdown sowie eine Protokollierung des Ablaufs.

Besonderheit

  • Funktionale Flexibilität:
    Die Verzögerungszeit und die Aktualisierungsrate können dynamisch angepasst werden. Dadurch kann das Verhalten flexibel an unterschiedliche Anwendungen angepasst werden.

  • Fehlerbehandlung:
    Es sind interne Protokollierungen bei der Ausführung und Terminplanung enthalten. Fehler werden automatisch erkannt und als Text ausgegeben.

  • Grenzen und Validierungen:
    Eine Prüfung auf gültige Zustände erfolgt intern. Eine explizite Begrenzung von Minimal- oder Maximalwerten wird im Code nicht vorgenommen.

Die Funktion ist darauf ausgelegt, ein Ausgangssignal erst dann freizugeben, wenn ein definierter Zeitraum nach Aktivierung vergangen ist. Sie eignet sich besonders gut für Anwendungen, bei denen ein verzögertes Schalten erforderlich ist, wie z. B. das Einschalten von Beleuchtung nach einer definierten Vorlaufzeit oder die Verzögerung beim Starten von Maschinenprozessen.

Nach dem Aktivieren der Funktion beginnt die Überwachung des Eingangssignals. Ist das Eingangssignal aktiv, wird ein Countdown in der definierten Verzögerungszeit gestartet. Die verbleibende Zeit bis zur Schaltung wird fortlaufend aktualisiert und über einen Ausgang ausgegeben. Sobald der Countdown abgelaufen ist, wird das Ausgangssignal gesetzt. Zeitgleich erfolgt eine Rückmeldung darüber, dass das Signal nun aktiv ist.

Wird die Funktion während des Countdowns deaktiviert, wird der Countdown abgebrochen, und der Ausgang bleibt inaktiv. Alle Abläufe werden in einem Protokoll festgehalten, das sowohl erfolgreiche als auch fehlerhafte Abläufe dokumentiert.

Die Aktualisierung des Countdowns erfolgt regelmäßig in einem individuell einstellbaren Intervall, um eine möglichst präzise Anzeige der verbleibenden Zeit zu ermöglichen.

Die Funktion verwendet eine interne Terminplanung, die laufend prüft, ob die Verzögerungszeit abgelaufen ist. Die Planung wird bei Deaktivierung gestoppt und bei neuer Aktivierung erneut gestartet. Fehler innerhalb der Zeitsteuerung und Terminplanung werden erkannt und in Protokollmeldungen aufgezeichnet.

  • Activate (bool):
    Aktiviert oder deaktiviert den Baustein.
  • Input (bool):
    Das Signal, das verzögert weitergeleitet werden soll. Erst wenn dieses aktiv ist und „Activate“ ebenfalls aktiviert ist, startet der Countdown.
  • Delay (timespan): 
    Die Dauer der Verzögerung, bevor das Ausgangssignal aktiviert wird. Standardmäßig 15 Minuten.
    (Dieser Wert kann individuell angepasst werden.)
  • UpdateTime (timespan):
    Gibt an, wie oft der Countdown aktualisiert werden soll. Standardmäßig 10 Minuten.
    (Dieser Wert kann individuell angepasst werden.)
  • OutputTrue (bool):
    Wird einmalig auf true gesetzt, wenn die Verzögerungszeit abgelaufen ist und die Schaltung tatsächlich ausgeführt wurde.
    → Zeigt also konkret: „Ausgang wurde erfolgreich aktiviert“
  • OutputFalse (bool):
    Bleibt auf true, solange der Ausgang noch nicht aktiviert wurde, also die Verzögerungszeit noch läuft.
    → Wird auf false gesetzt, sobald die Schaltung erfolgt ist.
    → Zeigt also: „Ausgang ist noch nicht aktiv“
  • Output (bool):
    Zeigt an, ob die Verzögerung abgelaufen ist und die Schaltung erfolgt ist.
    true, wenn die eingestellte Zeit überschritten wurde.
    false, wenn sich die Funktion noch in der Wartezeit befindet.
  • Countdown (timespan):
    Gibt an, wie viel Zeit noch verbleibt, bis das Ausgangssignal gesetzt wird.
  • LogExecute (string):
    Enthält technische Protokolle der Hauptfunktion, insbesondere über Aktivierungen, Deaktivierungen und Fehler bei der Verarbeitung.
  • LogSchedule (string):
    Dokumentiert die Zeitplanung, das Setzen des Ausgangs und eventuelle Fehler in der Zeitsteuerung.

Beispiel 1 – Licht nach 10 Minuten Inaktivität automatisch ausschalten:

In einem Besprechungsraum wird das Licht manuell eingeschaltet (z. B. über einen Taster oder durch die Gebäudeleittechnik).
Ein Bewegungsmelder erkennt die Anwesenheit von Personen – aber schaltet das Licht nicht selbstständig ein.
Stattdessen soll er nur dafür sorgen, dass das Licht 10 Minuten nach der letzten Bewegung automatisch ausgeschaltet wird, um Energie zu sparen.

  • Eingabe:
    • Activate: true
    • Input: false
      → Der Bewegungsmelder erkennt aktuell keine Bewegung mehr. Das System bereitet sich auf das Ausschalten vor.
    • Delay: 10min
    • UpdateTime: 30s
  • Ausgabe:
    • Output: false
      → Das Ausschalten ist geplant, aber noch nicht ausgeführt. Das Licht bleibt an.
    • OutputTrue: false
      → Die Schaltung zum Ausschalten wurde noch nicht ausgeführt.
    • OutputTrue: true
      → Signalisiert, dass das Ausschalten noch aussteht.
    • Countdown: Startet bei 10 Minuten und zählt herunter (z. B. 9:30, 9:00, …) bis auf 0. Wird alle 30 Sekunden aktualisiert.

 

🔁 Was passiert, wenn während der Verzögerung wieder Bewegung erkannt wird?

Wenn der Bewegungsmelder innerhalb der 10 Minuten wieder aktiv wird (→ Input wird wieder true):

  • Der Countdown wird abgebrochen.

  • Die Ausschaltung wird nicht durchgeführt.

  • Das Licht bleibt an.

  • Das System wartet erneut, ob wieder 10 Minuten ohne Bewegung vergehen.


🕒 Nach Ablauf der 10 Minuten (ohne erneute Bewegung):

  • Output:
    true
    → Das Ausschalt-Signal wird jetzt ausgelöst. Das Licht wird ausgeschaltet.

  • OutputTrue:
    true
    → Bestätigung, dass die Schaltung erfolgt ist.

  • OutputFalse:
    false
    → Die Ausschaltung wurde durchgeführt – kein weiterer Countdown aktiv.

  • Countdown:
    00:00:00
    → Verzögerung ist abgelaufen.


📝 Zusätzliche Hinweise:

  • Diese Art von Ausschaltverzögerung ist energieeffizient und ideal für Räume mit unregelmäßiger Nutzung.

  • Besonders sinnvoll dort, wo man nicht möchte, dass das Licht bei jeder kleinen Bewegung automatisch eingeschaltet wird – aber dennoch sicherstellen möchte, dass es nach dem Verlassen auch wirklich ausgeht.

Warum startet der Countdown nicht, obwohl das Eingangssignal aktiv ist?

Der Countdown startet nur, wenn sowohl die Aktivierung eingeschaltet ist und das Eingangssignal aktiv ist. Prüfen Sie beide Eingänge.

Was passiert, wenn das Eingangssignal vor Ablauf der Verzögerung wieder deaktiviert wird?

In diesem Fall wird der Countdown gestoppt, der Ausgang wird nicht aktiviert, und ein entsprechender Eintrag im Protokoll erfolgt.

Kann ich die Countdown-Aktualisierungszeit verändern?

Ja, über den Eingang „UpdateTime“ können Sie festlegen, in welchem Intervall der Countdown neu berechnet wird. Standard ist 10 Minuten, eine Sekunde ist auch möglich.

  • Version 3.0.15
    • Bugfixes and Improvements
  • Version 3.0.10
    • First Release

Baustein-Support

Wenn Sie X1-Logik-Baustein-Support benötigen, senden Sie uns bitte zusätzlich den Log (LogExecute und LogSchedule, welcher als Ausgang des Bausteins ausgegeben wird) und eine detaillierte Beschreibung des Problems zu!