Large BACnet Gateways:

Introduction

A gateway is a device which reads from one system, translates the information and passes it to another system. For BACnet suppliers it is becoming increasingly necessary to provide a gateway from a third party system into a BACnet System. Typically these gateways acts as a single BACnet device and handle up to about 1000 points. This article introduces the concept of Virtual Devices and Virtual Networks for creating a BACnet Gateway capable of handling 1,000,000 points or more.

BACnet Topology

A typical BACnet Network consists of devices connected to logical networks as shown by the diagram below. Each Device is a seperate piece of hardware and has a phisical connection to the network. Devices are given a unique Device ID which can be a number between 0 and 4194302 and they also have a unique Network Number / MAC Address. For most users it is the Device ID which is used as a reference, while the Network Number / MAC Address is used by the engineer during configuration and by the devices for communication.


BACnet Router

A BACnet Router alows a device from one network to talk to a device on another network. To do this the device sends a message to the router with a destination address corresponding to the Network Number / MAC Address of the device it wants to send the message to. At the "Messaging" level, the Device ID is not used, it is the physical Addresses of the Devices.

Virtual Networks And Devices

A Virtual Network is a network that is not a physical network, but is contained inside a BACnet Router. Let's imagine that a Physical Device is acting as a router, and can route it's messages to a Virtual Network. The Virtual Network has one or more Virtual Devices that respond with BACnet Messages. In this way we can create a Gateway which is acting as Many BACnet Devices.

Why use a Virtual Device?

Let's imagine that the BACnet Gateway connects a lighting system with 1000 lighting controllers into a BACnet System. From the BACnet side each Lighting Controller appears as a seperate Device with it's own Device ID and Name. The Device is actually a Virtual Device, that resides on a Virtual Network, but as far as the BACnet system is concerned it's just another BACnet device. This simplifies the system and reduces engineering time due to the Addressing involved. It's also very easy to create a Gateway that can be "Automatically" configured. The Gateway on startup can interrogate the lighting system to find out which devices are connected.


BACnet Server API

The BACnet Server API allows for this type of gateway to be created by using the "Service Overrides" of the gateway. By overriding the services for readProperty, readPropertymultiple, writeProperty and writePropertyMultiple the gateway can handle any number of devices with objects on each device. It's also possible to create your own Proprietary Objects. The service Overrides allow the Application to update points from the third party system "On Demand". Each request from a BACnet Device is passed to the application to fetch the actual value of the value. On Demand processing will keep the traffic on the Third Party side down to a minimum. With very little programming effort, the Gateway could support "Intrinsic Reporting" for Alarms and even COV reporting, Trendlogs and Time Schedules.

The BACnet Server API operates on Windows as well as the Linux platform and requires on a small amount of memory. A sample application for 1000 Virtual Devices each with 1200 Objects has been built and can be downloaded from the download page. An evaluation copy of the BACnet server API is also available for download and contains many examples as well as the source code for the gateway application with 1000 Virtual Devices.

Custom applications can be built for almost any system and can operate on a small Single Board Computer. We can provide consulting services to create a gateway to integrate a "Propriatary" system into BACnet. For more information please contact sales.