Large BACnet Gateways:
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.
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.
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.