FB_DALI301PushButton

FB_DALI301PushButton 1:

The function block is used for the configuration and operation of an instance of a DALI control device that supports Part 301 (push buttons).

Further information on the supported instance types can be found here:

Part 301 (push buttons) - Introduction

If necessary, the output value can also be queried immediately via the variable bQueryInputValue, even if the corresponding instance is not enabled.

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.

FB_DALI301PushButton 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.

FB_DALI301PushButton 3:

The function block cannot be used when using the KL6811.

FB_DALI301PushButton 4: Inputs

VAR_INPUT
  bInitialize                 : BOOL  := FALSE;
  nShortAddress               : BYTE  := 0;
  nInstanceNumber             : BYTE  := 0;
  bQueryInputValue            : BOOL  := FALSE;
  bGetInputNotifications      : BOOL  := TRUE;
  nOptions                    : DWORD := 0;
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.

nInstanceNumber

BYTE

Number of the instance (0…31) of the DALI control device to be addressed.

bQueryInputValue

BOOL

The state of the input is queried immediately by a positive edge at this input. A query is possible even if the instance is disabled via the bEnableInstance property.

bGetInputNotifications

BOOL

A TRUE at this input causes the received Input Notification Events to be output at the output.

nOptions

DWORD

Reserved for future extensions.

FB_DALI301PushButton 5: Outputs

VAR_OUTPUT
  bError                     : BOOL;
  ipResultMessage            : I_TcMessage;
  bInitializing              : BOOL;
  bReadingInputValue         : BOOL;
  nPushButtonEvent           : WORD;
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.

bReadingInputValue

BOOL

The output is set as soon as the manual reading of the input has been triggered.

nPushButtonEvent

WORD

The output outputs the events for the push button via one bit for one cycle.

Bit

Description

0

Push button released.

1

Push button pressed.

2

Short keystroke.

3

Double keystroke.

4

Start long keystroke.

5

Repeat long keystroke.

6

Stop long keystroke.

7

Push button free again; was previously blocked.

8

Push button blocked.

The function block FB_DALI_ToPushButtonState can be used to convert the state of a push button into a BOOL variable.

FB_DALI301PushButton 6: Properties

All parameters that are written to the DALI control device via bInitialize are available as properties.

Name

Type

Access

Initial value

Description

bEnableInstance

BOOL

Get, Set

TRUE

The instance can be enabled or disabled on the DALI control device. If this property is FALSE, sending events from this instance is disabled. However, the actual value of the instance can still be queried via the input bQueryInputValue.

nEventFilter

BYTE

Get, Set

2#1000_0011

Setting of the event filter.

eEventPriority

E_DALIEventPriority

Get, Set

Middle

Setting of the event priority.

nRepeatTimer

UINT

Get, Set

160 ms

Time (100...2000 ms) after which the pending push button event is repeated in case of a long button press.

nShortTimer

UINT

Get, Set

500 ms

Time (tShortMin...5100 ms) to distinguish between a long and a short button press.

nDoubleTimer

UINT

Get, Set

0 ms

Time (0, tDoubleMin…2000 ms) to distinguish between a single and a double button press.

nStuckTimer

BYTE

Get, Set

20 s

Time (5…255 s) after whose expiry the push button no longer represents a long button press. The push button is stuck.

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.11

Tc3_DALI from v3.5.0.0