Introduction

IEC 62386-306 describes DALI control devices that are defined as general purpose sensors.

DALI control devices according to IEC 62386-306 correspond to instance type 6. The type of an instance can be queried with the function block FB_DALI103QueryInstanceType.

Input value

The function block FB_DALI103QueryInputValue can be used to query the current state (inputValue) of the general purpose sensor.

Timer

IEC 62386-306 defines various timers for triggering device-specific events.

The event for the instance type 6 in conjunction with the associated timers is explained below.

The respective time is calculated from

Introduction 1:

Time

Multiplier

Preset value of the multiplier

Tincr Incremental value

Tdefault Default value

Tmin lowest possible set value

Tmax highest possible set value

 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

Introduction 2:

Set the times so that as few events as possible are sent. If too many events are sent, this can have a negative effect on the behavior of the application.

Event filter

DALI control devices are capable of sending different events. The event filter consists of an 8-bit value, where each individual bit defines whether an event is blocked or released. The event is released if the corresponding bit is set, otherwise it is blocked.

The function block FB_DALI103QueryEventFilter can be used to read the value of the event filter; the function block FB_DALI103SetEventFilter can be used to write to it.

The event filter (see eventFilter) must be configured accordingly in order to trigger time-controlled events.

 Bit

 Event

 Description

 0

 Measured value report

 Measured Value Report event activated.

 1

 Alarm 0 activated

 Alarm 0 activated-Event is active.

 2

 Alarm 0 deactivated

 Alarm 0 deactivated-Event is active.

 3

 Alarm 1 activated

 Alarm 1 activated-Event is active.

 4

 Alarm 1 deactivated

 Alarm 1 deactivated-Event is active.

 5

 Alarm 2 activated

 Alarm 2 activated-Event is active.

 6

 Alarm 2 deactivated

 Alarm 2 deactivated-Event is active.

 7

 Alarm 3 activated

 Alarm 3 activated-Event is active.

 8

 Alarm 3 deactivated

 Alarm 3 deactivated-Event is active.

 9…15

 -

 Reserved

Input Notification event

With instance type 6 there is the possibility to release the event with the help of the event filter. The event is sent from the DALI control device by a Input Notification and can be received with FB_DALIGetInputNotification.

The events are listed in the following table.

Event Name

Event Information

Description

Measured Value

2#1X_XXXX_XXXX

The event contains the current measured value (9 bits).

If the resolution is greater than 9, only a change of the input value is communicated with this event. This can then be read with FB_DALI103QueryInputValue.

If the resolution is less than or equal to 9, this event contains the current input value.

Alarm 0

2#00_XXXX_XX00

alarmIsActivated[0] is 0 and has not changed since the last alarm event transmission.

2#00_XXXX_XX01

alarmIsActivated[0] is 1 and has not changed since the last alarm event transmission.

2#00_XXXX_XX10

alarmIsActivated[0] is 0 and has changed since the last alarm event transmission.

2#00_XXXX_XX11

alarmIsActivated[0] is 1 and has changed since the last alarm event transmission.

Alarm 1

2#00_XXXX_00XX

alarmIsActivated[1] is 0 and has not changed since the last alarm event transmission.

2#00_XXXX_01XX

alarmIsActivated[1] is 1 and has not changed since the last alarm event transmission.

2#00_XXXX_10XX

alarmIsActivated[1] is 0 and has changed since the last alarm event transmission.

2#00_XXXX_11XX

alarmIsActivated[1] is 1 and has changed since the last alarm event transmission.

Alarm 2

2#00_XX00_XXXX

alarmIsActivated[2] is 0 and has not changed since the last alarm event transmission.

2#00_XX01_XXXX

alarmIsActivated[2] is 1 and has not changed since the last alarm event transmission.

2#00_XX10_XXXX

alarmIsActivated[2] is 0 and has changed since the last alarm event transmission.

2#00_XX11_XXXX

alarmIsActivated[2] is 1 and has changed since the last alarm event transmission.

Alarm 3

2#00_00XX_XXXX

alarmIsActivated[3] is 0 and has not changed since the last alarm event transmission.

2#00_01XX_XXXX

alarmIsActivated[3] is 1 and has not changed since the last alarm event transmission.

2#00_10XX_XXXX

alarmIsActivated[3] is 0 and has changed since the last alarm event transmission.

2#00_11XX_XXXX

alarmIsActivated[3] is 1 and has changed since the last alarm event transmission.

The points marked with X can either assume the value 0 or 1 and thus combine several events or output the measured value.

Hysteresis

To avoid too frequent, disturbing changes of the output value, it is possible to define a hysteresis for DALI devices with instance type 6.

A percentage value can be specified via the hysteresis variable for the calculation of a hysteresis band.

The function block FB_DALI306QueryHysteresis can be used to query the value, the function block FB_DALI306SetHysteresis can be used to specify it.

As the percentage hysteresis can lead to strong fluctuations with a low measured value, a minimum hysteresis can be specified via the variable hysteresisMin. The minimum hysteresis is an absolute value with a range from 0 to 255.

The reset value depends on the resolution of the input values specified by the vendor.

 resolution

 Vendor-dependent reset value

 1…6

 0

 7

 1

 8

 2

 9

 5

 10

 10

 11

 20

 12

 40

 13

 81

 14

 163

 > 15

 255

The function block FB_DALI306QueryHysteresisMin can be used to query the value, the function block FB_DALI306SetHysteresisMin can be used to specify it manually.

Deadtime timer

Several events may not be sent from an instance at the same time. To avoid this a dead time (Tdeadtime) can be activated (see tDeadtime).

If the Deadtime Timer is active, an instance should not send any further events until the timer Tdeadtime has expired. The timer is restarted after the sending of an event.

If a new event occurs before the current event is sent, then the new event replaces the existing one. This can happen if the bus is not available or if the timer TDeadtime is in use.

If Treport < Tdeadtime, then Treport = Tdeadtime, regardless of which value Treport had before.

If TalarmReport < Tdeadtime, then TalarmReport = Tdeadtime, regardless of the previous value of TalarmReport.