Our original implementation of the BACnet stack for the BACnet-N2 Router did not include support for Multistate BACnet objects (MSI, MSO, and MSV data types). Instead, the BACnet-N2 Router published such data as analog objects, and it deferred to the BACnet client or application to interpret the data. Support for multistate objects is in the release about to enter field-testing. Included is the ability to specify the enumerations associated with these data types. Similarly, we did not originally include the ability to provide enumerations for binary data objects (BI, BO, and BV). That capability is also in this release.
Analog data objects (AI, AO, and AV) did not originally include the ability to specify the Engineering Units associated with these points. In this release, the Device Type Templates for all N2 devices and applications define the configured Engineering Units, the S4 Open Management Console provides the ability to edit these assignments, and the BACnet protocol enhanced to publish the information as point attributes.
One of the reasons for not previously including support for BACnet Multistate data objects was that the numeric value of many Metasys points did not cleanly map to BACnet Multistate objects. There needed to be a way to define, and maintain, the required data transformations. The concept of Smart Data Points, along with the introduction of virtual points, addresses this need in the upcoming release of the BACnet-N2 Router.
Virtual points are a new feature of emulated BACnet devices. They do not have a physical presence on the N2 bus. They can be of any data type and are independent of the published protocol. The domain of a virtual point is the device where it is defined. Therefore, if a virtual point is defined in a device type template, each assignment of that template to a device creates a new instance of the virtual point. Virtual points are containers for performing calculations and data transformations and can be published to BACnet just as we publish N2 points to BACnet. Each is assigned a unique BACnet instance number and all appropriate BACnet properties for its object type.
Combine virtual points with JCBasic compatible scripts and the result is Smart Data Points. The scripts driving the data are triggered by reading or writing to the point. Data operations are confined to the emulated device itself, that is, references to real N2 points are restricted to the instance of points in the device containing the Smart Data Point. An example would be a Metasys® Multistate variable that has values 0, 1, 2, and 3. A script would shift these values by 1 to bring them in compliance with the valid data range for BACnet MSV data objects (positive integers) on read and write operations to the virtual point. Read operations would reference the underlying N2 point and make the appropriate adjustments. Write operations would make the inverse adjustment then write through to the underlying N2 point.
The next logical step is to include multiple Smart Data Points in one device type template. The result is a Smart Device that can be used to transform the operation of legacy N2 devices into BACnet-compliant devices using all the standard BACnet data objects.
Take this concept just a little bit farther and a Smart Device hosted by the BACnet-N2 Router can theoretically make a legacy Metasys VAV controller emulate the current generation BACnet compliant VAV controller of another manufacturer. The BACnet-N2 Router cannot change the application specific logic within a N2 device. But, it does have complete control over what is published to BACnet. Think of the possibilities!