Niagara - BACnet - Export/import of multistate objects
The article outlines how to appropriately export and import BACnet objects in the Niagara system:
‘Multistate Input’;
‘Multistate Output’;
‘Multistate Value’.
Initially, it is required to properly configure the BACnet driver, which is covered in the Niagara - BACnet - Basic configuration steps article.
WARNING: The presented example is designed to provide instances of proper configuration as well as instances of wrong configuration.
1. Export of BACnet Multistate Objects
In the presented example, several components of the ‘EnumWritable’ type have been added to the logic as in the Niagara system they are equivalent to the BACnet Multistate objects.
Figure 1. Configuration of the station’s logic in the Wire Sheet view of the presented example
In the example, three components have been added in the ‘Config/Apps/Folder’ location:
‘FCU_State’;
‘AHU_State’;
‘Enum_WithoutFacets’.
For the first two components, the ‘Facets’ have been configured as follows:
Figure 2. The ‘Facets’ configuration in the ‘FCU_State’ component
Figure 3. The ‘Facets’ configuration in the ‘AHU_State’ component
The third component ('Enum_WithoutFacets') has been left with the default ‘Facets’ configuration.
WARNING: The only component correctly configured to be exposed over the BACnet protocol is the ‘AHU_State’ component; in order to expose any ‘Multistate’ object over BACnet, the ‘Facets’ is required to be set from 1 to N - 0 is forbidden.
The next step is to expose values of added components over the BACnet protocol. Go to the ‘Config/Drivers/BacnetNetwork/LocalDevice/ExportTable’, and open the ‘Bacnet Export Manager’ view. Click ‘Discover’; the ‘BQL” generating creator pop-up window appears. By default, the whole station is searched with the ‘Discover’ option, however, in the presented example, the searched location has been limited to ‘Config/Apps/Folder’ and ‘Enum Point’ component type. Confirm with OK; in the 'Local Objects’ section, all found components are displayed.
Figure 4. Configuration of the ‘BQL’ request and list of found components
Having discovered three previously added components, it is possible to drag&drop them to the ‘Exported Objects' section, which means exposing them over the BACnet protocol. After moving the components, the pop-up window appears to add new BACnet objects. In this step, it is possible to set:
BACnet ‘Object Name’;
‘Type’;
BACnet ‘Inst Num’ (object’s address);
BACnet ‘Description’.
Here, the ‘Type’ slot is the most important; it sets the type of extension, which impacts the BACnet ‘Object Type’ and possibilities to overwrite values by remote devices.
Figure 5. The ‘MultiState Input’ object exposed over the BACnet protocol
The below list describes objects available in the presented example:
‘Bacnet Multi State Input Descriptor’ - this type defines the component as the ‘Multistate Input’ - read-only point;
‘Bacnet Multi State Output Descriptor’ - this type defines the component as the ‘Multistate Output’; in this option, the additional slot ('BACnet Writable') has to be configured;
‘Bacnet Multi State Value Descriptor’ - this type defines the component as the ‘Multistate Value’ - read-only point;
‘Bacnet Multi State Value Prioritized Descriptor’ - this type defines the component as the ‘Multistate Value’; in this option, the additional slot, ‘BACnet Writable’, has to be configured.
The additioanl ‘BACnet Writable’ slot defines the priority of received communicates (overwriting) in the BACnet protocol that the component reacts to. Leaving the priority undefined means that the remote device can only read the component’s value; despite having the point defined in the remote device as ‘Writable’, the local device will return the ‘Property: Write Access Denied’ notice with each attempt to write value from the remote device.
Figure 6. The additional ‘BACnet Writable’ slot for ‘Prioritized’ type objects
The below figure shows the list of all added points. It is worth noticing that the ‘FCU_State’ and ‘Enum_withoutFacets’ have the ‘Fault’ value in the ‘Export’ column (unfortunately, Niagara does not color the faulty points in orange, so it is recommended to pay special attention to the ‘Export’ column values).
Figure 7. List of the ‘Multistate’ objects exported in the BACnet protocol
Errors in the ‘FCU_State’ and ‘Enum_withoutFacets’ components result from the fact that both ‘EnumWritable’ points have a wrong value in the ‘Facets’.
2. Import of BACnet Multistate Objects
Having invoked the ‘Discover’ function, the list of points in the importing device is incomplete ('FCU_State' point is missing due to the wrong configuration of the ‘Facets’):
Figure 8. List of ‘Multistate’ objects discovered over the BACnet protocol
The ‘Enum_WithoutFacets’ point has been discovered, and, having been added to the ‘Database’ section, it reads values (even if the value is 0). Also, its component (in the importing device) can have the ‘Facets’ set, but the 0 value will be still displayed as 0 (regardless of the ‘Facets’). Regrettably, the first attempt to overwrite this value (with any number) makes the component go into the ‘Fault’ status with the ‘Property:Value Out of Range’ notice.
If the ‘FCU_State’ point is added manually (clicking ‘New’ and entering a proper BACnet ID), it will always have the ‘Fault’ status.
Summary
Exposing ‘Multistate’ objects over the BACnet protocol requires to have the ‘Facets' always configured without 0, which is forbidden, in the 'EnumWritable’ components.
Niagara is able to read the ‘Multistate’ BACnet object of the remote device that does not have the ‘Facets’ properly configured; however, if the remote device is also a Niagara-driven device, it is not possible to overwrite the value of such point.
Niagara-driven devices (including the iSMA-B-MAC36NL) work with ‘Multistate’ objects types: ‘Input’, ‘Output’, and ‘Value’.
The ‘Writable’ function is active if the BACnet data server enabled it for a component and only for set (selected) priorities.
Niagara does not color BACnet extensions in orange for faulty configured ‘EnumWritable’ components, so it is important to pay special attention if the ‘Export’ column shows ‘OK’ or ‘Fault’.