[CMD_BLSG] Command blinds group

Function block CMD_BLSG distributes, at a particular priority, either a Present value or a Control command to multiple BACnet blind output objects for a specific Group data tag.

CMD_BLSG distributes, at a particular priority, either a Present value or a Control 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.

Functioning

Compatible data points

  • Blind output [BlsOut]

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
Priorities: 1...5, 9...12, and 14...16

Last win control
Priorities: 7, 8, and 13

Behavior at plant startup

[EnIn1] = 0
Release priority

[EnIn1] = 0
No release

[EnIn1] = 1
Command priority

[EnIn1] = 1
No command

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
Priority is not released by the function block.

[EnIn1] = 0
Priority is not released by the function block.

[EnIn1] = 1
Priority is not commanded by the function block.

[EnIn1] = 1
Priority is not commanded by the function block.

The data point periodically saves the value of priority 8 to the 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 the controller memory.

The operation with other input sets of the function block ([EnIn2]...[EnIn4], [ValhIn2]...[ValhIn4], [ValaIn2]...[ ValaIn4], [OpIn2]...[OpIn4], [PosNrIn2]...[PosNrIn4], [HgtIn2]...[HgtIn4], [AglIn2]...[AglIn4], [RptcIn2]...[RptcIn4]) is the same.

Pins

Input

Description

Data type

Default value
Value range

EnIn1EnIn4

Enable input 1Enable input 4

