Issue
Unable to have BACnet alarm trigger directly on a variable from a Function Block Program
Product Line
EcoStruxure Building Operation
Environment
Building Operation Automation Server
Cause
Building Operation does not have the possibility for a BACnet alarm to directly monitor a variable from a Function Block Program. The problem with doing this is that a Function Block Program is not a BACnet visible object (a BACnet client cannot see it, even as a proprietary object type), and we do not see any provision in the BACnet standard for an alarm object to reference something not visible to BACnet.
Resolution
The workaround is to create a BACnet point (a BACnet Value object would make the most sense), and bind it to the Function Block Program variable.
There is however an option which may avoid "double" work. In Building Operation we have implemented intrinsic alarming on the BACnet points and values. This means that the point can detect and report alarms without creating a separate alarm object. (they still need to reference to a BACnet notification class just like normal BACnet alarm objects).
The only limitation is in the choice of algorithm:
- Analog objects (Input, output, Value) support the out-of-range algorithm (high-limit, low-limit).
- Digital and Multistate objects* (input, and value) support the change-of-state algorithm.
*In Building Operation, we do not have digital or multi-state outputs with alarming, because we do not support "command-failure" type alarm that those require.