Einleitung
Die IEC 62386-306 beschreibt DALI-Steuergeräte, die als Universalsensoren definiert werden.
DALI-Steuergeräte nach IEC 62386-306 entsprechen dem Instanz-Typ 6. Der Typ einer Instanz kann mit dem Baustein FB_DALI103QueryInstanceType abgefragt werden.
Eingangswert
Über den Baustein FB_DALI103QueryInputValue kann der aktuelle Zustand (inputValue) des Universalsensors abgefragt werden.
Timer
Die IEC 62386-306 definiert verschiedene Timer zum Auslösen gerätespezifischer Ereignisse.
Im Folgenden werden die Ereignisse für den Instanz-Typ 6 in Zusammenhang mit den dazugehörigen Timern erläutert.
Die jeweilige Zeit errechnet sich aus

Time (Zeitangabe) | Multiplier | Voreinstellwert des Multipliers | Tincr Inkrementalwert | Tdefault Standardwert | Tmin niedrigst- möglicher Einstellwert | Tmax höchst- möglicher Einstellwert |
---|---|---|---|---|---|---|
Tdeadtime | tDeadtime | 30 | 50 ms | 1,5 s | 0 s | 12,75 s |
Treport | tReport | 30 | 5 s | 2 min 30 s | 5 s | 21 min 15 s |
TalarmReport | tAlarmReport | 30 | 5 s | 2 min 30 s | 5 s | 21 min 15 s |
![]() | Stellen Sie die Zeiten so ein, dass möglichst wenige Ereignisse versendet werden. Werden zu viele Ereignisse versendet, kann sich das negativ auf das Verhalten der Anwendung auswirken. |
Ereignis-Filter
DALI-Steuergeräte sind in der Lage verschiedene Ereignisse zu versenden. Der Ereignis-Filter besteht aus einem 8 Bit-Wert, wobei jedes einzelne Bit festlegt, ob ein Ereignis gesperrt oder freigegeben wird. Ist das entsprechende Bit gesetzt, so ist das Ereignis freigegeben, sonst ist es gesperrt.
Mit dem Baustein FB_DALI103QueryEventFilter kann der Wert des Ereignis-Filters gelesen und mit dem Baustein FB_DALI103SetEventFilter beschrieben werden.
Zum Auslösen zeitgesteuerter Ereignisse muss der Ereignis-Filter (siehe eventFilter) entsprechend konfiguriert sein.
Bit | Ereignis | Beschreibung |
---|---|---|
0 | Measured value report | Measured Value Report Ereignis aktiviert. |
1 | Alarm 0 activated | Alarm 0 aktiviert-Ereignis ist aktiv. |
2 | Alarm 0 deactivated | Alarm 0 deaktiviert-Ereignis ist aktiv. |
3 | Alarm 1 activated | Alarm 1 aktiviert-Ereignis ist aktiv. |
4 | Alarm 1 deactivated | Alarm 1 deaktiviert-Ereignis ist aktiv. |
5 | Alarm 2 activated | Alarm 2 aktiviert-Ereignis ist aktiv. |
6 | Alarm 2 deactivated | Alarm 2 deaktiviert-Ereignis ist aktiv. |
7 | Alarm 3 activated | Alarm 3 aktiviert-Ereignis ist aktiv. |
8 | Alarm 3 deactivated | Alarm 3 deaktiviert-Ereignis ist aktiv. |
9…15 | - | Reserviert |
Ereignis Input Notification
Beim Instanz-Typ 6 besteht die Möglichkeit mit Hilfe des Ereignisfilters das Ereignis freizugeben. Das Ereignis wird vom DALI-Steuergerät durch eine Input Notification gesendet und kann mit FB_DALIGetInputNotification empfangen werden.
In der folgenden Tabelle sind die Ereignisse aufgeführt.
Ereignis Name |
Ereignis Information |
Beschreibung |
---|---|---|
Measured Value |
2#1X_XXXX_XXXX |
Das Ereignis enthält den aktuellen Messwert (9 Bit). Ist die Auflösung größer 9, so wird mit diesem Ereignis nur eine Änderung des Eingangswert mitgeteilt. Dieser kann anschließend mit FB_DALI103QueryInputValue gelesen werden. Ist die Auflösung kleiner oder gleich 9, so enthält dieses Ereignis den aktuellen Eingangswert. |
Alarm 0 |
2#00_XXXX_XX00 |
alarmIsActivated[0] ist 0 und hat sich seit der letzten Alarm Event Übermittlung nicht geändert. |
2#00_XXXX_XX01 |
alarmIsActivated[0] ist 1 und hat sich seit der letzten Alarm Event Übermittlung nicht geändert. | |
2#00_XXXX_XX10 |
alarmIsActivated[0] ist 0 und hat sich seit der letzten Alarm Event Übermittlung geändert. | |
2#00_XXXX_XX11 |
alarmIsActivated[0] ist 1 und hat sich seit der letzten Alarm Event Übermittlung geändert. | |
Alarm 1 |
2#00_XXXX_00XX |
alarmIsActivated[1] ist 0 und hat sich seit der letzten Alarm Event Übermittlung nicht geändert. |
2#00_XXXX_01XX |
alarmIsActivated[1] ist 1 und hat sich seit der letzten Alarm Event Übermittlung nicht geändert. | |
2#00_XXXX_10XX |
alarmIsActivated[1] ist 0 und hat sich seit der letzten Alarm Event Übermittlung geändert. | |
2#00_XXXX_11XX |
alarmIsActivated[1] ist 1 und hat sich seit der letzten Alarm Event Übermittlung geändert. | |
Alarm 2 |
2#00_XX00_XXXX |
alarmIsActivated[2] ist 0 und hat sich seit der letzten Alarm Event Übermittlung nicht geändert. |
2#00_XX01_XXXX |
alarmIsActivated[2] ist 1 und hat sich seit der letzten Alarm Event Übermittlung nicht geändert. | |
2#00_XX10_XXXX |
alarmIsActivated[2] ist 0 und hat sich seit der letzten Alarm Event Übermittlung geändert. | |
2#00_XX11_XXXX |
alarmIsActivated[2] ist 1 und hat sich seit der letzten Alarm Event Übermittlung geändert. | |
Alarm 3 |
2#00_00XX_XXXX |
alarmIsActivated[3] ist 0 und hat sich seit der letzten Alarm Event Übermittlung nicht geändert. |
2#00_01XX_XXXX |
alarmIsActivated[3] ist 1 und hat sich seit der letzten Alarm Event Übermittlung nicht geändert. | |
2#00_10XX_XXXX |
alarmIsActivated[3] ist 0 und hat sich seit der letzten Alarm Event Übermittlung geändert. | |
2#00_11XX_XXXX |
alarmIsActivated[3] ist 1 und hat sich seit der letzten Alarm Event Übermittlung geändert. |
Die mit X markierten Stellen können entweder den Wert 0 oder 1 annehmen und so mehrere Ereignisse miteinander kombinieren oder den Messwert ausgeben.
Hysterese
Zur Vermeidung von zu häufiger, störender Änderung des Ausgangswertes ist es möglich bei DALI-Geräten mit dem Instanz-Typ 6 eine Hysterese zu definieren.
Über die Variable hysteresis kann ein prozentualer Wert zur Errechnung eines Hysterese-Bereichs vorgegeben werden.
Mit dem Baustein FB_DALI306QueryHysteresis kann der Wert abgefragt und mit FB_DALI306SetHysteresis vorgegeben werden.
Da bei einem niedrigen Messwert die prozentuale Hysterese zu starken Schwankungen führen kann, kann über die Variable hysteresisMin eine minimale Hysterese vorgegeben werden. Bei der minimalen Hysterese handelt es sich um einen Absolutwert, mit einem Wertebereich von 0 bis 255.
Der Rücksetzwert hängt von der vom Hersteller vorgegebenen Auflösung der Eingangswerte ab.
resolution | Herstellerabhängiger Rücksetzwert |
---|---|
1…6 | 0 |
7 | 1 |
8 | 2 |
9 | 5 |
10 | 10 |
11 | 20 |
12 | 40 |
13 | 81 |
14 | 163 |
> 15 | 255 |
Mit dem Baustein FB_DALI306QueryHysteresisMin kann der Wert abgefragt und mit FB_DALI306SetHysteresisMin manuell vorgegeben werden.
Deadtime Timer
Mehrere Events dürfen nicht gleichzeitig aus einer Instanz gesendet werden, um dies zu vermeiden kann eine Totzeit (Tdeadtime) aktiviert werden (siehe tDeadtime).
Wenn der Deadtime Timer aktiv ist, soll eine Instanz kein weiteres Ereignis senden, bis der Timer Tdeadtime abgelaufen ist. Nach dem Versenden eines Ereignisses wird der Timer neu gestartet.
Falls ein neues Ereignis auftritt, bevor das aktuelle Ereignis gesendet wurde, so ersetzt das neue Ereignis das bisherige. Dieses kann geschehen, wenn der Bus nicht verfügbar ist oder mit dem Timer TDeadtime gearbeitet wird.
Wenn Treport < Tdeadtime, dann soll Treport = Tdeadtime sein, egal welchen Wert Treport vorher hatte.
Wenn TalarmReport < Tdeadtime, dann soll TalarmReport = Tdeadtime sein, egal welchen Wert TalarmReport vorher hatte.