R_BLSX: Read multiple blinds
R_BLSX reads the structured Present value property from multiple (up to 16) aggregated member blind input objects (member objects are aggregated by means of a Collection view node object). Evaluation of the inputs is designed to detect the first input that has been updated since last read. R_BLSX also provides the signals Valid, UpdInd, ErrCode and ErrWrit to the Control program for processing. R_BLSX will also optionally provide the current last moving direction from the control program to be written back to each member object’s Last moving direction property.
Control-command commanding
Control-command commanding is the typical operating state in which blind input objects receive push button commands represented by the structured Present value property elements [PrOp], [PrPosNr], [PrValHgt], and [PrValAgl]. R_BLSX passes the most recent input request to a command blind XFB. The command blind XFB performs the request with an accompanying priority level, and reads the actual blind moving direction from the blind output object and sends this back to R_BLSX. R_BLSX may optionally write this value to all aggregated member blind input objects. Since typically there are multiple inputs affecting the same blinds, each input (for example, a push button sensor or operator panel) needs to be aware of and reflect the last moving direction of the blinds based on the most recent input request.
Hardware interrupt
This XFB supports hardware interrupts (OB trigger) for immediate response to specific events such as manual switching of lights. If the XFB is applied in a chart assigned to OB40 or OB41, OB triggering occurs automatically on interrupt signals from I/O modules.
Compatible data points:
- Blind input [BlsIn]
Refer to data point objects for a detailed description of the BACnet data points.
Required properties:
- Present value (structured blind input command)
- State flag
- Update count
- Last moving direction
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. |
LstDirc |
|---|
Last moving direction Integer (default value: 0) A calculated value that may optionally be written to the multiple blind input objects, to the last moving direction property. [LstDirc] will be written if:
|
RptWrit | |
|---|---|
Repeat write Boolean (default value: False) [RptWrit] forces a write of [LstDirc] to the blind input objects. The write operation is repeated with each program cycle for as long as [RptWrit] is True. [RptWrit] will typically be calculated and set by the control program. Note | |
1 (True) | [LstDirc] is written to the blind input objects with each program cycle for as long as [RptWrit] is True. |
0 (False) | No action. |
Pin description (outputs)
PrOp | |
|---|---|
Present operation Integer (default value: 0) The value of the Operation element of the present value property from the last updated member of the aggregated blind input objects. [PrOp] will deliver the last valid value if [Valid] = False. | |
0 (Stop) | Command to stop moving the blinds. |
1 (Move-up) | Command to start moving the blinds upwards. |
2 (Move-down) | Command to start moving the blinds downwards. |
3 (Stop or step-up) | Command to stop a respective moving or to perform a gradual moving upwards. |
4 (Stop or step-down) | Command to stop a respective moving or to perform a gradual moving downwards. |
5 (Goto height) | Command to start moving the blind towards the absolute height specified by [PrValHgt]. |
6 (Goto angle) | Command to start moving the slats towards the absolute angle specified by [PrValAgl]. |
7 (Goto position) | Command to start moving the blinds towards the absolute position specified by [PrValHgt] and [PrValAgl]. |
8 (Goto predefined position) | Command to start moving the blinds towards the predefined position specified by [PrPosNr]. (For example, Target state commanding.) |
20 (No command) | Command indicating no action to be taken on the blind control actuator. |
PrValHgt |
|---|
Present value height Real (default value: 0.0) The value of the Height element of the present value property from the last updated member of the aggregated member blind input objects. [PrValHgt] will deliver the last valid value if [Valid] = False. |
PrValAgl |
|---|
Present value angle Real (default value: 0.0) The value of the Angle element of the present value property from the last updated member of the aggregated member blind input objects. [PrValAgl] will deliver the last valid value if [Valid] = False. |
PrPosNr |
|---|
Present position number Integer (default value: 0) The value of the position number element of the present value property from the last updated member of the aggregated member blind input objects. [PrPosNr] will deliver the last valid value if [Valid] = False. |
Valid | |
|---|---|
Valid Boolean (default value: False) An indication of whether output pins [PrOp], [PrValHgt], [PrValAgl] or [PrPosNr] are reliable. | |
1 (True) | Present value output pins are reliable.
AND
|
0 (False) | Present value output pins are not reliable.
OR
|
UpdInd |
|---|
Update indication Boolean (default value: False) An indication of whether the Present value (structured blind input command) property for one of the aggregated member objects has been newly updated. When an update occurs, [UpdInd] toggles from 0 to 1 (True) and returns to 0 (False) on the next cycle (immediate). It is not possible to detect the toggle without an additional function block connected to [UpdInd] (for example, a counter function block). [UpdInd] will only be set to True if [Valid] is True. [UpdInd] uses the update count property. This makes it possible to recognize a value as having been updated if the new value is the same as the previous value. |
UpdMbr |
|---|
Update member Integer (default value: 0) The last updated blind input object. [UpdMbr] will show the index number of the collection view node object ItemId for the last updated member object. |
NumVals |
|---|
Number of valid values Integer (default value: 0) The number of valid blind input objects in the collection view node object. |
NumMbrs |
|---|
Number of aggregated members Integer (default value: 0) The total number of member objects in the collection view node object. |
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. |
ErrWrit | |
|---|---|
Error while writing Integer (default value: 20) The status of the last performance of the XFB write operation to the result object. | |
= 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.
R_BLSX: Blinds push button.
