S4 Open: BACnet-N2 Router Enhancement

Publishing Each N2 Device as a BACnet Device

Several years ago when we introduced the S4 Open: BACnet-N2 Router, the focus was to deliver a reliable and robust product. These goals were facilitated by the software framework we defined during the development of our earlier product, the S4 Open: OPC-N2 Router. The architecture of our S4 Open Appliances is a set of protocol independent core services with protocol plug-ins that implement the protocol details. The concept was that the protocol plug-ins would be utilized in a Lego®-like manner to either form new products or offer additional options to existing products. This meant that the proven code for the core services, the Upstream N2 Interface, and the Downstream N2 Interface would be available as a part of our software framework. The development efforts would primarily be the BACnet protocol plug-in itself.

Our BACnet protocol plug-in implementation was developed from scratch, so part of the strategy for delivering a reliable and robust product was to minimize the complexity of the implementation. To that end, we determined that implementing a flat BACnet address space was the best way to go for the initial product release. With this implementation, the S4 Open: BACnet-N2 Router itself assumes the profile of a BACnet Application Specific Controller- and all points from all N2 devices are published under that device. All points, from all N2 devices, are published as standard BACnet data objects under the S4 Open: BACnet-N2 Router. Referential integrity is maintained by the convention of using a 6 digit instance number for each data object, with the leftmost 3 digits containing the N2 address of the device where the point originated. Object uniqueness is maintained by using the rightmost 3 digits as a sequence number. This approach allows you to look at any point through a BACnet controller, application, or operator workstation and easily determine its originating location.

This enhancement maintains the same BACnet publishing method for backwards compatibility and for cases where the integrator prefers the simplicity of having a single BACnet device to work with. In the future, the default method will be to publish each N2 device as a BACnet device.

The S4 Open: BACnet-N2 Router will still have its own identity as a BACnet device with its own BACnet Network Number and Device ID to facilitate administrative access to the Router itself. It will always be seen as a device on the local building network.

In this new 1:1 publishing model, all discovered N2 devices will appear under a virtual BACnet network defined by its own BACnet network number. The integrator will have the ability to specify both the network number and the IP Port number affiliated with the BACnet network.

Device Instance Number Assignment

By default, device instance numbers will be derived from the N2 address of the originating N2 device. When multiple N2 buses are connected to the S4 Open: BACnet-N2 Router, we utilize the same algorithm for N2 address translation utilized to guarantee unique N2 addresses on our Upstream N2 Interface. These Device Instance numbers are assigned by the Configure Wizard or when the integrator swaps between the legacy single device mode of publishing all N2 points under the S4 Open: BACnet-N2 Router and the 1:1 N2 device publishing mode. One of the most difficult aspects of this enhancement is this ability to switch between the legacy publishing method and the 1:1 publishing method. The integrator will have the ability to override the Configure Wizard-assigned device instance numbers.

Device Services and Features

Each published BACnet device will support the same set of BACnet attributes and services supported by the S4 Open: BACnet-N2 Router today and defined in the S4 Open: BACnet-N2 Router PICS document. The Operational Status of each published BACnet device in the virtual network will reflect the communications status of the original N2 device. Note that this is not the same as the online status in a Metasys® Operator Workstation.

Device Identification

The S4 Group Vendor_Name, Vendor_Identifier, and a unique Model_Name property identify each published N2 device type in its associated BACnet device object.

Data Object Instance Number Assignment

The same method as mentioned above with the Single Device Publishing Mode (the convention of using a 6 digit instance number for each data object with the leftmost 3 digits containing the N2 address of the device where the point originated)will be retained for backwards compatibility. With the 1:1 N2 Device publishing mode the N2 address will not be included in the Object Instance Number. This means that the BACnet data Object Instance numbers will be consistent for each N2 device type. As an example, the Object Instance Nnumbers assigned to points for every instance of a VMA Single Duct controller will be identical. This facilitates utilizing a template cookie cutter approach for developing the operator interface for a system.


This enhancement has been within our product plans since the initial implementation of the S4 Open: BACnet-N2 Router. However, requests from our integration partners have raised its priority on our development schedule and we are planning to be ready for field testing during the first quarter of this year. The first implementation of this enhancement is currently undergoing testing in a new product offering, the SNMP-BACnet Server. This product is a software-only implementation that discovers SNMP manageable devices on a network and publishes each SNMP device found as a BACnet device. It is a derivative of the Obermeier Software SNMP OPC Server and will run in any current Windows environment. The same software framework as our S4 Open Appliances is utilized so all protocol plug-ins are interchangeable. This expedites the testing process and minimizes the risk to our current base of S4 Open: BACnet-N2 Router customers while thoroughly testing the software. We expect testing of this product to proceed very quickly. When the testing is completed, the protocol plug-in will be migrated into the S4 Open: BACnet-N2 Router and with a minimal amount of validation testing we will be able to release the code to our field test sites and subsequently include it in a production release of the S4 Open: BACnet-N2 Router.