CMD_BLS: Command blinds

CMD_BLS is used to command a single blind output object. CMD_BLS can command, at a particular priority, the Control command property (control-command commanding) or the Present value property (target state commanding). CMD_LGT is also used to release a priority as needed.

CMD_BLS reads back the arbitrated Present value (structure: Height, Angle) and Present command properties, as well as Present priority, State flag and Reliability. CMD_BLS may optionally query a specified priority of the Priority array property to see if it is in use. CMD_BLS also reads additional required properties which provide information about status and progress of the blinds actuator.

Compatible data points:

Refer to data point objects for a detailed description of the BACnet data points.

Required properties:

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)

2. Last win control (planned for priorities 7, 8, 13)

 

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 remains released.

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

[EnIn1] = 1
Priority remains commanded.
For target state command if released or value changed.
For control command if released.

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

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.

TshVal

Threshold value

Real (default value: 1.0)

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
[TshVal] must not be set to 0.0.

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]. These input sets command a single blind output object 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)
default

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:

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

[ValhIn2]...[ValhIn4] functionality is identical to [ValhIn1].

Note
If [ValaIn1] / [ValhIn1] is used, [OpIn1] must not be used and must remain at default value 32767.

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:

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

[ValaIn2]...[ValaIn4] functionality is identical to [ValaIn1].

Note
If [ValaIn1] / [ValhIn1] is used, [OpIn1] must not be used and must remain at default value 32767.

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:

  • [OpIn1] changes and [EnIn1] is True.

[OpIn2]...[OpIn4] functionality is identical to [OpIn1].

Note
If [OpIn1] is used, [ValhIn1] / [ValaIn1] must not be used.

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
Input sets on the same function block must not share a common exclusive control priority.

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 the function block continues to hold exclusive control. If an external overwrite is detected, the function block will re-command or re-release at the priority held by [PrioIn1].

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

  • No initialization of priorities on start-up.
  • At runtime, last valid command (or release) controls the priority.
  • If two or more input sets have the same priority and are commanded at the same time, only the input set in first numerical order is performed (In1...In4).
    Exception:
    If two or more input sets have the same priority, and inputs providing value (either target state or control-command) are changed at the same time, the input set in last numerical order will win (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

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.

  • If [RptcIn1] = 1 (True) and [EnIn1] = 1 (True), the function block forces a command of [ValhIn1], [ValhIn1] or respectively [OpIn1], [HgtIn1], [AglIn1] and [PosNrIn1] with every program cycle at the priority in [PrioIn1].
  • If [RptcIn1] = 1 (True) and [EnIn1] = 0 (False), the function block forces a release with every program cycle at the priority in [PrioIn1].

[RptcIn2]...[RptcIn4] functionality is identical to [RptcIn1].

Note
[RptcIn1] must not be forced permanently to True by connecting to a block output that is always True. Doing so causes a high level of communication traffic.

[RptcIn1] is linkable and will typically be calculated and set by the control program.

PrioX

Priority X

Integer (default value: 17)

A parameterized input that can be used to query if a particular priority contains a valid commanded value or is released (NULL).

[PrioX] cannot be changed during runtime.

If [PrioX] is set to a value 1...16, the corresponding priority will be queried. The result is provided by the output pin [PrioXAct].

Pin description (outputs)

PrValHgt

Present value height

Real (default value: 0.0)

The arbitrated present value structured element, height.

If the arbitrated value is a target state command, [PrValHgt] represents the commanded target state value. If the arbitrated value is a control-command command, [PrValHgt] represents the progress value of the actuator.

PrValAgl

Present value angle

Real (default value: 0.0)

The arbitrated present value structured element, angle.

If the arbitrated value is a target state command, [PrValAgl] represents the commanded target state value. If the arbitrated value is a control-command command, [PrValAgl] represents the progress value of the actuator.

Valid

Valid

Boolean (default value: False)

An indication of whether output pin [PrVal] is reliable.

1 (True)

[PrVal] is reliable.

  • XFB can access the blind output object.

AND

  • Fault flag in State flag property = 0 (no fault)
  • (Reliability = 0 (no error) or Reliability was not detected).

0 (False)

[PrVal] is not reliable.

  • XFB cannot access the blind output object.

OR

  • Fault flag in State flag property = 1 (fault)
  • (Reliability ≠ 0).

PrPrio

Present priority

Integer (default value: 17)

The active priority of the referenced BACnet object.

[PrPrio] is set to:

  • Active priority if the present priority property is accessible.
  • 17 if all priorities are released, or if the present priority property is not accessible.

PrCmd

Present command

Boolean (default value: False)

Indicates whether the current present value is from a target state command or a control-command command.

1 (True)

Control-command.

0 (False)

Target state.

PrioXAct

Priority X active

Boolean (default value: False)

[PrioXAct] indicates whether the priority being queried by input pin [PrioX] contains a valid commanded value or is released (NULL).

Note
If input pin [PrioX] is not being used, [PrioXAct] remains at default value.

1 (True)

The queried priority is commanded.

0 (False)

The queried priority is released (NULL), or the input pin [PrioX] is not being used.

PrgsValh

Progress value height

Real (default value: 0.0)

The actual height value as returned by the blind actuator, from the structured progress value property.

PrgsVala

Progress value angle

Real (default value: 0.0)

The actual angle value as returned by the blind actuator, from the structured progress value property.

InPrgs

In progress

Boolean (default value: False)

An indication of whether a blinds command is being processed and if the blinds are moving, based on the In process property.

1 (True)

A blinds command is being processed.

0 (False)

No blinds command.

LstDirc

Last moving direction

Integer (default value: 0)

The last moving direction of the blinds as indicated by last moving direction property.

1 (Down)

Last direction: Down

0 (Up)

Last direction: Up

ErrCode

Error code indication

Integer (default value: 20)

The status of the last performance of the XFB read operation.

= 0

No error.

> 0

Error, see XFB error codes.

ErrCmd

Error command

Integer (default value: 20)

The status of the last performance of the XFB command operation.

= 0

No error.

> 0

Error, see XFB error codes.

Use case examples

 

NOTICE

notice

Note
Graphics reflect examples of XFB implementations; See ABT for current examples of CFC.

 

CMD_BLS: Example taken from the shading CHT{ShdPscOp01}. Due to graphical size limitations, function blocks may be missing or shown more closely grouped than is typical.