[EnIn1] controls whether [ValhIn1], [ValaIn1] or [OpIn1] are 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], [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 linked in the programming editor and calculated by the control program during runtime.
The functionality of [EnIn2]...[EnIn4] is identical to [EnIn1].

Boolean

0

0 - Priority of [PrioIn1] is released if it is not currently active by a different [EnInX] set to 1.
1 - Priority of [PrioIn1] is commanded.

ValhIn1...ValhIn4

Value height input 1...Value height input 4

Real

0.0

[ValhIn1] is used to command the present value property at [PrioIn1] (target state commanding).
[ValhIn1] can be parameterized (set by developer) or linked in the programming editor and calculated by the control program during runtime.
[ValhIn1] is commanded at the present value with the priority held by [PrioIn1] in the following cases:

  • [EnIn1] is 1 and [ValhIn1] changes by a value equal or greater than [TshVal].
  • [EnIn1] is 1 and [ValhIn1] changes to a limit value such as 0.0 or 100.0 ([TshVal] is ignored).

The functionality of [ValhIn2]...[ValhIn4] is identical to [ValhIn1].
Note
If [ValhIn1] / [ValaIn1] are used, [OpIn1] must not be used and must remain at default value 32767.

ValaIn1...ValaIn4

Value angle input 1...Value angle input 4

Real

0.0

[ValaIn1] is used to command the present value property at [PrioIn1] (target state commanding).
[ValaIn1] can be parameterized (set by developer) or linked in the programming editor and calculated by the control program during runtime.
[ValaIn1] is commanded at the present value with the priority held by [PrioIn1] in the following cases:

  • [EnIn1] is 1 and [ValaIn1] changes by a value equal or greater than [TshVal].
  • [EnIn1] is 1 and [ValaIn1] changes to a limit value such as 0.0 or 100.0 ([TshVal] is ignored).

The functionality of [ValaIn2]...[ValaIn4] is identical to [ValaIn1].
Note
If [ValhIn1] / [ValaIn1] are used, [OpIn1] must not be used and must remain at default value 32767.

OpIn1OpIn4

Operation input 1Operation input 4

[OpIn1] is used to command the control command property ([PosNrIn1], [HgtIn1] and [AglIn1]) at [PrioIn1].
[OpIn1] can be parameterized (set by developers) or linked in the programming editor and calculated by the control program during runtime. If [OpIn1] is equal to the maximum integer value, the input set runs as a target state command. For all other values, [OpIn1] serves as control command.
[OpIn1] commands at the priority held by [PrioIn1], if [OpIn1] changes and [EnIn1] = 1.
The functionality of [OpIn2]...[OpIn4] is identical to [OpIn1].
Note
If [OpIn1] is used, [ValhIn1] / [ValaIn1] must not be used.

Integer

32767: None

0: Stop
1: Move up
2: Move down
3: Step up
4: Step down
5: Go to height
6: Go to angle
7: Go to height & angle
8: Go to position
9: No operation
32767: None

PosNrIn1PosNrIn4

Position number input 1Position number input 4

[PosNrIn1] is part of the command field [OpIn1] and defines a predefined position value.
[PosNrIn1] is used in combination with the command Go to position.
[PosNrIn1] can be parameterized (set by developer) or linked in the programming editor and calculated by the control program during runtime.
The functionality of [PosNrIn2]...[PosNrIn4] is identical to [PosNrIn1].

Integer

0: P0: Closed

0: P0: Closed
1: P1: Visual protection
2: P2: Anti-glare, sun pos.low
3: P3: Anti-glare, sun pos.high
4: P4: Open

HgtIn1HgtIn4

Height input 1Height input 4

[HgtIn1] is part of the command field [OpIn1] and defines the height value for the input set.
[HgtIn1] is used in combination with the commands Go to height and Go to height & angle.
[HgtIn1] can be parameterized (set by developer) or linked in the programming editor and calculated by the control program during runtime.
The functionality of [HgtIn2]...[HgtIn4] is identical to [HgtIn1].

Real

0.0

AglIn1...AglIn4

Angle input 1...Angle input 4

[AglIn1] is part of the command field [OpIn1] and defines the angle value for the input set.
[AglIn1] is used in combination with the commands Go to angle and Go to height & angle.
[AglIn1] can be parameterized (set by developer) or linked in the programming editor and calculated by the control program during runtime.
The functionality of [AglIn2]...[AglIn4] is identical to [AglIn1].

Real

0.0

PrioIn1...PrioIn4

Priority input 1...Priority input 4

Integer

17

[PrioIn1] holds the priority that comes with [ValhIn1], [ValaIn1] or [OpIn1].
[PrioIn1] can be configured and cannot be changed during runtime. A value of 17 means that the input set is not used.
The functionality of [PrioIn2]...[PrioIn4] is identical to [PrioIn1].
Note
Input sets on the same function block must not share a common exclusive control priority.

Priority range
1...16 (see restrictions on priorities 6 and 8 later).

Exclusive control
Priorities 1...5, 9...12, and 14...16
During control program startup, the function block uses exclusive control to initialize any assigned priorities in ranges 1...5, 9...12 and 14...16.

This function block does not support exclusive priority control during runtime. The last valid command controls or releases priority.

Due to exclusive control during startup, two or more input sets on the same function block must not share a common exclusive control priority, as this will result in conflicts.

Last wins
Priorities 7, 8, and 13

  • No initialization of priorities during startup.
  • At runtime, the last valid command controls priority.
  • If two or more input sets have the same priority and are commanded at the same time, only the input set with the first numeric order is performed (In1...In4).
  • If two or more input sets have the same priority and conditions for commanding and releasing are given at the same time, the command operation wins.

Priority 6
According to the BACnet standard, command priority 6 is reserved for minimum On/Off functionality. Commands at priority 6 are rejected by the BACnet object.
For minimum On/Off functions, the control program must contain a logic and use another priority.

Priority 8
According to the BACnet standard, command priority 8 is for manual operation use and is not typically assigned on the function block. Last wins functionality allows the control program to change or release an operator command.

RptcIn1...RptcIn4

Repeat command input 1...Repeat command input 4

[RptcIn1] repeats a command or releases a priority.
If [RptcIn1] = 1 and [EnIn1] = 1, the function block repeats a command from [ValhIn1], [ValaIn1] or [OpIn1], [HgtIn1], [AglIn1] and [PosNrIn1] in each programming cycle with the priority from [PrioIn1].
If [RptcIn1] = 1 and [EnIn1] = 0, the function block releases the priority from [PrioIn1] in each programming cycle.
The functionality of [RptcIn2]...[RptcIn4] is identical to [RptcIn1].
Note
[RptcIn1] must not be forced permanently to 1. This may impact the performance or the network traffic.
[RptcIn1] can be linked and is typically calculated and set by the control program.

Boolean

0

DscdcIn1...DscdcIn4

Discard command input 1...Discard command input 4

[DscdcIn1] is used to configure the repeat of the command of [ValhIn1], [ValaIn1] on restart or when restoring communication to the automation station of the group manager.
[DscdcIn1] can be configured, but cannot be changed during runtime.
The functionality of [DscdcIn2]...[DscdcIn4] is identical to [DscdcIn1].

Boolean

0

0 - The group manager repeats the last command from [ValhIn1], [ValaIn1] at priority [PrioIn1] on restart or once communication is restored to the automation station of the group manager.
1 - The group manager does not repeat the last command from [ValhIn1], [ValaIn1] at priority [PrioIn1] on restart or once communication is restored to the automation station of the group manager.

TshVal

Threshold value

[TshVal] is a configured value to control function block write attempts. An attempt is only permitted if the change of value is greater than or equal to [TshVal].
Exception: [TshVal] is ignored if the new value is a limit value such as 0.0 or 100.0.

Note
[TshVal] must not be set to 0.0.

Real

1.0

GrpTag1

Group data tag 1

[GrpTag1] defines a specific group data for the central distribution by the function block. [GrpTag1] is used only for target state commanding (present value, priority).
The system provides predefined and customizable tags. Typically, the application engineer sets [GrpTag1] in the programming editor and it cannot be changed during runtime. A tag that matches the data type of the function block must be set.

Double Word

0

GrpTag2

Group data tag 2

[GrpTag2] defines a specific group data for the central distribution by the function block. [GrpTag2] is used only for control command commanding (control command, priority).
The system provides predefined and customizable tags. Typically, the application engineer sets [GrpTag2] in the programming editor and it cannot be changed during runtime. A tag that matches the data type of the function block must be set.

Double Word

0

BaObjRef

BA-Object reference
Link between function block and BACnet object.

Structure

---

BaObjRef
> DeviceID

Device identifier
[DeviceID] includes object type and object instance in one ID.
Identifies the device object: local or remote. A local device object can also be identified by value 16#3FFFFF.

Double Word

16#3FFFFF

BaObjRef
> ObjectID

Object identifier
[ObjectID] includes object type and object instance in one ID.
Identifies the object on a device.

Double Word

16#3FFFFF

BaObjRef
> ItemID

Item identifier
[ItemID] represents an index in a view node object that references the BACnet object.
[ObjectID] and [ItemID] together define an indirect reference to the BACnet object.
Value -1 indicates a direct interface.

Integer

-1

 

Output

Description

Data type

Default value
Value range

Dstb

Disturbed

[Dstb] indicates whether the referenced BACnet object was accessed.
[Dstb] = 0, if:
BACnet object access = Access successful
[Dstb] = 1, if:
BACnet object access = Error during access

Boolean

0

ErrCode

Error code indication

Integer

0: No error

= 0 - No error
> 0 - Error codes