FB_DALIV2Dimmer2Switch
The function block FB_DALIDimmer2Switch corresponds to the function block FB_DALIV2Dimmer1Switch. The difference is that two switches are connected to the function block FB_DALIDimmer2Switch. This allows the operator to specifically dim up or down.
Operation by means of the bSwitchDimmUp and bSwitchDimmDown inputs
The light is switched on or off by a short signal at the bSwitchDimmUp or bSwitchDimmDown inputs. Dimmer mode will be activated if the signal remains for longer than tSwitchOverTime (typical recommended value: 200 ms). The addressed devices are now dimmed to the levels specified by nMaxLevelMasterDev and nMinLevelMasterDev. When the signal is once more removed, the output signal being generated at that time is retained. Another pulse at one of the inputs will set the output to 0.
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
bSwitchDimmUp : BOOL;
bSwitchDimmDown : BOOL;
bOn : BOOL;
bOff : BOOL;
bSetDimmValue : BOOL;
nDimmValue : BYTE;
tSwitchOverTime : TIME := t#400ms;
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 |
---|---|---|
bSwitchDimmUp | BOOL | Switches or dims the addressed devices up. |
bSwitchDimmDown | BOOL | Switches or dims the addressed devices down. |
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 inputs bSwitchDimmUp and bSwitchDimDown |
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 (reference 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 |