FB_DALIV2EmergencyLightingDT

FB_DALIV2EmergencyLightingDT 1:

Dieser Baustein dient zur Dauer-Prüfung (Duration-Test) eines DALI-Notbeleuchtungs-Gerätes. Die Testergebnisse werden zum Ende des Tests ü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 Dauertests:

  • Das Gerät läuft im automatischen Dauertestmodus, d. h. ein Testintervall 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 Dauertest unterbrechen gehören diese:

  • Das Gerät hat nach dem Teststart den Dauertestmodus 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 Testmodus noch (wieder zurück) im Notfall-Bereitschaftsmodus („normal-mode“).
  • Ein DALI-Kommando wurde fehlerhaft abgearbeitet.
  • Die Timeout-Zeit ist abgelaufen.

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 der 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_KL6811Communication() (KL6811) oder FB_KL6821Communication() (KL6821).

fbStringRingBuffer: Verweis auf den FIFO-Buffer, in denen die Log-Einträge abgelegt werden.

Während eine Datei geöffnet ist, ist es dem Log-Baustein nicht möglich, Daten in diese Datei zu schreiben.

Voraussetzungen

Entwicklungsumgebung

erforderliche SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_DALI ab v3.4.3.0