CMD_BLSG: Command blinds group
CMD_BLSG distributes, at a particular priority, either a Present value (of datatype BACnet blind position) or a Control command (of datatype BACnet blind command) to multiple BACnet blind output objects for a specific Group data tag. Both target state commanding and control command commanding are supported.
Proprietary objects are needed for grouping infrastructure: one Group manager object and one or more Group member objects. The individual member data points (the blind output objects) are grouped and referenced via the Group member object(s).
CMD_BLSG writes Value / Priority pair(s) for a particular Group data tag to the Group command property of the Group manager object. The data is passed from the Group manager object to the Group member object(s) where it is distributed to the intended blind output objects with matching Group data tag.
Compatible data points:
- Blind output [BlsOut]
Refer to data point objects for a detailed description of the BACnet data points.
Required properties of grouped data points:
- Present value (structured blind output command)
- Control command (structured blind output command)
Operate with priorities
The function block uses 2 approaches to control if operating with priorities:
1. Exclusive control (planned for priorities 1...5, 9...12, 14...16)
- Initialized at startup
- Multiple input sets of a function block cannot command the same priority.
2. Last win control (planned for priorities 7, 8, 13)
- Not initialized at startup.
| Exclusive control | Last win control |
|---|---|---|
Behavior at plant startup | [EnIn1] = 0 | [EnIn1] = 0 |
[EnIn1] = 1 | [EnIn1] = 1 | |
Command process | If [EnIn1] changes from 0 to 1. | If [EnIn1] changes from 0 to 1. |
If [EnIn1] = 1 and [ValhIn1] or [ValaIn1] or [OpIn1] or [PosNrIn1] or [HgtIn1] or [AglIn1] change. | If [EnIn1] = 1 and [ValhIn1] or [ValaIn1] or [OpIn1] or [PosNrIn1] or [HgtIn1] or [AglIn1] change. | |
If [EnIn1] = 1 and [RptcIn1] = 1. | If [EnIn1] = 1 and [RptcIn1] = 1. | |
Release | If [EnIn1] changes from 1 to 0. | If [EnIn1] changes from 1 to 0. |
If [EnIn1] = 0 and [RptcIn1] = 1. | If [EnIn1] = 0 and [RptcIn1] = 1. | |
Behavior in the event of commanding from another source | [EnIn1] = 0 | [EnIn1] = 0 |
[EnIn1] = 1 | [EnIn1] = 1 |
The data point periodically saves the value of priority 8 to controller memory. After a power outage, the value is restored in the property 'Priority array' and evaluated by the data point. All other priorities are not saved to controller memory.
Operation with other input sets of function block ([EnIn2]...[EnIn4], [ValhIn2]...[ValhIn4], [ValaIn2]...[ ValaIn4], [OpIn2]...[OpIn4], [PosNrIn2]...[PosNrIn4], [HgtIn2]...[HgtIn4], [AglIn2]...[AglIn4], [RptcIn2]...[RptcIn4]) is the same.
Pin description (inputs)
BaObjRef | |
|---|---|
BA-Object reference Structure [BaObjRef] defines a bound connection between XFB and BACnet object. The binding occurs automatically. Manual configuration attempts are not necessary and can result in system errors. | |
DeviceId | Device identifier Double word (default value: 16#3FFFFF) [DeviceId] comprises object type and object instance in a single identifier. It is used to identify device object: local or remote. Local device object could also be identified by value 16#3FFFFF. |
ObjectId | Object identifier Double word (default value: 16#3FFFFF) [ObjectId] comprises object type and object instance in a single identifier. It is used to identify object within a device. |
ItemId | Item identifier Integer (default value: -1) [ItemId] represents an item index in the functional view node object, which references the BACnet object. [ObjectId] and [ItemId] together define an indirect access reference to the BACnet object. Value -1 indicates that direct binding is used. |
GrpTag1 |
|---|
Group data tag 1 Double word (default value: 0) [GrpTag1] defines specific group data for centralized distribution by the XFB. [GrpTag1] is used only for target state commanding (present value, priority). The system provides predefined and also user definable tags. [GrpTag1] is typically set by the application developer in CFC and must not change during runtime. It must be set to a tag that matches the datatype of the XFB. |
GrpTag2 |
|---|
Group data tag 2 Double word (default value: 0) [GrpTag2] defines specific group data for centralized distribution by the XFB. [GrpTag2] is used only for control-command commanding (control-command, priority). The system provides predefined and also user definable tags. [GrpTag2] is typically set by the application developer in CFC and must not change during runtime. It must be set to a tag that matches the datatype of the XFB. |
TshVal |
|---|
Threshold value Real (default value: 0.1) A parameterized value used to control the XFB write attempts. An attempt is only allowed if the value difference is equal or greater than [TshVal]. Exception: the change equals a limit value such as 0.0 or 100.0 ([TshVal] is ignored). Note |
EnIn1...4 | |
|---|---|
Enable input 1 Boolean (default value: False) [EnIn1] controls whether [ValhIn1], [ValaIn1] or [OpIn1] is commanded at the priority held by [PrioIn1] or if the priority is released. [EnIn1] belongs to one of four input sets, each containing [EnInX], [ValhInX], [ValaInX], [OpInX], [PosNrInX], [HgtInX], [AglInX], [PrioInX], and [RptcInX], and [DscdcInX]. These input sets command the grouped blind output objects at different priorities as needed. [EnIn1] can be parameterized (set by developer), or it is linkable in the CFC chart and calculated by the control program during runtime. [EnIn2]...[EnIn4] functionality is identical to [EnIn1]. | |
1 (True) | The priority held by [PrioIn1] is commanded. |
0 (False) | The priority held by [PrioIn1] is released if it is not currently active by a different [EnInX] set to True. |
ValhIn1...4 |
|---|
Value height input 1 Real (default value: 0.0) [ValhIn1] is used to command the present value property at [PrioIn1] (target state commanding). [ValhIn1] can be parameterized (set by developer), or it is linkable in the CFC chart and calculated by the control program during runtime. [ValhIn1] will command present value at the priority held by [PrioIn1] if:
[ValhIn2]...[ValhIn4] functionality is identical to [ValhIn1]. Note |
ValaIn1...4 |
|---|
Value angle input 1 Real (default value: 0.0) [ValaIn1] is used to command the present value property at [PrioIn1] (target state commanding). [ValaIn1] can be parameterized (set by developer), or it is linkable in the CFC chart and calculated by the control program during runtime. [ValaIn1] will command Present value at the priority held by [PrioIn1] if:
[ValaIn2]...[ValaIn4] functionality is identical to [ValaIn1]. Note |
OpIn1...4 |
|---|
Operation input 1 Integer (default value: 32767) [OpIn1] is used to command the control command property (sub elements [HgtIn1], [AglIn1] and [PosNrIn1]) at [PrioIn1]. [OpIn1] can be parameterized (set by developer), or it is linkable in the CFC chart and calculated by the control program during runtime. If [OpIn1] equals the maximum integer value the input set runs as a target state command. For all other values [OpIn1] runs as control-command. [OpIn1] will command control command at the priority held by [PrioIn1] if:
[OpIn2]...[OpIn4] functionality is identical to [OpIn1]. Note |
HgtIn1...4 |
|---|
Height input 1 Real (default value: 0.0) [HgtIn1] is part of the command field [OpIn1] and defines the height value for the input set. Height is used in combination with the commands goto-height and goto-position. [HgtIn1] can be parameterized (set by developer), or it is linkable in the CFC chart and calculated by the control program during runtime. [HgtIn2]...[HgtIn4] functionality is identical to [HgtIn1]. |
AglIn1...4 |
|---|
Angle input 1 Real (default value: 0.0) [AglIn1] is part of the command field [OpIn1] and defines the angle value for the input set. Angle is used in combination with the commands goto-angle and goto-position. [AglIn1] can be parameterized (set by developer), or it is linkable in the CFC chart and calculated by the control program during runtime. [AglIn2]...[AglIn4] functionality is identical to [AglIn1]. |
PosNrIn1...4 |
|---|
Position number input 1 Integer (default value: 0) [PosNrIn1] is part of the command field [OpIn1] and defines a predefined position value. It is used in combination with the command goto-predefined-position. [PosNrIn1] can be parameterized (set by developer), or it is linkable in the CFC chart and calculated by the control program during runtime. [PosNrIn2]...[PosNrIn4] functionality is identical to [PosNrIn1]. |
PrioIn1...4 | |
|---|---|
Priority input 1 Integer (default value: 17) [PrioIn1] holds the priority that accompanies [ValhIn1], [ValaIn1], or [OpIn1]. [PrioIn1] is parameterized and cannot be changed during runtime. A value of 17 means the input set is not being used. [PrioIn2]...[PrioIn4] functionality is identical to [PrioIn1]. Note | |
Priority range | 1...16 See restrictions on priority 6 and priority 8 below. |
Exclusive control | Priorities 1...5, 9...12 and 14...16 On start-up of the control program, the function block uses exclusive control to initialize any assigned priorities in ranges 1...5, 9...12 and 14...16. At runtime this function block does not support exclusive priority control. The last valid command or release controls the priority. Due to exclusive control during start-up, two or more input sets on the same function block must not share a common exclusive control priority, otherwise a conflict will result. |
Last wins | Priorities 7, 8 and 13
|
Priority 6 | Per BACnet, command priority 6 is reserved for minimum on/off functionality. Commands at priority 6 are rejected by the BACnet object. To provide minimum on/off functionality, the control program should contain the feature and command at another priority. |
Priority 8 | Per BACnet, command priority 8 is for manual operator use and is not typically assigned on the function block. Last wins functionality could allow the control program to change or release an operator command. |
RptcIn1...4 |
|---|
Repeat command input 1 Boolean (default value: False) [RptcIn1] forces the repetition of a command or the release a priority.
[RptcIn2]...[RptcIn4] functionality is identical to [RptcIn1]. Note [RptcIn1] is linkable and will typically be calculated and set by the control program. |
DscdcIn1...4 |
|---|
Discard command input 1 Boolean (default value: False) [DscdcIn1] is used to configure [ValIn1] command repeating in case of restart or to re-establish communication with group member’s automation station. [DscdcIn1] is parameterized and cannot be changed during runtime.
[DscdcIn2]...[DscdcIn4] functionality is identical to [DscdcIn1]. |
Pin description (outputs)
ErrWrit | |
|---|---|
Error while writing Integer (default value: 20) The error code value for errors encountered during accessing or writing to the group manager object. Successful distribution of a command to group members cannot be indicated. | |
= 0 | No error. |
> 0 | Error, see XFB error codes. |
Use case examples
NOTICE

Note
Graphics reflect examples of XFB implementations; See ABT for current examples of CFC.
CMD_BLSG: Example taken from the Central shading function AFN and CHT{CenEmgShd01}. Due to graphical size limitations, function blocks may be missing or shown more closely grouped than is typical.
