FB_DALIV2Dimmer1Switch
The function block FB_DALIV2Dimmer1Switch switches and dims a single DALI lamp, a DALI group or a complete DALI line via a push button.
Operating by means of the bSwitchDimm input
The light is switched on or off by a short signal at the bSwitchDimm input. Dimmer mode will be activated if the signal remains for longer than tSwitchOverTime (typical recommended value: 200 ms). The output signal then cycles between nMinLevelMasterDev and nMaxLevelMasterDev. In order to be able to set the maximum or minimum value more easily, the output signal pauses at the level of the maximum and minimum values for the time given by tCycleDelay. When the signal is once more removed, the output signal being generated at that time is retained. Another pulse at the input will set the output to 0. If the bSwitchDimm is briefly removed in dimmer mode, the function block changes the direction of dimming.
Operation by means of the bOn and bOff inputs
The light is immediately switched on or off if a rising edge is applied to the bOn or bOff inputs. The output value is set to 0 when switching off. The switch-on behavior can be affected by the memory function (see below).
Operation by means of the bSetDimmValue and nDimmValue inputs
If the value of nDimmValue changes the devices concerned will be switched to this brightness value immediately. The significant point here is that the value changes. The lighting is switched off by changing the value to 0. If there is a rising edge at the bSetDimmValue input, the value of nDimmValue immediately appears at the output. Immediate modification of the output can be suppressed by a static 1- signal at the bSetDimmValue input. This makes it possible to apply a value to the nDimmValue input, but for this value only to be passed to the output at the next rising edge of bSetDimmValue.
The bSetDimmValue and nDimmValue inputs can be used to implement a variety of lighting scenarios. Using nDimmValue to set the outputs directly can be used to achieve particular brightness levels, either directly or by continuously changing the value. nDimmValue must have a value between nMinLevelMasterDev and nMaxLevelMasterDev. The value 0 is an exception. If the value is outside this range, the output value is limited to the upper or lower limit, as appropriate.
The memory function
It is necessary to determine whether the memory function (bMemoryModeOn input) is active or not at switch-on. If the memory function is active, then the last set value is adopted as the brightness value as soon as the device is switched on. If the memory function is not active, a brightness specified by the nOnValueWithoutMemoryMode parameter is assigned to the devices concerned. It is irrelevant, in this case, whether the light it has been switched on by means of the bOn input or the bSwitchDimm input. It should be noted that the nOnValueWithoutMemoryMode parameter must lie between nMinLevelMasterDev and nMaxLevelMasterDev. If this is not the case, the output value is adjusted to the upper or lower limit, as appropriate.
Comment on the tSwitchOverTime parameter
If a duration of 0 is specified for the parameter tSwitchOverTime, the bSwitchDimm input can only be used to dim the light. Switching on and off is only possible with the bOn and bOff inputs.
Comment on the nMasterDevAddr parameter
The DALI system provides facilities not just for controlling lamps individually, but also for addressing them as groups or through common commands. Since the individual devices may belong to different groups, the individual lamps may have different brightness states before a group or common control command. So that it is nevertheless possible to be clear whether the lamps now are to be switched on or off, a master device is assigned to each group, whose state is followed by the other devices. It is not necessary to specify a master device if the function block is to be used to control a single lamp, eAddrType = eAddrTypeShort. In this case, the nMasterDevAddr parameter has no significance.
Inputs
VAR_INPUT
bSwitchDimm : BOOL;
bOn : BOOL;
bOff : BOOL;
bSetDimmValue : BOOL;
nDimmValue : BYTE;
tSwitchOverTime : TIME := t#400ms;
tCycleDelay : TIME := t#500ms;
bMemoryModeOn : BOOL := FALSE;
nOnValueWithoutMemoryMode : BYTE := 254;
nAddr : BYTE := 0;
eAddrType : E_DALIV2AddrType := eDALIV2AddrTypeShort;
nMasterDevAddr : BYTE := 0;
nMinLevelMasterDev : BYTE := 126;
nMaxLevelMasterDev : BYTE := 254;
tCycleActualLevelMasterDev : TIME := t#0s;
END_VAR
Name | Type | Description |
---|---|---|
bSwitchDimm | BOOL | Switches or dims the addressed devices. |
bOn | BOOL | Switches the addressed devices to the last output value, or to the value nOnValueWithoutMemoryMode. |
bOff | BOOL | Switches the addressed devices off (value 0). |
bSetDimmValue | BOOL | A positive edge at this input sets the addressed devices immediately to the brightness value that is present at input nDimmValue. If the value of nDimmValue changes, the brightness value is set immediately to the changed value if the input bSetDimmValue is FALSE. |
nDimmValue | BYTE | see bSetDimmValue |
tSwitchOverTime | TIME | Time for switching between the light on/off and dimming functions for the input bSwitchDimm |
tCycleDelay | TIME | Delay time, if either the minimum or maximum value is reached. |
bMemoryModeOn | BOOL | Switches to the memory function, so that the previous value is written to the output as soon as it is switched on. |
nOnValueWithoutMemoryMode | BYTE | Switch-on value if the memory function is not switched on. |
nAddr | BYTE | The address of a device or of a group |
eAddrType | Short address, group address or broadcast | |
nMasterDevAddr | BYTE | The address of the master device for group and common switching operations |
nMinLevelMasterDev | BYTE | Minimum value of the master device |
nMaxLevelMasterDev | BYTE | Maximum value of the master device |
tCycleActualLevelMasterDev | TIME | Cycle time required to read the current actual value in the background (see ACTUAL DIM LEVEL). So that the dimming of the lamps is not disturbed, reading always has the lowest priority. If the value is set to 0, reading is prohibited. |
Inputs/outputs
VAR_IN_OUT
stCommandBuffer : ST_DALIV2CommandBuffer;
END_VAR
Name | Type | Description |
---|---|---|
stCommandBuffer | ST_DALIV2CommandBuffer | Reference to the internal structure for communication with FB_KL6811Communication (KL6811) or FB_KL6821Communication (KL6821). |
Outputs
VAR_OUTPUT
nActualLevelMasterDev : BYTE;
bBusy : BOOL;
bError : BOOL;
nErrorId : UDINT;
END_VAR
Name | Type | Description |
---|---|---|
nActualLevelMasterDev | BYTE | Current output value of the master device (always the respectively addressed device if eAddrType = eAddrTypeShort) |
bBusy | BOOL | When the function block is activated the output is set, and it remains active until execution of the command has been completed. |
bError | BOOL | This output is switched to TRUE as soon as an error occurs during the execution of a command. The command-specific error code is contained in nErrorId. Is reset to FALSE by the execution of a command at the inputs. |
nErrorId | UDINT | Contains the command-specific error code of the most recently executed command. Is reset to 0 by the execution of a command at the inputs (see error codes). |
Requirements
Development Environment | PLC library to include |
---|---|
TwinCAT from v3.1.4020.14 | Tc2_DALI from v3.4.3.0 |