FB_DALIV2EmergencyLightingDT
Dieser Baustein dient zur Dauer-Prüfung (Duration-Test) eines DALI-Notbeleuchtungs-Gerätes. Die Testergebnisse werden zum Test-Ende über einen FIFO-Buffer (IN-OUT-Variable fbStringRingBuffer) geschrieben, welcher seinerseits durch den Baustein FB_DALIV2FileLogging() in eine Datei ausgelesen wird. Ereignisse, die den Test verhindern oder unterbrechen werden zusätzlich zur Ergebnis-Meldung an den Ausgängen bError und nErrorID angezeigt.
Folgende Ereignisse verhindern die Ausführung eines Dauer-Tests:
- Das Gerät läuft im automatischen Dauertest-Modus, d.h. ein Testintevall ist im Gerät programmiert.
- Das Gerät führt gerade einen Test aus bzw. ein Test steht automatisch bevor (Funktionstest oder Dauertest)
- Die Notfall-Batterie ist nicht vollständig geladen
- Das Gerät befindet sich zu Testbeginn nicht in der Notfall-Bereitschaft ("normal-mode")
Zu den Ereignissen, die einen begonnenen Dauer-Test unterbrechen gehören diese:
- Das Gerät hat nach dem Teststart den Dauer-Test-Modus nicht erreicht
- Der Test ist nicht richtig beendet worden, d.h. das Gerät befindet sich nach dem Teststart und einer gewissen Wartezeit irgendwann weder im Test-Modus noch (wieder zurück) im Notfall-Bereitschafts-Modus ("normal-mode")
- Ein DALI-Kommando wurde fehlerhaft abgearbeitet
- Die Timeout-Zeit ist abgelaufen
![]() | Dieser Baustein ist nur in der PC-Version der DALIV2-Bibliothek verfügbar. |
![]() | Während eine Datei geöffnet ist, ist es dem Log-Baustein nicht möglich, Daten in diese Datei zu schreiben! |
VAR_INPUT
bStart : BOOL;
bStop : BOOL;
nAddr : BYTE;
sController : STRING(20);
sLineName : STRING(10);
sDescription : STRING(20);
sLocation : STRING(20);
stDateTime : TIMESTRUCT;
tTimeout : TIME := t#120m;
bStart: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.
bStop: Ist ein Dauertest erfolgreich gestartet worden, so wird intern der Emergency-Mode und der Emergency-Status zyklisch abgefragt, um zu beurteilen, wann der Test beendet ist und ob Fehler während des Tests auftreten. Eine positive Flanke am bStop-Eingang bricht den Dauertest in genau dieser Phase ab und gibt eine entsprechende Meldung in der Log-Datei. Dies ist dann sinnvoll, wenn lediglich beurteilt werden soll ob die Notbeleuchtung eine bestimmte Zeit lang (bis zum Zeitpunkt des Stoppens) läuft.
nAddr: Adresse des zu testenden Gerätes.
sController: Controller-Zugehörigkeit des DALI-Gerätes. Dient zur Beschreibung in der Log-Datei.
sLineName: Linien-Zugehörigkeit des DALI-Gerätes. Dient zur Beschreibung in der Log-Datei.
sDescription: Weitere ergänzende Beschreibung des Gerätes in der Log-Datei.
sLocation: Beschreibung des Einbauortes.
stDateTime: Eingang für aktuelles Datum und Zeit.
tTimeout: Zeit in welcher der Test abgeschlossen sein muss.
VAR_OUTPUT
tElapsedTestTime : TIME;
nEmergencyMode : BYTE;
nEmergencyStatus : BYTE;
bBusy : BOOL;
bError : BOOL;
nErrorId : UDINT;
tElapsedTestTime: Testdauer. Bei steigender Flanke an bStart wird die Zeitausgabe auf 0 gesetzt und läuft dann solange hoch, wie der Baustein aktiv ist. Mit einer fallenden Flanke an bBusy behält der Ausgang seinen derzeitigen Wert, sodass auch nach der Bausteinabarbeitung die Testdauer noch zur Verfügung steht.
nEmergencyMode: Während des Tests wird an diesem Ausgang der derzeit intern abgefragte Emergency-Mode des DALI-Gerätes ausgegeben.
nEmergencyStatus: dto. für Emergency-Status.
bBusy: Bei der Aktivierung des Bausteins wird der Ausgang gesetzt und bleibt so lange aktiv bis der Befehl abgearbeitet wurde.
bError: Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung des Tests ein Fehler, wie oben beschrieben, aufgetreten ist. Durch das erneute Ausführen eines Tests wird dieser Ausgang zurückgesetzt.
nErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines neuen Tests auf 0 zurückgesetzt. Siehe Fehlercodes.
VAR_IN_OUT
stCommandBuffer : ST_DALIV2CommandBuffer;
fbStringRingBuffer : FB_MemRingBuffer;
stCommandBuffer: Verweis auf die interne Struktur zur Kommunikation mit den Bausteinen FB_DALIV2Communication() (KL6811) oder FB_KL6821Communication() (KL6821).
fbStringRingBuffer: Verweis auf den FIFO-Buffer, in denen die Log-Einträge abgelegt werden.
Ein Beispielprogramm zeigt die richtige Belegung der Eingänge sowie die Verknüpfung zum Logger-Baustein FB_DALIV2FileLogging(). Dabei werden 3 Vorschaltgeräte und dessen Lampen jeweils am 8. jeden Monats getestet.
Die Log-Datei würde dann für die 3 adressierten Geräte beispielsweise folgendes anzeigen:

Am 8. Juli sind noch keine der Vorschaltgeräte eingebaut, was zu DALI-Kommando-Fehlern bei allen Geräten führt.
Am 8. August ist immerhin schon die erste Lampe angeschlossen, nur die Batterie ist noch nicht voll geladen.
Am 8. September schließlich sind alle Geräte betriebsbereit und haben ihren ersten Dauertest erfolgreich abgeschlossen.
Es ist zu beachten, dass beim Öffnen der Datei ggf. die Spaltenbreite zur Sichtbarkeit der Daten erweitert werden muss.