FB_DALI_Lunatone_CS_THP

The function block FB_DALI_Lunatone_CS_THP represents the DALI-2 sensor CS Integration THP from Lunatone.
This outputs an occupancy signal (instance 0), a brightness value (instance 1), a temperature value (instance 2), a relative humidity value (instance 3) and an air pressure value (instance 4).
The order number is stored in memory bank 0 from offset 143 (MSB) to offset 146 (LSB). The addition of the order number (e.g. "-HS") is in the ASCII code from offset 147 to 162.
For information on the exact functions of the individual instances, please refer to the vendor's device documentation.
Further information on the supported instance types can be found here:
Part 303 (occupancy sensors) – Introduction
Part 304 (light sensors) – Introduction
The existing parameters can be overwritten by changing the properties listed below. All parameters are written to the DALI control device by a positive edge at bInitialize and stored there.
The outputs with the output values of the DALI device only contain valid values if the function block was executed without errors (bError = FALSE). If the output bError = TRUE, the outputs with the output values must not be evaluated.
The reading can be triggered immediately via the input variables bQueryOccupancy and bQueryBrightness, even if the corresponding instance is not enabled.
![]() | 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. |
![]() | The function block cannot be used when using the KL6811. |
Inputs
VAR_INPUT
bInitialize : BOOL := FALSE;
nShortAddress : BYTE := 0;
nOptions : DWORD := 0;
bQueryOccupancy : BOOL := FALSE;
bQueryBrightness : BOOL := FALSE;
bQueryTemperature : BOOL := FALSE;
bQueryHumidity : BOOL := FALSE;
bQueryAirPreasure : BOOL := FALSE;
bCancelHoldTimerOccupancy : BOOL := FALSE;
END_VAR
Name | Type | Description |
---|---|---|
bInitialize | BOOL | The configuration of the DALI control device is started by a positive edge at this input. During this time no DALI commands are processed. |
nShortAddress | BYTE | Short address (0…63) of the DALI control device. |
nOptions | DWORD | Reserved for future extensions. |
bQueryOccupancy | BOOL | The occupancy is queried immediately by a positive edge at this input. |
bQueryBrightness | BOOL | The brightness is queried immediately by a positive edge at this input. |
bQueryTemperature | BOOL | The temperature is queried immediately by a positive edge at this input. The DALI device does not support transmission of the temperature per event. |
bQueryHumidity | BOOL | The relative humidity is queried immediately by a positive edge at this input. The DALI device does not support transmission of the relative humidity per event. |
bQueryAirPreasure | BOOL | The air pressure is queried immediately by a positive edge at this input. The DALI device does not support transmission of the air pressure per event. |
bCancelHoldTimerOccupancy | BOOL | A positive edge at this input prematurely ends the Hold Timer and resets the output bOccupied. |
Outputs
VAR_OUTPUT
bError : BOOL;
ipResultMessage : I_TcMessage;
bInitializing : BOOL;
bReadingOccupancy : BOOL;
bReadingBrightness : BOOL;
bReadingTemperature : BOOL;
bReadingHumidity : BOOL;
bReadingAirPreasure : BOOL;
bOccupied : BOOL;
nBrightnessLevel : UINT;
fTemperature : LREAL;
fHumidity : LREAL;
nAirPreasure : UINT;
END_VAR
Name | Type | Description |
---|---|---|
bError | BOOL | This output is switched to TRUE if an error occurs during the execution. Further information about the error can be queried via the variable ipResultMessage. The output is set to FALSE again as soon as bBusy switches to TRUE. |
ipResultMessage | I_TcMessage | Interface pointer (see error evaluation) that can be used to obtain detailed information about the processing of the function block (see runtime messages). The interface pointer is valid after bBusy has changed from TRUE to FALSE. |
bInitializing | BOOL | The output is set as soon as the initialization of the DALI control device has been started, and remains active until all DALI commands have been executed. |
bReadingOccupancy | BOOL | The output is TRUE as long as values of the instance of the motion sensor are being read by the DALI control device. |
bReadingBrightness | BOOL | The output is TRUE as long as values of the instance of the light sensor are being read by the DALI control device. |
bReadingTemperature | BOOL | The output is TRUE as long as values of the instance of the temperature sensor are being read by the DALI control device. |
bReadingHumidity | BOOL | The output is TRUE as long as values of the instance of the humidity sensor are being read by the DALI control device. |
bReadingAirPreasure | BOOL | The output is TRUE as long as values of the instance of the air pressure sensor are being read by the DALI control device. |
bOccupied | BOOL | If the output is TRUE, then occupancy has been detected in the detection range of the occupancy sensor. |
nBrightnessLevel | UINT | Measured brightness value (0...2046 lux) of the light sensor. |
![]() | This measured value must be compared with the measured reference values at the place of operation of the DALI control device. |
Name | Type | Description |
---|---|---|
fTemperature | LREAL | Measured temperature value (-20.0…80.0 °C) of the temperature sensor. |
fHumidity | LREAL | Measured value of the relative humidity (0.0…100.0 %). |
nAirPreasure | UINT | Measured value of air pressure (300...1100 hPa). |
Properties
All parameters that are written to the DALI control device via bInitialize are available as properties.
Name | Type | Access | Initial value | Description |
---|---|---|---|---|
bEnableBrightness | BOOL | Get, Set | TRUE | TRUE at this property enables the instance for brightness measurement. FALSE on this property causes sending of events from this instance to be disabled. However, the actual value of the instance can still be queried via the input bQueryBrightness. |
bEnableOccupancy | BOOL | Get, Set | TRUE | TRUE at this property enables the instance for motion detection. FALSE on this property causes sending of events from this instance to be disabled. However, the actual value of the instance can still be queried via the input bQueryOccupancy. |
bEnableTemperature | BOOL | Get, Set | FALSE | TRUE at this property enables the instance for temperature measurement. FALSE at this property causes the instance not to be configured during initialization. The actual value of the instance can only be queried via the input bQueryTemperature. |
bEnableHumidity | BOOL | Get, Set | FALSE | A TRUE on this property enables the instance to measure relative humidity. FALSE at this property causes the instance not to be configured during initialization. The actual value of the instance can only be queried via the input bQueryHumidity. |
bEnableAirPreasure | BOOL | Get, Set | FALSE | TRUE at this property enables the instance for air pressure measurement. FALSE at this property causes the instance not to be configured during initialization. The actual value of the instance can only be queried via the input bQueryAirPreasure. |
eEventPriorityBrightness | E_DALIEventPriority | Get, Set | MiddleLow | Setting of the event priority. |
nReportTimerBrightness | BYTE | Get, Set | 30 s | Time (0…255 s) after which the pending event of the light sensor is repeated if no other event has occurred in the meantime. |
nDeadtimeTimerBrightness | UINT | Get, Set | 1500 ms | Dead time (0...12750 ms) to ensure that not too many events are sent in succession. An event is only sent after expiry of the dead time timer. The dead time timer is restarted each time after an event has been sent. |
nHysteresisBrightness | BYTE | Get, Set | 5 % | Value (0…25 %) for calculating a hysteresis value in order to prevent frequent and disturbing changes when measuring the brightness. |
nHysteresisMinBrightness | BYTE | Get, Set | 20 | As the percentage hysteresis can also lead to large fluctuations at low brightness, a minimum hysteresis can be specified via this property. The minimum hysteresis is an absolute value with a range from 0 to 255. |
eEventPriorityOccupancy | E_DALIEventPriority | Get, Set | Middle | Setting of the event priority. |
nDeadtimeTimerOccupancy | UINT | Get, Set | 100 ms | Dead time (0...12750 ms) to ensure that not too many events are sent in succession. An event is only sent after expiry of the dead time timer. The dead time timer is restarted each time after an event has been sent. |
nHoldTimerOccupancy | UINT | Get, Set | 900 s | Hold time (1...2538 s) during which the occupancy is still active after no further motion was detected by the sensor. |
nReportTimerOccupancy | BYTE | Get, Set | 60 s | Time (0…255 s) after which the pending event of the occupancy sensor is repeated if no other event has occurred in the meantime. |
ipDALICommunication | I_DALICommunication | Get, Set | 0 | Interface pointer to the communication block (see Transfer of the reference to the communication block). |
Requirements
Development environment | Required PLC library |
---|---|
TwinCAT from v3.1.4024.47 | Tc3_DALI from v3.16.1.0 |